小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

FPGA設(shè)計中關(guān)于時序約束(轉(zhuǎn))

 zhangquanling 2011-11-05

FPGA設(shè)計中關(guān)于時序約束
關(guān)于FPGA設(shè)計中,時序約束的定義的總結(jié)說明

1.全局時序約束

1.1 PERIOD約束
 用于約束同一時間域中同步邏輯單元之間的時序關(guān)系,PERIOD約束會自動處理寄存器時鐘端的反相問題,即,如果相鄰?fù)皆r鐘相位取反,那么它們之間的延時將被默認PERIOD約束值的一半。
 NET “net_name” PERIOD = period {HIGH|LOW} [high_or_low_time];
 
 最小時鐘周期的計算: Tclk = Tcko + Tnet +Tlogic + Tsetup - Tclk_skew; 其中,Tcko為從時鐘輸入到DFF輸出端的時鐘輸出時間,Tnet為網(wǎng)線延時,Tlogic為同步元件之間的組合邏輯延時,Tsetup為同步元件的建立時間。
 
1.2 OFFSET約束
 用于約束數(shù)據(jù)的建立時間和保持時間,主要是輸入PAD到同步單元和同步單元到輸出PAD的時序關(guān)系
 OFFSET_IN_BEFORE用于定義輸入數(shù)據(jù)比有效時鐘沿提前多長時間準(zhǔn)備好,其芯片內(nèi)部與輸入引腳相連的組合邏輯的延時不能大于該時間,否則,輸入的數(shù)據(jù)就達不到要求的建立時間。
 OFFSET_IN_AFTER用于定義輸入數(shù)據(jù)在有效時鐘沿后多長時間到達芯片的輸入引腳,其作用和BEFORE是一樣的,不過BEFORE的時鐘沿是AFTER的下一個沿,如果一起定義的話。
 上述約束用于設(shè)定在數(shù)據(jù)輸入時,保證有效時鐘沿到來時,數(shù)據(jù)已經(jīng)達到穩(wěn)定。
 
 OFFSET_OUT_AFTER用于定義了輸出數(shù)據(jù)在有效時鐘沿之后多長時間之內(nèi)保持穩(wěn)定,其實是定義了輸出的最大的數(shù)據(jù)保持時間,芯片內(nèi)部的輸出延時必須小于這個值。
 OFFSET_OUT_BEFORE用于定義在下一個時鐘信號到來之前的某個時間,必須輸出數(shù)據(jù),以供下一級器件使用。
 這些約束用于對設(shè)計輸出端的數(shù)據(jù)輸出進行約束,以滿足下一級器件的建立時間的要求,保證下一級的采樣數(shù)據(jù)是穩(wěn)定可靠的。

2.特定約束

2.1 FROM_TO約束
 用于定義兩個邏輯組之間的時序約束,以及對兩者之間的邏輯和布線延時進行控制,這兩個邏輯組的定義可以是預(yù)定義也可以是用戶自己定義。
 通常用于約束多周期路徑(Multi-Cycle),時鐘無關(guān)的數(shù)據(jù)路徑,F(xiàn)alse路徑等。對于組合邏輯和慢速信號邏輯的約束經(jīng)常使用。
 
 所謂多周期路徑:主要的形式為,寄存器采用同一個時鐘驅(qū)動,但是有些寄存器需要用使能信號來進行控制,由于使能信號的頻率較低,所以,在這個路徑的傳輸過程中,存在著多個時鐘周期進行傳輸?shù)那闆r。
 對于這種情況,約束要比全局約束松,可以先進行時鐘周期約束,再對這個路徑進行松綁約束,用FROM-TO。
 
 所謂多時鐘域:主要的形式是寄存器的兩個時鐘完全獨立的,可以先對每個時鐘所驅(qū)動的寄存器或分組進行周期約束,然后在對兩個寄存器(分組)進行FROM-TO約束。

2.2 最大延時約束MAXDELAY
 用于定義特定網(wǎng)絡(luò)上的最大延時,只能定義到網(wǎng)絡(luò)上。
 
2.3 最大偏移約束MAXSKEW
 SKEW用于定義同一點驅(qū)動的時鐘信號經(jīng)過路徑傳播之后,到達兩個或多個終點的時間差,這個約束用于定義特定的網(wǎng)線上的偏移不大于某個時間。
 
2.4 TIG/False路徑約束
 用于對不需要約束的路徑(即與約束無關(guān)的路徑)進行說明。推薦用這個約束來減少設(shè)計中受約束路徑的數(shù)量。
 對于靜態(tài)時序分析中無法達到要求的情況,即slack為負值的情況,找到關(guān)鍵路徑,主要的原因可能是,關(guān)鍵路徑本身是一條TIG路徑或是多周期路徑,應(yīng)該通過修改約束來改進這個問題。如果不是這樣,當(dāng)延遲值在目標(biāo)延遲的20%的范圍內(nèi),使用synplify 的-improve命令來重新綜合優(yōu)化設(shè)計,當(dāng)超出20%,則需要重新修改設(shè)計,比如流水線,F(xiàn)SM或資源共享等方法。
 
2.5 SYSTEM_JITTER系統(tǒng)時鐘抖動約束
 用于定義設(shè)計中的系統(tǒng)時鐘抖動的最大值。

3. 分組約束

3.1 TNM和TNM_NET約束
 TNM和TNMNET約束都是用于用戶定義新的時序約束分組。兩者的不同是TNM進行分組不可以穿越IBUF和BUFG,而TNM_NET則可以,也就是說,如果用TNM定義一個PADS分組,只能對這個PAD進行約束,而如果使用TNM_NET約束,則會把IBUFG后面的連接網(wǎng)絡(luò)都加入到這個約束中來。
 TNM_NET約束只能用于網(wǎng)線上,否則被忽略。
 {NET|INST|PIN} "object_name(signals_name)" TNM/TNM_NET = predefined_group or "identifier(net_name)";

3.2 TIMEGRP約束
 用于使已有的分組合并,構(gòu)成新的分組,或用排除的方法構(gòu)成新的分組。已有的分組包括預(yù)定義的分組和用戶自己定義產(chǎn)生的分組。
 TIMEGRP "newgrp_name" = "grp_name1" "grp_name2";
 TIMEGRP "newgrp_name" = "grp_name1" EXCEPT "grp_name2";
 
 定義受時鐘沿控制的觸發(fā)器分組,如RISING或FALLING沿觸發(fā)的分組。
 TIMEGRP "newgrp_name" = RISING/FALLING "grp_name1";
 定義受門控信號控制的鎖存器分組,如TRANSLO或TRANSHI的電平控制的分組
 TIMEGRP "newgrp_name" = TRANSLO/TRANSHI "grp_name1";

3.3 TPTHRU約束
 用于定義一個或一組中間點,以便在其它時序約束定義中來進行標(biāo)識,我認為有點象電路圖中的網(wǎng)絡(luò)命名。如下
 INST FF1 TNM = "start";
 INST FF2 TNM = "endpt";
 NET “mynet” TPTHRU= “ABC”;
 TIMESPEC “TS_path" = FROM "start" THRU "ABC" TO "endpt" 30;
 
4.TIMESPEC
 TIMESPEC是關(guān)于時序約束定義的一個基本時序相關(guān)約束,它在時序規(guī)范中作為標(biāo)識符,表示本約束為時序規(guī)范。
 TIMESPEC ”TSidentifier“ = XXXXX XXXXX XXXXXXX
 TSidentifier作為時序規(guī)范,成為TS屬性定義。
 PERIOD約束,F(xiàn)ROM-TO約束等都需要使用這個格式。


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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多