历史上的今天
返回首页

历史上的今天

今天是:2025年02月01日(星期六)

2018年02月01日 | 使用系统优化编译器加速汽车电子产品设计

2018-02-01 来源:21IC中国电子网

得益于摩尔定律,汽车电气系统经历了快速的技术增长。现代化的汽车已获得长足发展,不再是耦合了 AM 无线电的简单发动机电气系统。如今现代化的汽车搭载了多种高级电子系统,能够执行发动机控制、高级驾驶员辅助系统 (ADAS)、牵引力与稳定性控制、信息娱乐等功能,此外还针对某些尖端应用提供了自主操作能力。


这种汽车内电子系统部署的显著增长也带来了几个必须由设计人员解决的挑战:


· 性能 – 需要实时、低时延与高确定性的性能以实现例如 ADAS、ECU、牵引力与稳定性控制等多种车载功能。


· 安全 – 汽车电子系统实现关键功能,故障会导致受伤或死亡。因此,系统必须实现信息安全保障与防篡改技术,以防止未授权的修改。


· 安全性 – 必须符合 ISO26262 规定的汽车安全完整性水平。


· 接口 – 必须能够连接多种传感器、驱动器与其他制动器。


· 功率效率 – 必须在有限的功耗预算内高效运行。


· 软件定义 – 具备高灵活性以适应多种市场中的不同标准与条件。


为应对这些挑战,汽车电子系统开发人员正在部署片上异构系统 (SoC) 器件。异构器件将一个处理单元(通常为多核)与一个或多个异构协同处理器(例如 GPU、DSP 或可编程逻辑)相结合。


将处理单元与可编程逻辑相结合可构成紧密集成型系统,以便利用可编程逻辑的固有并行特性。该特性支持使用可编程逻辑 (PL) 实现高性能算法和接口连接,同时由处理系统实现更高级的决策制定、通信与系统管理功能。完成结合后,便可使可编程逻辑分担处理任务,从而创建更具响应性、确定性并且能效更高的解决方案。


就接口连接而言,异构 SoC 可支持多种业界标准接口,这些接口可通过处理系统或可编程逻辑实现。得益于 IO 结构的灵活性,可使用可编程逻辑实现关键的原有接口与定制接口。然而,这需要添加一个外部 PHY 来实现协议的物理层,从而提供任意连接。


某些异构 SoC 面向多个器件级与系统级安全功能提供支持,便于轻松实现。这些器件能够对启动和配置过程进行加密与验证。如果处理器内核是基于 ARM 处理器的,那么可使用 Trustzone 保证软件环境安全。有了 Trustzone,开发团队便可创建正交环境,通过使用程序管理器,对软件访问底层硬件进行限制。此外,这里也提供几个额外的设计选择,例如功能隔离,可以在设计中实现,以进一步加强取决于需求的安全解决方案。


传统的异构 SoC 开发流程把设计划分为处理器系统和可编程逻辑两大部分。这种方法在过去需要两个独立的开发团队,这会增加非重复性工程成本、开发时间与技术风险。此外,该方法还将设计功能固定在处理器内核或可编程逻辑中,使后期优化难以进行。


人们所需的开发工具应该可实现整个器件的软件定义开发,并有能力根据需要将功能从处理器内核转移到可编程逻辑,而且非 HDL 专家也能完成。


这正是系统优化编译器的用武之地。系统优化编译器能利用 C、C++ 或 OpenCL™ 等高级语言以软件方式定义整个系统行为。然后,使用系统优化编译器执行处理器系统与可编程逻辑之前的功能分区,该编译器能够使功能无缝移动,以便选择是在处理器系统中运行还是在可编程逻辑中实现。

图 1 - 使用系统优化编译器选择要加速的功能。


通过使用处理系统内部的内置定时器来为功能执行时间计时,可找出造成瓶颈的功能,从而创建瓶颈功能列表。这些瓶颈功能便成为候选,以备通过使用系统优化编译器在可编程逻辑中实现加速。


处理系统与可编程逻辑之间的移动是通过系统优化编译器的高层次综合(可将 C、C++、OpenCL 程序转换为 Verilog 或 VHDL 描述的工具)与软件定义连接框架之间的结合来实现的。软件定义连接框架能够无缝地将 HLS 结果连接至软件应用,设计团队使用这种方法,一键点击就能在处理器和可编程逻辑间移动功能。当然在用户把功能移动到可编程逻辑时,他们也得到了明显的性能提升,自然这是使用可编程逻辑的结果。与 CPU/GPU 解决方案相比,在 PL 中进行加速还能提高确定性并降低时延,这对诸如 ECU 和 ADAS 的应用来说是至关重要的。


图 2 - 使用系统优化编译器对资源与性能进行估算。


库支持


很多汽车应用都是使用业界标准开源库进行开发,例如在 ADAS 系统中使用 OpenCV 或 Caffe,或在 ECU 中使用标准数学库。为加快这些应用的开发,系统优化编译器需要能够支持多个 HLS 库,以便开发人员在其应用中使用。系统优化编译器应支持多个关键库,其中包括:


· OpenCV – 能够加速计算机视觉功能


· Caffe – 能够加速机器学习推理引擎


· 数学库 – 提供标准数学库的可综合实现。


· IP 库 – 为实现 FFT、FIR 和移位寄存器 LUT 功能提供 IP 库。


· 线性代数库 – 提供通用线性代数功能库。


· 任意精度数据类型库 – 使用有符号和无符号整数支持非2次幂的任意长度数据。该库允许开发人员更高效地使用 FPGA 资源。


这些库的提供为开发团队提供相当大的支持,让开发团队不必开发类似的功能。


真实实例


很多汽车应用的关键元素是保护数据以防止未授权修改,避免导致不安全操作。用来保护存储数据与传输数据安全的一种常用算法是高级加密标准 (AES)。AES 是在高级层面描述的,但最适合在可编程逻辑架构中实现的算法的范例。为了演示使用系统优化编译器的优势,已开发一款面向三种常用操作系统的简单 AES 256 应用。该实例最初只在处理器系统中执行,然后在可编程逻辑中实现功能的加速。


图 3 - 当使用系统优化编译器时,不同操作系统的 AES 加速结果。


结论


异构 SoC 能够解决汽车电子系统设计人员面临的挑战。通过使用高级语言,系统优化编译器能够对这些器件进行开发,一旦使用处理器完成对应用功能的开发与原型设计后,处理器系统与可编程逻辑之间的功能分区即可得到优化,从而缩短开发时间,实现更安全、响应性更强、能效更高的解决方案。

推荐阅读

史海拾趣

中移物联网(Chinamobile)公司的发展小趣事

中移物联网始终秉持开放、合作、共享的发展理念,与国内外众多企业建立了紧密的合作关系。公司积极与硬件设备厂商、软件开发商、解决方案提供商等开展技术合作,共同推动物联网技术的创新与应用。同时,中移物联网还与行业协会、学术机构建立合作关系,加强技术交流和合作研究,为构建良好的物联网产业生态做出了积极贡献。这些合作不仅提升了公司的技术实力和市场竞争力,也推动了整个物联网行业的健康发展。

Crane Connectors公司的发展小趣事

Crane Connectors公司自创立之初,便致力于电子连接器技术的研发与创新。面对激烈的市场竞争,公司不断投入研发资源,推出了一系列具有自主知识产权的新型连接器产品。这些产品凭借出色的性能、稳定性和可靠性,迅速获得了市场的认可,为公司赢得了大量订单。随着技术的不断升级和产品的持续优化,Crane Connectors逐渐在电子连接器领域树立了良好的品牌形象,实现了市场的快速扩张。

FINTEK公司的发展小趣事

随着ASP芯片市场的成功,FINTEK公司意识到单一产品线的局限性。为了保持竞争优势并开拓新市场,公司开始多元化拓展产品线。经过市场调研和技术储备,FINTEK相继推出了数字信号处理器(DSP)、微控制器(MCU)以及射频前端模块(RF FEM)等一系列新产品。这些产品的推出不仅丰富了公司的产品线,也进一步巩固了FINTEK在半导体领域的市场地位。

CIF公司的发展小趣事

B公司原本是一家地区性的电子产品供应商,为了拓展国际市场,决定采用CIF交易模式。通过与国外客户的深入沟通和合作,B公司成功打开了多个海外市场。同时,B公司还积极参与国际电子产品展会,提升品牌知名度,进一步巩固了其在全球市场的地位。

Anderson Power Products公司的发展小趣事

D公司始终坚持品质至上的经营理念,以提供高品质的电子产品为己任。在CIF交易模式下,D公司严格控制产品质量,从原材料采购到生产流程中的每一个环节都进行严格把关。凭借出色的产品质量和良好的售后服务,D公司赢得了客户的信任和好评。

德艺隆(DEALON)公司的发展小趣事

在激烈的市场竞争中,德艺隆始终坚持诚信经营的原则。他们严格遵守承诺,对客户提供的商业信息严格保密,不向任何第三方泄露。这种高度的诚信度赢得了客户的信任,许多客户都愿意与德艺隆建立长期合作关系。同时,德艺隆还积极参与社会公益活动,回馈社会,进一步提升了公司的品牌形象。

问答坊 | AI 解惑

一种新型雷达信号模拟器设计

摘 要:设计了一种新型雷达信号模拟器,能够提供多种特殊雷达信号,并且设置灵活方便,当用户需要时,可进行软件升级。介绍了该雷达信号模拟器的功能、特点、性能指标和研制方案,提供一种雷达信号产生的解决方法。…

查看全部问答>

【招聘】奥笙北京软件招聘信息(新增深圳软件技术支持职位)(论坛xdjm优先)

由于不能删帖,只能重新发一篇招聘信息了,注意哦,论坛的兄弟姐妹们优先。论坛的兄姐妹们有意可以直接发邮件给我:jandy.wang@orpheusys.com, 奥笙公司软件部门招聘信息(北京职位) 公司简介    奥笙时代科技(北京)有限公司(www. ...…

查看全部问答>

求助。。LED数码管型号问题

我想问下,下面图是电子脉搏计的图,那个四脚的LED接四个脚就可以控制0-9显示了,(仿真软件里有看到8脚和4脚的两种)但它是什么型号的LED呢?我现在想做实物要用到那种四脚的,可不知道那种到底有没有,上网查也没查到。。在下超级小白,希望各位 ...…

查看全部问答>

参与芯币兑换的AVR学习板和编程器调试总结

USB型51/AVR编程器   可能大家都已经等不及了,不过“磨刀不误砍柴工”,大家还是耐心等待我们将该学习板调试完,确保大家能够更好的学习     说明:该编程器支持AT89S51/52系列单片机,还支持AVR的全系列单片机。 该编程器使 ...…

查看全部问答>

嵌入式安全芯片在电子产品版权保护领域的应用

PC软件的盗版一直是困扰软件行业发展的主要问题,同样,在嵌入式应用领域,随着近些年黑客技术和芯片解剖技术的发展,嵌入式系统所面临的攻击也越来越多,随之而生的防抄板技术也引起了产品设计者的重视。 有一款加密芯片ESPU0808是针对防抄设计的 ...…

查看全部问答>

请教一个 MSP430+CC1100/CC1101 的问题

我利用MSP430控制CC1101进行两个模块之间的无线通信,发现如果地址控制字PKTCTRL1如果为0x06或0x02,通信没问题,但是如果设置为0,就只能通信几次,之后就不行了。 通信方式:模块A定时循环发送消息,模块B循环等待接收。 CC1101寄存器设置:模 ...…

查看全部问答>

WCE下的ToolTip

我最近研究WCE下的SDK编程的ToolTip的使用,发现同样的代码,VC可以正常,而EVC就是不能正常使用ToolTip,大家有任何关于WCE的ToolTip的代码不,发个来参考下。 贴上来或者发到我邮箱都可以:magic_kaoya@163.com…

查看全部问答>

lwip在网络故障后出现tcp_enqueue: too long queue 16 (max 16)问题,请高手指教!

机子在lwip正常工作时把网络断掉,这时机子仍继续向网络发包,过段时间后出现tcp_enqueue: too long queue 16 (max 16),而后卡在do_write函数的一个信号量死等下去 if (do_writemore(msg->conn) != ERR_OK) {        &n ...…

查看全部问答>