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

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

3天内不再提示

使用事务级模型确保硬件和软件同步

星星科技指导员 来源:嵌入式计算设计 作者:Michael (Mac) McNamar 2022-06-28 15:42 次阅读

消费者和无线通信市场比以往任何时候都更具竞争力。公司聚合与分解之间的持续战斗如火如荼。聚合的一个例子是决定通过将芯片设计引入内部来拥有更多的垂直设计链。这有助于像 Apple 这样的公司通过控制更多的整体产品设计来实现差异化,从而不受其他人可用的现成芯片的限制。

虽然苹果已经证明了垂直差异化的潜在回报,但这种方法确实带来了巨大的风险,无论一家公司是否有设计芯片的经验。具体来说,软件团队如何开发与交付的硬件一起使用的软件?

在等式的另一边,完全分解是由软件抽象层(如谷歌的 Android 操作系统)实现的。它在某种程度上使设计空间民主化,允许所有系统公司参与并使用软件实现差异化。Android 允许半导体供应商通过提供支持硬件平等参与。同样,软件与硬件一起工作的方式决定了产品的成功。

这个问题的传统解决方案在今天的市场上是行不通的。公司过去可以根据规范开始软件开发,并等待芯片原型可供测试。如果软件非常简单,独立于硬件,并且有一个简单的规范,那么它就可以工作,但对于今天需要所有东西都连接起来的消费电子产品来说就不行了。

此外,等待很长时间才能开始测试会使调试周期在计划中太晚。近年来,许多公司通过转向标准的现成芯片来解决这个问题,但这种方法限制了差异化的能力。如果你想添加一个省电的睡眠模式但是没有办法关闭芯片怎么办?

在综合场景中,公司不仅在软件和工业设计方面寻求差异化,而且在电子硬件方面也有所不同。进行芯片设计项目会带来风险;再加上嵌入式软件开发,整体项目风险呈指数级上升。大多数公司都非常小心,会花大量时间预先构建系统、对其进行测试、将其划分为软件和硬件,并指定两者的行为。但是一旦每个团队开始设计,就会做出某些实现假设,引入错误,并且可以添加功能。

在一个分散的世界中,情况甚至更糟,因为责任现在跨越了公司边界。来自系统和半导体领域的公司可能会决定合作优化硬件/软件交互并创建针对系统需求进行优化的芯片。即使有持续的同步会议,设计更改也会在软件团队不知情的情况下潜入,并且可能直到软件第一次在实际硬件上运行时才会被看到。这又回到了硬件不够快可用的问题。工程师如何解决这个难题?

原型设计的黄金模型

以软件模型形式出现的硬件虚拟原型(或虚拟平台)在流程的早期为软件团队提供了系统硬件模型。这使开发人员能够开始对硬件规范模型进行测试。但是,它只是规范的模型。今天的大多数硬件设计都是从工程师阅读和解释规范开始的,然后用 Verilog 等硬件设计语言编写低级寄存器传输语言 (RTL) 模型,以开始验证和实施过程。由于前面提到的因素,硬件行为可能会偏离规范。

解决方案是使用一个通用的“黄金模型”,软件团队可以在该模型上进行开发,硬件团队可以使用该模型开始实施。现在,随着开放系统 C 倡议 (OSCI) 事务级建模 (TLM) 2.0 标准的可用性,这成为可能。

简而言之,SystemC 是一个类库,通过对硬件数据类型和并发性进行建模,可以使用 C/C++ 进行硬件设计。因为硬件现在可以用 C 语言建模,所以软件团队可以运行相同的模型。TLM 扩展很重要,因为它们抽象出硬件所需的所有信号级协议细节,以确保它与系统总线正确通信。过多的这些细节会使模型运行软件太慢。TLM 将这些细节抽象为更高级的模型,这些模型可以在高级综合期间映射到详细的硬件。

解决高级综合限制

高级综合提供了 C 模型和构建的实际硬件之间的自动链接。这消除了硬件设计人员解释规范并手动编写自己的模型以开始构建硬件的人为因素。直到最近,由于现在已经解决了一些关键限制,这在实践中很少使用:

结果质量:前两代高级综合从未能够生产出满足手动编写 RTL 所能达到的相同性能、功耗和尺寸的硬件。现代高级合成技术已经解决了这个问题。

细化方法:用于软件开发的高级虚拟原型使用 SystemC TLM 描述,但仍需要硬件团队通过添加硬件架构细节来对其进行细化,以便高级综合可以产生最佳的硬件微架构。这些细节对于软件测试来说太低级了,会减慢它的速度,但它们对于构建高效的硬件很重要。这种方法现在已经存在,并已被早期采用者客户证明。

验证:直到最近,工程师还缺乏一种成熟的方法来验证 SystemC TLM 中硬件架构和其余硬件实现流程的正确性。这主要是因为不存在实现实现的自动化路径,因此大多数验证都是在较低级别完成的。因此验证成为硬件开发进度的瓶颈。既然存在自动化路径,验证方法就已经开发出来了。

硬件设计团队熟悉使用 SystemC TLM 设计和验证硬件的这些传统障碍。然而,大多数人并不知道这些障碍已得到解决。那些意识到这一点的人现在享有显着的竞争优势。他们可以更有效地描述他们的硬件,更快速地验证它,并更容易地在衍生芯片中重用它。

实践中的虚拟平台

硬件的通用模型现在可以更早地作为虚拟平台的一部分使用,因此可以更快地解决硬件/软件交互问题。这种通用模型可以作为虚拟平台中更大系统的一部分在公司内部的聚合开发场景中交付,也可以在分散的世界中跨公司交付。

系统概念首先被描述为 SystemC TLM 虚拟原型。在 Cadence 流程中,虚拟系统平台使用此虚拟原型在此硬件模型上运行软件。同时,硬件设计团队将完善 TLM,为 C-to-Silicon Compiler 高级综合添加硬件架构细节,这是实现硅片的开始。

如果在测试过程中发现错误,虚拟系统平台将与 Incisive Verification Platform 集成,以便可以在软件和硬件上进行调试。这意味着无需繁琐的固件补丁即可从源头解决问题。随着硬件实施过程的进展,更详细的 RTL 模型可用于在验证计算平台中创建硬件仿真模型或在快速原型开发平台中创建 FPGA 原型。

整个过程是一系列连续的改进,从快速 TLM 模型开始,在可用时添加更多硬件细节,同时保持足够快的运行时以进行软件开发。这最终使软件和硬件团队——甚至跨越公司边界——拥有一个通用模型,可以实现更早的通信和持续的同步。这是与当今消费市场所需的创新和交付计划保持同步所需的协作类型。只有硬件团队发展其设计和验证方法以包含 SystemC TLM,才能实现这一目标。

审核编辑:郭婷

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

    关注

    1602

    文章

    21301

    浏览量

    593092
  • 芯片
    +关注

    关注

    446

    文章

    47732

    浏览量

    409024
  • 总线
    +关注

    关注

    10

    文章

    2702

    浏览量

    87201
收藏 人收藏

    评论

    相关推荐

    谷歌模型训练软件有哪些?谷歌模型训练软件哪个好?

    谷歌在模型训练方面提供了一些强大的软件工具和平台。以下是几个常用的谷歌模型训练软件及其特点。
    的头像 发表于 03-01 16:24 264次阅读

    谷歌模型合成软件有哪些

    谷歌模型合成软件通常指的是谷歌提供的用于创建、修改和共享3D模型软件。目前,谷歌推出的模型合成软件
    的头像 发表于 02-29 18:20 891次阅读

    谷歌模型软件有哪些好用的

    谷歌模型软件的好用程度可能因个人需求和技能水平而异,但以下是一些广受欢迎的谷歌模型软件,它们在各自的领域内有着出色的表现。
    的头像 发表于 02-29 18:17 544次阅读

    Spring事务失效的十种常见场景

    Spring针对Java Transaction API (JTA)、JDBC、Hibernate和Java Persistence API(JPA)等事务 API,实现了一致的编程模型
    的头像 发表于 12-11 15:03 500次阅读

    ESL设计中事务级建模的一般理论

    在更详细地描述事务级建模之前,首先介绍在事务级建模中用到的一些术语。首先事务表示数据和事件的交换过程。各个连续的事务可以是不同大小的数据传输,也可以是在系统
    的头像 发表于 11-02 14:48 241次阅读

    ESL设计的核心——事务级建模介绍

    设计、软硬件划分、软硬件协同设计和验证,都离不开事务级建模。 在系统级的设计中,首先要解决的问题是如何描述系统也就是所谓系统建模。在当前的集成电路设计中,算法层次上建立的功能模型(AL
    的头像 发表于 11-02 14:38 504次阅读

    CANoe中常用的同步方式,软件同步+硬件同步#CANoe

    软件CANoe
    北汇信息POLELINK
    发布于 :2023年08月23日 15:54:30

    Arm事务性内存扩展概述

    本指南介绍事务性内存,它允许自动执行代码,而无需始终实现限制性能的同步方法。 ARM事务内存扩展(TME)是事务内存的ARM实现。 现代复杂系统在不止一个处理器上执行。 对存储器访问的
    发表于 08-17 07:57

    UART PL011循环模型9.1.0版用户指南

    PrimeCell UART是符合AMBA标准的片上系统外设。 UART是一个AMBA从属模块,连接到高级外设总线(APB)。 该周期模型支持通过事务端口在接收和发送方向上的数据传输。 本节总结
    发表于 08-16 07:25

    PrimeCell静态内存控制器(PL350系列)循环模型9.1.0版用户指南

    提供内存映射寄存器的可见性。 事务监视器探头可以连接到任何可视化事务的AXI连接。 此外,SoC设计器配置界面用于收集事务事件信息。 本节总结了周期模型的功能与
    发表于 08-16 06:41

    PrimeCell SSP循环模型9.1.0版用户指南

    PrimeCell SSP是符合AMBA标准的片上系统外设。 SSP是AMBA从模块,连接到APB。 该模型支持数据传输的收发方向事务端口。 本部分简要介绍了该型号与硬件的功能。 有关模型
    发表于 08-16 06:14

    PrimeCell通用输入/输出(PL061)循环模型9.1.0版用户指南

    PrimeCell GPIO是符合AMBA标准的片上系统外设。 GPIO是AMBA从模块,与APB相连。 该周期模型支持用于数据传输的接收和发送方向事务端口。 本节提供周期模型硬件
    发表于 08-12 07:15

    用于快速模型模型调试器11.20版用户指南

    用于快速模型模型调试器是用于可扩展集群软件开发的完全可重定目标的调试器。它旨在满足SoC软件开发人员的需求。 Model Debugger具有易于使用的GUI前端,并支持: •源代码
    发表于 08-10 06:33

    用于快速模型模型调试器11.21版用户指南

    用于快速模型模型调试器是用于可扩展集群软件开发的完全可重定目标的调试器。它旨在满足SoC软件开发人员的需求。 Model Debugger具有易于使用的GUI前端,并支持: •源代码
    发表于 08-09 07:57

    适用于快速模型模型调试器用户指南

    用于快速模型模型调试器是用于可扩展集群软件开发的完全可重定目标的调试器。它旨在满足SoC软件开发人员的需求。 Model Debugger具有易于使用的GUI前端,并支持: •源代码
    发表于 08-08 06:28