18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

FPGA時(shí)序分析工具TimeQuest詳解

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

掃碼添加小助手

加入工程師交流群

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

觀看以下程序:

module led(

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

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

output reg led

);

reg [24:0] cnt ;//定義一個(gè)計(jì)數(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

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

此問(wèn)題需要時(shí)序分析軟件來(lái)告知我們答案,Altera通過(guò)QuartusTimeQuest軟件對(duì)___進(jìn)行分析,并給出報(bào)告。

時(shí)序分析注意:

1、時(shí)序分析一定是基于特定器件(該器件需要具體到一個(gè)特定型號(hào)的特定速度等級(jí));

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

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

wKgZPGiS_JeACGs0AAFkmN0qy-U740.png

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

02時(shí)序約束

全編譯工程

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

為什么要全編譯呢?

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

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

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

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

wKgZPGiS_JiAPpQFAAMFdpMaVlw478.png

圖2 工程編譯后TimeQuest報(bào)錯(cuò)

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

wKgZPGiS_JiACW1WAAHtzA278GQ466.png

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

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

wKgZO2iS_JiAdaScAAJ3mBSBHjQ008.png

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

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

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

wKgZO2iS_JeAfNauAAKEPJ2IPrM596.png

圖5 quartus全編譯工程后查看時(shí)序報(bào)告

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

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

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

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

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

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

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

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

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

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

wKgZO2iS_JeABM20AANLNH8pO58997.png

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

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

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

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

wKgZPGiS_JeADTQPAAINpC97R1A197.png

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

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

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

04加入時(shí)鐘約束

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

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

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

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

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

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

05打開(kāi) TimeQuest Timing Analyzer

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

wKgZPGiS_JiAYds8AAA2wYeWLPk942.png

圖8 quartus的TimeQuest打開(kāi)方式

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

wKgZPGiS_JiAGHuDAAJr4fMVJKI974.png

圖9 quartus的TimeQuest界面

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

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

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

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

打開(kāi) TimeQuest Timing Analyzer 工具之后,是沒(méi)有選擇網(wǎng)表對(duì)象的,所以要想能夠進(jìn)行時(shí)序分析,先要選擇網(wǎng)表。選擇網(wǎng)表的過(guò)程稱為創(chuàng)建時(shí)序網(wǎng)表(Create Timing Netlist),至于如何創(chuàng)建網(wǎng)表,很多時(shí)序約束之類的文章會(huì)講多種方法,這里只分享最簡(jiǎn)單直接明了的方法,就是在 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)會(huì)變成綠色,表示創(chuàng)建完成,同時(shí),在這一欄的上方,也就是 Report 欄里,會(huì)出現(xiàn)各種當(dāng)前以及能提高的報(bào)告。如果選中 TimeQuest Timing Analyzer Summary 選項(xiàng),就能看的當(dāng)前使用的延時(shí)模型確實(shí)是 Slow 1200mV 85C Model。

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

什么是讀取時(shí)序約束文件?為什么要讀取時(shí)序約束文件?

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

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

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

這里,就可以回答上面的兩個(gè)問(wèn)題了。

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

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

wKgZPGiS_JiAORvcAAF37yZZOyY827.png

圖11 TimeQuest讀取工程的時(shí)序約束文件

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

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

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

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

wKgZPGiS_JiAVyLFAANJJ_axql0708.png

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

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

wKgZO2iS_JiAGIiUAABicpKtShI582.png

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

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

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

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

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

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

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

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

wKgZO2iS_JiAapy2AAEi9lmCYpM401.png

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

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

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

wKgZPGiS_JiALk--AAB-5L7W9Z4896.png

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

這句腳本下面緊跟著的一條警告信息才是關(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 這個(gè)信號(hào)已經(jīng)被綁定到一個(gè)時(shí)鐘上了,哪里綁定的呢?就是軟件默認(rèn)自動(dòng)的呀。哎,明明上面的約束才是真正想要的,結(jié)果軟件居然不認(rèn),還是認(rèn)他自己分析總結(jié)到的那個(gè)時(shí)鐘信號(hào)。

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

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

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

wKgZO2iS_JiAa6pkAABPULdrb1g659.png

圖16 TimeQuest打開(kāi)時(shí)鐘報(bào)告步驟

wKgZO2iS_JiAC3p7AADhMoMu3mo830.png

圖17 TimeQuest時(shí)鐘報(bào)告界面

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

wKgZO2iS_JiAK-7pAADETw-LKlQ604.png

圖18 TimeQuest刪除時(shí)鐘約束

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

wKgZPGiS_JiAJPfuAACx3ArDX_0137.png

圖19 TimeQuest修改時(shí)鐘約束

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

wKgZPGiS_JiAPOjdAAED8hbC_QM967.png

圖20 TimeQuest修改時(shí)鐘約束界面

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

wKgZO2iS_JiAYfLOAADby7mkqnA545.png

圖21 TimeQuest修改時(shí)鐘約束完成后的界面

=這里面又有 2 個(gè)大坑= :

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

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

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

wKgZPGiS_JiAF6ojAACxwc88P9s807.png

圖22 TimeQuest時(shí)鐘約束修改成功

到此為止,時(shí)鐘約束就算是完成了。接下來(lái),就應(yīng)該根據(jù)該時(shí)鐘約束生成對(duì)應(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 保存時(shí)序約束文件

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

wKgZPGiS_JiABnF2AAAvdS2GB3Q869.png

圖24 TimeQuest時(shí)序約束文件名更改

wKgZO2iS_JiANb23AAAtfXGUrjE626.png

圖25 TimeQuest時(shí)鐘約束文件名修改完

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

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

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

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

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

wKgZO2iS_JiAc3SZAACjnGkhkuU636.png

圖26 quartus添加時(shí)序約束文件步驟1

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

wKgZPGiS_JiATPj0AAErMojv4tI644.png

圖27 quartus添加時(shí)序約束文件步驟2

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

wKgZO2iS_JiAJne4AACYuzCDIZg714.png

圖28 quartus添加時(shí)序約束文件步驟3

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

wKgZPGiS_JiACPicAAICox2gmL0192.png

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

然后你會(huì)發(fā)現(xiàn)一個(gè)真理,Quartus 編譯出來(lái)的結(jié)果,能夠運(yùn)行的最大頻率與約束息息相關(guān),約束要求不高,Quartus 也就隨便編譯優(yōu)化下,能滿足添加的約束要求即可。不會(huì)去做到最優(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ù)字站公眾號(hào)

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

    關(guān)注

    1650

    文章

    22217

    瀏覽量

    628009
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2303

    瀏覽量

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

    關(guān)注

    117

    文章

    3832

    瀏覽量

    84556
  • 時(shí)序分析
    +關(guān)注

    關(guān)注

    2

    文章

    128

    瀏覽量

    24129

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    fpga時(shí)序分析一般都做哪些分析

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

    TimeQuest新手入門

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

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

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

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

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

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

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

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

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

    如何使用TimeQuest

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

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

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

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

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

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

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

    時(shí)序分析Timequest教程

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

    時(shí)序分析Timequest教程

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

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

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

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

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