如何發(fā)現(xiàn)并解決FPGA設(shè)計(jì)中的時(shí)序問(wèn)題
耗費(fèi)數(shù)月精力做出的設(shè)計(jì)卻無(wú)法滿(mǎn)足時(shí)序要求,這確實(shí)非常令人傷心。然而,試圖正確地對(duì)設(shè)計(jì)進(jìn)行約束以保證滿(mǎn)足時(shí)序要求的過(guò)程幾乎同樣令人費(fèi)神。找到并確定時(shí)序約束本身通常也是非常令人頭痛的問(wèn)題。
本文引用地址:http://2s4d.com/article/192151.htm時(shí)序問(wèn)題的惱人之處在于沒(méi)有哪種方法能夠解決所有類(lèi)型的問(wèn)題。由于客戶(hù)對(duì)于和現(xiàn)場(chǎng)應(yīng)用工程師共享源代碼通常非常敏感,因此我們通常都是通過(guò)將工具的潛力發(fā)揮到極致來(lái)幫助客戶(hù)解決其時(shí)序問(wèn)題。當(dāng)然好消息就是通過(guò)這種方法以及優(yōu)化RTL代碼,可以解決大多數(shù)時(shí)序問(wèn)題。
但在深入探討之前,我們首先需要對(duì)時(shí)序問(wèn)題進(jìn)行一點(diǎn)基本分析。這里的目標(biāo)是首先排除明顯的問(wèn)題,如將時(shí)鐘引腳置于器件的上部、在器件下部驅(qū)動(dòng)數(shù)字時(shí)鐘管理器(DCM),然后再在器件上部驅(qū)動(dòng)全局緩沖(BUFG)。
有時(shí),此類(lèi)引腳布局會(huì)導(dǎo)致根本沒(méi)有辦法滿(mǎn)足時(shí)序要求。通過(guò)察看時(shí)序報(bào)告中的延遲,通??梢?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/發(fā)現(xiàn)">發(fā)現(xiàn)這些明顯的時(shí)序問(wèn)題。在這些情況下,為了解決這些明顯的問(wèn)題,都需要利用底層規(guī)劃工具“floorplanner”將造成問(wèn)題的部分鎖定在適當(dāng)?shù)奈恢?。底層布局?guī)劃工具還可以幫助以可視的方式來(lái)理解時(shí)序問(wèn)題。
用最新工具進(jìn)行時(shí)序分析
假設(shè)問(wèn)題并非這么明顯,那么為了鎖定問(wèn)題所在,需要了解所使用的器件系列以及軟件版本。通常,每種器件系列對(duì)應(yīng)一種最優(yōu)的軟件版本。如Xilinx Virtex-4器件對(duì)應(yīng)的最佳軟件是ISE軟件9.2i版,而對(duì)Virtex-5 FPGA則是ISE軟件10.1版。
綜合工具的版本也很重要,因此當(dāng)采用最新的器件架構(gòu)時(shí),下載并使用最新版軟件非常重要。軟件開(kāi)發(fā)幾乎總是滯后于硬件功能,因此我不提倡使用舊版軟件進(jìn)行基于新器件的設(shè)計(jì)。
然而,有些客戶(hù)由于擔(dān)心新的和未知的軟件缺陷而不愿意升級(jí)軟件。但是,在使用最新的器件時(shí),如果希望更好地處理時(shí)序挑戰(zhàn),強(qiáng)烈建議下載最新版軟件。
擁有了最適用于目標(biāo)器件系列的軟件,還需要確定最佳的實(shí)現(xiàn)選項(xiàng)。可惜,并沒(méi)有適用于所有情況的超級(jí)選項(xiàng)組合。對(duì)于設(shè)計(jì)實(shí)現(xiàn)工具來(lái)說(shuō),有成千上萬(wàn)種不同的實(shí)現(xiàn)選項(xiàng)組合。根據(jù)所使用的實(shí)現(xiàn)選項(xiàng)不同,時(shí)序分?jǐn)?shù)(即所有存在錯(cuò)誤的時(shí)序路徑與時(shí)序要求的差異總和,以皮秒表示)也會(huì)有很大不同。
賽靈思的幾款工具可幫助確定適用于特定設(shè)計(jì)的最佳實(shí)現(xiàn)選項(xiàng)。ISE軟件現(xiàn)在包括兩個(gè)工具:Xplorer以及最近發(fā)布的SmartXplorer。SmartXplorer可充分發(fā)揮多處理器優(yōu)點(diǎn),能夠以不同選項(xiàng)組合運(yùn)行多個(gè)實(shí)施實(shí)例。
SmartXplorer需要Linux支持,但使用非常容易。其命令行很簡(jiǎn)單:smartxplorer designname.edn -p xc5vlx110t-1ff1136.
只要用戶(hù)約束文件(UCF)和網(wǎng)表約束文件(NCF)文件名相同,SmartXplorer會(huì)自動(dòng)使用正確的選項(xiàng)。唯一需要做的是編輯主機(jī)列表文件。
SmartXplorer可以通過(guò)SSH/rsh安全shell登錄到其他機(jī)器。只需要在名為smartxplorer.hostlist的文件中將每臺(tái)機(jī)器一行將機(jī)器名字添加進(jìn)去就可以了。如果機(jī)器有兩個(gè)處理器,請(qǐng)將機(jī)器列出兩次。表1給出了SmartXplorer的一組結(jié)果。
表1:對(duì)基于Virtex-5 FPGA的設(shè)計(jì)SmartXplorer 10.1的一個(gè)例子。
PlanAhead軟件也包括了與SmartXplorer類(lèi)似的稱(chēng)為ExploreAhead的功能。ExploreAhead支持同時(shí)在多臺(tái)Linux機(jī)器上分布式運(yùn)行布局布線(xiàn)任務(wù)。所有這些工具的目的都是類(lèi)似的:確定實(shí)現(xiàn)工具的最佳選項(xiàng)組合,以獲得最好的時(shí)序得分。
請(qǐng)注意選項(xiàng)的不同組合對(duì)于時(shí)序得分和運(yùn)行時(shí)間的巨大影響。仔細(xì)調(diào)整綜合選項(xiàng)也非常重要。例如,在綜合選項(xiàng)中關(guān)閉結(jié)構(gòu)層次(hierarchy)通常會(huì)大大提高性能。綜合過(guò)程中的約束條件好壞在滿(mǎn)足時(shí)序方面的作用也很突出。
評(píng)論