首页
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
更多
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
使用 TLM 虚拟系统原型, 进行汽车芯片的硬件和软件验证
文摘
2024-11-01 06:00
上海
本文介绍了如何使用基于可扩展事务级建模 (TLM) 技术的方法,使软件设计能够在设计流程中更早开始,从而使公司能够更快地将设计推向市场,尤其是在产品面市时间极度敏感的行业。
它基于创建高级硬件模型,这些模型足够详细地描述功能,以便软件团队可以将它们用作开发平台,即使硬件设计尚处于早期的阶段。因此,软件开发人员甚至可以在设计的初始阶段开始应用程序和固件验证,此时更改最容易,对最终设计的特性影响最大,并且错过市场最后期限的风险很小。
在消费电子产品中,即使错过几周的市场窗口也会导致销售量大幅下降。
这一点已经在汽车市场上体现了出来
,
这些成本和进度敏感的应用程序同时也是最难创建的。
它们由复杂的硬件块组成,通常包括复杂的数字电路和大容量内存,以提供高级计算和多媒体功能。
这些产品通常由电池供电,尽管每一代产品都要求支持越来越多的功能和能力,但其功率限制却十分严格。
由于硬件非常复杂,软件对于这些产品的竞争成功也至关重要。应用软件通常是关键的差异化因素,可让系统公司获得可观的利润率。软件对于硬件平台的功率和性能行为也越来越重要。
在传统的产品开发流程中,软件团队会等待在原型硬件上验证其代码
。虽然这种方法在过去效果很好,但在当前的技术和上市时间压力下却行不通。根据行业研究公司 Venture Development Corporation 的数据,
近 40% 的项目延迟可以追溯到系统架构设计和规范中的缺陷。
这个问题之所以存在,
是因为在后期的物理原型阶段查找和修复硬件/软件设计错误非常困难,而且非常耗时。
将硬件/软件验证移至设计流程的早期阶段,使两个团队能够快速建模设计、评估整个系统的功能和属性,并做出更改,从而在不危及最后期限的情况下在性能、功耗和系统尺寸方面带来巨大回报。
结论很明显:
根据高级硬件模型开始应用软件和固件开发可以节省大量开发时间,并生产出满足或超出消费者期望的产品。
尽早进行软件验证
为了满足在设计周期早期进行硬件/软件验证的迫切需求,一种新的系统设计方法应运而生。该方法基于创建高级硬件模型,这些模型足够详细地描述功能,以便软件团队将其用作开发平台,即使硬件设计还处于起步阶段。因此,软件开发人员可以在设计周期的初始阶段开始应用程序和固件验证,此时更改最容易,对最终设计的特性影响最大,并且几乎不会危及产品发布日期。
该方法基于可扩展事务级建模 (TLM) 概念,该概念用 SystemC 描述硬件。它在硬件和软件开发过程中都具有优势。
软件团队不仅可以更早开始编码,而且 TLM 硬件描述还可以提供更快的验证时间 - 100 倍或更多。
在硬件方面,TLM 允许紧凑描述,因为硬件系统块是在更高级别捕获的,并通过函数调用而不是详细信号进行通信,从而大大缩短了模拟时间。
TLM 模型不会限制硬件团队的设计创造力。TLM 允许将功能与实现分离。
因此,该模型不会强迫工程师在设计周期早期就致力于硬件细节,而是仅描述硬件的功能,而不是硬件如何实现该功能的细节。
它还支持增量模型保真度以进行时序和功率计算。
本质上,TLM 模型独立于硬件机制,允许硬件团队不断改进设计,而无需不断更新高级虚拟原型。
可扩展的 TLM 方法将功能与接口、时序和功率与功能分离,以进行增量改进,并与硬件和软件对速度和保真度的要求保持一致(图 1)。
同时,软件开发可以从最早的阶段与硬件开发保持一致,从而从一开始就识别和解决系统交互问题,从而大大减少它们对进度的潜在影响。
因此,这种方法将软件/硬件集成转移到电子系统级 (ESL)。
使用程序员视图进行软件应用程序验证
TLM 具有多个抽象级别,所有这些级别都支持虚拟原型设计和硬件/软件协同设计。但是,这其中也存在一些权衡。
最高级别,即程序员视图 (PV) 级别,是开始软件验证的好时机
。
在此阶段,SystemC 硬件描述不包含任何时序信息,因此模拟性能非常高效 - 至少比 RTL 级别快 1000 倍。
TLM 模型包含足够的信息来描述硬件功能以支持软件应用程序开发。包括接口声明,以便软件可以连接到硬件端。
具体来说,有两种接口。
第一种是高级方法接口,软件工程师可以在其程序中调用它。该方法将“运行”硬件设计并“返回”结果值。
第二种是基于硬件端内存映射寄存器的总线周期精确接口,允许硬件端和软件端通过读写事务以及中断进行交互。
这种硬件/软件接口可以通过合并
指令集模拟器 (ISS)
或使用使用读/写隐式访问的主机模式技术来实现。隐式访问通过识别内存空间调用来捕获对硬件的所有访问。它允许软件在任何主机处理器(而不是目标处理器)上运行,并简化软件编程,因为软件工程师不需要使用任何外部 API 调用来检测代码。与使用传统 ISS 相比,主机模式执行通常提供更快的模拟,但准确性略低。
固件开发环境
由于验证所需的详细程度,软件团队传统上被迫等待硬件原型来开发固件。
但是,通过使用 TLM 模型,硬件/软件交互的这一方面现在可以在设计周期的早期阶段进行。此时,硬件团队仍然应该引入详细的时序信息,因为它可能会影响固件的行为。
抽象级别现在是总线周期精确的,在这里软件工程师可以决定他们是否要在目标操作系统上工作(在这种情况下,他们将使用 ISS 模型和 SW 开发工具)或他们选择的任何主机操作系统上工作(在这种情况下,他们将使用总线功能模型和隐式访问功能)。
这使固件代码能够通过总线功能模型与硬件设计进行交互。在使用周期精确模型的所选主机操作系统环境中工作时,任何读/写操作都将映射到硬件并与硬件中的实际地址交互。这种隐式访问的一个示例是:
*addr1 = value1; // 写入映射地址 – addr1
value2 = *addr2; // 从映射地址 – addr2 读取
固件相关验证任务有几种特定的调试功能。例如,设计团队可以在一个 IDE 工具中管理硬件和软件环境。他们还可以执行调试操作,例如在两侧分配断点,并执行硬件/软件事务调试。他们可以查看硬件和软件之间的所有事务(读/写/中断)和相关信息,并在任何特定类型的事务或其参数上中断。
选择硬件验证方法
在硬件验证和调试方面,通常采用两种方法之一。
第一种方法涉及
在最高 TLM 级别(快速 ISS 模型)或周期精确级别使用 ISS 模型和软件开发环境
,如前所述。
第二种方法
采用 SystemC 硬件设计中的软件线程仿真
。与之前通过 ISS 或主机模式链接软件的方法不同,这里软件嵌入硬件 CPU 模型中,作为额外的 SystemC 线程,在一个模拟过程中直接与硬件一起执行。
第二种选择专门用于系统性能探索,因为它提供了非常高的模拟速度,但准确性较低,并且不支持 RTOS。在该方法中,主要由系统架构师使用,也可以使用“基于token”的建模,从而实现高模拟性能。
在第一种方法中,PV 和周期精确模型也可以与 SystemC 验证解决方案交互。
它们可以连接到现有的 ISS SystemC 模型,无论是在 PV 级别还是在 TLM 的验证视图级别上的周期精确 ISS 解决方案。如果主机模式对他们来说不够精确,软件开发人员可以在真正的目标操作系统上工作。如果 ISS 模型(或多个模型)和相关的软件开发工具可以与系统的 SystemC 硬件描述完全同步,那么目标软件开发也可以在设计周期的早期开始。
在第二种方法中,我们定义了一个抽象的子级别,称为架构师视图。它包含一些时序信息,模拟速度比周期精确模型更快,但不那么精确。
此级别主要由系统架构师用于性能分析。在这里,该方法包括该抽象级别的一组可配置硬件模型(例如,通用总线、通用处理器、通用 DMA、数据生成器等)。使用这种方法,系统架构师可以定义硬件和软件分区以及目标处理器、总线架构和内存层次结构。同样重要的是,他或她可以添加时序和功率指标。
此级别还支持基于token的建模,这是一种抽象的高级建模方法,使用token(或指针)来表示数据结构,从而实现异常快速的模拟性能,这是系统性能分析的重要要求。
此外,性能分析功能可以与自定义模型一起使用,以便系统架构师可以运行软件仿真作为系统性能分析任务的测试平台。
可以将其视为以 SystemC 线程运行的软件仿真,因此它是硬件模拟的一部分,但运行速度极快
。系统架构师可以在最高级别使用此功能来找到最佳架构。token 或指针可产生非常准确的建模,用于测量系统性能。系统工程师可以操纵不同块的参数并测试各种配置和用例,直到达到所需的性能。
集成开发
在对成本和进度延误极为敏感的市场中比如新能源汽车,硬件和软件团队需要从一开始就合作以满足产品发布窗口的要求。
上述新兴且可扩展的 TLM 方法将软件和固件验证移至设计周期的最早阶段,使两个团队都受益。软件设计人员现在可以在硬件原型可用之前验证其应用程序和固件。同时,硬件团队可以专注于硬件改进,而不必不断更新软件验证模型。
通过尽早协调软件和硬件流程,这种方法可以最大限度地降低设计流程下游的集成风险。结果是,即使设计团队最大限度地提高产品差异化,进度延误的威胁也会大大降低。使用可扩展的 TLM 模型是连接软件和硬件设计方法的关键一步,使我们更接近最终目标:真正的并行设计。
我们提供了 SystemC TLM 模型开发和外包服务,有兴趣的可以添加微信 machinewarevp (备注公司姓名和职位.)
http://mp.weixin.qq.com/s?__biz=MzIxODAzMDA0Mg==&mid=2650945995&idx=1&sn=c8b299fd5f4a19b20de1a4bdea2d6808
软硬件协同设计 HW-SW Co-Design
欢迎后台留言,AI 客服全天在线。脱离物理硬件,开发测试和调试软件。基于虚拟原型的软硬件协同设计,提前一年实现产品上市创收,降低一半开发时间。
最新文章
Debug 调试:SoC 计划表的杀手
调试嵌入式应用程序 Debugging
谁负责处理器验证?
如何优化处理器?
一种用于多级 IP/SOC 设计的快速 SystemC 仿真方法
使用 IP-XACT 元数据进行 TLM 建模流程
追踪并优化 SoC 性能
利用 NoC 创新加速 SoC 演进,使用 NoC 平铺实现 AI 和机器学习
BMW 和 Qualcomm 构建云端 ADAS 平台
汽车 ECU 的全面验证策略:MIL、SIL 和 HIL
调试复杂的 RISC-V 处理器
使用自定义 RISC-V ISA 指令创建领域特定处理器
开始使用 IP-XACT 进行 IP 设计
使用 IP-XACT 的 SoC 设计流程
IP-XACT 介绍
UVM 寄存器模型
成本节约和产品质量提升:软件测试的左移
左移?如何加速汽车芯片开发流程 ?
早期验证和软件启动的混合方法
汽车网络的艺术(系列 1):VC3,新 E/E 架构评估系统
汽车网络的艺术(系列 2):PCIe 走向汽车
汽车网络的艺术(系列 3):虚拟化的力量
管理现代 SoC 设计中的性能
复杂 SoC 的准确高效功率估算流程
新硬件架构软件开发面临的五大挑战
计算机模拟:基础、术语、级别
在 Simulink 中生成 SystemC TLM 虚拟原型
MCU 故障模式:发生的原因以及如何预防
汽车行业对 Chiplet 和 UCIe 的需求
虚拟平台 Virtual Platform 技术
SystemC 中的系统级建模
优化 ISA 实现软硬件的和谐:自定义指令和 RISC-V 扩展
带有 RISC 主机和可配置微处理器的 SoC 的软硬件分区方法
SoC 设计中的系统架构是什么?
CPU 是最佳 AI 推理处理器的五大理由
通过改变抽象级别, 来加速 SoC 仿真
系统仿真、架构探索、电源管理、性能分析
汽车芯片团队研发岗位招聘
使用 TLM 虚拟系统原型, 进行汽车芯片的硬件和软件验证
芯片 Bring Up 正在发生变化
虚拟平台, 让汽车软件开发和系统架构验证提前开始
自动驾驶汽车中的软件架构演进
CI/CD :汽车软件交付性能的驱动因素
测试自动化,如何改善汽车软件交付
CARIAD 和 STMicroelectronics 联合开发汽车芯片
原型车试驾:Vision EQXX 突破界限,仅用 18 个月开发
软件定义汽车,推动下一代联网电动汽车的发展
梅赛德斯奔驰的工程效率:VISION EQXX 原型开发的 18 个月历程
拥抱汽车 DevOps:DevOps 工程师的驱动力
如何利用 NVIDIA 微服务 for Jetson 进行无线 (OTA) 更新
分类
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
原创标签
时事
社会
财经
军事
教育
体育
科技
汽车
科学
房产
搞笑
综艺
明星
音乐
动漫
游戏
时尚
健康
旅游
美食
生活
摄影
宠物
职场
育儿
情感
小说
曲艺
文化
历史
三农
文学
娱乐
电影
视频
图片
新闻
宗教
电视剧
纪录片
广告创意
壁纸头像
心灵鸡汤
星座命理
教育培训
艺术文化
金融财经
健康医疗
美妆时尚
餐饮美食
母婴育儿
社会新闻
工业农业
时事政治
星座占卜
幽默笑话
独立短篇
连载作品
文化历史
科技互联网
发布位置
广东
北京
山东
江苏
河南
浙江
山西
福建
河北
上海
四川
陕西
湖南
安徽
湖北
内蒙古
江西
云南
广西
甘肃
辽宁
黑龙江
贵州
新疆
重庆
吉林
天津
海南
青海
宁夏
西藏
香港
澳门
台湾
美国
加拿大
澳大利亚
日本
新加坡
英国
西班牙
新西兰
韩国
泰国
法国
德国
意大利
缅甸
菲律宾
马来西亚
越南
荷兰
柬埔寨
俄罗斯
巴西
智利
卢森堡
芬兰
瑞典
比利时
瑞士
土耳其
斐济
挪威
朝鲜
尼日利亚
阿根廷
匈牙利
爱尔兰
印度
老挝
葡萄牙
乌克兰
印度尼西亚
哈萨克斯坦
塔吉克斯坦
希腊
南非
蒙古
奥地利
肯尼亚
加纳
丹麦
津巴布韦
埃及
坦桑尼亚
捷克
阿联酋
安哥拉