01提出問題(點燈程序)
觀看以下程序:
module led(
input clk ,//系統(tǒng)時鐘,50MHZ
input rst_n ,//系統(tǒng)復位,低電平有效
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通過Quartus的TimeQuest軟件對___進行分析,并給出報告。
時序分析注意:
1、時序分析一定是基于特定器件(該器件需要具體到一個特定型號的特定速度等級);
2、時序分析一定是基于某個邏輯設計在特定器件上經(jīng)過布局布線之后的網(wǎng)表(該網(wǎng)表包含了設計中每一個邏輯具體在該器件的什么資源上實現(xiàn),而且還包括該資源在器件內(nèi)的具體位置,還包括信號從每個節(jié)點傳輸?shù)较乱粋€節(jié)點的具體延遲時間)。
3、時序分析不是在對代碼進行分析,而是在對真實的門級傳輸路徑進行分析。
圖1 quartus軟件顯示工程使用的器件
02時序約束
全編譯工程
準備好工程之后,先對工程全編譯一次,注意,是全編譯,不是分析和綜合,新手如果不確定,直接使用組合鍵 CTRL + L 吧。
為什么要全編譯呢?
這里有一個(知識)點:時序分析一定是基于軟件編譯好的具體到一個特定型號的芯片網(wǎng)表進行的。
時序分析的本質(zhì)是什么?
分析設計中每個信號在實際物理傳輸時的各種延遲是否滿足一定的要求。既然是延遲,那么就必須對應到具體的一個物理網(wǎng)表,純粹對代碼進行時序分析是沒有任何意義和依據(jù)的。時序分析分析的不是代碼,而是代碼描述的電路在某個具體型號芯片上實現(xiàn)時的物理特性。因此,進行時序分析前,全編譯工程很重要。
正常編譯之后,TimeQuest會變紅報錯,這是由于沒有手動加入時序約束,系統(tǒng)默認給CLK添加的時序約束是1GHZ,現(xiàn)綜合之后的最高時鐘頻率如圖2所示只能達到304.79MHZ,不能滿足默認的1GHZ,軟件當然就報錯了;
圖2 工程編譯后TimeQuest報錯
默認添加1GHZ的最大時鐘頻率約束如圖3所示:
圖3 quartus默認給工程添加1GHz時鐘約束
系統(tǒng)運行最高時鐘頻率查看方式如圖4所示:
圖4 quartus查看工程運行最大系統(tǒng)時鐘
理解時序與溫度的關聯(lián)
執(zhí)行全編譯之后,就可以查看整個工程的時序報告了。怎么看呢?每次編譯完成,Quartus軟件都會自動顯示編譯報告界面,如果沒有顯示,也可以點擊編譯報告圖標來切換到編譯報告頁面,編譯報告圖標就在下圖所示的位置,打開之后,時序報告都在 TimeQuest Timing Analyzer 這個欄目下面,點擊前面的三角符號即可展開,如圖5所示:
圖5 quartus全編譯工程后查看時序報告
展開之后有好多個選項,例如 Clocks,Slow 1200mV 85C Model、Slow 1200mV 0C Model、Fast 1200mV 0C Model。這里先介紹下這幾項的物理意義。
1、Clocks:這一項是顯示當前的設計中有哪些時鐘信號,比如本節(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)信號傳輸速度越慢,說是溫度會改變硅片材料,泄露電流和電子移動能力等特性,導致較高溫度下芯片內(nèi)信號傳輸速度變慢(這幾句我是借鑒來的)。信號在相同路徑中的傳輸時間變長,也就是延時會增加,這也就是做產(chǎn)品需要關心的問題。在實驗室環(huán)境下運行良好的系統(tǒng),能否在環(huán)境溫度達到 85℃ 的情況下依舊運行良好?如果到了 85℃ 環(huán)境下運行不好了,可能就是高溫導致的信號傳輸速度下降,從而導致時序不滿足了。
既然說溫度越高,芯片內(nèi)信號傳輸速度越慢,那么請問在“芯片內(nèi)核供電電壓 1200mV,工作溫度 0℃ 情況下也說個 Slow 又是什么意思呢?這個嘛,網(wǎng)上說法是晶體管閾值電壓會隨著溫度降低而降低,出現(xiàn)逆溫現(xiàn)象,有可能在低溫是克服載流子遷移加速問題,從而導致延時時間變長,實際上時序最差情況往往出現(xiàn)在低溫,而不是高溫狀態(tài)下。(不要問我更多,這幾句內(nèi)容我也是網(wǎng)上抄來的)。
不管是 0℃ 還是 85℃ 慢速條件下,信號傳輸速率變慢都有可能影響到目的寄存器的建立時間余量,信號傳輸速率變慢了,建立時間余量就小了。如果之前實驗室環(huán)境下建立時間余量都已經(jīng)處于臨界狀態(tài)了,結果一到高溫環(huán)境,數(shù)據(jù)速率變慢,建立時間可能就無法再滿足了,整個設計就工作異常了。
當然了,低溫情況下并不是所有的特性都會變慢,還是有些地方信號傳輸會變快,一旦傳輸速度變快,這個時候就要考慮另一個問題了——保持時間余量??焖偾闆r下數(shù)據(jù)傳輸速度變快了,如果之前實驗室環(huán)境下保持時間余量都已經(jīng)處于臨界狀態(tài)了,結果一到低溫環(huán)境,數(shù)據(jù)速率變更快,保持時間可能就無法再滿足了,整個設計就工作異常了。
所以,看報告的時候,一般 Slow 1200mV 85C Model 和 Slow 1200mV 0C Model 情況下重點關注寄存器建立時間余量,而 Fast 1200mV 0C Model 情況下重點關注寄存器保持時間余量。當然,話還是不說絕對了,在涉及到 IO 時序約束的時候,幾種情況還是都得看(雖然目前大部分情況下只關心了 Slow 1200mV 85C Model)
03查看最大時鐘運行頻率
大部分情況下關心 Slow 1200mV 85C Model 時的情況,那么就先看這種模式下的時序報告。
展開 “TimeQuest Timing Analyzer” 下的 “Slow 1200mV 85C Model”,可以看到,排在第一項的就是 “Fmax Summary”。點擊 “Fmax Summary”,則右側顯示了當前設計中每個時鐘域的邏輯能夠運行的最大時鐘頻率。由于本例子只有一個時鐘信號,所以只顯示 clk 這個時鐘的最大運行頻率,為 304.79MHz。
圖6 quartus查看最大系統(tǒng)時鐘頻率
等等,大家有沒有發(fā)現(xiàn)一個神奇的事情,設計中有且僅有一個時鐘信號,而我們并沒有對設計加入任何的時序約束內(nèi)容,甚至連 SDC 文件都沒有,但是報告卻自動的搜尋到了這個 clk 信號,并且報告了其時鐘頻率,這。。。。是為啥呢?
這里就又有一個(知識)點。因為,對于這樣一個簡單的設計,Quartus 軟件能夠在編譯過程中自動的識別出設計中潛在的時鐘屬性的信號,并按照軟件默認的對時鐘的約束去分析設計。而對于一些較為復雜的設計或者多時鐘信號的設計,軟件可能就分析不出來或者無法確定到底誰是時鐘信號了,所以就無法給出時序報告。
只需要點擊 “TimeQuest Timing Analyzer” 下的 Clock 選項就可以查看軟件默認的對該信號加的約束是多少了,如圖7所示:
圖7 quartus默認添加的時鐘約束
可以看到,軟件自動識別了 clk 信號為設計的時鐘,而且認為其周期為 1ns,也就是時鐘頻率為 1000MHz,占空比為 50%。芯片也就最高 400 多兆的運行能力,軟件上來就加個 1000MHz 的時鐘信號,大概是想通過這種方式,讓每個設計都報時序錯誤,好提醒用戶記得加時序約束。當然了,另一個好處就是按照 1000MHz 這種超極限約束,全局會默認就按照最優(yōu)的可能去對設計進行布局布線,使得設計即使忘了加約束,編譯結果也能有個較好的時序性能。
當然,這只是對于簡單的設計,軟件能夠分析出來,而對于復雜的設計,軟件就沒這個本事了。所以還是希望大家不要以為軟件能幫你包辦一切,該自己動手的,還是不要讓軟件去浮想聯(lián)翩。
04加入時鐘約束
假如,這是一個很復雜的系統(tǒng),那么軟件將無法分析出系統(tǒng)中的時鐘信號,也就不能自動加入約束,所以,我們是無法查看到最大時鐘運行頻率的,因此,接下來我們自己來為工程加入時鐘約束。
加入時鐘約束的方法有很多,比如:
1. 高手可以直接自己寫 SDC 文件。 ?
2. 可以用 TimeQuest Timing Analyzer Wizard 軟件按照向導的指引一步一步操作。 ??
3. 可以使用 TimeQuest Timing Analyzer 工具以圖形化界面添加約束。
為了讓大家更加熟悉 TimeQuest Timing Analyzer 的用法,所以還是使用 TimeQuest Timing Analyzer 工具來對工程添加約束。
05打開 TimeQuest Timing Analyzer
打開TimeQuest Timing Analyzer的方法也有很多,通過菜單欄依次點擊:Tools->TimeQuest Timing Analyzer 可以打開,也可以直接點擊工具欄里的 TimeQuest Timing Analyzer 圖標,如下圖所示:
圖8 quartus的TimeQuest打開方式
不管用什么方法,總之打開就是了。打開之后的界面就是圖 9 的樣子了:
圖9 quartus的TimeQuest界面
06創(chuàng)建網(wǎng)表(Create Timing Netlist)
要想進行時序約束或時序分析,必須要有一個能夠進行分析或約束的基本對象,那么什么是這個對象呢?對象就是網(wǎng)表模型。
網(wǎng)表模型是啥?先來說說網(wǎng)表是啥吧。簡單的理解,網(wǎng)表就是 Quartus 軟件經(jīng)過編譯,布局布線后得到的實際適配某一個特定型號芯片的電路信息,該電路信息就是對應下載到芯片中后實際在芯片中呈現(xiàn)的電路。
一個具體的設計,在不同的溫度環(huán)境下,其工作表現(xiàn)是不一樣的,而分析的時候,取了三種模型,分別為 Slow 1200mV 85C Model、Slow 1200mV 0C Model 和 Fast 1200mV 0C Model,這三種模型,就是進行時序分析時候的對象。
打開 TimeQuest Timing Analyzer 工具之后,是沒有選擇網(wǎng)表對象的,所以要想能夠進行時序分析,先要選擇網(wǎng)表。選擇網(wǎng)表的過程稱為創(chuàng)建時序網(wǎng)表(Create Timing Netlist),至于如何創(chuàng)建網(wǎng)表,很多時序約束之類的文章會講多種方法,這里只分享最簡單直接明了的方法,就是在 TimeQuest Timing Analyzer 界面中直接雙擊 Create Timing Netlist 選項即可,如下圖10所示:
圖10 TimeQuest創(chuàng)建網(wǎng)表
這種情況下,默認創(chuàng)建的就是 Slow 1200mV 85C Model,創(chuàng)建完成后該選項會變成綠色,表示創(chuàng)建完成,同時,在這一欄的上方,也就是 Report 欄里,會出現(xiàn)各種當前以及能提高的報告。如果選中 TimeQuest Timing Analyzer Summary 選項,就能看的當前使用的延時模型確實是 Slow 1200mV 85C Model。
07讀取時序約束文件(Read SDC File)
什么是讀取時序約束文件?為什么要讀取時序約束文件?
先說時序約束文件的作用吧,時序約束文件有兩個作用,一是指導EDA軟件(Quartus)進行布局布線,二是指導時序分析軟件(TimeQuest Timing Analyzer)對EDA軟件編譯得到的網(wǎng)表進行分析報告。
指導EDA軟件(Quartus)進行布局布線這個功能很好理解,正如上面提到的一樣,如果沒有為工程加入時序約束,軟件就會默認自動分析出可能的時鐘信號,并按照 1000MHZ 的高頻率對該信號進行約束,那么軟件在進行布局布線時候,就會認為用戶希望所有的邏輯都必須能夠穩(wěn)定運行在 1000MHZ 的時鐘頻率下,軟件會按照這個指示,盡可能的對工程中的布局布線進行優(yōu)化,保證編譯結果能夠盡可能的穩(wěn)定運行在 1000MHZ 的頻率下(當然這在當前的技術下是不可能實現(xiàn)的)。這就是約束文件的第一個作用,即指導 EDA 軟件進行布局布線。
指導時序分析軟件(TimeQuest Timing Analyzer)對 EDA 軟件編譯得到的網(wǎng)表進行分析報告這個功能也很好理解,通過系統(tǒng)最大運行時鐘頻率的計算方法,要想知道當前設計實際能夠運行在多少 MHZ 的頻率下,需要有一個參考,既當前網(wǎng)表在指定的時鐘頻率下,寄存器的建立時間余量是多少,有了這個建立時間余量,就能夠計算出該邏輯能運行的最高時鐘頻率了。
這里,就可以回答上面的兩個問題了。
什么是讀取時序約束文件?就是查詢了解針對當前網(wǎng)表,添加了哪些約束內(nèi)容。為什么要讀取時序約束文件?就是為了能夠基于該時序約束信息對當前的網(wǎng)表進行分析,查看當前的網(wǎng)表是否滿足約束的內(nèi)容,或者說計算出當前的網(wǎng)表實際的表現(xiàn)參數(shù)與約束信息之間的關系。
針對上述的操作只需一秒間,讀取時序約束文件的方法也很簡單,直接雙擊“Read SDC File”選項即可。如圖 11 所示:
圖11 TimeQuest讀取工程的時序約束文件
做到這里,相信就會有人質(zhì)疑了:這個工程并沒有加入任何的 SDC 文件,那這個操作,讀取的又是什么內(nèi)容呢?實際上,和前面說的一樣,因為沒有加約束,所以軟件就自己分析出了一個時鐘,然后對那個時鐘信號添加1000MHZ的約束。只是用戶看不到具體的 sdc 文件而已。這里執(zhí)行讀取 Read SDC File 操作的時候,讀取的就是這個看不見的默認約束文件。而如果用戶主動為當前工程添加了時序約束文件,那么讀取的就是用戶添加的約束文件了。
08創(chuàng)建時鐘(Create Clock)
創(chuàng)建時鐘,嚴格來說應該叫創(chuàng)建時鐘約束,就是為當前網(wǎng)表模型(注意,此時還只是針對網(wǎng)表模型)指定一個明確的時鐘信號。這樣時序分析軟件就能夠基于該時鐘參數(shù),對網(wǎng)表中的各信號進行分析了。創(chuàng)建時鐘(約束)步驟如下所示:
1、菜單欄依次點擊 Constraints -> Create Clock,打開時鐘約束界面。
圖12 TimeQuest創(chuàng)建時鐘約束
2、在彈出的時鐘約束圖形界面中,輸入該時鐘的各項屬性。如圖 13 所示:
圖13 TimeQuest創(chuàng)建時鐘約束界面
時鐘名稱,這里的時鐘名稱是用戶為約束的該時鐘信號取一個方便識別的別名,而非被約束的時鐘的原本名稱。比如周星星是一個特工,組織上叫他 007,那么組織上在給他安排任務的時候,稱呼他就是 007,而不會叫他周星星,當然也可以使用原本名稱。本工程中,需要被約束的時鐘信號本身名稱為 clk,這里約束也為 clk。
周期,時鐘周期,clk 的時鐘頻率為 50MHz,所以換算過來其周期就是 1000/50 =20ns。約束的時候,時鐘信號的頻率不能直接作為參數(shù)輸入,而是需要換算為周期后再作為參數(shù)。
上升時間,這里的上升時間是指什么時刻時鐘信號出現(xiàn)上升沿,不寫就默認是0時刻了,右側的波形也能看出來。
下降時間,這里的下降時間是指什么時刻時鐘信號出現(xiàn)下降沿,不寫就默認是周期的一半時刻了,右側的波形也能看的出來。
目標,這才是真正的時鐘信號的本名,這才是 007 的真名——周星星,只不過這個名字在執(zhí)行任務的時候沒有人理會而已。但是組織上為了知道 007 究竟是哪個人,必須給他建個檔案,檔案里會寫,007,真名周星星。所以這里的目標就是指定約束的這個時鐘信號具體是對應的哪個物理上的時鐘。
上述所有參數(shù)輸入好之后,生成的一個真實起作用的腳本命令。換句話說,上面輸入的各種參數(shù)只是為了方便用戶更加方便的添加約束,這些參數(shù)輸入之后,軟件就會根據(jù)這些參數(shù)生成最終起作用的腳本命令。
3、 上述參數(shù)輸入完畢之后,點擊 Run 即可完成創(chuàng)建時鐘約束的操作。執(zhí)行操作后可以看到,軟件的信息窗口中執(zhí)行了前面 UI 界面中展示的那句腳本。
圖14 TimeQuest創(chuàng)建時鐘約束成功界面
=create_clock -name clk -period 20.000 [get_ports {clk}]=
部分Quartus版本可能會出現(xiàn)圖 15 的問題:
圖15 TimeQuest創(chuàng)建時鐘約束失敗界面
這句腳本下面緊跟著的一條警告信息才是關鍵,警告原話是:
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)被綁定到一個時鐘上了,哪里綁定的呢?就是軟件默認自動的呀。哎,明明上面的約束才是真正想要的,結果軟件居然不認,還是認他自己分析總結到的那個時鐘信號。
到這里,也是希望借此例子告訴大家一個事情,那就是每次加入一個約束之后,一定要看工具對這條約束的執(zhí)行報告,看看這條約束是否被正確執(zhí)行了,有沒有報告其他信息說約束失敗之類的。否則很有可能出現(xiàn)上述情況,導致約束并沒有生效。
警告說可以通過-add 選項來為此節(jié)點創(chuàng)建多個時鐘,不能那樣做,因為那就違背本意了,本意就是這個節(jié)點有且只有一個時鐘約束,所以變換思路,既然約束加不了,改總行了吧。怎么改呢?
在 TimeQuest Timing Analyzer 中,找到 Reports 下面的 Diagnostic 下面的 Report Clocks 選項,如下圖 16 所示,雙擊該選項,即可彈出時鐘報告窗口,如下圖 17 所示:
圖16 TimeQuest打開時鐘報告步驟
圖17 TimeQuest時鐘報告界面
從圖 17 中可以看到,確實已經(jīng)存在一個名為 Clk9M 的約束。本來想著,既然有這個約束存在,那就刪了再創(chuàng)建,不是就能搞定了么。于是選中該信號,右鍵,選中 Remove Clock 選項,將其刪除。本以為一切操作水到渠成,結果剛刪完,然后重新 Report Clocks,這廝馬上又回來了。
圖18 TimeQuest刪除時鐘約束
刪不掉,那試試編輯這個約束,改掉它呢?說干就干,還是選中該信號,右鍵,選中Edit Clock Constraint…選項,如圖 19 所示:
圖19 TimeQuest修改時鐘約束
點擊之后,果然彈出了熟悉的約束編輯畫面,如圖 20 所示:
圖20 TimeQuest修改時鐘約束界面
彈出的編輯框中注意看,要改的地方很多,所以基本上除了 targets 一項不需要動以外,其他都得改。所以按照前面的約束方法,修改時鐘約束參數(shù),如圖 21 所示。
圖21 TimeQuest修改時鐘約束完成后的界面
=這里面又有 2 個大坑= :
1、 Clock name 改不得,一改就又認為是新創(chuàng)建時鐘,就是不給辦,依舊忽略。所以不得已,名字繼續(xù)保持為系統(tǒng)默認的 Clk9M。
2、 Rising 和 Falling 兩項的值,要改還得自己計算,太麻煩,干脆直接將這兩個選項內(nèi)容刪除了,就可以讓軟件自動計算了。
改好之后,再 Run,沒有報告忽略的信息了,再 Report Clocks,發(fā)現(xiàn)時鐘的約束信息終于和設定的是一樣的了。
圖22 TimeQuest時鐘約束修改成功
到此為止,時鐘約束就算是完成了。接下來,就應該根據(jù)該時鐘約束生成對應的 sdc 文件了。TimeQuest Timing Analyzer 提供了將當前的所有 sdc 命令寫入到 sdc 文件的方法,在菜單欄依次點擊 Constraints -> Write SDC File 可以實現(xiàn),也可以在 Task 欄中直接雙擊 Write SDC File 選項。
圖23 TimeQuest 保存時序約束文件
Write SDC File 打開之后,界面如圖 24 所示,默認會以工程名稱+.out+.sdc 的格式命名該文件,可以把第一項中的.out 刪掉,就變成了“l(fā)ed.sdc”,點擊 OK,即可自動將約束內(nèi)容寫到“l(fā)ed.sdc”文件里。
圖24 TimeQuest時序約束文件名更改
圖25 TimeQuest時鐘約束文件名修改完
補充說明,如果工程中已經(jīng)有同名文件,那么該操作會直接使用新內(nèi)容覆蓋文件里原本的內(nèi)容。如果工程中沒有該同名文件,軟件就會新建此文件并將所有約束寫入該內(nèi)容。
上述操作完成后,TimeQuest Timing Analyzer 軟件就可以關掉了。但每次關閉的時候,軟件又會提示說讓用戶寫 SDC 文件,如下圖所示。剛剛已經(jīng)寫過了。直接選 No 就 OK 了,選 Yes 無非就是再重新寫一遍。
09使用約束文件指導 Quartus 編譯
通過前面的操作,時鐘約束也約了,約束文件也創(chuàng)建了。但是這個文件是否就一定能夠指導 Quartus 軟件進行編譯了呢?接下來執(zhí)行下述幾步,以確保該文件已經(jīng)正確的被用于指導 Quartus 軟件布局布線。
在 Quartus 菜單欄中,依次點擊 Assignments -> Settings 打開工程設置界面,如圖 26 所示。
圖26 quartus添加時序約束文件步驟1
設置界面如圖 27 所示。點擊設置里面的 TimeQuest Timing Analyzer,發(fā)現(xiàn)“SDC files to include in the project”里面,沒有添加任何文件。要知道,一個工程可以有多個 SDC 文件,而 Quartus 最終使用哪個約束文件,一定是要在這里添加的。
圖27 quartus添加時序約束文件步驟2
所以在這里,將剛剛建好的 led.sdc 文件添加進來。如圖 28 所示。
圖28 quartus添加時序約束文件步驟3
添加好之后,應用設置并關閉,回到 Quartus 主界面中,會發(fā)現(xiàn)該文件已經(jīng)被加入工程了,然后對工程進行全編譯(CTRL + L),軟件就會在該約束文件指導下進行編譯了。編譯完成之后,就可以根據(jù)本節(jié)內(nèi)容開頭的描述,查看最大運行時鐘頻率了,新的報告如圖 29 所示。
圖29 quartus編譯含有SDC文件工程后查看最大系統(tǒng)時鐘頻率
然后你會發(fā)現(xiàn)一個真理,Quartus 編譯出來的結果,能夠運行的最大頻率與約束息息相關,約束要求不高,Quartus 也就隨便編譯優(yōu)化下,能滿足添加的約束要求即可。不會去做到最優(yōu)。
當然,也可以雙擊 led.sdc 文件,看看里面的內(nèi)容,里面內(nèi)容最關鍵的就是下面這句了。
=create_clock -name {clk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {clk}=
本文轉載自數(shù)字站公眾號
-
FPGA
+關注
關注
1650文章
22214瀏覽量
627647 -
計數(shù)器
+關注
關注
32文章
2302瀏覽量
97270 -
程序
+關注
關注
117文章
3832瀏覽量
84472 -
時序分析
+關注
關注
2文章
128瀏覽量
24122
原文標題:FPGA時序分析工具(TimeQuest)
文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
FPGA 高級設計:時序分析和收斂
TimeQuest新手入門
FPGA的約束設計和時序分析
試用手記:為國產(chǎn)FPGA正名(四,時序工具)

如何使用TimeQuest
調(diào)用timequest工具對工程時序進行分析
正點原子FPGA靜態(tài)時序分析與時序約束教程

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

評論