ISE 約束文件 *.ucf的寫法
后來才發(fā)現(xiàn),原來是約束的問題,看來對于FPGA設(shè)計來說,約束真的很重要啊。
本文引用地址:http://www.ex-cimer.com/article/201611/319314.htm下面介紹幾種常用的約束語句,以備查閱。
NET "clk0"
#使用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;
#最大偏移約束MAXSKEW用于說明同一點驅(qū)動的時鐘信號經(jīng)過路徑傳播后,到達(dá)兩個或多個終點的時間差
NET “AC97_Bit_Clk” MAXSKEW =10ns;
NET clk0 IOSTANDARD = LVCMOS33;#IO電平標(biāo)準(zhǔn)有LVCMOS25、LVTTL、SSTL2_I、LVDCI_33等
NET sys_rst_in LOC = D6;
NET sys_rst_in PULLUP;# PULLUP、 PULLDOWN上拉和下拉設(shè)置
NET sys_rst_in TIG;# TIG(Timing Ignore)不進(jìn)行時序約束
#通配符
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
#
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
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
INST dcm_1/dcm_1/CLK90_BUFG_INST LOC = BUFGCTRL_X0Y30;
例如:
INST
又例如,X,Y,Z是對應(yīng)的是寄存器。現(xiàn)在想把它們放在一個指定的區(qū)域中,我可以這樣寫,
INST
INST
INST
AREA_GROUP
評論