引言
現(xiàn)場(chǎng)可編程門陣列(FPGA)市場(chǎng)在過(guò)去的幾年中發(fā)生了很大的變化。硅芯片工藝技術(shù)的進(jìn)步推動(dòng)了FPGA密度和速率的增長(zhǎng)。結(jié)果,以前面向ASIC或者ASSP的大量高性能商業(yè)應(yīng)用現(xiàn)在可以在FPGA中成功實(shí)現(xiàn),并且效率很高,非常經(jīng)濟(jì)。為達(dá)到目標(biāo)性能,F(xiàn)PGA設(shè)計(jì)工程師采用了新的時(shí)鐘規(guī)范(通過(guò)時(shí)鐘復(fù)用設(shè)計(jì)方案),而傳統(tǒng)的FPGA時(shí)序分析工具很難分析其設(shè)計(jì)接口(例如源同步時(shí)鐘)。
本文介紹FPGA設(shè)計(jì)軟件必須滿足的新要求,軟件必須高效迅速的進(jìn)行時(shí)序分析,達(dá)到時(shí)序逼近。在提高效能方面,包括采用業(yè)界標(biāo)準(zhǔn)的時(shí)序分析方法,本文將闡述業(yè)界標(biāo)準(zhǔn)Synopsys設(shè)計(jì)約束(SDC)格式的幾個(gè)實(shí)際應(yīng)用案例。由于將時(shí)序分析引擎和布局布線適配引擎整合在一起可以進(jìn)一步提高效率,Altera根據(jù)這些要求開(kāi)發(fā)并實(shí)現(xiàn)了Quartus Ⅱ TimeQuest時(shí)序分析儀為SDC提供自然的支持。
自然的SDC支持+時(shí)序引擎集成=更高效率時(shí)序分析
靜態(tài)時(shí)序分析是對(duì)設(shè)計(jì)的時(shí)序性能進(jìn)行分析、調(diào)試和驗(yàn)證的方法。它與功能驗(yàn)證(一般是仿真或者原型開(kāi)發(fā))相結(jié)合來(lái)驗(yàn)證設(shè)計(jì)運(yùn)行是否正確。進(jìn)行綜合或者布局布線(可以包括物理綜合)之后,工程師運(yùn)行時(shí)序分析,檢查設(shè)計(jì)編譯是否會(huì)導(dǎo)致時(shí)序違規(guī)。
SDC格式是一種業(yè)界標(biāo)準(zhǔn),用于描述設(shè)計(jì)的時(shí)序約束。隨著大量的商業(yè)應(yīng)用從ASIC轉(zhuǎn)向FPGA,越來(lái)越多的ASIC設(shè)計(jì)工程師采用基于FPGA的設(shè)計(jì)軟件和技術(shù)來(lái)開(kāi)發(fā)新的芯片和產(chǎn)品。這些工程師已經(jīng)非常熟悉基于SDC的時(shí)序分析方法。在FPGA設(shè)計(jì)中重新應(yīng)用的許多模塊通常已經(jīng)采用了這些約束,因此,再次使用相同的時(shí)序約束具有明顯的效能優(yōu)勢(shì)。由FPGA設(shè)計(jì)軟件時(shí)序分析工具完成SDC至約束格式轉(zhuǎn)換過(guò)程,不論是手動(dòng)還是自動(dòng)進(jìn)行,在轉(zhuǎn)換中避免出現(xiàn)差錯(cuò),能夠進(jìn)一步節(jié)省時(shí)間。

SDC時(shí)序分析的另一關(guān)鍵特性是采用工具命令語(yǔ)言(Tcl)并按照Tcl語(yǔ)法規(guī)則來(lái)描述約束。因此,腳本可以充分利用基于SDC的時(shí)序分析,幫助設(shè)計(jì)人員自動(dòng)完成與時(shí)序相關(guān)的任務(wù)。在結(jié)構(gòu)化ASIC器件(例如,AlteraHardCopy Ⅱ器件系列)設(shè)計(jì)中,這就是為什么SDC時(shí)序分析是最佳方法的原因之一。此外,對(duì)于含有源同步接口(例如DDR和DDR2)和時(shí)鐘復(fù)用設(shè)計(jì)結(jié)構(gòu)的設(shè)計(jì),采用SDC格式可以方便的表達(dá)復(fù)雜的時(shí)序約束。
這些優(yōu)勢(shì)相結(jié)合后,Quartus Ⅱ設(shè)計(jì)軟件用戶從原理圖輸入轉(zhuǎn)換到Verilog和VHDL等硬件描述語(yǔ)言時(shí),可以顯著提高效率。SDC格式受到歡迎的原因之一在于其直觀性和易于學(xué)習(xí)。圖1所示是這些約束的基本例子。
鎖相環(huán)(PLL)為FPGA設(shè)計(jì)的輸出寄存器提供時(shí)鐘信號(hào)。PLL輸入是時(shí)鐘信號(hào)SYSCLK。電路板布局分析顯示FPGA輸出到達(dá)外部寄存器(可能在另—FPGA內(nèi)部)的時(shí)間為lns。這一“數(shù)據(jù)達(dá)到時(shí)間”確保FPGA驅(qū)動(dòng)的器件能夠正常工作。
首先可以通過(guò)編寫時(shí)鐘定義來(lái)表達(dá)時(shí)序約束,以名為create_clock的SDC來(lái)實(shí)現(xiàn):
采用這一SDC,設(shè)計(jì)人員必須規(guī)定PLL的輸出也是一個(gè)時(shí)鐘,它由來(lái)自[get_orts CLK_IN]的輸入時(shí)鐘產(chǎn)生。
采用命令set_ou_ut_delay來(lái)表達(dá)電路板輸出和目的器件之間的延時(shí):
這一命令是指兩個(gè)器件共同使用的同一SYSCLK時(shí)鐘。這個(gè)例子假定時(shí)鐘和數(shù)據(jù)之間沒(méi)有偏移(在圖1中,這是“time A”和“time B”之間的差,“time”使出現(xiàn)一些偏移,問(wèn)題也不大。但是,高頻工作時(shí),偏移是妨礙同步設(shè)計(jì)的主要因素。不管頻率如何,偏移對(duì)于保持檢查也非常重要。保證“time A”和“time B”相同,從而消除了數(shù)據(jù)和時(shí)鐘信號(hào)之間的偏移——這在實(shí)際中很難實(shí)現(xiàn),并且代價(jià)很高。

為了克服同步接口的這種頻率限制,設(shè)計(jì)人員開(kāi)始采用“源同步”接口結(jié)構(gòu)。在這些接口中,數(shù)據(jù)和時(shí)鐘信號(hào)由主機(jī)器件“源出”,因此,在電路板上傳輸?shù)竭_(dá)目的器件的過(guò)程中,它們經(jīng)歷了相同的物理效應(yīng)。這樣實(shí)際上種情況下,PLL(PLLCLK)的輸出也被用于從外部器件中“源出”時(shí)鐘。其輸出延時(shí)要求為2.3ns。
如前所述,采用SDC結(jié)構(gòu)creare_clock來(lái)定義時(shí)鐘,規(guī)定PLL輸出是衍生或者生成時(shí)鐘。
利用SDC,可以采用器件的另一引腳作為參考來(lái)指定信號(hào)輸出延時(shí)。
這一例子顯示了ASlC功能FPGA時(shí)序分析儀自然SDC支持的重要性。對(duì)SDC的支持為工程師分析高性能FGPA設(shè)計(jì)時(shí)序分析提供了完整的高級(jí)約束控制。

時(shí)序分析工具的另一關(guān)鍵軟件要求是靜態(tài)時(shí)序分析與布局布線和適配引擎能夠有效集成,以便獲得更好的結(jié)果質(zhì)量(QoR)。布局布線和適配引擎與時(shí)序引擎相集成的一個(gè)主要優(yōu)勢(shì)是簡(jiǎn)化了設(shè)計(jì)關(guān)鍵路徑的診斷和調(diào)試。集成使內(nèi)部節(jié)點(diǎn)保持“可觀察性”,方便設(shè)計(jì)工程師追蹤節(jié)點(diǎn)至最初的時(shí)序約束。缺乏集成性通常會(huì)導(dǎo)致最初的網(wǎng)表和綜合引擎產(chǎn)生的網(wǎng)表之間出現(xiàn)不匹配。
TimeQuest時(shí)序分析儀
TimeQuest時(shí)序分析儀為FPGA設(shè)計(jì)分析提供分析提供自然的SDC支持
隨著Quartus Ⅱ 6.O的發(fā)布,Altera引入了新的時(shí)序分析儀,旨在幫助需要設(shè)計(jì)復(fù)雜時(shí)鐘方案和源同步接口的FPGA設(shè)計(jì)人員,以及已經(jīng)熟悉SDC格式的ASIC設(shè)計(jì)人員。Quartus Ⅱ設(shè)計(jì)人員用戶可以采用TimeQuest時(shí)序分析儀來(lái)分析上面的例子。
TimeQuest時(shí)序分析儀提供一個(gè)快速按需的交互式數(shù)據(jù)報(bào)告界面,幫助設(shè)計(jì)人員迅速分析關(guān)鍵路徑,只在需要時(shí)要求更詳細(xì)的時(shí)序分析,從而節(jié)省了時(shí)間。功能強(qiáng)大的圖形用戶界面(GUI)以直觀、易于理解的圖形格式來(lái)報(bào)告時(shí)序分析數(shù)據(jù),完善了TimeQuest時(shí)序分析儀的快速按需數(shù)據(jù)報(bào)告功能,進(jìn)一步提高了設(shè)計(jì)人員的效率。高級(jí)設(shè)計(jì)人員可以通過(guò)TCl界面來(lái)自由使用所有的TimeQuest功能。
TimeQuest GUI幫助完成設(shè)計(jì)時(shí)序約束任務(wù)。圖3顯示了設(shè)計(jì)人員怎樣利用TimeQuest時(shí)序分析儀來(lái)定義一個(gè)參考時(shí)鐘??梢圆捎孟嗨频慕缑鎭?lái)定義輸入、輸出以及排除約束等其他的時(shí)序約束。
這些界面使Quartus Ⅱ用戶能夠利用SDC格式來(lái)編寫約束。由于能夠自然的支持SDC,TimeQuest用戶可以利用強(qiáng)大的業(yè)界標(biāo)準(zhǔn)時(shí)序分析方法,采用(并能夠重復(fù)使用)SDC和基干Tcl的腳本來(lái)進(jìn)一步提高效率。已經(jīng)非常熟悉SDC的設(shè)計(jì)人員可以直接在約束文什(*.sdc)中輸入時(shí)序約束和排除命令。對(duì)于這些設(shè)計(jì)人員,TimeQuest時(shí)序分析儀也支持功能強(qiáng)大的Tcl界面。采用這一工具,設(shè)計(jì)人員能夠自動(dòng)重復(fù)時(shí)序分析任務(wù),這有利于將ASIC設(shè)計(jì)導(dǎo)入到FPGA中。
規(guī)定好時(shí)序約束后,設(shè)計(jì)人員進(jìn)行詳細(xì)的時(shí)序分析。TimeQuest GUI含有一個(gè)任務(wù)條,可以方便的訪問(wèn)網(wǎng)表設(shè)置、時(shí)序報(bào)告生成等常見(jiàn)任務(wù)。任務(wù)條為靜態(tài)時(shí)序分析新手提供的工作流程闡明了在時(shí)序結(jié)束之前需要完成的過(guò)程。高級(jí)用戶也會(huì)發(fā)現(xiàn)這一任務(wù)條板很有用,因?yàn)樗軌蛟L問(wèn)TimeQuest分析和報(bào)告功能。

TimeQuest時(shí)序分析儀為FPGA設(shè)計(jì)分析提供分析提供自然的SDC支持
TimeQuest時(shí)序分析儀具有快速交互式報(bào)告功能。在查看松弛報(bào)告時(shí),設(shè)計(jì)人員可以查詢特殊關(guān)鍵路徑更詳細(xì)的信息。圖6顯示了查詢的結(jié)果。
在TimeQuest查看面板上,設(shè)計(jì)人員可以詳細(xì)了解所選定的松弛。通過(guò)餅形圖可以快速查看所產(chǎn)生的時(shí)序是來(lái)自邏輯(單元)還是互聯(lián)延時(shí)。然后,F(xiàn)PGA設(shè)計(jì)人員決定是進(jìn)一步優(yōu)化互聯(lián)延時(shí),還是在出現(xiàn)較大內(nèi)部延時(shí)的情況下,在設(shè)計(jì)編譯之前進(jìn)行設(shè)計(jì)/結(jié)構(gòu)修改。
可以通過(guò)集成平面布局圖來(lái)交叉探測(cè)時(shí)序分析儀所分析的全部信號(hào),因此,查看邏輯模塊之間的互聯(lián)密度就可以分析潛在的布線擁塞。
結(jié)語(yǔ)
工藝技術(shù)的發(fā)展促進(jìn)了FPGA廣泛應(yīng)用,而這些應(yīng)用領(lǐng)域以前完全由ASIC統(tǒng)治。為了滿足市場(chǎng)需求,達(dá)到目標(biāo)性能,F(xiàn)PGA設(shè)計(jì)工程師采用了新的設(shè)計(jì)方式和復(fù)雜的時(shí)鐘方案,例如10Mbit、100Mbit和1Gigabit以太網(wǎng)中的時(shí)鐘復(fù)用等。此外,在設(shè)計(jì)源同步時(shí)鐘接口(例如DDR和DDR2接口所采用的)時(shí),采用傳統(tǒng)的FPGA時(shí)序分析很難分析這些時(shí)鐘方案。在方法上,設(shè)計(jì)人員的效率取決于使用業(yè)界標(biāo)準(zhǔn)SDC格式來(lái)進(jìn)行設(shè)計(jì)約束的能力。從技術(shù)觀點(diǎn)看,時(shí)序分析引擎必須能夠與綜合和布局布線集成到一起,具有功能強(qiáng)大的GUI,支持對(duì)關(guān)鍵路徑的快速訪問(wèn),確??焖倏煽康臅r(shí)序逼近。
這些需求是TimeQuest時(shí)序分析儀產(chǎn)生和發(fā)展的推動(dòng)力量,這一新的ASIC功能時(shí)序分析儀能夠自然的支持業(yè)界標(biāo)準(zhǔn)SDC格式。Quartus Ⅱ軟件從6.0訂購(gòu)版開(kāi)始提供該時(shí)序分析儀。設(shè)計(jì)人員采用TimeQuest時(shí)序分析儀可以在高端FPGA設(shè)計(jì)中進(jìn)行高級(jí)時(shí)序驗(yàn)證,迅速高效的達(dá)到并保持時(shí)序逼近。