如何使用TimeQuest
用Altera的話來(lái)說(shuō),TimeQuest Timing Analyzer是一個(gè)功能強(qiáng)大的,ASIC-style的時(shí)序分析工具。采用工業(yè)標(biāo)準(zhǔn)--SDC(synopsys design contraints)--的約束、分析和報(bào)告方法來(lái)驗(yàn)證你的設(shè)計(jì)是否滿足時(shí)序設(shè)計(jì)的要求。
TimeQuest的基本操作流程
做為altera FPGA開(kāi)發(fā)流程中的一個(gè)組成部分,TimeQuest執(zhí)行從驗(yàn)證約束到時(shí)序仿真的所有工作。Altera推薦使用下面的流程來(lái)完成TimeQuest的操作。
1、建立項(xiàng)目并加入相關(guān)設(shè)計(jì)文件
不管做什么事情,都需要有一個(gè)目標(biāo)或者說(shuō)對(duì)象。我們用TimeQuest做時(shí)序分析,當(dāng)然也需要一個(gè)對(duì)象,這個(gè)對(duì)象實(shí)際上就是我們的設(shè)計(jì)。所以首先是建立一個(gè)Quartus II的項(xiàng)目,并把所有需要的設(shè)計(jì)文件都加入到項(xiàng)目中去。需要注意的一點(diǎn)是,這里的設(shè)計(jì)文件,不僅僅包含邏輯設(shè)計(jì)相關(guān)的文件,也包含已經(jīng)存在的時(shí)序約束文件,當(dāng)然,需要以synopsys Design Constraints(.sdc)的格式存在的。關(guān)于 sdc文件,可以使用Quartus的向?qū)?lái)建立,在生成sdc文件后,你可以再在此sdc文件上進(jìn)行自己的修改,如下圖所示,Assignments-》TimeQuest Timing Analyzer Wizard.。。
2、對(duì)項(xiàng)目進(jìn)行預(yù)編譯(initial compilation)
項(xiàng)目建立以后,如果從來(lái)沒(méi)有對(duì)項(xiàng)目進(jìn)行過(guò)編譯的話,就需要對(duì)項(xiàng)目進(jìn)行預(yù)編譯。這里的預(yù)編譯是對(duì)應(yīng)于全編譯(full compilation)來(lái)講的,我們可以理解為預(yù)編譯是對(duì)項(xiàng)目進(jìn)行部分的編譯,而全編譯是對(duì)項(xiàng)目進(jìn)行完整的編譯。做預(yù)編譯的目的是為了生成一個(gè)initial design database,然后我們可以根據(jù)這個(gè)database用Timequest采用交互的模式生成時(shí)序約束。實(shí)際上,對(duì)于小的設(shè)計(jì),編譯時(shí)間并不是很長(zhǎng)的話,完全可以不去區(qū)分預(yù)編譯和全編譯,需要編譯的時(shí)候,直接做全編譯就可以了,做全編譯的話,可以生成一個(gè)post-fit的database,完全可以給TimeQuest使用。
3、向設(shè)計(jì)中添加時(shí)序約束
在用TimeQuest做時(shí)序分析之前,必須要指定出對(duì)時(shí)序的要求,也就是我們通常所說(shuō)的時(shí)序約束。這些約束包括時(shí)鐘,時(shí)序例外(timing exceptions)和輸入/輸出延時(shí)等。
默認(rèn)情況下,Quartus II 軟件會(huì)給所有沒(méi)有被下約束的時(shí)鐘都設(shè)定為1GHz。沒(méi)有任何的時(shí)序例外,也就是說(shuō)所有的timing path都按1T去check。所有的輸入/輸出的延遲都按0來(lái)計(jì)算。這顯然不符合絕大多數(shù)設(shè)計(jì)的時(shí)序要求,所以有必要根據(jù)設(shè)計(jì)的特性,添加必要的時(shí)序約束。
如上所述,時(shí)序約束主要包括三類:時(shí)鐘,時(shí)序例外和輸入/輸出延遲。其中時(shí)鐘和輸入/輸出延遲可以認(rèn)為是在某種程度上增強(qiáng)時(shí)序設(shè)計(jì)的要求。而時(shí)序例外可以認(rèn)為是在某種程度上降低時(shí)序設(shè)計(jì)的要求。比如說(shuō),僅僅設(shè)定一個(gè)時(shí)鐘的頻率為100MHz的話,這個(gè)時(shí)鐘域里所有timing path都需要能工作在100MHz下。這顯然是增強(qiáng)了時(shí)序設(shè)計(jì)的要求??墒侨绻谶@個(gè)時(shí)鐘域下面,有部分timing path是不需要做1T的check的,那么就可以通過(guò)添加時(shí)序例外來(lái)避免對(duì)這些timing path做1T的check,即降低了時(shí)序設(shè)計(jì)的要求。
在用TimeQuest做時(shí)序分析時(shí),如果非常熟悉設(shè)計(jì)的構(gòu)架和對(duì)時(shí)序的要求,又比較熟悉sdc的相關(guān)命令,那么可以直接在sdc文件里輸入時(shí)序約束的命令。而通常情況下,可以利用TimeQuest GUI提供的設(shè)定時(shí)序約束的向?qū)砑訒r(shí)序約束。不過(guò)要注意的是,用向?qū)傻臅r(shí)序約束,并不會(huì)被直接寫到sdc文件里,所以如果要保存這些時(shí)序約束,必須在TimeQuest用write sdc的命令來(lái)保存所生成的時(shí)序約束。
4. 執(zhí)行完整的編譯
在設(shè)定好時(shí)序約束以后,就需要對(duì)整個(gè)設(shè)計(jì)進(jìn)行完整的編譯。在編譯過(guò)程中,軟件會(huì)優(yōu)化設(shè)計(jì)的邏輯、布局布線等來(lái)盡可能滿足所有的時(shí)序約束。
如果沒(méi)有添加時(shí)序約束,那么軟件在編譯的時(shí)候,會(huì)按照默認(rèn)的時(shí)序約束對(duì)設(shè)計(jì)進(jìn)行優(yōu)化,對(duì)于絕大多數(shù)的設(shè)計(jì),都會(huì)報(bào)出來(lái)時(shí)序的問(wèn)題,但因?yàn)槟J(rèn)的時(shí)序約束與設(shè)計(jì)本身的要求在絕大多數(shù)情況下,都是不同的,所以這些時(shí)序的問(wèn)題也并不是設(shè)計(jì)本身的問(wèn)題,并沒(méi)有太多的參考價(jià)值,而且很多初學(xué)者也不會(huì)注意到這個(gè)問(wèn)題。這樣就把設(shè)計(jì)中很多潛在的時(shí)序問(wèn)題給隱藏起來(lái)了,最終帶來(lái)的可能就是系統(tǒng)運(yùn)行的不穩(wěn)定,甚至是完全不能運(yùn)行。
5. 驗(yàn)證時(shí)序
當(dāng)完成編譯以后,我們就可以用TimeQuest來(lái)驗(yàn)證時(shí)序了。在時(shí)序分析的過(guò)程中,TimeQuest會(huì)分析設(shè)計(jì)中所有的timing path,計(jì)算每一條timing path的延時(shí),檢查每一條timing path是否滿足時(shí)序約束,最后按照positive slack或negative slack來(lái)報(bào)告時(shí)序分析的結(jié)果。其中negative slack就表示對(duì)應(yīng)的timing path不滿足時(shí)序約束的要求(timing violation)。
如果遇到有不滿足時(shí)序要求的情況,則可以根據(jù)對(duì)應(yīng)的時(shí)序報(bào)告分析設(shè)計(jì),確定如何優(yōu)化設(shè)計(jì)使之滿足時(shí)序約束。時(shí)序約束有任何變化的話,都需要重新編譯設(shè)計(jì)。這個(gè)反復(fù)的過(guò)程可以讓我們解決設(shè)計(jì)中的時(shí)序問(wèn)題。
DAC7512控制器
DAC7512是一個(gè)具有三線串行接口的DAC。我們基于FPGA用Verilog語(yǔ)言實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的DAC7512的控制器。下面是控制器的結(jié)構(gòu)圖
DAC7512控制器由三個(gè)模塊組成,PLL用來(lái)生成控制器所要的時(shí)鐘C0(25MHz)和C1(50MHz),其lock信號(hào)用來(lái)做為控制器的異步reset。da_data模塊生成要送往DAC7512的數(shù)據(jù),其中DA_DATA為數(shù)據(jù),DA_DATA_EN為數(shù)據(jù)有效信號(hào),該模塊使用C0時(shí)鐘,整個(gè)屬于C0時(shí)鐘域。DAC7512模塊用于將DA_DATA轉(zhuǎn)換成符合DAC7512接口標(biāo)準(zhǔn)的串行數(shù)據(jù)并送給DAC7512,要用到C1(50MHz)和DA_SCLK(C1二分頻,25MHz)兩個(gè)時(shí)鐘。
DAC7512控制器一共有四個(gè)輸入輸出端口。CLK_IN為PLL的基準(zhǔn)時(shí)鐘,為25MHz。DA_DIN,DA_SCLK和DA_SYNC為三線串口,都為輸出端口。由于C0,C1是由同一個(gè)PLL輸出的,DA_SCLK是由C1經(jīng)二分頻得到的,三者之間是同步的,處于同一個(gè)clock group中。不過(guò)要注意一點(diǎn)的是,在串行總線上,DA_DIN是在DA_SCLK的下降沿有效的。把DA_DIN設(shè)計(jì)為C1時(shí)鐘域的信號(hào),并控制其值只在DA_SCLK為高電平的時(shí)候發(fā)生變化。這樣可以把DA_DIN與DA_SCLK之間的時(shí)序要求轉(zhuǎn)換為DA_DIN在C1時(shí)鐘域的時(shí)序要求,具體的使用方法我們跟著視頻一起來(lái)學(xué)習(xí)一下。
-
TimeQuest
+關(guān)注
關(guān)注
0文章
11瀏覽量
11674
發(fā)布評(píng)論請(qǐng)先 登錄
深入解析 onsemi NTJD1155L:高效 P 溝道負(fù)載開(kāi)關(guān)的卓越之選
Onsemi NTGS5120P和NVGS5120P P溝道MOSFET深度解析
深入解析安森美 NTHD4102P 雙P溝道 MOSFET
安森美 NTHD3100C MOSFET 深度剖析:特性、參數(shù)與應(yīng)用
Onsemi NTHS4101P:P溝道MOSFET的卓越之選
Onsemi NTJD4001N和NVTJD4001N MOSFET深度解析
安森美 NTJD4401N 和 NVJD4401N 雙 N 溝道小信號(hào) MOSFET 深度解析
onsemi NTJD4158C和NVJD4158C MOSFET器件介紹
安森美NTJD4105C小信號(hào)互補(bǔ)MOSFET的特性與應(yīng)用分析
Onsemi NTJS3157N MOSFET:小尺寸大能量
Onsemi NTJS3151P 和 NVJS3151P MOSFET 深度解析
Onsemi NTJS4405N和NVJS4405N MOSFET:小信號(hào)領(lǐng)域的卓越之選
深入解析 onsemi NTJS4151P P 溝道 MOSFET
FPGA時(shí)序分析工具TimeQuest詳解
如何使用TimeQuest
評(píng)論