常用UCF語句

2021-07-30 20:00:07 字數 2673 閱讀 1718

下面介紹幾種常用的約束語句,以備查閱。 

net "clk0" tnm_net = "sys_clk_grp"; #在時鐘網線clk上附加乙個tnm_net約束,把clk0驅動的所有同步元件定義為乙個名為sys_clk的分組

#使用timespec約束sys_clk_grp的週期

timespec "ts_ sys_clk_grp " = period " sys_clk_grp " 9.9 ns high 50 %;#週期9.9ns,high指出時鐘週期裡的第乙個脈衝是高電平,如果是low表示是低電平,占空比50%

# from_to用來定義兩個邏輯組之間的時序約束

#語法:timespec "ts_name " = from "group1" to " group2" value;

timespec "ts_p2s" = from "pads" to "ffs" 10; # pads到ffs延遲10ns

#最大偏移約束maxskew用於說明同一點驅動的時鐘訊號經過路徑傳播後,到達兩個或多個終點的時間差

net 「ac97_bit_clk」 maxskew =10ns;

net tft_wr loc=c11 | iostandard = lvcmos33;

net clk0 iostandard = lvcmos33;#io電平標準 有lvcmos25、lvttl、sstl2_i、lvdci_33等

net sys_rst_in loc = d6;

net sys_rst_in pullup;# pullup、 pulldown上拉和下拉設定

net sys_rst_in tig;# tig(timing ignore)不進行時序約束

net sync drive = 8 | slew = slow;# drive :最小驅動電流,單位ma,可以有2,4,6,8,12,16這幾種模式,slew =, quietio僅用在spartan-3a。slew是壓擺 ,如果slew=fast 會出現過衝,此時drive如果很大(12ma)會導致輸出功率的失真很厲害,有可能會不滿足外接的器件的要求。

#萬用字元

net gpio_char_lcd<6> loc = ae13;

net gpio_char_lcd<5> loc = ac17;

net gpio_char_lcd<4> loc = ab17;

net gpio_char_lcd<3> loc = af12;

net gpio_char_lcd<2> loc = ae12;

net gpio_char_lcd<1> loc = ac10;

net gpio_char_lcd<0> loc = ab10;

net gpio_char_lcd<*> iostandard = lvcmos33;

net gpio_char_lcd<*> tig;

net gpio_char_lcd<*> pulldown; # *表示任意字串

#區域約束

# locate dcm/bufg - tools can probably figure them out automatically

# but just loc them down to be safe

inst dcm_0/dcm_0/dcm_adv_inst loc = dcm_adv_x0y1;

inst dcm_1/dcm_1/dcm_adv_inst loc = dcm_adv_x0y2;

inst dcm_2/dcm_2/dcm_adv_inst loc = dcm_adv_x0y0;

inst dcm_0/dcm_0/clk0_bufg_inst loc = bufgctrl_x0y0;

inst dcm_0/dcm_0/clk90_bufg_inst loc = bufgctrl_x0y1;

inst dcm_0/dcm_0/clkdv_bufg_inst loc = bufgctrl_x0y2;

inst dcm_1/dcm_1/clk0_bufg_inst loc = bufgctrl_x0y31;

inst dcm_1/dcm_1/clk90_bufg_inst loc = bufgctrl_x0y30;

區域的約束相當於將布局過程中指定特定型號的器件的位置,這完全可以通過floorplanner的gui介面進行設定,用圖形介面設定完後,配置資訊會放到ucf中,這裡只介紹ucf的使用。

例如:inst "done" loc = "slice_x32y163" ; #done對映為乙個暫存器,對映到slice_x32y163的位置上。(32,163)相當於乙個座標,可以用floorplanner進行檢視。inst"bram4/bu2/u0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v4_init.ram/true_dp.single_prim.tdp"loc = "ramb16_x2y22" ;#ram16的乙個對映。

又例如,x,y,z是對應的是暫存器。現在想把它們放在乙個指定的區域中,我可以這樣寫,

inst 「x」 area_group = reg;

inst 「x」 area_group = reg;

inst 「x」 area_group = reg;

area_group reg range = slice_x1y1 :slice_x1y6;

注:如何檢視inst中的名稱呢?在ise中 timing constraints editor中可以檢視。

ISE中UCF約束檔案的編寫

ise 約束檔案的基本操作 1 約束檔案的概念 fpga設計中的約束檔案有3類 使用者設計檔案 ucf檔案 網表約束檔案 ncf檔案 以及物理約束檔案 pcf檔案 可以完成時序約束 管腳約束以及區域約束。3類約束檔案的關係為 使用者在設計輸入階段編寫ucf檔案,然後ucf檔案和設計綜合後生成ncf檔...

常用mysql語句 常用MySql語句

新建資料表 drop table if exists ga game way create table ga game way id int 11 unsigned not null auto increment comment id primary key id using btree,主鍵 un...

常用sql語句

t sql語句複製表的方法 我在sql server 2000中有現個資料庫datahr及demo,它們的結構是一樣,其它有乙個表名為 gbitem.現在我想將demo資料庫的表名 gbitem的全部內容複製到datahr資料庫的表名為 gbitem中。請問此t sql語句應該怎麼寫?謝謝高人指點!...