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