chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA時序分析工具TimeQuest詳解

FPGA研究院 ? 來源:數(shù)字站 ? 2025-08-06 14:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01提出問題(點(diǎn)燈程序)

觀看以下程序:

module led(

input clk ,//系統(tǒng)時鐘,50MHZ

input rst_n ,//系統(tǒng)復(fù)位,低電平有效

output reg led

);

reg [24:0] cnt ;//定義一個計數(shù)器

always @(posedge clk or negedge rst_n)begin

if(rst_n==1'b0)begin

cnt <= 25'd0;

end

else begin

cnt <= cnt + 1;

end

end

always @(posedge clk or negedge rst_n)begin

if(rst_n==1'b0)begin

led <= 1'b1;

end

else if(cnt == 25'd24_999_999)begin

led <= ~led;

end

end

endmodule

問題:上述代碼所描述的邏輯電路在Cyclone IV E的EP4CE10F17C8(65nm)這個器件上能最高運(yùn)行在多少頻率的時鐘?

此問題需要時序分析軟件來告知我們答案,Altera通過QuartusTimeQuest軟件對___進(jìn)行分析,并給出報告。

時序分析注意:

1、時序分析一定是基于特定器件(該器件需要具體到一個特定型號的特定速度等級);

2、時序分析一定是基于某個邏輯設(shè)計在特定器件上經(jīng)過布局布線之后的網(wǎng)表(該網(wǎng)表包含了設(shè)計中每一個邏輯具體在該器件的什么資源上實(shí)現(xiàn),而且還包括該資源在器件內(nèi)的具體位置,還包括信號從每個節(jié)點(diǎn)傳輸?shù)较乱粋€節(jié)點(diǎn)的具體延遲時間)。

3、時序分析不是在對代碼進(jìn)行分析,而是在對真實(shí)的門級傳輸路徑進(jìn)行分析。

wKgZPGiS_JeACGs0AAFkmN0qy-U740.png

圖1 quartus軟件顯示工程使用的器件

02時序約束

全編譯工程

準(zhǔn)備好工程之后,先對工程全編譯一次,注意,是全編譯,不是分析和綜合,新手如果不確定,直接使用組合鍵 CTRL + L 吧。

為什么要全編譯呢?

這里有一個(知識)點(diǎn):時序分析一定是基于軟件編譯好的具體到一個特定型號的芯片網(wǎng)表進(jìn)行的。

時序分析的本質(zhì)是什么?

分析設(shè)計中每個信號在實(shí)際物理傳輸時的各種延遲是否滿足一定的要求。既然是延遲,那么就必須對應(yīng)到具體的一個物理網(wǎng)表,純粹對代碼進(jìn)行時序分析是沒有任何意義和依據(jù)的。時序分析分析的不是代碼,而是代碼描述的電路在某個具體型號芯片上實(shí)現(xiàn)時的物理特性。因此,進(jìn)行時序分析前,全編譯工程很重要。

正常編譯之后,TimeQuest會變紅報錯,這是由于沒有手動加入時序約束,系統(tǒng)默認(rèn)給CLK添加的時序約束是1GHZ,現(xiàn)綜合之后的最高時鐘頻率如圖2所示只能達(dá)到304.79MHZ,不能滿足默認(rèn)的1GHZ,軟件當(dāng)然就報錯了;

wKgZPGiS_JiAPpQFAAMFdpMaVlw478.png

圖2 工程編譯后TimeQuest報錯

默認(rèn)添加1GHZ的最大時鐘頻率約束如圖3所示:

wKgZPGiS_JiACW1WAAHtzA278GQ466.png

圖3 quartus默認(rèn)給工程添加1GHz時鐘約束

系統(tǒng)運(yùn)行最高時鐘頻率查看方式如圖4所示:

wKgZO2iS_JiAdaScAAJ3mBSBHjQ008.png

圖4 quartus查看工程運(yùn)行最大系統(tǒng)時鐘

理解時序與溫度的關(guān)聯(lián)

執(zhí)行全編譯之后,就可以查看整個工程的時序報告了。怎么看呢?每次編譯完成,Quartus軟件都會自動顯示編譯報告界面,如果沒有顯示,也可以點(diǎn)擊編譯報告圖標(biāo)來切換到編譯報告頁面,編譯報告圖標(biāo)就在下圖所示的位置,打開之后,時序報告都在 TimeQuest Timing Analyzer 這個欄目下面,點(diǎn)擊前面的三角符號即可展開,如圖5所示:

wKgZO2iS_JeAfNauAAKEPJ2IPrM596.png

圖5 quartus全編譯工程后查看時序報告

展開之后有好多個選項(xiàng),例如 Clocks,Slow 1200mV 85C Model、Slow 1200mV 0C Model、Fast 1200mV 0C Model。這里先介紹下這幾項(xiàng)的物理意義。

1、Clocks:這一項(xiàng)是顯示當(dāng)前的設(shè)計中有哪些時鐘信號,比如本節(jié)所用的例子中,就只有一個 clk的時鐘。

2、Slow 1200mV 85℃ Model:芯片內(nèi)核供電電壓 1200mV,工作溫度85度情況下的慢慢速傳輸模型。

3、Slow 1200mV 0℃Model:芯片內(nèi)核供電電壓 1200mV,工作溫度0度情況下的慢速傳輸模型。

4、Fast 1200mV 0℃ Model:芯片內(nèi)核供電電壓 1200mV,工作溫度0度情況下的快速傳輸模型。

根據(jù)專家說法(我還沒到能夠引經(jīng)據(jù)典講解芯片中信號傳輸特性隨溫度變化的能力,即使有講,也是 BD 來的,索性就不說原理了),溫度越高,芯片內(nèi)信號傳輸速度越慢,說是溫度會改變硅片材料,泄露電流和電子移動能力等特性,導(dǎo)致較高溫度下芯片內(nèi)信號傳輸速度變慢(這幾句我是借鑒來的)。信號在相同路徑中的傳輸時間變長,也就是延時會增加,這也就是做產(chǎn)品需要關(guān)心的問題。在實(shí)驗(yàn)室環(huán)境下運(yùn)行良好的系統(tǒng),能否在環(huán)境溫度達(dá)到 85℃ 的情況下依舊運(yùn)行良好?如果到了 85℃ 環(huán)境下運(yùn)行不好了,可能就是高溫導(dǎo)致的信號傳輸速度下降,從而導(dǎo)致時序不滿足了。

既然說溫度越高,芯片內(nèi)信號傳輸速度越慢,那么請問在“芯片內(nèi)核供電電壓 1200mV,工作溫度 0℃ 情況下也說個 Slow 又是什么意思呢?這個嘛,網(wǎng)上說法是晶體管閾值電壓會隨著溫度降低而降低,出現(xiàn)逆溫現(xiàn)象,有可能在低溫是克服載流子遷移加速問題,從而導(dǎo)致延時時間變長,實(shí)際上時序最差情況往往出現(xiàn)在低溫,而不是高溫狀態(tài)下。(不要問我更多,這幾句內(nèi)容我也是網(wǎng)上抄來的)。

不管是 0℃ 還是 85℃ 慢速條件下,信號傳輸速率變慢都有可能影響到目的寄存器的建立時間余量,信號傳輸速率變慢了,建立時間余量就小了。如果之前實(shí)驗(yàn)室環(huán)境下建立時間余量都已經(jīng)處于臨界狀態(tài)了,結(jié)果一到高溫環(huán)境,數(shù)據(jù)速率變慢,建立時間可能就無法再滿足了,整個設(shè)計就工作異常了。

當(dāng)然了,低溫情況下并不是所有的特性都會變慢,還是有些地方信號傳輸會變快,一旦傳輸速度變快,這個時候就要考慮另一個問題了——保持時間余量??焖偾闆r下數(shù)據(jù)傳輸速度變快了,如果之前實(shí)驗(yàn)室環(huán)境下保持時間余量都已經(jīng)處于臨界狀態(tài)了,結(jié)果一到低溫環(huán)境,數(shù)據(jù)速率變更快,保持時間可能就無法再滿足了,整個設(shè)計就工作異常了。

所以,看報告的時候,一般 Slow 1200mV 85C Model 和 Slow 1200mV 0C Model 情況下重點(diǎn)關(guān)注寄存器建立時間余量,而 Fast 1200mV 0C Model 情況下重點(diǎn)關(guān)注寄存器保持時間余量。當(dāng)然,話還是不說絕對了,在涉及到 IO 時序約束的時候,幾種情況還是都得看(雖然目前大部分情況下只關(guān)心了 Slow 1200mV 85C Model)

03查看最大時鐘運(yùn)行頻率

大部分情況下關(guān)心 Slow 1200mV 85C Model 時的情況,那么就先看這種模式下的時序報告。

展開 “TimeQuest Timing Analyzer” 下的 “Slow 1200mV 85C Model”,可以看到,排在第一項(xiàng)的就是 “Fmax Summary”。點(diǎn)擊 “Fmax Summary”,則右側(cè)顯示了當(dāng)前設(shè)計中每個時鐘域的邏輯能夠運(yùn)行的最大時鐘頻率。由于本例子只有一個時鐘信號,所以只顯示 clk 這個時鐘的最大運(yùn)行頻率,為 304.79MHz。

wKgZO2iS_JeABM20AANLNH8pO58997.png

圖6 quartus查看最大系統(tǒng)時鐘頻率

等等,大家有沒有發(fā)現(xiàn)一個神奇的事情,設(shè)計中有且僅有一個時鐘信號,而我們并沒有對設(shè)計加入任何的時序約束內(nèi)容,甚至連 SDC 文件都沒有,但是報告卻自動的搜尋到了這個 clk 信號,并且報告了其時鐘頻率,這。。。。是為啥呢?

這里就又有一個(知識)點(diǎn)。因?yàn)?,對于這樣一個簡單的設(shè)計,Quartus 軟件能夠在編譯過程中自動的識別出設(shè)計中潛在的時鐘屬性的信號,并按照軟件默認(rèn)的對時鐘的約束去分析設(shè)計。而對于一些較為復(fù)雜的設(shè)計或者多時鐘信號的設(shè)計,軟件可能就分析不出來或者無法確定到底誰是時鐘信號了,所以就無法給出時序報告。

只需要點(diǎn)擊 “TimeQuest Timing Analyzer” 下的 Clock 選項(xiàng)就可以查看軟件默認(rèn)的對該信號加的約束是多少了,如圖7所示:

wKgZPGiS_JeADTQPAAINpC97R1A197.png

圖7 quartus默認(rèn)添加的時鐘約束

可以看到,軟件自動識別了 clk 信號為設(shè)計的時鐘,而且認(rèn)為其周期為 1ns,也就是時鐘頻率為 1000MHz,占空比為 50%。芯片也就最高 400 多兆的運(yùn)行能力,軟件上來就加個 1000MHz 的時鐘信號,大概是想通過這種方式,讓每個設(shè)計都報時序錯誤,好提醒用戶記得加時序約束。當(dāng)然了,另一個好處就是按照 1000MHz 這種超極限約束,全局會默認(rèn)就按照最優(yōu)的可能去對設(shè)計進(jìn)行布局布線,使得設(shè)計即使忘了加約束,編譯結(jié)果也能有個較好的時序性能。

當(dāng)然,這只是對于簡單的設(shè)計,軟件能夠分析出來,而對于復(fù)雜的設(shè)計,軟件就沒這個本事了。所以還是希望大家不要以為軟件能幫你包辦一切,該自己動手的,還是不要讓軟件去浮想聯(lián)翩。

04加入時鐘約束

假如,這是一個很復(fù)雜的系統(tǒng),那么軟件將無法分析出系統(tǒng)中的時鐘信號,也就不能自動加入約束,所以,我們是無法查看到最大時鐘運(yùn)行頻率的,因此,接下來我們自己來為工程加入時鐘約束。

加入時鐘約束的方法有很多,比如:

1. 高手可以直接自己寫 SDC 文件。 ?

2. 可以用 TimeQuest Timing Analyzer Wizard 軟件按照向?qū)У闹敢徊揭徊讲僮鳌???

3. 可以使用 TimeQuest Timing Analyzer 工具以圖形化界面添加約束。

為了讓大家更加熟悉 TimeQuest Timing Analyzer 的用法,所以還是使用 TimeQuest Timing Analyzer 工具來對工程添加約束。

05打開 TimeQuest Timing Analyzer

打開TimeQuest Timing Analyzer的方法也有很多,通過菜單欄依次點(diǎn)擊:Tools->TimeQuest Timing Analyzer 可以打開,也可以直接點(diǎn)擊工具欄里的 TimeQuest Timing Analyzer 圖標(biāo),如下圖所示:

wKgZPGiS_JiAYds8AAA2wYeWLPk942.png

圖8 quartus的TimeQuest打開方式

不管用什么方法,總之打開就是了。打開之后的界面就是圖 9 的樣子了:

wKgZPGiS_JiAGHuDAAJr4fMVJKI974.png

圖9 quartus的TimeQuest界面

06創(chuàng)建網(wǎng)表(Create Timing Netlist)

要想進(jìn)行時序約束或時序分析,必須要有一個能夠進(jìn)行分析或約束的基本對象,那么什么是這個對象呢?對象就是網(wǎng)表模型。

網(wǎng)表模型是啥?先來說說網(wǎng)表是啥吧。簡單的理解,網(wǎng)表就是 Quartus 軟件經(jīng)過編譯,布局布線后得到的實(shí)際適配某一個特定型號芯片的電路信息,該電路信息就是對應(yīng)下載到芯片中后實(shí)際在芯片中呈現(xiàn)的電路。

一個具體的設(shè)計,在不同的溫度環(huán)境下,其工作表現(xiàn)是不一樣的,而分析的時候,取了三種模型,分別為 Slow 1200mV 85C Model、Slow 1200mV 0C Model 和 Fast 1200mV 0C Model,這三種模型,就是進(jìn)行時序分析時候的對象。

打開 TimeQuest Timing Analyzer 工具之后,是沒有選擇網(wǎng)表對象的,所以要想能夠進(jìn)行時序分析,先要選擇網(wǎng)表。選擇網(wǎng)表的過程稱為創(chuàng)建時序網(wǎng)表(Create Timing Netlist),至于如何創(chuàng)建網(wǎng)表,很多時序約束之類的文章會講多種方法,這里只分享最簡單直接明了的方法,就是在 TimeQuest Timing Analyzer 界面中直接雙擊 Create Timing Netlist 選項(xiàng)即可,如下圖10所示:

wKgZO2iS_JiAEvWRAAGNA6-IxL8326.png

圖10 TimeQuest創(chuàng)建網(wǎng)表

這種情況下,默認(rèn)創(chuàng)建的就是 Slow 1200mV 85C Model,創(chuàng)建完成后該選項(xiàng)會變成綠色,表示創(chuàng)建完成,同時,在這一欄的上方,也就是 Report 欄里,會出現(xiàn)各種當(dāng)前以及能提高的報告。如果選中 TimeQuest Timing Analyzer Summary 選項(xiàng),就能看的當(dāng)前使用的延時模型確實(shí)是 Slow 1200mV 85C Model。

07讀取時序約束文件(Read SDC File)

什么是讀取時序約束文件?為什么要讀取時序約束文件?

先說時序約束文件的作用吧,時序約束文件有兩個作用,一是指導(dǎo)EDA軟件(Quartus)進(jìn)行布局布線,二是指導(dǎo)時序分析軟件(TimeQuest Timing Analyzer)對EDA軟件編譯得到的網(wǎng)表進(jìn)行分析報告。

指導(dǎo)EDA軟件(Quartus)進(jìn)行布局布線這個功能很好理解,正如上面提到的一樣,如果沒有為工程加入時序約束,軟件就會默認(rèn)自動分析出可能的時鐘信號,并按照 1000MHZ 的高頻率對該信號進(jìn)行約束,那么軟件在進(jìn)行布局布線時候,就會認(rèn)為用戶希望所有的邏輯都必須能夠穩(wěn)定運(yùn)行在 1000MHZ 的時鐘頻率下,軟件會按照這個指示,盡可能的對工程中的布局布線進(jìn)行優(yōu)化,保證編譯結(jié)果能夠盡可能的穩(wěn)定運(yùn)行在 1000MHZ 的頻率下(當(dāng)然這在當(dāng)前的技術(shù)下是不可能實(shí)現(xiàn)的)。這就是約束文件的第一個作用,即指導(dǎo) EDA 軟件進(jìn)行布局布線。

指導(dǎo)時序分析軟件(TimeQuest Timing Analyzer)對 EDA 軟件編譯得到的網(wǎng)表進(jìn)行分析報告這個功能也很好理解,通過系統(tǒng)最大運(yùn)行時鐘頻率的計算方法,要想知道當(dāng)前設(shè)計實(shí)際能夠運(yùn)行在多少 MHZ 的頻率下,需要有一個參考,既當(dāng)前網(wǎng)表在指定的時鐘頻率下,寄存器的建立時間余量是多少,有了這個建立時間余量,就能夠計算出該邏輯能運(yùn)行的最高時鐘頻率了。

這里,就可以回答上面的兩個問題了。

什么是讀取時序約束文件?就是查詢了解針對當(dāng)前網(wǎng)表,添加了哪些約束內(nèi)容。為什么要讀取時序約束文件?就是為了能夠基于該時序約束信息對當(dāng)前的網(wǎng)表進(jìn)行分析,查看當(dāng)前的網(wǎng)表是否滿足約束的內(nèi)容,或者說計算出當(dāng)前的網(wǎng)表實(shí)際的表現(xiàn)參數(shù)與約束信息之間的關(guān)系。

針對上述的操作只需一秒間,讀取時序約束文件的方法也很簡單,直接雙擊“Read SDC File”選項(xiàng)即可。如圖 11 所示:

wKgZPGiS_JiAORvcAAF37yZZOyY827.png

圖11 TimeQuest讀取工程的時序約束文件

做到這里,相信就會有人質(zhì)疑了:這個工程并沒有加入任何的 SDC 文件,那這個操作,讀取的又是什么內(nèi)容呢?實(shí)際上,和前面說的一樣,因?yàn)闆]有加約束,所以軟件就自己分析出了一個時鐘,然后對那個時鐘信號添加1000MHZ的約束。只是用戶看不到具體的 sdc 文件而已。這里執(zhí)行讀取 Read SDC File 操作的時候,讀取的就是這個看不見的默認(rèn)約束文件。而如果用戶主動為當(dāng)前工程添加了時序約束文件,那么讀取的就是用戶添加的約束文件了。

08創(chuàng)建時鐘(Create Clock)

創(chuàng)建時鐘,嚴(yán)格來說應(yīng)該叫創(chuàng)建時鐘約束,就是為當(dāng)前網(wǎng)表模型(注意,此時還只是針對網(wǎng)表模型)指定一個明確的時鐘信號。這樣時序分析軟件就能夠基于該時鐘參數(shù),對網(wǎng)表中的各信號進(jìn)行分析了。創(chuàng)建時鐘(約束)步驟如下所示:

1、菜單欄依次點(diǎn)擊 Constraints -> Create Clock,打開時鐘約束界面。

wKgZPGiS_JiAVyLFAANJJ_axql0708.png

圖12 TimeQuest創(chuàng)建時鐘約束

2、在彈出的時鐘約束圖形界面中,輸入該時鐘的各項(xiàng)屬性。如圖 13 所示:

wKgZO2iS_JiAGIiUAABicpKtShI582.png

圖13 TimeQuest創(chuàng)建時鐘約束界面

時鐘名稱,這里的時鐘名稱是用戶為約束的該時鐘信號取一個方便識別的別名,而非被約束的時鐘的原本名稱。比如周星星是一個特工,組織上叫他 007,那么組織上在給他安排任務(wù)的時候,稱呼他就是 007,而不會叫他周星星,當(dāng)然也可以使用原本名稱。本工程中,需要被約束的時鐘信號本身名稱為 clk,這里約束也為 clk。

周期,時鐘周期,clk 的時鐘頻率為 50MHz,所以換算過來其周期就是 1000/50 =20ns。約束的時候,時鐘信號的頻率不能直接作為參數(shù)輸入,而是需要換算為周期后再作為參數(shù)。

上升時間,這里的上升時間是指什么時刻時鐘信號出現(xiàn)上升沿,不寫就默認(rèn)是0時刻了,右側(cè)的波形也能看出來。

下降時間,這里的下降時間是指什么時刻時鐘信號出現(xiàn)下降沿,不寫就默認(rèn)是周期的一半時刻了,右側(cè)的波形也能看的出來。

目標(biāo),這才是真正的時鐘信號的本名,這才是 007 的真名——周星星,只不過這個名字在執(zhí)行任務(wù)的時候沒有人理會而已。但是組織上為了知道 007 究竟是哪個人,必須給他建個檔案,檔案里會寫,007,真名周星星。所以這里的目標(biāo)就是指定約束的這個時鐘信號具體是對應(yīng)的哪個物理上的時鐘。

上述所有參數(shù)輸入好之后,生成的一個真實(shí)起作用的腳本命令。換句話說,上面輸入的各種參數(shù)只是為了方便用戶更加方便的添加約束,這些參數(shù)輸入之后,軟件就會根據(jù)這些參數(shù)生成最終起作用的腳本命令。

3、 上述參數(shù)輸入完畢之后,點(diǎn)擊 Run 即可完成創(chuàng)建時鐘約束的操作。執(zhí)行操作后可以看到,軟件的信息窗口中執(zhí)行了前面 UI 界面中展示的那句腳本。

wKgZO2iS_JiAapy2AAEi9lmCYpM401.png

圖14 TimeQuest創(chuàng)建時鐘約束成功界面

=create_clock -name clk -period 20.000 [get_ports {clk}]=

部分Quartus版本可能會出現(xiàn)圖 15 的問題:

wKgZPGiS_JiALk--AAB-5L7W9Z4896.png

圖15 TimeQuest創(chuàng)建時鐘約束失敗界面

這句腳本下面緊跟著的一條警告信息才是關(guān)鍵,警告原話是:

Ignored create_clock: Incorrect assignment for clock. Source node: Clk9M already has a clock(s) assigned to it. Use the -add option to assign multiple clocks to this node. Clock was not created or updated.

EDA軟件居然把剛剛的命令給忽略了,為啥呢?就因?yàn)?Clk9M 這個信號已經(jīng)被綁定到一個時鐘上了,哪里綁定的呢?就是軟件默認(rèn)自動的呀。哎,明明上面的約束才是真正想要的,結(jié)果軟件居然不認(rèn),還是認(rèn)他自己分析總結(jié)到的那個時鐘信號。

到這里,也是希望借此例子告訴大家一個事情,那就是每次加入一個約束之后,一定要看工具對這條約束的執(zhí)行報告,看看這條約束是否被正確執(zhí)行了,有沒有報告其他信息說約束失敗之類的。否則很有可能出現(xiàn)上述情況,導(dǎo)致約束并沒有生效。

警告說可以通過-add 選項(xiàng)來為此節(jié)點(diǎn)創(chuàng)建多個時鐘,不能那樣做,因?yàn)槟蔷瓦`背本意了,本意就是這個節(jié)點(diǎn)有且只有一個時鐘約束,所以變換思路,既然約束加不了,改總行了吧。怎么改呢?

在 TimeQuest Timing Analyzer 中,找到 Reports 下面的 Diagnostic 下面的 Report Clocks 選項(xiàng),如下圖 16 所示,雙擊該選項(xiàng),即可彈出時鐘報告窗口,如下圖 17 所示:

wKgZO2iS_JiAa6pkAABPULdrb1g659.png

圖16 TimeQuest打開時鐘報告步驟

wKgZO2iS_JiAC3p7AADhMoMu3mo830.png

圖17 TimeQuest時鐘報告界面

從圖 17 中可以看到,確實(shí)已經(jīng)存在一個名為 Clk9M 的約束。本來想著,既然有這個約束存在,那就刪了再創(chuàng)建,不是就能搞定了么。于是選中該信號,右鍵,選中 Remove Clock 選項(xiàng),將其刪除。本以為一切操作水到渠成,結(jié)果剛刪完,然后重新 Report Clocks,這廝馬上又回來了。

wKgZO2iS_JiAK-7pAADETw-LKlQ604.png

圖18 TimeQuest刪除時鐘約束

刪不掉,那試試編輯這個約束,改掉它呢?說干就干,還是選中該信號,右鍵,選中Edit Clock Constraint…選項(xiàng),如圖 19 所示:

wKgZPGiS_JiAJPfuAACx3ArDX_0137.png

圖19 TimeQuest修改時鐘約束

點(diǎn)擊之后,果然彈出了熟悉的約束編輯畫面,如圖 20 所示:

wKgZPGiS_JiAPOjdAAED8hbC_QM967.png

圖20 TimeQuest修改時鐘約束界面

彈出的編輯框中注意看,要改的地方很多,所以基本上除了 targets 一項(xiàng)不需要動以外,其他都得改。所以按照前面的約束方法,修改時鐘約束參數(shù),如圖 21 所示。

wKgZO2iS_JiAYfLOAADby7mkqnA545.png

圖21 TimeQuest修改時鐘約束完成后的界面

=這里面又有 2 個大坑= :

1、 Clock name 改不得,一改就又認(rèn)為是新創(chuàng)建時鐘,就是不給辦,依舊忽略。所以不得已,名字繼續(xù)保持為系統(tǒng)默認(rèn)的 Clk9M。

2、 Rising 和 Falling 兩項(xiàng)的值,要改還得自己計算,太麻煩,干脆直接將這兩個選項(xiàng)內(nèi)容刪除了,就可以讓軟件自動計算了。

改好之后,再 Run,沒有報告忽略的信息了,再 Report Clocks,發(fā)現(xiàn)時鐘的約束信息終于和設(shè)定的是一樣的了。

wKgZPGiS_JiAF6ojAACxwc88P9s807.png

圖22 TimeQuest時鐘約束修改成功

到此為止,時鐘約束就算是完成了。接下來,就應(yīng)該根據(jù)該時鐘約束生成對應(yīng)的 sdc 文件了。TimeQuest Timing Analyzer 提供了將當(dāng)前的所有 sdc 命令寫入到 sdc 文件的方法,在菜單欄依次點(diǎn)擊 Constraints -> Write SDC File 可以實(shí)現(xiàn),也可以在 Task 欄中直接雙擊 Write SDC File 選項(xiàng)。

wKgZO2iS_JiAeRnVAAMqEa4QUR8049.png

圖23 TimeQuest 保存時序約束文件

Write SDC File 打開之后,界面如圖 24 所示,默認(rèn)會以工程名稱+.out+.sdc 的格式命名該文件,可以把第一項(xiàng)中的.out 刪掉,就變成了“l(fā)ed.sdc”,點(diǎn)擊 OK,即可自動將約束內(nèi)容寫到“l(fā)ed.sdc”文件里。

wKgZPGiS_JiABnF2AAAvdS2GB3Q869.png

圖24 TimeQuest時序約束文件名更改

wKgZO2iS_JiANb23AAAtfXGUrjE626.png

圖25 TimeQuest時鐘約束文件名修改完

補(bǔ)充說明,如果工程中已經(jīng)有同名文件,那么該操作會直接使用新內(nèi)容覆蓋文件里原本的內(nèi)容。如果工程中沒有該同名文件,軟件就會新建此文件并將所有約束寫入該內(nèi)容。

上述操作完成后,TimeQuest Timing Analyzer 軟件就可以關(guān)掉了。但每次關(guān)閉的時候,軟件又會提示說讓用戶寫 SDC 文件,如下圖所示。剛剛已經(jīng)寫過了。直接選 No 就 OK 了,選 Yes 無非就是再重新寫一遍。

09使用約束文件指導(dǎo) Quartus 編譯

通過前面的操作,時鐘約束也約了,約束文件也創(chuàng)建了。但是這個文件是否就一定能夠指導(dǎo) Quartus 軟件進(jìn)行編譯了呢?接下來執(zhí)行下述幾步,以確保該文件已經(jīng)正確的被用于指導(dǎo) Quartus 軟件布局布線。

在 Quartus 菜單欄中,依次點(diǎn)擊 Assignments -> Settings 打開工程設(shè)置界面,如圖 26 所示。

wKgZO2iS_JiAc3SZAACjnGkhkuU636.png

圖26 quartus添加時序約束文件步驟1

設(shè)置界面如圖 27 所示。點(diǎn)擊設(shè)置里面的 TimeQuest Timing Analyzer,發(fā)現(xiàn)“SDC files to include in the project”里面,沒有添加任何文件。要知道,一個工程可以有多個 SDC 文件,而 Quartus 最終使用哪個約束文件,一定是要在這里添加的。

wKgZPGiS_JiATPj0AAErMojv4tI644.png

圖27 quartus添加時序約束文件步驟2

所以在這里,將剛剛建好的 led.sdc 文件添加進(jìn)來。如圖 28 所示。

wKgZO2iS_JiAJne4AACYuzCDIZg714.png

圖28 quartus添加時序約束文件步驟3

添加好之后,應(yīng)用設(shè)置并關(guān)閉,回到 Quartus 主界面中,會發(fā)現(xiàn)該文件已經(jīng)被加入工程了,然后對工程進(jìn)行全編譯(CTRL + L),軟件就會在該約束文件指導(dǎo)下進(jìn)行編譯了。編譯完成之后,就可以根據(jù)本節(jié)內(nèi)容開頭的描述,查看最大運(yùn)行時鐘頻率了,新的報告如圖 29 所示。

wKgZPGiS_JiACPicAAICox2gmL0192.png

圖29 quartus編譯含有SDC文件工程后查看最大系統(tǒng)時鐘頻率

然后你會發(fā)現(xiàn)一個真理,Quartus 編譯出來的結(jié)果,能夠運(yùn)行的最大頻率與約束息息相關(guān),約束要求不高,Quartus 也就隨便編譯優(yōu)化下,能滿足添加的約束要求即可。不會去做到最優(yōu)。

當(dāng)然,也可以雙擊 led.sdc 文件,看看里面的內(nèi)容,里面內(nèi)容最關(guān)鍵的就是下面這句了。

=create_clock -name {clk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {clk}=

本文轉(zhuǎn)載自數(shù)字站公眾號

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1650

    文章

    22205

    瀏覽量

    626812
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2302

    瀏覽量

    97187
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3832

    瀏覽量

    84353
  • 時序分析
    +關(guān)注

    關(guān)注

    2

    文章

    128

    瀏覽量

    24106

原文標(biāo)題:FPGA時序分析工具(TimeQuest)

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    FPGA 高級設(shè)計:時序分析和收斂

    的綜合、映射、布局和布線,以減小邏輯和布線延時,從而提高 工作頻率。 2、獲得正確的時序分析報告 幾乎所有的 FPGA 設(shè)計平臺都包含靜態(tài)時序分析
    發(fā)表于 06-17 17:07

    fpga時序分析一般都做哪些分析

    如題:fpga時序分析一般都做哪些分析我自己研究時序分析也有一段時間了 ,從理論到altera的
    發(fā)表于 10-22 22:20

    TimeQuest新手入門

    筆者常常在思考,雖說TimeQuest是一個分析物理時序是否合格的數(shù)學(xué)工具,但是TimeQuest真正意義上是在針對什么?這是一個很有趣的問
    發(fā)表于 08-02 07:35

    FPGA的約束設(shè)計和時序分析

    FPGA/CPLD的綜合、實(shí)現(xiàn)過程中指導(dǎo)邏輯的映射和布局布線。下面主要總結(jié)一下Xilinx FPGA時序約束設(shè)計和分析。
    發(fā)表于 09-21 07:45

    轉(zhuǎn)換到TimeQuest時序分析器教程(電子書)

    轉(zhuǎn)換到TimeQuest時序分析器教程(電子書)
    發(fā)表于 03-23 16:49 ?0次下載

    基于時序路徑的FPGA時序分析技術(shù)研究

    基于時序路徑的FPGA時序分析技術(shù)研究_周珊
    發(fā)表于 01-03 17:41 ?2次下載

    試用手記:為國產(chǎn)FPGA正名(四,時序工具)

    關(guān)鍵詞:FPGA , 國產(chǎn) , 國產(chǎn)FPGA , 試用 作者在:特權(quán)同學(xué) 關(guān)于時序工具的一些FAE解答: 問:你們的工具是否只提供所有輸入輸
    發(fā)表于 02-25 18:24 ?649次閱讀
    試用手記:為國產(chǎn)<b class='flag-5'>FPGA</b>正名(四,<b class='flag-5'>時序</b><b class='flag-5'>工具</b>)

    如何使用TimeQuest

    用Altera的話來說,TimeQuest Timing Analyzer是一個功能強(qiáng)大的,ASIC-style的時序分析工具。采用工業(yè)標(biāo)準(zhǔn)--SDC(synopsys design
    的頭像 發(fā)表于 03-08 14:52 ?2523次閱讀

    調(diào)用timequest工具對工程時序進(jìn)行分析

    TimeQuest Timing Analyzer是一個功能強(qiáng)大的,ASIC-style的時序分析工具。采用工業(yè)標(biāo)準(zhǔn)--SDC(synopsys design contraints)-
    的頭像 發(fā)表于 11-28 07:09 ?2392次閱讀

    正點(diǎn)原子FPGA靜態(tài)時序分析時序約束教程

    時序分析結(jié)果,并根據(jù)設(shè)計者的修復(fù)使設(shè)計完全滿足時序約束的要求。本章包括以下幾個部分: 1.1 靜態(tài)時序分析簡介 1.2
    發(fā)表于 11-11 08:00 ?67次下載
    正點(diǎn)原子<b class='flag-5'>FPGA</b>靜態(tài)<b class='flag-5'>時序</b><b class='flag-5'>分析</b>與<b class='flag-5'>時序</b>約束教程

    華為FPGA硬件的靜態(tài)時序分析與邏輯設(shè)計

    本文檔的主要內(nèi)容詳細(xì)介紹的是華為FPGA硬件的靜態(tài)時序分析與邏輯設(shè)計包括了:靜態(tài)時序分析一概念與流程,靜態(tài)
    發(fā)表于 12-21 17:10 ?21次下載
    華為<b class='flag-5'>FPGA</b>硬件的靜態(tài)<b class='flag-5'>時序</b><b class='flag-5'>分析</b>與邏輯設(shè)計

    時序分析Timequest教程

    本文檔的主要內(nèi)容詳細(xì)介紹的是時序分析Timequest教程免費(fèi)下載。
    發(fā)表于 01-14 16:04 ?3次下載
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b>的<b class='flag-5'>Timequest</b>教程

    時序分析Timequest教程

    本文檔的主要內(nèi)容詳細(xì)介紹的是時序分析Timequest教程免費(fèi)下載。
    發(fā)表于 01-14 16:04 ?15次下載
    <b class='flag-5'>時序</b><b class='flag-5'>分析</b>的<b class='flag-5'>Timequest</b>教程

    FPGA設(shè)計中時序分析的基本概念

    時序分析FPGA設(shè)計中永恒的話題,也是FPGA開發(fā)人員設(shè)計進(jìn)階的必由之路。慢慢來,先介紹時序分析
    的頭像 發(fā)表于 03-18 11:07 ?3702次閱讀

    FPGA靜態(tài)時序分析詳解

    靜態(tài)時序分析簡稱STA,它是一種窮盡的分析方法,它按照同步電路設(shè)計的要求,根據(jù)電路網(wǎng)表的拓?fù)浣Y(jié)構(gòu),計算并檢查電路中每一個DFF(觸發(fā)器)的建立和保持時間以及其他基于路徑的時延要求是否滿足。STA作為
    的頭像 發(fā)表于 09-27 14:45 ?3830次閱讀