网易首页 > 网易号 > 正文 申请入驻

【学术论文】Stratus HLS工具在高性能双精度浮点乘法设计中的应用流程

0
分享至

摘要: 双精度浮点乘法部件是高性能CPU的核心运算部件之一。描述了使用Cadence Stratus HLS工具设计和实现双精度浮点乘法部件,探索新设计方法学在关键路径延时调整、数据路径优化以及低功耗优化等问题的解决方法,并探讨如何将新的设计流程结合到原有项目开发中等问题。最终,高阶综合设计的RTL,在28 nm工艺下综合实现频率为2.5 GHz、面积为28 211 μm2,基本满足高性能微处理器的开发要求,增强了在项目中更加广泛地使用新设计方法学的信心。

0 引言

数字多媒体的广泛应用、互联网的高速发展、人工智能等新兴领域的蓬勃兴起,对通用处理器的计算能力要求越来越高。采用更加复杂的算法设计、探索效率更高的架构有助于提升通用处理器的性能。然而在传统的寄存器传输级(Register Transfer level,RTL)设计流程中,设计人员完成运算功能设计时需消耗大量时间在状态机设计、流水栈划分和调整、端口协议、存储设计等复杂、难以验证和优化的部分。而且由于RTL抽象层次较低,需要大量的时间和资源验证RTL的功能,最后导致较长的设计周期。Stratus高阶综合工具(High-level Synthesis,HLS)基于高阶综合设计方法学,将设计层次抽象到算法级,将设计的低值且复杂的领域交给工具自动完成,设计人员能够将更多的时间应用在算法设计、优化、架构探索等高价值领域,提高设计效率,专注产品质量的提升。本文基于Cadence公司的高阶综合工具Stratus设计和实现高频低功耗的双精度浮点乘法模块,并在此过程中探讨高阶综合完成产品前端设计、验证、优化、性能评估的方法和流程。

1 HLS应用流程

Stratus HLS将设计抽象到算法级,对算法做硬件微架构实现的构想后,使用高级语言SystemC/C/C++描述设计,并在高级语言层对设计做充分的非时序功能验证,如图1中设计阶段1所示。在设计阶段2,首先需根据设计目标设置高阶综合的约束文件及工艺库。然后将设计阶段1完成的SystemC代码和约束文件灌入Stratus HLS工具,由工具完成状态机、寄存器插入、流水线级数设置等控制电路,生成符合时序、面积、性能要求的RTL代码。最后对RTL代码做PPA检查,选择使用逻辑综合工具再一次对HLS生成的RTL代码做性能评估,如果符合要求,则开始做RTL的完整功能验证。如果PPA检查不能达到目标要求,则需要对关键路径进行分析、优化,此时可以充分利用HLS工具自带的优化功能加速优化设计迭代的完成过程。功能验证正确后,则可以进入设计阶段3,逻辑综合后,设计交由后端做逻辑实现。

2 Fmul64 SystemC设计

双精度浮点乘法运算部件是通用CPU内最基本运算部件之一,其应用要求高阶综合获得RTL设计满足2.5 GHz的高频率,三站流水,并且其面积和功耗较小。此部分将介绍Fmul64的主要结构和SystemC设计方法。

2.1 Fmul64_hls总体结构

Fmul64的SC设计总体框图如图2所示,sc_main()是SystemC设计的top文件,连接测试环境Testbench和待测设计DUT。DUT即Fmul64,用SystemC语言中的SC_MODULE类实现,作为此次设计的顶层模块,同时在此模块内定义模块的端口、时钟信号、复位信号、输入端口、输出端口等,作为设计的头文件,并包含在其他文件内使用。SystemC语言提供两个方法用于设计功能的描述:SC_METHOD和SC_CTHREAD。其中SC_METHOD用于组合逻辑电路实现,内部不能包括wait()语句,而要实现的Fmul64是流水线设计,所以使用SC_CTHREAD用于乘法运算功能的实现,函数命名为run。

2.2 SC_CTHREAD方法实现

SC_CTHREAD进程实现如图3所示,首先设置需要复位的信号和复位值,然后是定义无限循环语句,并在内部调用输入输出信号的读写函数和含3阶波兹编码的乘法运算函数do_booth3_multply。这里用HLS命令HLS_PIPELINE_LOOP设置设计类型,即吞吐率参数PIPELINE_Ⅱ设为1,即将Fmul64_hls设置为流水线型设计,并用HLS_CONSTRAINT_LATENCY设定流水线拍数LATENCY为3。Stratus HLS允许将吞吐率和延迟使用宏定义的形式,便于架构探索时更改参数。

2.3 Fmul64行为级实现

双精度浮点乘法运算过程如图4所示。首先对输入乘法操作数做数据的预处理,然后做尾数相乘的乘法运算,在这里,本文做了架构探索,一种架构是使用3阶波兹编码算法实现双精度浮点尾数乘法运算;另一种是使用乘号“*”直接完成浮点尾数相乘运算,让工具来完成乘法运算的具体实现。两种架构的验证环境、优化流程是相同的,所以后续设计将以Fmul64波兹编码设计为例进行介绍,最后会介绍两者逻辑综合结果。设计中使用到的高阶综合指导语句(主要是HLS_DPOPT_REGION)如图5所示。

至此,SC代码设计已完成,并且按照设计目标的要求使用高阶综合指导语句设置了流水线和时序要求,可以开始后续的验证和高阶综合处理。虽然设计是使用高级语言SystemC描述,但是其微架构仍然是符合硬件设计和实现规则的,所以需要注意保持良好的SystemC代码风格非常重要。

3 功能验证

Stratus HLS工具提供统一的验证平台,所以在SC级的测试用例可以同样用于RTL代码的验证。但是,SC设计是不包含时序信息的,所以包含时序的RTL验证也是必需的,除了在Stratus内回归测试SC代码的用例,还将使用已有的UVM平台,对RTL和SC设计同时验证,一方面验证RTL的功能并收集RTL覆盖率,另一方面一定程度上验证SC设计和RTL代码的一致性。所以HLS设计的验证分为2个方面:

(1)基于Stratus HLS的验证

①SC行为级模型验证(SystemC behavioral model)

②综合的SC RTL模型验证(Synthesized SystemC RTL model)

(2)基于UVM的SystemC&RTL的验证

Verilog RTL实现验证(Verilog RTL implementation)

3.1 基于Stratus HLS的验证

基于Stratus HLS环境,本文使用SystemC建立设计的Testbench环境,其结构框图如图6所示。时钟和复位信号的定义是在主函数内,并连接到测试模块和待测设计模块。Testbench中共实现两个进程,Stimuli和Monitor。Stimuli进程里调用SystemC语言提供的随机数据生成函数,生成测试的随机数据。Monitor进程实现简单的双精度乘法运算模型,用于待测设计的参考模型,并在此处监测DUT的结果输出,获得DUT结果并与参考模型结果做比对,判断结果的正确性。Stratus HLS工具内可以自动实现对SC设计和RTL设计使用同一个Testbench验证,只要在project.tcl中定义不同的define_sim_config时,指定为RTL_C是对SC设计验证或者指定RTL_V是测试高阶综合生成的RTL模型。

3.2 基于UVM的SystemC&RTL验证

UVM验证环境是既有的乘法运算验证环境,如图7所示,可以对Fmul64_hls设计做完整的功能验证、覆盖率收集、断言监测,同时将SC设计也放到了验证环境里,但是需要对其外包一个壳,可以由Stratus工具自动生成。此部分功能验证即如图1 Stratus HLS设计流程的设计阶段2中的功能验证2,因为高阶综合生成RTL代码的可读性较差,所以如果测试用例结果不一致,尤其SC设计的结果也报错的话,则需要将测试用例转到Stratus HLS环境下进行调试。

4 性能评估

4.1 优化设计

Stratus HLS在将SC设计转化为RTL代码时,由于评估的谨慎性,会给出更加悲观的结果,因此本文选择使用逻辑综合工具评估HLS设计的PPA检查,逻辑综合约束参考设计实际实现要求,所以比HLS工具中的逻辑综合约束设置得更加细致,最后根据逻辑综合结果来决定是否做设计优化的迭代。

在时序较为紧张的时候,Stratus通常需要很长的时间来做高阶综合优化和调度,这就使设计优化迭代的时间非常长,是违背使用高阶综合工具提高设计效率初衷的。但是Stratus提供多种有效的数据路径优化方法,可以有效地改善路径延迟,提高高阶综合效率。比如在设计优化迭代过程中添加DPOPT,如图5 SC实现Fmul64过程中的主要HLS指导语句所示。DPOPT会调用内部集成的逻辑综合工具优化这部分设计,而且DPOPT通常会使Stratus综合一版RTL用时大为缩短,从而大幅提高优化设计的效率。

4.2 低功耗优化

Stratus工具自带低功耗优化选项,可以自动完成寄存器门控时钟的插入、时钟树优化、状态机优化等。本文的设计是运算功能模块,要求在没有此模块运算指令的情况下,模块完全关闭,动态功耗为零;有乘法运算指令的情况下,动态功耗和静态功耗能够尽可能小。Fmul4_booth3的初次功耗评估结果如表1所示。

通过上述数据,可以了解到Fmul64_HLS设计在无乘法运算时,满足动态功耗为零的要求,但是在有乘法运算指令时的功耗却比较大,不满足功耗要求,需要对功耗做进一步的优化。分析设计发现DPOPT功耗和资源共享都会引起功耗的增加,所以在project增加以下选项优化功耗:

(1)set_attr dpopt_with_enable on

(2)set_attr sharing_effort_parts low

dpopt_with_enable对RTL架构的影响如图8所示。

显然dpopt_with_enable=on的RTL架构是对静态功耗的优化大有帮助的。

sharing_effort_parts =low 会停止演算器的共享。经分析,这个选项可以减少不必要的演算器的共享从而可优化动态功耗以及时序。优化之后的Fmul64_booth3功耗如表2所示。

可以看到通过设置优化选项,静态功耗和动态功耗均有所优化,其中静态功耗约优化了5%,动态功耗优化了约39%。寄存器门控比率达到100%,完全由工具完成寄存器门控时钟的插入和低功耗优化,提高设计效率。

4.3 逻辑综合结果

高阶综合设计的RTL功能验证正确后,则设计可以做逻辑综合。对两种Fmul64架构分别作了逻辑综合,在28 nm工艺下,逻辑综合结果如表3所示。

Stratus HLS给出的面积评估结果与逻辑综合工具的结果有所不同,经分析,Stratus HLS综合约束并不严格,所以面积、延迟的评估数据存在误差。而对比两种架构综合结果,可以看到Fmul64用乘号代替波兹编码算法的设计面积上更优化,而时序结果相对较差,但是,其在设计时间的节省是非常显著的。

5 结论

Stratus HLS工具改变了设计的抽象层次,所以其在工程中的应用流程与传统RTL设计是有区别的,验证环境、调试流程、验证收敛的依据、逻辑综合优化的时间等问题的解决提前到了算法级,而且可以将微架构的探索加入到设计流程,不变的是设计人员仍然需要从硬件的角度考虑SC代码的微架构设计。Stratus HLS工具强大的状态机自动化设计、资源自动调度和共享、低功耗优化等功能,使设计人员能够将更多的时间用于架构探索或者算法优化,极大的缩短设计周期,拓展设计人员可控制设计规模上限,满足工程项目的时间进度要求,也增强了我们在工程项目中推广使用高阶综合工具的信心和决心。

作者信息:

苑佳红

(天津飞腾信息技术有限公司,湖南 长沙410000)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
工信部NVDB:关于防范OpenClaw(“龙虾”)开源智能体安全风险的“六要六不要”建议

工信部NVDB:关于防范OpenClaw(“龙虾”)开源智能体安全风险的“六要六不要”建议

财联社
2026-03-11 19:39:08
事件升级!市级已立案调查,鲁山舅舅求饶想私了!更多猛料被扒

事件升级!市级已立案调查,鲁山舅舅求饶想私了!更多猛料被扒

社会日日鲜
2026-03-11 03:40:42
不声不响从18涨到210,因为一个概念,股票两年中默默的涨了12倍

不声不响从18涨到210,因为一个概念,股票两年中默默的涨了12倍

丁丁鲤史纪
2026-03-11 11:09:34
“跳梁小丑”降央卓玛跌落神坛,不会被世界宽容,名誉彻底崩塌

“跳梁小丑”降央卓玛跌落神坛,不会被世界宽容,名誉彻底崩塌

吃青菜长高
2026-03-10 23:10:30
欧冠开场两次失误送大礼 22岁热刺门将17分钟被换下 哭着径直离场

欧冠开场两次失误送大礼 22岁热刺门将17分钟被换下 哭着径直离场

我爱英超
2026-03-11 05:25:36
字母哥谈阿德巴约83分:以后没人会记得罚球多少,重要的是他拿到了

字母哥谈阿德巴约83分:以后没人会记得罚球多少,重要的是他拿到了

懂球帝
2026-03-11 13:37:05
别惊讶!伊朗出口的石油比战前还多……

别惊讶!伊朗出口的石油比战前还多……

财联社
2026-03-11 14:18:05
两会定调!养老金调整方向明确,企退、事退和农民分别怎么涨?

两会定调!养老金调整方向明确,企退、事退和农民分别怎么涨?

云鹏叙事
2026-03-11 14:02:16
两会建言 全国人大代表樊芸:建议未来5年逐渐取消公摊面积 差异化推动城市更新

两会建言 全国人大代表樊芸:建议未来5年逐渐取消公摊面积 差异化推动城市更新

中国经营报
2026-03-11 15:54:32
52条中日航线2月取消全部航班,中国到东南亚航线恢复率领跑,马来西亚、新加坡、越南的恢复率超130%

52条中日航线2月取消全部航班,中国到东南亚航线恢复率领跑,马来西亚、新加坡、越南的恢复率超130%

每日经济新闻
2026-03-10 17:11:05
工信部专家: 党政机关、企事业单位和个人用户要审慎使用“龙虾”!国家互联网应急中心提示四大严重安全风险

工信部专家: 党政机关、企事业单位和个人用户要审慎使用“龙虾”!国家互联网应急中心提示四大严重安全风险

每日经济新闻
2026-03-10 22:55:30
悲催!朋友半夜摇号花115万买的房子70万甩掉,一网友直呼不理解

悲催!朋友半夜摇号花115万买的房子70万甩掉,一网友直呼不理解

火山詩话
2026-03-11 18:59:28
最新中国船员战区通讯录音曝光,多艘中国货船被公司要求撤离霍尔木兹海峡

最新中国船员战区通讯录音曝光,多艘中国货船被公司要求撤离霍尔木兹海峡

爆角追踪
2026-03-11 12:37:33
阿德巴约83+9超科比历史第二狂刷纪录 热火6连胜送奇才9连败

阿德巴约83+9超科比历史第二狂刷纪录 热火6连胜送奇才9连败

醉卧浮生
2026-03-11 10:11:02
“上午春分,暖洋洋;下午春分,冻死牛”,今年春分在几点?

“上午春分,暖洋洋;下午春分,冻死牛”,今年春分在几点?

阿龙美食记
2026-03-10 16:36:10
微粒贷逾期后单位、亲朋全被催了个遍 深圳金管局确认微众银行违规 催收机构广东华融数据被诉侵权

微粒贷逾期后单位、亲朋全被催了个遍 深圳金管局确认微众银行违规 催收机构广东华融数据被诉侵权

信网
2026-03-10 11:40:40
战胜国要价:伊朗开出史无前例的停火6条!

战胜国要价:伊朗开出史无前例的停火6条!

胜研集
2026-03-10 11:53:22
人大代表毕利霞哽咽建议提高农民养老金后,多部委已致电与其沟通

人大代表毕利霞哽咽建议提高农民养老金后,多部委已致电与其沟通

界面新闻
2026-03-11 17:09:02
上海一女子痛哭报警!结果意外,“藏”在家的前男友被抓!

上海一女子痛哭报警!结果意外,“藏”在家的前男友被抓!

环球网资讯
2026-03-11 14:33:08
百度的新段子看乐了:李彦宏吐槽豆包不一定比我们好,但它不给我看广告

百度的新段子看乐了:李彦宏吐槽豆包不一定比我们好,但它不给我看广告

爆角追踪
2026-03-11 19:04:48
2026-03-11 20:24:49
电子技术应用ChinaAET
电子技术应用ChinaAET
北大中文核心期刊
2739文章数 140关注度
往期回顾 全部

科技要闻

腾讯急了急了,微信绝密AI智能体首度曝光

头条要闻

美叫停以军打击伊朗油库 以军"打击规模远超美国预期"

头条要闻

美叫停以军打击伊朗油库 以军"打击规模远超美国预期"

体育要闻

郭艾伦重伤,CBA下半赛季还能期待些什么

娱乐要闻

杨幂连续五年为刘诗诗庆生,刘诗诗回应

财经要闻

唤醒10万亿存量资金 公积金改革大潮来了

汽车要闻

莲花纠偏, 冯擎峰的“收”与“守”

态度原创

教育
房产
数码
健康
公开课

教育要闻

春季开学第一课,禁毒宣传我先行

房产要闻

最低杀到7800元/㎡!海口2026第一波房价大调整来了!

数码要闻

华硕预热新款“吹雪”主板ROG STRIX B850-A GAMING WIFI7 S NEO

转头就晕的耳石症,能开车上班吗?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版