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提出問題(點燈程序)

觀看以下程序:

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)這個器件上能最高運行在多少頻率的時鐘?

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

時序分析注意:

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

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

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

wKgZPGiS_JeACGs0AAFkmN0qy-U740.png

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

02時序約束

全編譯工程

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

為什么要全編譯呢?

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

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

分析設(shè)計中每個信號在實際物理傳輸時的各種延遲是否滿足一定的要求。既然是延遲,那么就必須對應(yīng)到具體的一個物理網(wǎng)表,純粹對代碼進(jìn)行時序分析是沒有任何意義和依據(jù)的。時序分析分析的不是代碼,而是代碼描述的電路在某個具體型號芯片上實現(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)運行最高時鐘頻率查看方式如圖4所示:

wKgZO2iS_JiAdaScAAJ3mBSBHjQ008.png

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

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

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

wKgZO2iS_JeAfNauAAKEPJ2IPrM596.png

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

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

1、Clocks:這一項是顯示當(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)心的問題。在實驗室環(huán)境下運行良好的系統(tǒng),能否在環(huán)境溫度達(dá)到 85℃ 的情況下依舊運行良好?如果到了 85℃ 環(huán)境下運行不好了,可能就是高溫導(dǎo)致的信號傳輸速度下降,從而導(dǎo)致時序不滿足了。

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

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

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

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

03查看最大時鐘運行頻率

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

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

wKgZO2iS_JeABM20AANLNH8pO58997.png

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

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

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

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

wKgZPGiS_JeADTQPAAINpC97R1A197.png

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

可以看到,軟件自動識別了 clk 信號為設(shè)計的時鐘,而且認(rèn)為其周期為 1ns,也就是時鐘頻率為 1000MHz,占空比為 50%。芯片也就最高 400 多兆的運行能力,軟件上來就加個 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)中的時鐘信號,也就不能自動加入約束,所以,我們是無法查看到最大時鐘運行頻率的,因此,接下來我們自己來為工程加入時鐘約束。

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

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的方法也有很多,通過菜單欄依次點擊:Tools->TimeQuest Timing Analyzer 可以打開,也可以直接點擊工具欄里的 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)過編譯,布局布線后得到的實際適配某一個特定型號芯片的電路信息,該電路信息就是對應(yīng)下載到芯片中后實際在芯片中呈現(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 選項即可,如下圖10所示:

wKgZO2iS_JiAEvWRAAGNA6-IxL8326.png

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

這種情況下,默認(rèn)創(chuàng)建的就是 Slow 1200mV 85C Model,創(chuàng)建完成后該選項會變成綠色,表示創(chuàng)建完成,同時,在這一欄的上方,也就是 Report 欄里,會出現(xiàn)各種當(dāng)前以及能提高的報告。如果選中 TimeQuest Timing Analyzer Summary 選項,就能看的當(dāng)前使用的延時模型確實是 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)定運行在 1000MHZ 的時鐘頻率下,軟件會按照這個指示,盡可能的對工程中的布局布線進(jìn)行優(yōu)化,保證編譯結(jié)果能夠盡可能的穩(wěn)定運行在 1000MHZ 的頻率下(當(dāng)然這在當(dāng)前的技術(shù)下是不可能實現(xiàn)的)。這就是約束文件的第一個作用,即指導(dǎo) EDA 軟件進(jìn)行布局布線。

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

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

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

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

wKgZPGiS_JiAORvcAAF37yZZOyY827.png

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

做到這里,相信就會有人質(zhì)疑了:這個工程并沒有加入任何的 SDC 文件,那這個操作,讀取的又是什么內(nèi)容呢?實際上,和前面說的一樣,因為沒有加約束,所以軟件就自己分析出了一個時鐘,然后對那個時鐘信號添加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、菜單欄依次點擊 Constraints -> Create Clock,打開時鐘約束界面。

wKgZPGiS_JiAVyLFAANJJ_axql0708.png

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

2、在彈出的時鐘約束圖形界面中,輸入該時鐘的各項屬性。如圖 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ù)輸入之后,軟件就會根據(jù)這些參數(shù)生成最終起作用的腳本命令。

3、 上述參數(shù)輸入完畢之后,點擊 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軟件居然把剛剛的命令給忽略了,為啥呢?就因為 Clk9M 這個信號已經(jīng)被綁定到一個時鐘上了,哪里綁定的呢?就是軟件默認(rèn)自動的呀。哎,明明上面的約束才是真正想要的,結(jié)果軟件居然不認(rèn),還是認(rèn)他自己分析總結(jié)到的那個時鐘信號。

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

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

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

wKgZO2iS_JiAa6pkAABPULdrb1g659.png

圖16 TimeQuest打開時鐘報告步驟

wKgZO2iS_JiAC3p7AADhMoMu3mo830.png

圖17 TimeQuest時鐘報告界面

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

wKgZO2iS_JiAK-7pAADETw-LKlQ604.png

圖18 TimeQuest刪除時鐘約束

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

wKgZPGiS_JiAJPfuAACx3ArDX_0137.png

圖19 TimeQuest修改時鐘約束

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

wKgZPGiS_JiAPOjdAAED8hbC_QM967.png

圖20 TimeQuest修改時鐘約束界面

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

wKgZO2iS_JiAYfLOAADby7mkqnA545.png

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

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

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

2、 Rising 和 Falling 兩項的值,要改還得自己計算,太麻煩,干脆直接將這兩個選項內(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 文件的方法,在菜單欄依次點擊 Constraints -> Write SDC File 可以實現(xiàn),也可以在 Task 欄中直接雙擊 Write SDC File 選項。

wKgZO2iS_JiAeRnVAAMqEa4QUR8049.png

圖23 TimeQuest 保存時序約束文件

Write SDC File 打開之后,界面如圖 24 所示,默認(rèn)會以工程名稱+.out+.sdc 的格式命名該文件,可以把第一項中的.out 刪掉,就變成了“l(fā)ed.sdc”,點擊 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 菜單欄中,依次點擊 Assignments -> Settings 打開工程設(shè)置界面,如圖 26 所示。

wKgZO2iS_JiAc3SZAACjnGkhkuU636.png

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

設(shè)置界面如圖 27 所示。點擊設(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)容開頭的描述,查看最大運行時鐘頻率了,新的報告如圖 29 所示。

wKgZPGiS_JiACPicAAICox2gmL0192.png

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

然后你會發(fā)現(xiàn)一個真理,Quartus 編譯出來的結(jié)果,能夠運行的最大頻率與約束息息相關(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1663

    文章

    22491

    瀏覽量

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

    關(guān)注

    32

    文章

    2320

    瀏覽量

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

    關(guān)注

    117

    文章

    3847

    瀏覽量

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

    關(guān)注

    2

    文章

    130

    瀏覽量

    24271

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guā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的綜合、實現(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 ?794次閱讀
    試用手記:為國產(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 ?2793次閱讀

    調(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 ?2763次閱讀

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

    時序分析結(jié)果,并根據(jù)設(shè)計者的修復(fù)使設(shè)計完全滿足時序約束的要求。本章包括以下幾個部分: 1.1 靜態(tài)時序分析簡介 1.2
    發(fā)表于 11-11 08:00 ?68次下載
    正點原子<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 ?22次下載
    華為<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ā)表于 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ā)表于 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 ?4473次閱讀

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

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