提高FPGA設(shè)計生產(chǎn)力的工具、技巧和方法指南
作者:Davin Lim,Xilinx公司
能否快速了解設(shè)計時序狀態(tài)是衡量任何FPGA設(shè)計環(huán)境有效性的關(guān)鍵。
影響FPGA設(shè)計周期生產(chǎn)力的最大因素是什么?許多設(shè)計人員的答案是,時序收斂(timing closure)是影響產(chǎn)品設(shè)計走向市場的關(guān)鍵,他們還為這個答案提供了充足的理由。高效實現(xiàn)時序收斂,獲得可信的結(jié)果是每一位設(shè)計師的夢想。然而,這僅僅是問題的一部分。要在整個設(shè)計周期中真正做到高效率,設(shè)計師需要依賴整個設(shè)計環(huán)境以及其中的多種工具來管理流程復(fù)雜性,并為FPGA設(shè)計的獨特風(fēng)格和方法提供真實的解決方案。一個完整有效的設(shè)計環(huán)境提供了問題的焦點和透明性。與許多設(shè)計良好的工具一樣,最好是提供一個無縫的解決方案。
要提供最大的生產(chǎn)力,一個完整的FPGA設(shè)計環(huán)境應(yīng)當(dāng)包括如下一些主要特性:
z 快速確定時序問題 - 所提供的工具能夠為設(shè)計師提供關(guān)鍵信息,從而使他們迅速發(fā)現(xiàn)潛在的瓶頸。
z 利用一系列視圖探究結(jié)果 - 并非所有問題都是采用同樣的方法解決的。設(shè)計良好的工具可以讓設(shè)計師從多個視角察看有關(guān)時序路徑的信息。這些工具既可以提供足夠的細(xì)節(jié),又能夠保持問題的焦點。
z 以設(shè)計為中心,而非工具 - 能夠在不同視圖間無縫切換,工具操作是透明的,但設(shè)計問題依然清晰。
z 提供有意義的中間結(jié)果 - 生產(chǎn)力包括能在盡早的階段監(jiān)測設(shè)計性能。如果設(shè)計師可以盡早解決問題,直接產(chǎn)生的結(jié)果是每天可 以有更多的反復(fù)機(jī)會。
z 管理復(fù)雜的源代碼結(jié)構(gòu) - FPGA設(shè)計工具需要方便源文件的管理,提供兼容設(shè)計人員所喜好的源代碼控制機(jī)制的能力和方法。
使用支持更快、更容易的時序收斂并且支持設(shè)計聚集的設(shè)計工具,下面的例子詳細(xì)討論了上面的話題。
快速確定時序問題
“設(shè)計滿足時序要求嗎?”每次通過布局布線完成設(shè)計實施時,通常設(shè)計師都會問這個問題。無論答案是什么,設(shè)計人員都希望以簡潔的形式立即獲得此類信息(圖1)。
1. 性能摘要表
(點擊此圖看更大更詳細(xì)的版本)
下一個問題就是“到底有多少滿足時序要求,又有多少沒有達(dá)到?”圖2給出了每一約束對應(yīng)的時序結(jié)果簡表。
2. 約束摘要表
(點擊此圖看更大更詳細(xì)的版本)
利用不同的視圖探究結(jié)果
一旦以摘要形式呈現(xiàn)時序結(jié)果,還可以很容易地察看特定約束或路徑的詳細(xì)信息。從上面的摘要中,簡單地點擊一條約束,設(shè)計師就可以看到更詳細(xì)的時序報告,如圖3所示。
3. 詳細(xì)時序路徑報告
(點擊此圖看更大更詳細(xì)的版本)
{{分頁}}
設(shè)計人員可以非??焖俜奖愕貜母邔訒r序摘要轉(zhuǎn)到詳細(xì)的文本信息,了解特定的時序路徑。
文字信息只是了解設(shè)計時序特性的一種方法。通常,圖形顯示更有幫助。對于上面的設(shè)計,點擊超鏈接可以得到路徑在FPGA器件中實際物理實現(xiàn)的圖形顯示(圖4)。
4. 時序路徑的器件視圖
(點擊此圖看更大更詳細(xì)的版本)
圖4中的例子顯示出時序路徑從一個起始模塊,通過每個中間模塊,最后終止在路徑端點的實際物理布局。這一視圖也給出了這些模塊間實際布線實現(xiàn)的視覺表現(xiàn)。該視圖可以幫助回答與時序相關(guān)的問題,如:“有沒有特別長的路徑?”以及“有沒有邏輯的布局跨越了多個時鐘區(qū)域?”隨著設(shè)計師逐漸放大視圖到特定點,應(yīng)當(dāng)可以看到如圖5所示的內(nèi)部邏輯片配置。
5. 器件視圖中的時序路徑詳細(xì)顯示
(點擊此圖看更大更詳細(xì)的版本)
上面的物理器件視圖通常很有用,但對于理解設(shè)計中不同的時序路徑細(xì)節(jié)來說,其它表示方式也同樣有用。一種基于原理圖技術(shù)的視圖如圖6所示。
6. 時序路徑的技術(shù)視圖
(點擊此圖看更大更詳細(xì)的版本)
在這一時序路徑視圖中,很容易看出數(shù)據(jù)路徑中的邏輯層次數(shù)量,并了解時序路徑如何穿越設(shè)計層次中的不同部分。還可以逐漸放大顯示的原理圖,顯示其它邏輯連接到構(gòu)成本路徑的單元的情況。
以設(shè)計為中心,而非工具
通過提供同一設(shè)計問題的多種視圖,設(shè)計師能夠以不同的方式考慮時序問題,并定制針對問題的最適合的解決方案。當(dāng)所有這些視角都集成在單個設(shè)計環(huán)境中時,在不同視圖之間的切換就只需點擊一下鼠標(biāo)就可以了,不必再學(xué)習(xí)如何在不同的點式應(yīng)用間以不同的方式來顯示時序路徑。有時還可以將多個視圖疊加或并列顯示,如圖7所示。
7. 時序路徑的不同視圖并列顯示
(點擊此圖看更大更詳細(xì)的版本)
{{分頁}}
提供有意義的中間結(jié)果
在FPGA設(shè)計過程的中間,運行多個實施是很平常的。對于有大量時序要求的大型設(shè)計來說,能夠檢查中間結(jié)果是很方便的。通過方便的方法暫停、檢測和恢復(fù)實施過程,設(shè)計師可以在設(shè)計編譯的過程中獲得更好的設(shè)計可視性。圖8所示的設(shè)計工具提供了此類直接控制。
8. 控制設(shè)計流程察看中間結(jié)果。
(點擊此圖看更大更詳細(xì)的版本)
想象一下,過度的時序約束可能需要更多時間才能夠完成設(shè)計實施的布局和布線階段。通過中止流程,有些設(shè)計師可能認(rèn)為設(shè)計時序已經(jīng)“足夠收斂”,從而可以將設(shè)計提交到實驗室繼續(xù)進(jìn)行功能調(diào)試。同時,做完這一步后,還可以恢復(fù)布局布線,繼續(xù)進(jìn)行優(yōu)化處理以滿足最終時序要求。
更重要的是,通過檢查中間結(jié)果,設(shè)計師可以更快地確定是否存在任何時序關(guān)鍵區(qū)域并盡早采取行動。
管理復(fù)雜的源代碼結(jié)構(gòu)
隨著設(shè)計復(fù)雜性的增加,源代碼結(jié)構(gòu)的復(fù)雜性也在增加。許多設(shè)計師采用第三方源代碼控制工具來管理復(fù)雜性并保證源代碼文件的一致性。這些文件不僅限于HDL源文件,還包括約束文件、仿真測試基準(zhǔn)等。
每位設(shè)計師都有處理這些問題的特有風(fēng)格和方法,因此并沒有適用于所有用戶的萬能解決方案。通過提供方便的機(jī)制(圖9)來確定并有選擇地輸出FPGA設(shè)計項目中的所有源代碼/文件,設(shè)計師可以采用最適合自己需要的外部源代碼控制工具。輸出過程還包括輸出ASCII 形式的項目信息,以后可利用這一信息重建這一項目的早期階段。
9. 源代碼管理支持。
(點擊此圖看更大更詳細(xì)的版本)
結(jié)論
對FPGA設(shè)計生產(chǎn)力來說,快速實現(xiàn)時序收斂確實是一項關(guān)鍵因素。能否快速了解設(shè)計時序狀態(tài)是衡量任何FPGA設(shè)計環(huán)境有效性的關(guān)鍵。由于導(dǎo)致時序路徑出現(xiàn)時序失敗的原因很多,因此設(shè)計師需要從多種不同角度(文字和圖形)掌握方便察看時序信息的能力。這樣他們才能夠做出如何改進(jìn)設(shè)計時序的最佳決策。以無縫且透明的方式提供綜合工具將可幫助快速實現(xiàn)時序收斂。
除了核心的時序收斂技術(shù)以外,外圍的設(shè)計工具環(huán)境也會大大影響生產(chǎn)力。檢查和利用中間結(jié)果以及靈活管理復(fù)雜源代碼結(jié)構(gòu)等能力都會使設(shè)計師提高生產(chǎn)力。
Davin Lim是賽靈思公司設(shè)計軟件部技術(shù)和產(chǎn)品營銷組資深經(jīng)理。在此職位上,他的小組負(fù)責(zé)賽靈思ISE軟件的未來產(chǎn)品規(guī)劃。 Davin還負(fù)責(zé)為每一重要軟件版本提供新的培訓(xùn)材料。他于1996年加入賽靈思公司,有從事FPGA、ASIC和PCB設(shè)計的工作背景。他持有安阿伯市密西根大學(xué)的學(xué)士學(xué)位,以及玻爾得市科羅拉多大學(xué)的電子工程碩士(MSEE)學(xué)位。Davin的電子郵件是: davin.lim@xilinx.com.
評論