0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

硬件/软件接口:描述SoC外设配置和功能及如何与CPU交互

星星科技指导员 来源:嵌入式计算设计 作者:Anupam Bakshi 2022-12-02 11:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

硬件/软件接口,简称“HSI”,是一个术语,用于描述 SoC 外设的配置和功能以及它们如何与 CPU 交互。

寄存器位到访问类型、属性及其控制的功能,这里不同因素的绝对数量在现代 SoC 中绝对是惊人的。例如,如果您有 32 位地址总线,则可以访问 2^32 个内存映射寄存器。如果每个寄存器本身都是 32 位宽,则寄存器位的总数变为 (32 * 2^32) 或 2^37,或 137,438,953,472!

但是,如果地址总线是 64 位怎么办?如果 SoC 中有多个 CPU 内核怎么办?显然,说典型的SoC架构很复杂有点轻描淡写。

不可否认,当前的行业趋势只会带来更先进的SoC,其外设数量比以往任何时候都多,功能更多。为了理解这一切,更不用说管理它了,这将需要我们完全重新思考硬件/软件接口。就我们已经走了多远而言,都是如此。..。..以及我们的前进方向。

当今存在的硬件/软件接口

在任何给定的时刻,您都有各种各样的不同元素正在处理。多个处理器,包括专门设计的处理器。它们周围是大量的可编程外设。一切都通过片上网络互连汇集在一起。这样的例子不胜枚举。

在现代CPU的背景下,HSI和指令集架构(ISA)本质上是完全相同的东西。它是软件与硬件“对话”的层。CPU可以是ARMRISC-V - 实际上并不重要,因为过程保持不变。你为你想要的目标编写一个C或C++程序,你编译它,然后放在CPU上。这就是您与寄存器和外部总线以及 I/O 交互的方式。

就实际的SoC而言,您还必须处理互连结构,这是将CPU连接到各种可编程从站的原因。这些奴隶可能有自己的记忆,甚至可以成为通往较慢总线的桥梁,具体取决于您所说的独特情况。从站通过读取和写入嵌入式寄存器进行编程。当你从这种类型的宏观角度来看事情时,寄存器和中断是IP(或从属)HSI。

虽然到目前为止这一直运作良好,但也很难反驳它给任何项目带来一些重大挑战的事实。在最近的一项研究中,仔细研究了芯片功能缺陷的根本原因,设计错误是关键因素。还考虑了规格的变化以及不正确或不完整的规格。所有这些问题都既严重又常见,而且它们都有一个共同点:属于这三个类别中的任何一个的问题中,超过50%的问题直接与HSI层有关。

以寄存器为例。您必须始终记住,您正在处理各种不同的类型。间接、UART、影子、锁定、中断、FIFO 和分页都只是众多示例中的一小部分。间接寄存器和触发缓冲寄存器等复杂寄存器都有其自身潜在的复杂性,寄存器组或组数组也是如此,它们显然非常不同。

仅基于此,就很容易理解为什么超过一半的问题可以直接与硬件/软件接口相关联。同样复杂的是,公司通常有自己独特的SoC特定挑战和要求。

人们很容易对这个消息采取悲观的态度,并将其视为令人恐惧的事情。值得庆幸的是,这也是值得庆祝的事情。这意味着,如果你花时间修复HSI层,你也会修复芯片功能缺陷的大部分根本原因,这些缺陷甚至不应该首先存在。

您需要的灵活、创新的未来

当你考虑HSI信息的所有不同消费者时,这个列表可能比人们意识到的要长得多。除了设备驱动程序、固件和硬件验证等因素外,您还需要考虑技术文档、诊断、应用软件、硬件设计等。对底层规范的一次更改需要在所有这些领域进行重大转变,这就是为什么找到一种允许这些更改自动渗透到所有相关视图中的解决方案如此重要的原因。

Agnisys自己的IDesignSpec(IDS)只是在解决所有这些问题方面取得重大进展的众多进步例子之一。根据您的需求,这些类型的解决方案通常与各种不同的输出兼容,包括但不限于Verilog/VHDL,C模型,UVM等。它们通常可用于从批处理(想想:命令行)到 Word 和 Excel,甚至是 Open Office 等开源选项。

现在可以生成一个基于 UVM 的寄存器模型,该模型涵盖所有验证元素,如封面组、封面点、封面箱、非法箱等 - 为您的实际人类员工腾出宝贵的时间专注于更大、更重要的事情。

最后,可以使用单个工具来创建测试序列和环境,创建正式的属性和断言,从规范创建UVM序列和固件例程,并帮助实现跨平台HSI层规范,以应该一直存在的方式平等地为各方服务。如果您想了解更多信息,Agnisys 有一个录制的网络研讨会,介绍如何在 HSI 中工作时指定和提高生产力。

这一切都超越了简单的自动化。它代表了朝着硬件和软件概念的下一次演变迈出的重要一步。

同样,您特别谈论的是哪种工具并不重要。下一代硬件/软件接口解决方案已经到来,它们不仅有助于解决“老派”做事方式中存在的绝大多数挑战,而且还对几乎所有你能想到的行业都提出了许多重大影响,这些行业太强大了,不容忽视。

功能安全

HSI发挥重要作用的众多领域之一与功能安全和ISO 26262标准有关。例如,汽车工程师需要确保其设计中没有单点故障,并遵守ECC - CRC和奇偶校验或其他技术(如三模块冗余(或TMR))的标准。

出于安全目的,HSI对于某些应用程序在历史上也很重要。你会看到很多情况下,内存映射被一个键序列锁定,其中必须使用特定值向某个地址写入一系列写入,以使状态机完成解锁整个内存映射所需的过程。

最后,我们有医疗领域 - 硬件/软件接口很重要的领域,因为遵守某些要求是关键任务。此外,他们还对HSI层本身提出了自己独特的要求,从而影响您如何实现某些因素以及未来的情况。

不幸的是,尽管HSI在理论上很重要,但在执行中,它以最糟糕的方式处于停滞状态。它与以往一样重要,但存在某些挑战,这些挑战绝对阻碍了创新,而不是推动创新向前发展。

最后

毋庸置疑,在处理复杂的硬件/软件接口时存在很多挑战。然而,通常情况下,也存在大量的机会。这一领域的进步,IDesignSpec只是众多例子之一,使人们有可能更好地改变他们对HSI的看法。

硬件/软件接口背后的想法肯定已经走了很长一段路,而且还有很长的路要走。但与此同时,好东西值得为之奋斗,因为“正确的方法”几乎可以保证全面显着提高生产力。“错误的方法”保证了调试时丢失很多周期,以及其他问题,这意味着它根本不是一个真正的选择。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5623

    浏览量

    130632
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11370

    浏览量

    226408
  • soc
    soc
    +关注

    关注

    40

    文章

    4658

    浏览量

    230592
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Edge AI 语音交互与MCP外设控制实践 | 技术集结

    响应的自然语音交互能力,开发者无需精通复杂的人工智能算法,即可快速在嵌入式硬件上构建具备对话和控制功能的智能产品。本文将手把手带你学习如何在Edgi-Talk平台
    的头像 发表于 03-16 11:58 5566次阅读
    Edge AI 语音<b class='flag-5'>交互</b>与MCP<b class='flag-5'>外设</b>控制实践 | 技术集结

    一起盘点AG32 MCU 的特性及产品特色,异构SOC入门推荐

    、LQFP48、LQFP64、LQFP100等多种封装选项。其I/O引脚具有极高的灵活性,大部分数字接口(如UART、SPI、I2C、PWM等)可通过软件配置到任意指定引脚,但电源、时钟、复位、USB等少数引脚
    发表于 03-13 11:51

    【「龙芯之光 自主可控处理器设计解析」阅读体验】--LoongArch的SOC逻辑设计

    模块设计包括了CPU架构、总线、内存、系统复位、时钟、外设等。 搭建软件环境使用EDA VCS和Verdi。介绍如下,具体使用可参照书籍该处。 VCS是Synopsys公司开发的一种常用的Verilog
    发表于 01-18 13:45

    开发者必备:嵌入式常用外设接口电路参考指南

    在嵌入式开发中,硬件接口电路设计是每位工程师都绕不开的环节。不同的外设接口有各自的电气特性和设计要求,理解常见接口的参考电路可以让你的开发更
    的头像 发表于 01-09 19:03 1005次阅读
    开发者必备:嵌入式常用<b class='flag-5'>外设</b><b class='flag-5'>接口</b>电路参考指南

    智能双卡设计实战指南:硬件电路与软件配置详解!

    在智能双卡设计中,硬件电路的可靠性与软件配置的精准性直接决定双卡功能的稳定性。本文基于实际项目经验,详细拆解硬件设计中SIM卡供电电路、时钟
    的头像 发表于 12-16 15:13 743次阅读
    智能双卡设计实战指南:<b class='flag-5'>硬件</b>电路与<b class='flag-5'>软件</b><b class='flag-5'>配置</b>详解!

    CIE全国RISC-V创新应用大赛 呼吸机人机交互系统

    驱动配置,匹配 MUSE Pi Pro 的显示输出规格,问题得以解决;​ 通信中断问题:适配过程中出现与呼吸机主控单元的数据交互中断,排查发现是接口驱动兼容性问题,通过加载RISC-VCAN驱动并
    发表于 11-12 15:07

    基于蜂鸟E203(一代)的添加外设基本总线读写操作简要介绍

    硬件配置地址寄存器 由蜂鸟E203 SoC的总线地址分配表可知,私有外设总线接口的总区间为 0x1000_0000~0x1FFF_FFFF
    发表于 10-30 07:52

    蜂鸟E203 SoC的私有设备总线的简单使用

    、FLASH等。而私有外设接口连接的是私有设备总线,可以访问UART、GPIO等。 在设计和扩展E203 SoC功能的过程中,我们一般都会为系统需要添加
    发表于 10-30 07:51

    基于hbirdv2的APB总线添加外设(二)

    - 0x1004_2fff 4. 扩展ICB总线接口 demo SoC中ICB总线预留了16个iICB的接口,其中o15未使用,这边我们直接接上icb2apb模块就可以了。 至此,基于APB总线添加
    发表于 10-29 07:49

    串口外设使用分析

    蜂鸟E203 MCU SoC中的GPIO有两种控制模式: 第一种是软件控制模式,该模式下每个I/O均可直接受软件变成的可配置寄存器控制。第二种模式为IOF模式,该模式下每个I/O均可
    发表于 10-28 06:28

    E203外设的例化与编译配置

    外设,包括硬件例化、总线连接、底层开辟空间等一系列过程,同时需要在软件配置地址、接口信号数据类型等,才能正常编译使
    发表于 10-24 07:14

    如何在e203 SOC中添加自定义外设

    外设的基地址和连接e203_soc_top信号使用,并将自定义的外设正确实例化在此对外接口口模块中。 3、在e203_soc_top中正确
    发表于 10-20 10:38

    蜂鸟SOC的SPI外设:如何修改SPI的时钟相位和时钟极性

    如标题所示,我们分享关于蜂鸟SOC的SPI外设中,SPI的时钟相位和时钟极性 SPI的时钟相位和时钟极性相关概念如下图: SOC的SPI0外设默认为 CPHA = 0, 但是我们的采
    发表于 10-20 09:36

    【HZ-RK3568开发板免费体验】外设接口测试

    网络是通过手机热点分享获取,这里不建议根据文档中所提及的“使用Ubuntu虚拟机去启用SSH服务”。 3、外设接口功能测试 CPU当前温度、按键与LED开关等基本
    发表于 08-12 23:40

    ESP32-P4—具备丰富IO连接、HMI和出色安全特性的高性能SoC

    硬件加密加速器、硬件随机数生成器等组件为设备安全保驾护航。借助数字签名外设和专用密钥管理单元,ESP32-P4可确保私钥在SoC 内部生成,且无法通过任何
    发表于 06-30 11:01