《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > Stratus HLS工具在高性能雙精度浮點乘法設計中的應用流程
Stratus HLS工具在高性能雙精度浮點乘法設計中的應用流程
2018年電子技術應用第8期
苑佳紅
天津飛騰信息技術有限公司,湖南 長沙410000
摘要: 雙精度浮點乘法部件是高性能CPU的核心運算部件之一。描述了使用Cadence Stratus HLS工具設計和實現雙精度浮點乘法部件,探索新設計方法學在關鍵路徑延時調整、數據路徑優化以及低功耗優化等問題的解決方法,并探討如何將新的設計流程結合到原有項目開發中等問題。最終,高階綜合設計的RTL,在28 nm工藝下綜合實現頻率為2.5 GHz、面積為28 211 μm2,基本滿足高性能微處理器的開發要求,增強了在項目中更加廣泛地使用新設計方法學的信心。
中圖分類號: TP302.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.189018
中文引用格式: 苑佳紅. Stratus HLS工具在高性能雙精度浮點乘法設計中的應用流程[J].電子技術應用,2018,44(8):20-23,30.
英文引用格式: Yuan Jiahong. The application flow of Stratus HLS tool in high performance double precision floating point multiplication design[J]. Application of Electronic Technique,2018,44(8):20-23,30.
The application flow of Stratus HLS tool in high performance double precision floating point multiplication design
Yuan Jiahong
Phytium Technology Co.,Ltd.,Changsha 410000,China
Abstract: Double-precision floating-point multiplication parts is one of the most important unit of high performance CPU.This article describes the use of Cadence Stratus HLS tools in 28 nm process design and implement double-precision floating-point multiplication. The frequency of this multiplication is 2.5 GHz, and its area is 28 211 square micrometers, which almost meets the requirements of high performance microprocessor development. The experiences of this work enhance the confidence of the more widely using of the new design methodology in our project.
Key words : high-level synthesis;HLS;double-precision floating-point multiplication

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,邏輯綜合后,設計交由后端做邏輯實現。

wdz5-t1.gif

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。

wdz5-t2.gif

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允許將吞吐率和延遲使用宏定義的形式,便于架構探索時更改參數。

wdz5-t3.gif

2.3 Fmul64行為級實現

    雙精度浮點乘法運算過程如圖4所示。首先對輸入乘法操作數做數據的預處理,然后做尾數相乘的乘法運算,在這里,本文做了架構探索,一種架構是使用3階波茲編碼算法實現雙精度浮點尾數乘法運算;另一種是使用乘號“*”直接完成浮點尾數相乘運算,讓工具來完成乘法運算的具體實現。兩種架構的驗證環境、優化流程是相同的,所以后續設計將以Fmul64波茲編碼設計為例進行介紹,最后會介紹兩者邏輯綜合結果。設計中使用到的高階綜合指導語句(主要是HLS_DPOPT_REGION)如圖5所示。

wdz5-t4.gif

wdz5-t5.gif

    至此,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模型。

wdz5-t6.gif

3.2 基于UVM的SystemC&RTL驗證

    UVM驗證環境是既有的乘法運算驗證環境,如圖7所示,可以對Fmul64_hls設計做完整的功能驗證、覆蓋率收集、斷言監測,同時將SC設計也放到了驗證環境里,但是需要對其外包一個殼,可以由Stratus工具自動生成。此部分功能驗證即如圖1 Stratus HLS設計流程的設計階段2中的功能驗證2,因為高階綜合生成RTL代碼的可讀性較差,所以如果測試用例結果不一致,尤其SC設計的結果也報錯的話,則需要將測試用例轉到Stratus HLS環境下進行調試。

wdz5-t7.gif

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所示。

wdz5-b1.gif

    通過上述數據,可以了解到Fmul64_HLS設計在無乘法運算時,滿足動態功耗為零的要求,但是在有乘法運算指令時的功耗卻比較大,不滿足功耗要求,需要對功耗做進一步的優化。分析設計發現DPOPT功耗和資源共享都會引起功耗的增加,所以在project增加以下選項優化功耗:

    (1)set_attr  dpopt_with_enable   on

    (2)set_attr  sharing_effort_parts  low

    dpopt_with_enable對RTL架構的影響如圖8所示。

wdz5-t8.gif

    顯然dpopt_with_enable=on的RTL架構是對靜態功耗的優化大有幫助的。

    sharing_effort_parts =low 會停止演算器的共享。經分析,這個選項可以減少不必要的演算器的共享從而可優化動態功耗以及時序。優化之后的Fmul64_booth3功耗如表2所示。

wdz5-b2.gif

    可以看到通過設置優化選項,靜態功耗和動態功耗均有所優化,其中靜態功耗約優化了5%,動態功耗優化了約39%。寄存器門控比率達到100%,完全由工具完成寄存器門控時鐘的插入和低功耗優化,提高設計效率。

4.3 邏輯綜合結果

    高階綜合設計的RTL功能驗證正確后,則設計可以做邏輯綜合。對兩種Fmul64架構分別作了邏輯綜合,在28 nm工藝下,邏輯綜合結果如表3所示。

wdz5-b3.gif

    Stratus HLS給出的面積評估結果與邏輯綜合工具的結果有所不同,經分析,Stratus HLS綜合約束并不嚴格,所以面積、延遲的評估數據存在誤差。而對比兩種架構綜合結果,可以看到Fmul64用乘號代替波茲編碼算法的設計面積上更優化,而時序結果相對較差,但是,其在設計時間的節省是非常顯著的。

5 結論

    Stratus HLS工具改變了設計的抽象層次,所以其在工程中的應用流程與傳統RTL設計是有區別的,驗證環境、調試流程、驗證收斂的依據、邏輯綜合優化的時間等問題的解決提前到了算法級,而且可以將微架構的探索加入到設計流程,不變的是設計人員仍然需要從硬件的角度考慮SC代碼的微架構設計。Stratus HLS工具強大的狀態機自動化設計、資源自動調度和共享、低功耗優化等功能,使設計人員能夠將更多的時間用于架構探索或者算法優化,極大的縮短設計周期,拓展設計人員可控制設計規模上限,滿足工程項目的時間進度要求,也增強了我們在工程項目中推廣使用高階綜合工具的信心和決心。



作者信息:

苑佳紅

(天津飛騰信息技術有限公司,湖南 長沙410000)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品成人一区二区| 亚洲影视在线| 欧美日韩999| 欧美亚洲一区三区| 99国产精品视频免费观看一公开| 午夜亚洲激情| 中国成人在线视频| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品资源在线观看| 欧美精品性视频| 免费久久精品视频| 久久久久久穴| 欧美一区二区在线播放| 亚洲一区二区欧美| 99精品视频免费观看| 亚洲国产美国国产综合一区二区| 艳女tv在线观看国产一区| 亚洲国产精品一区二区久 | 亚洲午夜精品17c| 日韩网站免费观看| 亚洲破处大片| 亚洲国产精品久久久久秋霞影院| 欧美在线欧美在线| 欧美一区二区三区免费大片| 在线视频精品一| 亚洲伦理网站| 亚洲精品一区久久久久久| 亚洲国产视频一区二区| 亚洲人www| 亚洲国产精品电影在线观看| 亚洲欧美激情一区| 中文精品视频| 在线视频你懂得一区| 在线观看成人一级片| 国产精品视频一| 欧美日韩亚洲综合| 欧美日韩中文字幕| 欧美日韩第一页| 欧美日韩免费在线| 欧美视频亚洲视频| 欧美体内she精视频| 国产精品爱久久久久久久| 欧美一区二区高清在线观看| 久久国产精品电影| 欧美一级二级三级蜜桃| 午夜欧美大尺度福利影院在线看 | 亚洲精品视频免费在线观看| 亚洲日本中文字幕| 亚洲精品在线观| 99精品欧美一区二区三区综合在线| 亚洲精品一区中文| 国产一区二区三区电影在线观看| 国产欧美日韩综合一区在线播放| 国产欧美精品一区二区色综合| 国产精品亚洲激情| 国产日韩欧美综合一区| 国自产拍偷拍福利精品免费一| 国产欧美精品va在线观看| 国产一区导航| 亚洲大胆av| 日韩一区二区电影网| 亚洲一区中文字幕在线观看| 在线一区欧美| 欧美伊人久久久久久午夜久久久久 | 9l国产精品久久久久麻豆| 亚洲一区二区高清| 欧美在线日韩| 免费视频亚洲| 欧美日韩精品一区二区三区四区| 欧美视频在线视频| 国产日韩欧美一区二区三区在线观看 | 在线成人激情视频| 亚洲人成久久| 日韩一级黄色大片| 欧美亚洲视频一区二区| 91久久在线观看| 欧美一区二区视频在线观看2020| 亚洲国内自拍| 亚洲在线1234| 欧美一区二区三区在线看| 免费亚洲一区二区| 国产精品久久久| 一区二区三区在线观看国产| 久久人人爽人人| 欧美日韩国产天堂| 国模私拍视频一区| 国产麻豆成人精品| 91久久精品美女高潮| 午夜免费在线观看精品视频| 夜色激情一区二区| 噜噜噜噜噜久久久久久91| 国产人成一区二区三区影院| 欧美久久视频| 国产精品久久久久久久久动漫| 亚洲高清视频在线观看| 小黄鸭精品aⅴ导航网站入口| 亚洲午夜av在线| 欧美激情视频一区二区三区不卡| 国产一区免费视频| 亚洲在线一区二区| 亚洲中无吗在线| 欧美日本亚洲韩国国产| 狠狠色狠狠色综合日日五| 亚洲欧美色婷婷| 亚洲欧美经典视频| 欧美视频日韩视频在线观看| 亚洲人成在线免费观看| 亚洲精品国产欧美| 免费毛片一区二区三区久久久| 国产性色一区二区| 性欧美办公室18xxxxhd| 午夜久久电影网| 国产精品久久久久久妇女6080 | 国内精品久久久久伊人av| 性欧美大战久久久久久久久| 小嫩嫩精品导航| 国产女主播一区| 亚洲一区二区三区免费观看| 亚洲欧美清纯在线制服| 国产精品www| 亚洲一二三区视频在线观看| 亚洲女人天堂av| 国产精品国产三级国产普通话99| 99在线精品观看| 亚洲精品美女| 欧美激情2020午夜免费观看| 亚洲国内在线| 在线综合欧美| 欧美网站在线| 亚洲自拍偷拍麻豆| 欧美在线观看网址综合| 国产午夜精品美女视频明星a级 | 一本久久a久久免费精品不卡| 欧美日本在线观看| 夜夜夜久久久| 小黄鸭精品aⅴ导航网站入口| 国产区欧美区日韩区| 欧美一区二区精美| 久热爱精品视频线路一| 亚洲成人资源网| 日韩亚洲欧美成人| 欧美性片在线观看| 亚洲一区二区三区激情| 久久成人精品电影| 激情久久五月天| 日韩亚洲欧美在线观看| 欧美视频精品在线观看| 亚洲女人小视频在线观看| 久久久精品国产免费观看同学| 伊人久久男人天堂| av成人天堂| 国产精品一区二区三区久久久| 亚洲精品欧美日韩专区| 亚洲欧美日本日韩| 好吊妞**欧美| 一本色道久久综合亚洲精品不 | 欧美aⅴ99久久黑人专区| 亚洲精品一二三| 午夜精品偷拍| 激情五月综合色婷婷一区二区| 日韩午夜电影在线观看| 国产精品久久一区二区三区| 欧美一区2区视频在线观看 | 亚洲国产精品电影| 亚洲综合电影| 在线电影一区| 亚洲视频 欧洲视频| 国产欧美丝祙| 99国内精品久久| 国产欧美精品一区| 日韩午夜在线播放| 国产日产高清欧美一区二区三区| 91久久国产综合久久| 国产精品久久久久久久午夜| 亚洲成色www8888| 欧美日韩免费网站| 久久精品欧美日韩| 欧美亚洲成人免费| 亚洲国产精品成人一区二区| 国产精品高潮呻吟| 亚洲国产日韩综合一区| 欧美午夜不卡视频| 亚洲激情电影中文字幕| 国产精品入口66mio| 亚洲精品久久7777| 国产午夜精品一区二区三区欧美| 99视频日韩| 黄色精品一区二区| 欧美亚洲视频一区二区| 亚洲免费高清视频| 久久综合中文字幕| 亚洲欧美精品| 欧美午夜精品久久久久久人妖| 亚洲国产乱码最新视频| 国产伦精品一区二区三区照片91 | 麻豆久久婷婷| 性久久久久久久久| 国产精品国产三级国产专播品爱网 | 国产精品福利在线观看网址| 亚洲人www|