0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探討高階綜合完成產(chǎn)品前端設(shè)計、驗證、優(yōu)化、性能評估的方法和流程

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-08-17 10:05 ? 次閱讀

摘要:雙精度浮點乘法部件是高性能CPU的核心運算部件之一。描述了使用Cadence Stratus HLS工具設(shè)計和實現(xiàn)雙精度浮點乘法部件,探索新設(shè)計方法學(xué)在關(guān)鍵路徑延時調(diào)整、數(shù)據(jù)路徑優(yōu)化以及低功耗優(yōu)化等問題的解決方法,并探討如何將新的設(shè)計流程結(jié)合到原有項目開發(fā)中等問題。最終,高階綜合設(shè)計的RTL,在28 nm工藝下綜合實現(xiàn)頻率為2.5 GHz、面積為28 211 μm2,基本滿足高性能微處理器的開發(fā)要求,增強了在項目中更加廣泛地使用新設(shè)計方法學(xué)的信心。

0 引言

數(shù)字多媒體的廣泛應(yīng)用、互聯(lián)網(wǎng)的高速發(fā)展、人工智能等新興領(lǐng)域的蓬勃興起,對通用處理器的計算能力要求越來越高。采用更加復(fù)雜的算法設(shè)計、探索效率更高的架構(gòu)有助于提升通用處理器的性能。然而在傳統(tǒng)的寄存器傳輸級(Register Transfer level,RTL)設(shè)計流程中,設(shè)計人員完成運算功能設(shè)計時需消耗大量時間在狀態(tài)機設(shè)計、流水棧劃分和調(diào)整、端口協(xié)議、存儲設(shè)計等復(fù)雜、難以驗證和優(yōu)化的部分。而且由于RTL抽象層次較低,需要大量的時間和資源驗證RTL的功能,最后導(dǎo)致較長的設(shè)計周期。Stratus高階綜合工具(High-level Synthesis,HLS)基于高階綜合設(shè)計方法學(xué),將設(shè)計層次抽象到算法級,將設(shè)計的低值且復(fù)雜的領(lǐng)域交給工具自動完成,設(shè)計人員能夠?qū)⒏嗟臅r間應(yīng)用在算法設(shè)計、優(yōu)化、架構(gòu)探索等高價值領(lǐng)域,提高設(shè)計效率,專注產(chǎn)品質(zhì)量的提升。本文基于Cadence公司的高階綜合工具Stratus設(shè)計和實現(xiàn)高頻低功耗的雙精度浮點乘法模塊,并在此過程中探討高階綜合完成產(chǎn)品前端設(shè)計、驗證、優(yōu)化、性能評估的方法和流程。

1 HLS應(yīng)用流程

Stratus HLS將設(shè)計抽象到算法級,對算法做硬件微架構(gòu)實現(xiàn)的構(gòu)想后,使用高級語言SystemC/C/C++描述設(shè)計,并在高級語言層對設(shè)計做充分的非時序功能驗證,如圖1中設(shè)計階段1所示。在設(shè)計階段2,首先需根據(jù)設(shè)計目標(biāo)設(shè)置高階綜合的約束文件及工藝庫。然后將設(shè)計階段1完成的SystemC代碼和約束文件灌入Stratus HLS工具,由工具完成狀態(tài)機、寄存器插入、流水線級數(shù)設(shè)置等控制電路,生成符合時序、面積、性能要求的RTL代碼。最后對RTL代碼做PPA檢查,選擇使用邏輯綜合工具再一次對HLS生成的RTL代碼做性能評估,如果符合要求,則開始做RTL的完整功能驗證。如果PPA檢查不能達到目標(biāo)要求,則需要對關(guān)鍵路徑進行分析、優(yōu)化,此時可以充分利用HLS工具自帶的優(yōu)化功能加速優(yōu)化設(shè)計迭代的完成過程。功能驗證正確后,則可以進入設(shè)計階段3,邏輯綜合后,設(shè)計交由后端做邏輯實現(xiàn)。

2 Fmul64 SystemC設(shè)計

雙精度浮點乘法運算部件是通用CPU內(nèi)最基本運算部件之一,其應(yīng)用要求高階綜合獲得RTL設(shè)計滿足2.5 GHz的高頻率,三站流水,并且其面積和功耗較小。此部分將介紹Fmul64的主要結(jié)構(gòu)和SystemC設(shè)計方法。

2.1 Fmul64_hls總體結(jié)構(gòu)

Fmul64的SC設(shè)計總體框圖如圖2所示,sc_main()是SystemC設(shè)計的top文件,連接測試環(huán)境Testbench和待測設(shè)計DUT。DUT即Fmul64,用SystemC語言中的SC_MODULE類實現(xiàn),作為此次設(shè)計的頂層模塊,同時在此模塊內(nèi)定義模塊的端口、時鐘信號、復(fù)位信號、輸入端口、輸出端口等,作為設(shè)計的頭文件,并包含在其他文件內(nèi)使用。SystemC語言提供兩個方法用于設(shè)計功能的描述:SC_METHOD和SC_CTHREAD。其中SC_METHOD用于組合邏輯電路實現(xiàn),內(nèi)部不能包括wait()語句,而要實現(xiàn)的Fmul64是流水線設(shè)計,所以使用SC_CTHREAD用于乘法運算功能的實現(xiàn),函數(shù)命名為run。

2.2 SC_CTHREAD方法實現(xiàn)

SC_CTHREAD進程實現(xiàn)如圖3所示,首先設(shè)置需要復(fù)位的信號和復(fù)位值,然后是定義無限循環(huán)語句,并在內(nèi)部調(diào)用輸入輸出信號的讀寫函數(shù)和含3階波茲編碼的乘法運算函數(shù)do_booth3_multply。這里用HLS命令HLS_PIPELINE_LOOP設(shè)置設(shè)計類型,即吞吐率參數(shù)PIPELINE_Ⅱ設(shè)為1,即將Fmul64_hls設(shè)置為流水線型設(shè)計,并用HLS_CONSTRAINT_LATENCY設(shè)定流水線拍數(shù)LATENCY為3。Stratus HLS允許將吞吐率和延遲使用宏定義的形式,便于架構(gòu)探索時更改參數(shù)。

2.3 Fmul64行為級實現(xiàn)

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

至此,SC代碼設(shè)計已完成,并且按照設(shè)計目標(biāo)的要求使用高階綜合指導(dǎo)語句設(shè)置了流水線和時序要求,可以開始后續(xù)的驗證和高階綜合處理。雖然設(shè)計是使用高級語言SystemC描述,但是其微架構(gòu)仍然是符合硬件設(shè)計和實現(xiàn)規(guī)則的,所以需要注意保持良好的SystemC代碼風(fēng)格非常重要。

3 功能驗證

Stratus HLS工具提供統(tǒng)一的驗證平臺,所以在SC級的測試用例可以同樣用于RTL代碼的驗證。但是,SC設(shè)計是不包含時序信息的,所以包含時序的RTL驗證也是必需的,除了在Stratus內(nèi)回歸測試SC代碼的用例,還將使用已有的UVM平臺,對RTL和SC設(shè)計同時驗證,一方面驗證RTL的功能并收集RTL覆蓋率,另一方面一定程度上驗證SC設(shè)計和RTL代碼的一致性。所以HLS設(shè)計的驗證分為2個方面:

(1)基于Stratus HLS的驗證

①SC行為級模型驗證(SystemC behavioral model)

②綜合的SC RTL模型驗證(Synthesized SystemC RTL model)

(2)基于UVM的SystemC&RTL的驗證

Verilog RTL實現(xiàn)驗證(Verilog RTL implementation)

3.1 基于Stratus HLS的驗證

基于Stratus HLS環(huán)境,本文使用SystemC建立設(shè)計的Testbench環(huán)境,其結(jié)構(gòu)框圖如圖6所示。時鐘和復(fù)位信號的定義是在主函數(shù)內(nèi),并連接到測試模塊和待測設(shè)計模塊。Testbench中共實現(xiàn)兩個進程,Stimuli和Monitor。Stimuli進程里調(diào)用SystemC語言提供的隨機數(shù)據(jù)生成函數(shù),生成測試的隨機數(shù)據(jù)。Monitor進程實現(xiàn)簡單的雙精度乘法運算模型,用于待測設(shè)計的參考模型,并在此處監(jiān)測DUT的結(jié)果輸出,獲得DUT結(jié)果并與參考模型結(jié)果做比對,判斷結(jié)果的正確性。Stratus HLS工具內(nèi)可以自動實現(xiàn)對SC設(shè)計和RTL設(shè)計使用同一個Testbench驗證,只要在project.tcl中定義不同的define_sim_config時,指定為RTL_C是對SC設(shè)計驗證或者指定RTL_V是測試高階綜合生成的RTL模型。

3.2 基于UVM的SystemC&RTL驗證

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

4 性能評估

4.1 優(yōu)化設(shè)計

Stratus HLS在將SC設(shè)計轉(zhuǎn)化為RTL代碼時,由于評估的謹慎性,會給出更加悲觀的結(jié)果,因此本文選擇使用邏輯綜合工具評估HLS設(shè)計的PPA檢查,邏輯綜合約束參考設(shè)計實際實現(xiàn)要求,所以比HLS工具中的邏輯綜合約束設(shè)置得更加細致,最后根據(jù)邏輯綜合結(jié)果來決定是否做設(shè)計優(yōu)化的迭代。

在時序較為緊張的時候,Stratus通常需要很長的時間來做高階綜合優(yōu)化和調(diào)度,這就使設(shè)計優(yōu)化迭代的時間非常長,是違背使用高階綜合工具提高設(shè)計效率初衷的。但是Stratus提供多種有效的數(shù)據(jù)路徑優(yōu)化方法,可以有效地改善路徑延遲,提高高階綜合效率。比如在設(shè)計優(yōu)化迭代過程中添加DPOPT,如圖5 SC實現(xiàn)Fmul64過程中的主要HLS指導(dǎo)語句所示。DPOPT會調(diào)用內(nèi)部集成的邏輯綜合工具優(yōu)化這部分設(shè)計,而且DPOPT通常會使Stratus綜合一版RTL用時大為縮短,從而大幅提高優(yōu)化設(shè)計的效率。

4.2 低功耗優(yōu)化

Stratus工具自帶低功耗優(yōu)化選項,可以自動完成寄存器門控時鐘的插入、時鐘樹優(yōu)化、狀態(tài)機優(yōu)化等。本文的設(shè)計是運算功能模塊,要求在沒有此模塊運算指令的情況下,模塊完全關(guān)閉,動態(tài)功耗為零;有乘法運算指令的情況下,動態(tài)功耗和靜態(tài)功耗能夠盡可能小。Fmul4_booth3的初次功耗評估結(jié)果如表1所示。

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

(1)set_attr dpopt_with_enable on

(2)set_attr sharing_effort_parts low

dpopt_with_enable對RTL架構(gòu)的影響如圖8所示。

顯然dpopt_with_enable=on的RTL架構(gòu)是對靜態(tài)功耗的優(yōu)化大有幫助的。

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

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

4.3 邏輯綜合結(jié)果

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

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

5 結(jié)論

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209355
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2221

    瀏覽量

    81979
  • 人工智能
    +關(guān)注

    關(guān)注

    1787

    文章

    46061

    瀏覽量

    234985

原文標(biāo)題:【學(xué)術(shù)論文】Stratus HLS工具在高性能雙精度浮點乘法設(shè)計中的應(yīng)用流程

文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電子政務(wù)評估方法AHP的研究及實現(xiàn)

    【作者】:曾勇進;莊建東;李思;【來源】:《心智與計算》2010年01期【摘要】:重點總結(jié)并探討了電子政務(wù)評估中權(quán)重設(shè)定的兩大方法及其實現(xiàn)方法,并進行了比對研究。在此基礎(chǔ)上,進行了系統(tǒng)
    發(fā)表于 04-24 09:55

    GSM和大家聊聊使用ISE進行綜合優(yōu)化一點事情(完成

    將自動為每個內(nèi)部時鐘生成時序約束。在“性能評估模式 (PEM)”中,您可以在不必提供時序目標(biāo)的情況下獲得高性能的物理綜合優(yōu)化效果。運行全局
    發(fā)表于 02-24 10:51

    移動通信天線性能測試問題的探討優(yōu)化

    天線在移動通信系統(tǒng)中的作用好比人的眼睛和耳朵,好比足球隊的臨門一腳,其性能的好壞直接影響網(wǎng)絡(luò)覆蓋的效果,其可靠性屬于單點失效,會直接導(dǎo)致本扇區(qū)覆蓋失效。而如何準確的測試及評估天線性能,目前仍存在一些問題需要
    發(fā)表于 06-12 07:46

    Linux和Android系統(tǒng)故障和優(yōu)化性能方法流程探討

    優(yōu)化變得異常復(fù)雜,如何定位性能問題出在哪個方面,是性能優(yōu)化的一大難題, 從系統(tǒng)入手,闡述由于系統(tǒng)軟、硬件配置不當(dāng)可能造成的性能問題,并且
    發(fā)表于 07-22 06:48

    差動放大器的性能優(yōu)化方法

    使用匹配良好的電阻,否則這種電路的共模抑制比將很差。本應(yīng)用筆記將探討構(gòu)建分立的差動放大器并優(yōu)化性能的數(shù)種方法,同時還將推薦幾款可使解決方案的整體性價比能與單片儀表放大器相媲美的運算放
    發(fā)表于 07-24 06:36

    芯片設(shè)計流程及工具

    。這樣做是為了保證在邏輯綜合過程中沒有改變原先HDL描述的電路功能。形式驗證工具有Synopsys的Formality。前端設(shè)計的流程暫時寫到這里。從設(shè)計程度上來講,
    發(fā)表于 02-12 16:07

    前端性能怎么優(yōu)化

    前端性能優(yōu)化常見方式
    發(fā)表于 03-27 11:42

    高層次綜合工作的基本流程

    需要開發(fā)者提供大致的優(yōu)化方針,甚至是明確的優(yōu)化仿真?! ∫虼薠ilinx的高層綜合工具提供了一系列性能評估的功能和向編譯器指向
    發(fā)表于 01-06 17:52

    物理綜合優(yōu)化的優(yōu)點有哪些?流程是怎樣的?

    物理綜合優(yōu)化的優(yōu)點有哪些物理綜合優(yōu)化流程看了就知道物理綜合
    發(fā)表于 04-08 06:18

    請問如何通過物理綜合優(yōu)化去提升設(shè)計性能

    物理綜合優(yōu)化的優(yōu)點是什么?物理綜合優(yōu)化有哪些流程?物理綜合
    發(fā)表于 04-14 06:52

    HLS高階綜合的定義與解決辦法

    模型,以便如何組織硬件加速。該模型將允許靈活地在每個應(yīng)用程序的基礎(chǔ)上進行架構(gòu)決策,因此非常適合HLS感知流程。它還將實現(xiàn)更準確的性能評估,這對于有效探索解決方案空間至關(guān)重要。SLX工具擴展用于自動
    發(fā)表于 07-10 08:00

    EGPRS優(yōu)化流程方法

    EGPRS優(yōu)化流程方法:第一章 EGPRS網(wǎng)絡(luò)優(yōu)化流程 31 EGPRS網(wǎng)絡(luò)優(yōu)化
    發(fā)表于 07-27 22:03 ?15次下載

    TD-SCDMA網(wǎng)絡(luò)性能評估優(yōu)化

    摘要 敘述了TD-SCDMA網(wǎng)絡(luò)性能評估指標(biāo)、方法流程;比較了WCDMA與TD-SCDMA網(wǎng)絡(luò)設(shè)計與優(yōu)化關(guān)注的異同;闡述了TD-SCDMA
    發(fā)表于 06-16 08:49 ?481次閱讀

    芯片驗證分析及測試流程優(yōu)化技術(shù)

    以失效分析的數(shù)據(jù)作為基本數(shù)據(jù)結(jié)構(gòu),提出了測試項目有效性和測試項目耗費時間的折中作為啟發(fā)信息的優(yōu)化算法,提出了 芯片驗證 分析及測試流程優(yōu)化技術(shù)
    發(fā)表于 06-29 17:58 ?97次下載
    芯片<b class='flag-5'>驗證</b>分析及測試<b class='flag-5'>流程</b><b class='flag-5'>優(yōu)化</b>技術(shù)

    Cadence并購Forte Design Systems 強化高階綜合產(chǎn)品

    高階綜合(High-Level Synthesis, HLS)技術(shù)已經(jīng)由早期試用成為今天業(yè)界領(lǐng)先的系統(tǒng)和半導(dǎo)體公司的主流應(yīng)用;Forte Design Systems提供具有競爭力的,經(jīng)產(chǎn)品
    發(fā)表于 02-10 09:06 ?1377次閱讀