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的看法。

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

审核编辑:郭婷

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

    关注

    30

    文章

    5028

    浏览量

    117715
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206537
  • soc
    soc
    +关注

    关注

    38

    文章

    3745

    浏览量

    215666
收藏 人收藏

    评论

    相关推荐

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    应用。 AP SoC的诞生背景: 在全可编程平台设计阶段,设计已经从传统上以硬件描述语言HDL为中心的硬件逻辑设计,转换到以C语言为代表的软件
    发表于 04-10 16:00

    如何配置clause45接口的phy外设?

    如何配置clause 45接口的phy外设?有没有相关的例程?我搜索到的官方例程好像都是用的clause 22 MDIO. 相对于clause 45来讲,我下面的理解是对的吗? MAC MDIO
    发表于 01-18 08:57

    怎么设置蜂鸟E203 soc外设的可配置寄存器读写属性?

    想请问怎么设置蜂鸟E203 soc外设的可配置寄存器读写属性?可读可写、只写、只读三种模式具体怎么设置呢?目前是默认情况,新添加的外设寄存器写不进去数据,读返回为0
    发表于 01-15 08:08

    唐辉电子向您介绍CPUSoC、MCU

    “唐辉电子”向您介绍CPUSoC、MCU
    的头像 发表于 01-11 12:49 131次阅读
    唐辉电子向您介绍<b class='flag-5'>CPU</b>、<b class='flag-5'>SoC</b>、MCU

    怎么设置蜂鸟E203 soc外设的可配置寄存器读写属性?

    想请问怎么设置蜂鸟E203 soc外设的可配置寄存器读写属性?可读可写、只写、只读三种模式具体怎么设置呢?目前是默认情况,新添加的外设寄存器写不进去数据,读返回为0
    发表于 01-10 06:24

    【全志R128外设模块配置】USB外设功能配置

    和其它音频设备的功能控制和接口标准。 menuconfig 驱动相关配置: ‑> Drivers Options ‑> soc related device
    发表于 10-30 11:37

    MCU上简单易用的特定外设配置功能 - XMCD

    其中,[19:16]和[15:11]域仅对FlexSPI接口外设有效,当选择SEMC接口时,这些区域被忽略,设为0即可。[11:0]域用于设置XMCD数据块的总大小,等于XMCD头大小+配置
    的头像 发表于 10-29 16:01 478次阅读
    MCU上简单易用的特定<b class='flag-5'>外设</b><b class='flag-5'>配置</b><b class='flag-5'>功能</b> - XMCD

    介绍一个用C语言编写的硬件外设访问库

    今天要介绍的开源软件叫 c-periphery,一个用 C 语言编写的硬件外设访问库。
    的头像 发表于 10-26 10:36 514次阅读
    介绍一个用C语言编写的<b class='flag-5'>硬件</b><b class='flag-5'>外设</b>访问库

    AT32F402/405的GPIO功能及固件驱动程序API的配置和使用

    AT32F402/405 GPIO Application Note介绍AT32F402/405的GPIO功能及固件驱动程序API的配置和使用,并对BSP例程的软件设计加以说明,同时演示使用方法并展示实验效果,供用户参考。
    发表于 10-26 07:03

    AT32F423的GPIO功能及固件驱动程序API的配置和使用

    这篇应用笔记介绍AT32F423的GPIO功能及固件驱动程序API的配置和使用,并对BSP例程的软件设计加以说明,同时演示使用方法并展示实验效果,供用户参考。AT32F423xx的通用功能
    发表于 10-26 06:26

    SoC系统中的软件结构设计

    在一个SoC的系统结构设计中,除了硬件结构以外,软件结构的设计对整个SoC的性能有很大的影响。
    的头像 发表于 09-25 15:14 580次阅读

    外设SPI在SOC设计中的应用

    SOC设计中,外设SPI(Serial Peripheral Interface)作为一种重要的通信接口,被广泛用于芯片与外部器件之间的数据传输。本文将对外设SPI的相关知识进行详细
    发表于 09-24 11:35 428次阅读

    iTOP-RK3568开发板外设接口配置手册

    新增《iTOP-3568开发板外设接口配置手册》**** 在迅为RK3568开发板上,有着许多的外设接口,为方便大家开发学习,新增了《iTO
    发表于 09-20 09:53

    关于同星硬件接口卡及TSMaster软件常见问题

    ,CANFD,LIN,FlexRay,与Ethernet等网络的开发、仿真、测试与维护。TSMaster软件可连接、配置并控制所有的同星硬件接口卡,实现汽车总线监控
    的头像 发表于 09-16 08:37 1092次阅读
    关于同星<b class='flag-5'>硬件</b><b class='flag-5'>接口</b>卡及TSMaster<b class='flag-5'>软件</b>常见问题

    简谈CPU、MCU、FPGA、SoC芯片异同之处

    的,一般说来,SoC是一个完整的整体,已经拥有了整个数字系统的完整功能它也是一种ASIC,其中包含完整的控制系统并有嵌入式的软件SoC也代表着一种技术,是一种以确定系统
    发表于 05-26 17:07