《電子技術應用》
您所在的位置:首頁 > 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網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精自产拍久久久久久蜜| 亚洲成色www久久网站| 尤物网精品视频| 久久综合久久久| 欧美人与性动交α欧美精品济南到| 一区二区三区欧美成人| 猫咪成人在线观看| 国产在线播精品第三| 国产一区二区三区久久精品| 国产日韩欧美高清| 久久免费少妇高潮久久精品99| 欧美日韩国产综合久久| 在线观看国产日韩| 国产精品免费福利| 在线日本高清免费不卡| 亚洲欧美在线磁力| 亚洲精品久久视频| 欧美日韩综合久久| 国产视频在线一区二区| 亚洲高清视频中文字幕| 精品1区2区3区4区| 久久只精品国产| 国产日本欧洲亚洲| 日韩一级黄色av| 国产精品美女久久| 久久全球大尺度高清视频| 国产亚洲欧美日韩在线一区| 亚洲免费在线看| 欧美成人激情在线| 一区二区在线观看视频在线观看| 国产欧美婷婷中文| 久久久噜噜噜久久中文字幕色伊伊| 亚洲视频一起| 日韩五码在线| 一区二区三区国产精华| 亚洲一区精彩视频| 香蕉成人久久| 国产伦精品一区二区| 激情伊人五月天久久综合| 一区二区三区|亚洲午夜| 欧美性猛交xxxx乱大交蜜桃| 欧美中文字幕在线| 国产精品啊v在线| 国产午夜精品全部视频在线播放| 国产九色精品成人porny| 亚洲免费成人av电影| 亚洲高清视频在线| 中文精品一区二区三区| 亚洲一区二区免费看| 久久综合色天天久久综合图片| 午夜精品久久久久久久蜜桃app| 亚洲一区二区三区国产| 欧美国产高潮xxxx1819| 久久综合给合久久狠狠狠97色69| 免费久久久一本精品久久区| 久久婷婷丁香| 欧美成人高清视频| 欧美高潮视频| 国产精品啊啊啊| 日韩亚洲国产欧美| 日韩一区二区免费高清| 国产精品网站一区| 亚洲视频电影在线| 每日更新成人在线视频| 国产日韩一区二区三区在线播放| 欧美日韩一二三四五区| 亚洲欧美美女| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品一区二区视频| 91久久久久久久久久久久久| 亚洲国产91| 好看的av在线不卡观看| 日韩亚洲在线观看| 欧美日韩亚洲综合| 黄色亚洲在线| 国产农村妇女精品一区二区| 亚洲在线观看免费视频| 免费成人高清| 国产一区二区三区久久悠悠色av| 欧美一区国产在线| 欧美日韩亚洲高清| 亚洲一区在线直播| 欧美日韩国产综合视频在线观看| 欧美日韩免费观看一区=区三区| 欧美亚洲一级| 美日韩在线观看| 伊人男人综合视频网| 久久亚洲精品伦理| 欧美日韩中文字幕在线视频| 国产精品久久久免费| 亚洲一区激情| 在线观看亚洲精品视频| 久久久久88色偷偷免费| 亚洲调教视频在线观看| 亚洲日本成人网| 伊人天天综合| 国语自产在线不卡| 亚洲国产日韩欧美在线动漫| 性欧美办公室18xxxxhd| 亚洲一区日本| 亚洲日本va午夜在线影院| 亚洲精品1234| 日韩视频在线一区二区| 在线亚洲欧美| 亚洲国产裸拍裸体视频在线观看乱了中文| 国内精品视频在线播放| 亚洲一区二区在线| 中文网丁香综合网| 欧美第一黄色网| 国产精品综合色区在线观看| 开元免费观看欧美电视剧网站| 国产精品久久久久久久第一福利| 国产在线麻豆精品观看| 国产一区二区三区网站| 久久综合免费视频影院| 美国成人毛片| 亚洲一区美女视频在线观看免费| 一本久道久久综合中文字幕| 一本大道久久a久久精二百| 六月婷婷一区| 欧美午夜不卡影院在线观看完整版免费| 欧美色精品在线视频| 欧美一级专区免费大片| 欧美日韩亚洲在线| 狠狠入ady亚洲精品| 免费av成人在线| 亚洲精品欧洲精品| 黄色另类av| 亚洲激情视频在线观看| 久久免费观看视频| 欧美日韩一区二区三| 欧美影院在线播放| 国产一区二区视频在线观看| 欧美精品午夜| 亚洲一区二区三区免费视频| 亚洲影院一区| 91久久国产综合久久91精品网站| 国产精品影音先锋| 亚洲人成在线观看一区二区| 亚洲欧美日韩国产精品| 好吊成人免视频| 亚洲一区区二区| 久久香蕉精品| 国产日韩1区| 久久爱www| 另类天堂视频在线观看| 亚洲国产精品一区在线观看不卡| 亚洲欧美第一页| 欧美精品观看| 国产精品久久久久久久久久妞妞| 免费观看一级特黄欧美大片| 欧美日韩国产色综合一二三四| 免费成人av| 国模叶桐国产精品一区| 亚洲国产黄色片| 国产精品美女久久久久aⅴ国产馆| 国产精品私房写真福利视频| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲欧洲日本一区二区三区| 欧美在线国产精品| 日韩亚洲综合在线| 欧美在线黄色| 在线观看一区| 国产亚洲一本大道中文在线| 亚洲电影免费观看高清完整版在线| 牛牛影视久久网| 在线一区亚洲| 国产日本欧美在线观看| 韩曰欧美视频免费观看| 国产精品久久久久久久浪潮网站| 国产日韩高清一区二区三区在线| 亚洲图片欧美一区| 在线精品国产欧美| 亚洲天天影视| 国产乱码精品一区二区三区五月婷| 久久一区亚洲| 久久精品综合网| 巨胸喷奶水www久久久免费动漫| 99天天综合性| 性欧美长视频| 一区二区高清在线| 欧美日韩亚洲高清| 亚洲国产欧美一区二区三区同亚洲| 国产精品毛片高清在线完整版| 国产精品区一区二区三区| 欧美日本一道本在线视频| 国产精品久久久久久久免费软件| 久久综合电影| 最近中文字幕日韩精品| 亚洲图色在线| 亚洲女与黑人做爰| 久久蜜桃av一区精品变态类天堂| 国产午夜精品视频免费不卡69堂| 欧美日韩高清在线观看| 国产日韩欧美综合在线| 亚洲国产二区| 欧美日本韩国一区二区三区| 在线视频欧美精品| 美女精品国产| 欧美精品一区三区在线观看| 国产拍揄自揄精品视频麻豆| 国产精品福利在线| 国产伦理精品不卡| 久久久久久久999精品视频| 欧美在线啊v一区| 一区在线免费| 国产精品日韩一区二区| 久久综合综合久久综合| 久久精品亚洲一区| 亚洲欧洲精品一区二区| 国产精品午夜在线| 亚洲精品乱码久久久久久蜜桃91| 欧美成人亚洲成人日韩成人| 一本色道久久综合亚洲精品不卡| 欧美激情1区| 国产精品天天摸av网| 久热国产精品视频| 亚洲影视在线播放| 欧美视频在线一区| 欧美日韩一级大片网址| 欧美一级视频免费在线观看| 久久精品一区二区国产| aa国产精品| 亚洲在线成人精品| 国产精品久久久久91| 国产亚洲一本大道中文在线| 99国内精品久久久久久久软件| 久久久精品视频成人| 国产精品毛片高清在线完整版| 久久久久一区二区三区| 国产伦精品一区二区三区在线观看| 国产日本欧美视频| 一本大道久久a久久精品综合| 欧美日韩三级| 在线成人激情| 亚洲成人影音| 在线天堂一区av电影| 亚洲剧情一区二区| 久久婷婷国产综合精品青草| 亚洲黄色尤物视频| 午夜精品久久久久久久蜜桃app| 国产一区二区欧美日韩| 国产精品久久久久久久久免费桃花| 亚洲三级电影全部在线观看高清| 欧美一区二区三区四区高清| 国产亚洲一区二区精品| 亚洲欧美电影在线观看| 一区二区三区日韩精品| 久久久久久一区| 一区二区免费在线视频| 久久成人亚洲| 亚洲日本乱码在线观看| 美女精品一区| 欧美精品日韩一区| 亚洲欧美日本日韩| 亚洲永久视频| 欧美午夜www高清视频| 国产九九精品视频| 国产香蕉97碰碰久久人人| 亚洲图片欧美日产| 国产精品国产三级国产aⅴ入口| 欧美欧美全黄| 很黄很黄激情成人| 亚洲欧美成人网| 欧美激情性爽国产精品17p| 国产精品亚洲产品| 国产亚洲精品久久久久久| 国产精品另类一区| 欧美精品福利视频| 欧美国产综合一区二区| 欧美激情1区2区3区| 亚洲欧美日韩天堂一区二区| 亚洲第一综合天堂另类专| 欧美久久综合| 欧美日韩三级| 亚洲综合日韩中文字幕v在线| 国产精品国产精品| 国产精品九九| 正在播放亚洲| 国内精品久久久久久| 久久艳片www.17c.com| 久久久夜色精品亚洲| 免费看精品久久片| 久久久久久夜| 亚洲第一黄色| 国产精品午夜春色av| 亚洲欧洲日产国码二区| 一区二区三区日韩欧美| 亚洲桃花岛网站| 在线免费观看欧美| 在线国产日韩| 黄色成人在线| 国产主播一区二区| 国产精品视频一区二区高潮| 久久综合成人精品亚洲另类欧美| 欧美日韩成人综合天天影院| 欧美刺激午夜性久久久久久久| 国产欧美一区二区三区另类精品| 亚洲中午字幕| 欧美在线影院在线视频| 欧美三级午夜理伦三级中文幕| 香蕉成人伊视频在线观看| 一区视频在线看| 久久性天堂网| 久热re这里精品视频在线6| 欧美日产一区二区三区在线观看| 国产视频久久久久久久| 久久疯狂做爰流白浆xx| 噜噜噜在线观看免费视频日韩| 夜夜嗨一区二区三区| 欧美大片在线看免费观看| 国产日韩欧美电影在线观看| 久久免费视频网| 中文国产一区| 国产视频一区欧美| 午夜伦欧美伦电影理论片| 亚洲一区欧美二区| 亚洲精品视频啊美女在线直播| 欧美精品一级| 欧美亚洲三区| 亚洲一区在线观看视频| 亚洲综合色噜噜狠狠| 欧美a级在线| 国产毛片精品国产一区二区三区| 美女精品一区| 欧美成人在线免费观看| 国产欧美日韩另类视频免费观看| 在线视频免费在线观看一区二区|