久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

(1)用QuartusIITimequestTimingAnalyzer進(jìn)行時(shí)序分析:實(shí)例講解(二)

 林緣232 2015-09-15

四,,用TimeQuest對(duì)DAC7512控制器進(jìn)行時(shí)序分析 

   在對(duì)某個(gè)對(duì)象下時(shí)序約束的時(shí)候,首先要能正確識(shí)別它,,TimeQuest會(huì)對(duì)設(shè)計(jì)中各組成部分根據(jù)屬性進(jìn)行歸類,,我們?cè)谙聲r(shí)序約束的時(shí)候,可以通過命令查找對(duì)應(yīng)類別的某個(gè)對(duì)象,。

     TimeQuest對(duì)設(shè)計(jì)中各組成部分的歸類主要有cells,,pins,nets和ports幾種,。寄存器,,門電路等為cells;設(shè)計(jì)的輸入輸出端口為ports,;寄存器,,門電路等的輸入輸出引腳為pins;ports和pins之間的連線為nets,。具體可以參照下圖(此圖出自Altera Time Quest的使用說明),。

clip_image002

      下面我們按照本文第二部分用TimeQuest做時(shí)序分析的基本操作流程所描述的流程對(duì)DAC7512控制器進(jìn)行時(shí)序分析。

       建立和預(yù)編譯項(xiàng)目的部分相對(duì)簡單,,涉及到的也只是QuartusII的一些基本操作,,這里我們就不再做具體的敘述。主要介紹如何向項(xiàng)目中添加時(shí)序約束和如何進(jìn)行時(shí)序驗(yàn)證,。首先建立一個(gè)名稱與項(xiàng)目top層名字一致的sdc文件,,然后按照下面的步驟添加時(shí)序約束。

1. 創(chuàng)建時(shí)鐘

     添加時(shí)序約束的第一步就是創(chuàng)建時(shí)鐘,。為了確保STA結(jié)果的準(zhǔn)確性,,必須定義設(shè)計(jì)中所有的時(shí)鐘,并指定時(shí)鐘所有相關(guān)參數(shù),。TimeQuest支持下面的時(shí)鐘類型:

a) 基準(zhǔn)時(shí)鐘(Base clocks)

b) 虛擬時(shí)鐘(Virtual clocks)

c) 多頻率時(shí)鐘(Multifrequency clocks)

d) 生成時(shí)鐘(Generated clocks)

我們?cè)谔砑訒r(shí)序約束的時(shí)候,首先創(chuàng)建時(shí)鐘的原因是后面其它的時(shí)序約束都要參考相關(guān)的時(shí)鐘的,。

基準(zhǔn)時(shí)鐘:

     基準(zhǔn)時(shí)鐘是輸入到FPGA中的原始輸入時(shí)鐘,。與PLLs輸出的時(shí)鐘不同,基準(zhǔn)時(shí)鐘一般是由片外晶振產(chǎn)生的,。定義基準(zhǔn)時(shí)鐘的原因是其他生成時(shí)鐘和時(shí)序約束通常都以基準(zhǔn)時(shí)鐘為參照,。

    很明顯,,在DAC7512控制器中,CLK_IN是基準(zhǔn)時(shí)鐘,。我們用下面的命令來創(chuàng)建這個(gè)基準(zhǔn)時(shí)鐘:

create_clock -name CLK_IN -period 40 -waveform {0 20} [get_ports {CLK_IN}]

    其中,,create_clock是創(chuàng)建時(shí)鐘的命令,后面是命令的各種選項(xiàng),。其中-name CLK_IN選項(xiàng)給出了時(shí)鐘的名字,,即CLK_IN。-period 40給出了時(shí)鐘的周期,,即40ns,。-waveform {0 20}給出了時(shí)鐘的占空比,即50/50,。最后的[get_ports {CLK_IN}] 是嵌套的tcl命令,,給出了CLK_IN對(duì)應(yīng)的port,實(shí)際上也就是CLK_IN的輸入引腳,。

    在sdc文件里添加上述命令后,,在quartusII里編譯設(shè)計(jì),然后通過tools –> TimeQuest Time Aanlyzer命令打開TimeQuest,。在TimeQuest的Tasks窗口,,找到Report Clocks,雙擊之,,TimeQuest就會(huì)在右邊主窗口給出設(shè)計(jì)中已成功添加的時(shí)鐘信息,。如下圖所示,可以看到CLK_IN,,其類型為基準(zhǔn)時(shí)鐘,,周期為40ns,頻率為25MHz,,targets項(xiàng)為CLK_IN,,即表示這個(gè)時(shí)鐘是連接在CLK_IN端口上的。這說明上面create_clock的命令已經(jīng)在設(shè)計(jì)中正確創(chuàng)建了時(shí)鐘CLK_IN,。

clip_image004

       實(shí)際上對(duì)于create_clock命令,,我們可以通過quartus II的幫助系統(tǒng)(http://quartushelp./current/),查找它的語法,。在QuartusII的幫助里,,可以查找到:

Syntax

create_clock [-h | -help] [-long_help] [-add] [-name <clock_name>] -period <value> [-waveform <edge_list>] [<targets>]

    另外,幫助系統(tǒng)里有很詳盡的關(guān)于該命令的描述,,并且給出了各種使用的范例,。不僅僅是這一個(gè)命令,所有的命令都可以在幫助系統(tǒng)里找到,。如果看到一個(gè)陌生的命令,,或者不知道命令該如何使用,,那么最好的辦法就是在幫助系統(tǒng)里查找該命令。

PLL時(shí)鐘:

     上面我們創(chuàng)建了基準(zhǔn)時(shí)鐘,。下面我們創(chuàng)建PLL輸出的時(shí)鐘,。

     在Altera的FPGA中,PLL電路是通過ALTPLL的IP庫被添加到設(shè)計(jì)中的,。下圖是一個(gè)典型的ALTPLL的結(jié)構(gòu)圖,。

clip_image005

        從圖上可以看到,當(dāng)我們選定了基準(zhǔn)時(shí)鐘和PLL的參數(shù)以后,,PLL的輸出c0和c1的參數(shù)就隨之確定了,。所以在QuartusII環(huán)境下,可以通過一個(gè)簡單的命令讓軟件自動(dòng)生成PLL輸出的時(shí)鐘的時(shí)序約束,。

derive_pll_clocks

     這個(gè)命令會(huì)自動(dòng)創(chuàng)建PLL輸出的C0和C1的相關(guān)時(shí)序約束,。同樣的,在sdc文件里添加該命令,,然后編譯,,在TimeQuest里查看時(shí)鐘信息。如下圖所示,,derive_pll_clocks在系統(tǒng)里添加了兩個(gè)時(shí)鐘,,PLL1|altpll_component|auto_generated|pll1|clk[0]和PLL1|altpll_component|auto_generated|pll1|clk[1]??梢钥闯?,時(shí)鐘是按“PLL層次結(jié)構(gòu)+時(shí)鐘端口名字”的規(guī)則命名的。時(shí)鐘的類型為created clock,,周期頻率是在PLL里設(shè)定好的,。duty_cycle為50/50。Clock source為PLL1|altpll_component|auto_generated|pll1|inclk[0],,實(shí)際上就是我們之前定義的CLK_IN,。

clip_image007

       用derive_pll_clocks命令創(chuàng)建PLL相關(guān)的時(shí)鐘很是方便,但不好的地方就是,,時(shí)鐘的命名太過復(fù)雜,,我們?cè)谔砑优c此時(shí)鐘相關(guān)的時(shí)序約束時(shí),就必須用這種名字很長的時(shí)鐘,,容易出錯(cuò),,且可讀性也差。所以建議還是采用create_generated_clock命令來創(chuàng)建PLL的時(shí)鐘,。

       create_generated_clock命令的語法如下,,可以從quartusII的幫助系統(tǒng)里找到每個(gè)參數(shù)的詳細(xì)解釋。

Syntax

create_generated_clock [-h | -help] [-long_help] [-add] [-divide_by <factor>] [-duty_cycle <percent>] [-edge_shift <shift_list>] [-edges <edge_list>] [-invert] [-master_clock <clock>] [-multiply_by <factor>] [-name <clock_name>] [-offset <time>] [-phase <degrees>] -source <clock_source> [<targets>]

      可以用下面的命令來創(chuàng)建PLL的兩個(gè)時(shí)鐘C0和C1,。我們把時(shí)鐘命名為CLK25M和CLK50M,,source clock為CLK_IN。

create_generated_clock -name CLK25M -source CLK_IN -duty_cycle 50.000 -multiply_by 1 -master_clock {CLK_IN} [get_pins {PLL1|altpll_component|auto_generated|pll1|clk[0]}]

create_generated_clock -name CLK50M -source CLK_IN -duty_cycle 50.000 -multiply_by 2 -master_clock {CLK_IN} [get_pins {PLL1|altpll_component|auto_generated|pll1|clk[1]}]

      用這兩個(gè)命令創(chuàng)建的時(shí)鐘與derive_pll_clocks命令創(chuàng)建的時(shí)鐘的本質(zhì)是一樣的,,只是給時(shí)鐘定義了不同的名字,。當(dāng)然我們也可以用derive_pll_clocks中對(duì)時(shí)鐘的命名方式來使用create_generated_clock命令。

    同樣的,,可以按照上面的方法,,在TimeQuest里查看創(chuàng)建時(shí)鐘的結(jié)果,如下圖所示,。

clip_image009

       到此為止,,我們創(chuàng)建了PLL的基準(zhǔn)時(shí)鐘以及PLL輸出的兩個(gè)時(shí)鐘CLK25M和CLK50M。

DA_SCLK時(shí)鐘:

       在TimeQuest的Tasks窗口里,,選擇Report Unconstrained Paths命令,,TimeQuest會(huì)報(bào)告出所有需要下約束但實(shí)際并沒有約束的情況。在Report里的Unconstrained Path列表下,,我們可以查看這個(gè)報(bào)告,。雙擊Clock Status Summary,就可以在主窗口看到所有時(shí)鐘的情況,。見下圖,,很明顯,軟件辨識(shí)出DAC7512模塊下的DA_SCLK為時(shí)鐘信號(hào),,但是我們并沒有對(duì)該時(shí)鐘添加約束,,所以用紅色將這個(gè)時(shí)鐘顯示了出來。下一步我們就來創(chuàng)建這個(gè)時(shí)鐘,。

clip_image011

        DA_SCLK是用CLK50M通過二分頻電路得到的,。所以其source clock為CLK50M。但是,,我們?cè)谑褂胏reate_generated_clock命令創(chuàng)建該時(shí)鐘的時(shí)候,,在-source的參數(shù)里,卻不能直接使用CLK50M,,而必須使用CLK50M所對(duì)應(yīng)的pin,,即PLL1|altpll_component|auto_generated|pll1|clk[1]。 這主要是因?yàn)?source參數(shù)只支持pins,,ports和registers,。

       DA_SCLK是由CLK50M通過二分頻電路生成的,其代碼如下:

reg DA_SCLK;

always @(posedge CLK50M or negedge RESET)

begin

if(~RESET)

DA_SCLK <= 1'b0;

else

DA_SCLK <= ~DA_SCLK;

end

     可以看到,,本質(zhì)上DA_SCLK為一個(gè)寄存器的輸出,,所以使用get_registers命令獲取DA_SCLK。DA_SCLK是由CLK50M經(jīng)二分頻電路生成的,所以-divide_by的參數(shù)應(yīng)該是2,。

      綜上所述,,用下面的命令創(chuàng)建DA_SCLK:

create_generated_clock -name DA_SCLK -divide_by 2 -source [get_pins {PLL1|altpll_component|auto_generated|pll1|clk[1]}] [get_registers {DAC7512:DAC7512|DA_SCLK} ]

     到此為止,DAC7512控制器中所有4個(gè)時(shí)鐘都創(chuàng)建好了,。如下圖所示:

clip_image013

      我們?cè)倏碩imeQuest中Unconstrained Paths中clock Status Summary,,就會(huì)發(fā)現(xiàn),所有的時(shí)鐘都已經(jīng)被添加了約束,。

clip_image015

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多