引言
隨著集成電路設(shè)計(jì)復(fù)雜度的不斷提升,硬件仿真系統(tǒng)在現(xiàn)代芯片設(shè)計(jì)流程中扮演著越來越重要的角色?;?a href="http://m.makelele.cn/soft/data/30-91/" target="_blank">FPGA(現(xiàn)場可編程門陣列)的商用硬件仿真系統(tǒng)因其靈活性、全自動化、高性能和可重構(gòu)性,成為驗(yàn)證大規(guī)模集成電路設(shè)計(jì)的重要工具。然而,隨著設(shè)計(jì)規(guī)模的擴(kuò)大和復(fù)雜度的增加,硬件仿真系統(tǒng)的編譯過程面臨著諸多挑戰(zhàn)。本文旨在探討基于FPGA的硬件仿真系統(tǒng)在編譯過程中所遇到的關(guān)鍵問題,并提出相應(yīng)的優(yōu)化策略。
硬件仿真的編譯流程涉及多個步驟,從硬件描述語言(HDL)的編譯到最終生成FPGA比特流,每個步驟都對最終仿真的性能和編譯時間有著重要影響。本文將詳細(xì)分析這些步驟中的優(yōu)化挑戰(zhàn),并提出一些可能的解決方案,以幫助設(shè)計(jì)者在保證仿真性能的同時,最大限度地減少編譯時間。
1、硬件仿真的編譯流程
硬件仿真的編譯流程是一個復(fù)雜的過程,包括多個步驟:預(yù)處理、綜合、分割、布局布線、引腳分配、技術(shù)映射、FPGA布局和布線,直到最終為每個FPGA生成比特流。它起始于由Verilog、SystemVerilog或VHDL等硬件描述語言編寫的設(shè)計(jì)代碼。這些代碼雖然描述了電路的功能和行為,但并不能直接用于FPGA仿真,因此需要經(jīng)過一系列步驟的轉(zhuǎn)換和優(yōu)化。
在編譯過程中,EDA工具需要進(jìn)行邏輯重構(gòu),將設(shè)計(jì)中不可合成的部分轉(zhuǎn)換為可合成的電路。例如,SystemVerilog中的斷言(assertions)和時序檢查(timing checks)等高級語言特性需要被轉(zhuǎn)換為等效的硬件電路。此外,硬件描述語言與外部環(huán)境的交互(如DPI(Direct Programming Interface)功能、系統(tǒng)任務(wù)或系統(tǒng)功能)也需要通過定義良好的仿真器接口(如SCE-MI(Standard Co-Emulation Modeling Interface))轉(zhuǎn)換為特殊的電路模塊。
編譯過程其實(shí)就是將硬件描述語言轉(zhuǎn)換為具有層級網(wǎng)絡(luò)拓?fù)涞亩郌PGA硬件仿真系統(tǒng)中的實(shí)現(xiàn)。在整個編譯流程中,最大化運(yùn)行性能和最小化編譯時間是關(guān)鍵挑戰(zhàn)。EDA供應(yīng)商提供的硬件仿真系統(tǒng)通常提供多種優(yōu)化選項(xiàng)和技術(shù),以幫助設(shè)計(jì)師在編譯過程中平衡這兩個方面。例如,通過優(yōu)化邏輯重構(gòu)、全局布局和布線等步驟,可以減少編譯時間并提高仿真性能。同時,合理的引腳分配和技術(shù)映射也可以確保設(shè)計(jì)在目標(biāo)FPGA上的正確實(shí)現(xiàn)和高效運(yùn)行。接下來我們將重點(diǎn)一一分析。
2、綜合挑戰(zhàn)(Synthesis)
在基于FPGA的硬件仿真領(lǐng)域,綜合(Synthesis)是將高級硬件描述語言(HDL)精確轉(zhuǎn)換為底層邏輯網(wǎng)表的關(guān)鍵步驟。此過程不僅要求將設(shè)計(jì)準(zhǔn)確映射到FPGA的邏輯資源上,還需應(yīng)對ASIC設(shè)計(jì)與FPGA架構(gòu)間存在的本質(zhì)差異。以下將詳細(xì)探討綜合過程中面臨的主要挑戰(zhàn),并提出相應(yīng)的優(yōu)化策略。
2.1邏輯優(yōu)化與資源分配
面對大型設(shè)計(jì)(如200億門級別),邏輯優(yōu)化對于提升性能至關(guān)重要。優(yōu)化策略包括:
- 持續(xù)傳播與無負(fù)載消除:通過傳播信號值并消除未使用的邏輯元素,以減少冗余,提升設(shè)計(jì)效率。
- 因式分解:將復(fù)雜的邏輯表達(dá)式分解為更簡單的部分,便于FPGA資源的高效利用。
- 重新定時:調(diào)整邏輯操作的執(zhí)行時序,以優(yōu)化整體性能和資源占用。
在資源分配方面,需平衡多種資源類型,如內(nèi)存(DDR、BRAM、LUTRAM、FF)和算術(shù)運(yùn)算單元(DSP、進(jìn)位鏈、LUT)。由于FPGA資源有限,且不同資源在性能、功耗和面積方面存在差異,因此需根據(jù)設(shè)計(jì)需求進(jìn)行精心選擇。這通常涉及對設(shè)計(jì)需求的深入理解及對FPGA架構(gòu)的熟悉。
2.2時鐘域處理
ASIC設(shè)計(jì)與FPGA設(shè)計(jì)在時鐘域處理上存在顯著差異。ASIC具有實(shí)現(xiàn)復(fù)雜時鐘結(jié)構(gòu)的靈活性,而FPGA則依賴專用時鐘布線資源來保證低時鐘偏差。因此,在處理FPGA上的ASIC設(shè)計(jì)時,需特別注意時鐘管理:
- 派生時鐘的優(yōu)化:識別并優(yōu)化組合門控時鐘和順序生成時鐘,以減少對FPGA時鐘資源的占用。這通常涉及對時鐘信號的重新分配和門控邏輯的優(yōu)化。
- 低功耗設(shè)計(jì)的考慮:在低功耗設(shè)計(jì)中,許多時鐘由使能控制電路進(jìn)一步門控。因此,需考慮斷電電路對時鐘的影響,并采取相應(yīng)的優(yōu)化措施。
2.3控制集縮減
FPGA中的LUT和FF通常按固定分組(如Xilinx的SLICE或Altera的LAB)組織。這些分組共享相同的控制信號(時鐘、同步啟用、設(shè)置/重置)。若技術(shù)映射后的網(wǎng)表包含過多具有唯一控制信號的觸發(fā)器,將導(dǎo)致控制集問題,增加資源占用和布局布線難度。
為解決這一問題,可采取以下策略:
- 控制信號共享:在可能的情況下,將具有相同控制信號的觸發(fā)器組合在一起,以減少唯一控制集的數(shù)量。這有助于降低資源占用并簡化布局布線過程。
- 優(yōu)化技術(shù)映射:在映射過程中考慮FPGA架構(gòu)特點(diǎn),優(yōu)化邏輯分配以減少控制集沖突。例如,可嘗試將邏輯更緊密地組織在一起,以減少跨不同控制集的邏輯連接。
通過實(shí)施上述優(yōu)化策略,可顯著提升FPGA硬件仿真的性能和效率。這將有助于縮短設(shè)計(jì)周期、降低開發(fā)成本并提升產(chǎn)品質(zhì)量。
3、分割挑戰(zhàn)(Partitioning)
分割問題是將DUT劃分為數(shù)百個部分,以便每個部分都可以在FPGA內(nèi)實(shí)現(xiàn),而不會超過預(yù)先指定的邏輯利用率。傳統(tǒng)上,分割的目標(biāo)是最小化切割尺寸,學(xué)術(shù)界和工業(yè)界都認(rèn)為hMetis有效地解決了這個問題。因此,我們將列出基于FPGA的硬件仿真中特定的分割問題的挑戰(zhàn)如下。
(1)對于具有數(shù)十億個門的DUT,在構(gòu)建用于分割的超圖時,必須盡可能多地利用設(shè)計(jì)層次。一個大小合理、接口信號數(shù)量最少的設(shè)計(jì)實(shí)例通常被選擇為一個不可分割的塊,并在超圖中表示為一個節(jié)點(diǎn)進(jìn)行劃分。對于強(qiáng)調(diào)性能優(yōu)化的硬件仿真,必須擴(kuò)展此塊選擇標(biāo)準(zhǔn)以考慮性能方面。然而,在不形成分割的情況下識別時序關(guān)鍵塊需要與最終時序良好相關(guān)的有效時序估計(jì)。
(2)對于強(qiáng)調(diào)高性能的硬件仿真,切割大小并不是仿真性能的準(zhǔn)確指標(biāo)。與切割中的每個信號相關(guān)的延遲取決于兩個因素。第一個因素是該切割信號布線經(jīng)過的FPGA間跳數(shù)。FPGA間越多的跳數(shù)通常意味著越大的延遲。延遲的第二個因素是該切割信號布線中每個FPGA間的TDM比。不幸的是,在布線完成之前,這兩個因素的確切值都是不可用的。需要發(fā)明一個足夠準(zhǔn)確的延遲估計(jì),以便分割器朝著性能目標(biāo)進(jìn)行優(yōu)化。此外,這個延遲估計(jì)的計(jì)算應(yīng)該足夠快,這樣它就不會顯著減慢分割時間。
(3)FPGA P&R的成功需要合理的利用邏輯約束來進(jìn)行分割。然而,這往往不足以保證FPGA P&R的成功。因此,我們希望找到一個區(qū)域分布盡可能均勻的分割,但代價是分割質(zhì)量的下降,例如切割尺寸的增加。這種FPGA-P&R友好的分割應(yīng)該在不增加太多分割時間的情況下獲得。
(4)邏輯復(fù)制已被證明在提高性能方面是有效的?;诮o定的分割結(jié)果,我們可以進(jìn)行時序分析,提取關(guān)鍵路徑信息,并根據(jù)FPGA P&R的邏輯利用率約束決定復(fù)制的邏輯以獲得更好的性能。這里可以應(yīng)用性能驅(qū)動的邏輯復(fù)制技術(shù)。此外,如果分割者能夠預(yù)見邏輯復(fù)制對性能優(yōu)化的潛力,并考慮到邏輯復(fù)制在分割過程中對性能的影響,那么進(jìn)一步的改進(jìn)是可能的。
4、全局布局挑戰(zhàn)(Routing)
在硬件仿真系統(tǒng)中,全局布局(Routing)是緊隨分割(Partitioning)之后的關(guān)鍵步驟,尤其在處理基于FPGA的大型設(shè)計(jì)時,布局問題尤為復(fù)雜。布局被視為分割問題的擴(kuò)展,它要求不僅確定邏輯實(shí)例的歸屬分割,還需明確這些實(shí)例在FPGA上的物理位置。這涉及性能優(yōu)化的多重挑戰(zhàn),如減少布線擁塞、平衡信號跳數(shù)等。
橋接FPGA連接不同板或單元中的FPGA,增加了布線的復(fù)雜性。由于橋接FPGA通常面臨更多的布線跳過,因此最好在橋接位置布局邏輯較少的分割,以避免布線擁塞。然而,這又與性能優(yōu)化相沖突,因?yàn)楦嘈盘栠B接到其他板或單元的分割能減少布線跳數(shù)。因此,需在性能與布線易用性間做出權(quán)衡。
布線圖是布線算法遍歷以找到連接路徑的基礎(chǔ)。在構(gòu)建布線圖時,需考慮物理FPGA之間的連接表示,這并非易事。為了優(yōu)化性能,需將物理FPGA之間的引腳對進(jìn)一步分組,以便同一組的引腳對由具有類似時序關(guān)鍵性的布線共享。這種分組需平衡性能與布線編譯時間,且每次布線拆分和重新布線時都需調(diào)整引腳對的拆分,以反映延遲變化。
性能不穩(wěn)定是布線問題的另一大挑戰(zhàn),源于引腳對分裂變化導(dǎo)致的TDM比率大幅波動。此外,布線資源無容量限制,但出于性能考慮,應(yīng)限制使用相同引腳對的布線數(shù)量。這使得現(xiàn)有的基于協(xié)商的布線算法無法直接應(yīng)用。同時,共享同一引腳對的所有布線具有相同的TDM延遲,這增加了布線優(yōu)化的復(fù)雜性。
由于布線延遲取決于其他布線的特性,增量定時更新在傳統(tǒng)布線問題中的適用性降低。在布局過程中,改變共享引腳對的布線延遲可能需要更新多個布線的延遲,而非僅限于被撕裂和重新布線的信號。
全局布局在大規(guī)模硬件仿真系統(tǒng)的編譯過程中面臨多重挑戰(zhàn)。為了應(yīng)對這些挑戰(zhàn),需開發(fā)新的布局算法和技術(shù),以平衡性能、布線易用性和編譯時間。同時,還需考慮如何有效處理性能不穩(wěn)定、無容量限制的布線資源以及增量定時更新等獨(dú)特問題。
5、引腳分配挑戰(zhàn)(Pin Assignment)
引腳分配是硬件仿真系統(tǒng)編譯過程中的關(guān)鍵步驟,發(fā)生在布線完成后。其核心任務(wù)包括信號分組與引腳映射,旨在優(yōu)化仿真性能并確保FPGA布局與布線(P&R)的成功率。
信號分組涉及將具有相同TDM(時分復(fù)用)比率的布線平均分配到不同的LVDS(低壓差分信號)引腳對上。例如,若布線步驟產(chǎn)生多條TDM比率相同的布線,這些布線需被均勻分組,每組共享同一LVDS引腳對。這一步驟對于平衡信號負(fù)載和減少布線擁塞至關(guān)重要。
引腳映射決定每個信號組中的信號應(yīng)使用哪個物理LVDS引腳對進(jìn)行傳播。這要求了解物理FPGA內(nèi)LVDS引腳的位置及兩個連接FPGA之間LVDS引腳對的連接性。例如,在包含多個線性排列管芯的FPGA中,引腳映射需考慮管芯對之間的LVDS引腳對可用性,并盡量減少管芯邊界交叉次數(shù),以降低布線傳播延遲并提高仿真性能。以上挑戰(zhàn)如何解決?
- 信號組順序確定:在包含多個FPGA和LVDS引腳對連接的設(shè)計(jì)中,確定執(zhí)行引腳分配的信號組最佳順序是復(fù)雜的。這要求綜合考慮性能優(yōu)化和布線擁塞避免。
- 并行引腳分配:對于大型設(shè)計(jì),并行執(zhí)行引腳分配以提高效率是必要的。然而,實(shí)現(xiàn)最大并行性同時保持最小性能損失是一個挑戰(zhàn),需要采用有效的多線程策略。
- 時序圖構(gòu)建:為大型設(shè)計(jì)和更新時間構(gòu)建完整的時序圖非常耗時。因此,在時間預(yù)算限制下解決并行引腳分配問題是必要的。
- FPGA P&R成功率:引腳分配結(jié)果應(yīng)確保FPGA P&R的高成功率。這要求避免在同一FPGA內(nèi)非常接近地使用過多具有高TDM比的信號組,以防止本地布線擁塞。
6、FPGA P&R面臨的挑戰(zhàn)
FPGA P&R過程是決定FPGA設(shè)計(jì)時間和成功率的關(guān)鍵因素。這一過程受到多種因素的影響,主要包括FPGA內(nèi)部路由結(jié)構(gòu)的連接性、FPGA供應(yīng)商的封裝、布局和布線算法,以及網(wǎng)表屬性如總輸入引腳、平均扇出、再收斂路徑、Rent指數(shù)和常數(shù)等。這些因素共同作用于FPGA P&R過程,影響其實(shí)施的效率和成功率。
為了準(zhǔn)確描述和預(yù)測上述模型中的每一個因素,我們需要采用綜合的方法。首先,對于FPGA內(nèi)部路由結(jié)構(gòu)的連接性,我們需要深入了解FPGA的架構(gòu)特性,包括其邏輯單元、布線資源和互連模式等。這有助于我們評估不同設(shè)計(jì)的布線需求和資源利用率。其次,針對FPGA供應(yīng)商的封裝、布局和布線算法,我們需要分析這些算法的工作原理和性能特點(diǎn),以便更好地理解和優(yōu)化它們在實(shí)際應(yīng)用中的表現(xiàn)。最后,對于網(wǎng)表屬性,我們需要利用先進(jìn)的EDA工具來提取和分析這些屬性,以便在P&R過程中做出更明智的決策。
在并行運(yùn)行FPGA P&R任務(wù)時,為了最大限度地減少FPGA編譯時間,我們可以采取以下優(yōu)化策略:
一方面,利用機(jī)器學(xué)習(xí)技術(shù)進(jìn)行早期預(yù)測和反應(yīng)。機(jī)器學(xué)習(xí)算法可以通過分析歷史數(shù)據(jù)和模式來預(yù)測潛在的P&R失敗,并在早期階段采取措施進(jìn)行干預(yù)。例如,我們可以訓(xùn)練一個分類模型來識別可能導(dǎo)致P&R失敗的特定設(shè)計(jì)特征或條件,并在檢測到這些特征時自動調(diào)整布局或布線策略。這種方法可以顯著提高P&R過程的魯棒性和效率。
另一方面,實(shí)施自適應(yīng)的P&R策略以最大化成功機(jī)會。在并行運(yùn)行多個P&R任務(wù)時,我們可以監(jiān)控每個任務(wù)的進(jìn)展和性能,并根據(jù)實(shí)時反饋來調(diào)整策略。例如,如果某個任務(wù)進(jìn)展緩慢或遇到難以解決的問題,我們可以暫停該任務(wù)并啟動更多的P&R工作來探索其他可能的解決方案。這種自適應(yīng)的方法可以確保我們在有限的時間內(nèi)獲得最大的成功機(jī)會,同時減少不必要的資源消耗和時間浪費(fèi)。
7、小結(jié)
大規(guī)模硬件仿真系統(tǒng)的編譯流程是一個涵蓋綜合、分割、布局布線、引腳分配、技術(shù)映射及FPGA布局布線等多個緊密相連且至關(guān)重要的環(huán)節(jié),直至最終生成適用于每個FPGA的比特流。這一系列步驟不僅彼此依存,而且各自都承載著獨(dú)特的挑戰(zhàn),這些挑戰(zhàn)對硬件仿真系統(tǒng)的性能與可靠性有著直接且深遠(yuǎn)的影響。
為了應(yīng)對這些挑戰(zhàn),我們必須全面審視設(shè)計(jì)規(guī)模、性能標(biāo)準(zhǔn)、資源約束以及算法復(fù)雜度等多個維度,不斷探索和優(yōu)化相關(guān)技術(shù)。正是基于這樣的背景,硬件仿真技術(shù)不斷取得突破,逐步克服了這些難題,引領(lǐng)硬件仿真系統(tǒng)朝著更高效率與更強(qiáng)可靠性的目標(biāo)邁進(jìn)。
在這一過程中,思爾芯新一代國產(chǎn)硬件仿真系統(tǒng)就針對編譯過程做了一系列的技術(shù)優(yōu)化。該系統(tǒng)憑借其靈活的2億至96億門配置、高達(dá)4-6MHz的系統(tǒng)運(yùn)行性能,為用戶提供了應(yīng)對復(fù)雜芯片設(shè)計(jì)仿真需求的強(qiáng)大支持。同時,其高效的全自動編譯技術(shù)與增量編譯加速功能,更是將編譯效率提升至8000萬門/小時以上,為設(shè)計(jì)師贏得了寶貴的時間資源,進(jìn)一步提升了硬件仿真系統(tǒng)的實(shí)用性和競爭力。這一系列的創(chuàng)新亮點(diǎn),不僅展現(xiàn)了思爾芯在硬件仿真技術(shù)領(lǐng)域的深厚積累,也為整個行業(yè)的發(fā)展注入了新的活力。
-
集成電路
+關(guān)注
關(guān)注
5452文章
12568瀏覽量
374478 -
硬件
+關(guān)注
關(guān)注
11文章
3592瀏覽量
69002 -
HDL
+關(guān)注
關(guān)注
8文章
332瀏覽量
48971 -
仿真系統(tǒng)
+關(guān)注
關(guān)注
1文章
105瀏覽量
21689
發(fā)布評論請先 登錄
大規(guī)模硬件仿真系統(tǒng)的編譯挑戰(zhàn)
評論