⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 constraints.txt

📁 CNC 的开放码,EMC2 V2.2.8版
💻 TXT
字号:
###############################################      BASIC UCF SYNTAX EXAMPLES V2.1.5      #################################################              TIMING SPECIFICATIONS## Timing specifications can be applied to the entire device (global) or to# specific groups of logic in your PLD design (called "time groups').# The time groups are declared in two basic ways.## Method 1: Based on a net name, where 'my_net' is a net that touchs all the#           logic to be grouped in to 'logic_grp'. Example:#NET my_net TNM_NET = logic_grp## Method 2: Group uing the key word 'TIMEGRP' and declare using the names of#           logic in your design. Example:#TIMEGRP group_name = FFS ("U1/*")#           creates a group called 'group_name' for all flip-flops with in#           the hierarchical block called U1. Wildcards are valid.## Grouping is very important because it lets you tell the software which parts# of a design run at which speeds.  For the majority of the designs with only# one clock the very simple global constraints.## The type of grouping constraint you use can vary depending on the synthesis# tools you are using.  For example, Synplicity does well with Method 1, while# FPGA Express does beter with Method 2.############################################################### Internal to the device clock speed specifications - Tsys ############################################################### data      _________      /^^^^^\       _________   out# ----------| D   Q |-----{ LOGIC } -----| D   Q |------#           |       |      \vvvvv/       |       |#        ---|> CLK  |                 ---|> CLK  |# clock  |  ---------                 |  ---------# ------------------------------------## ---------------# Single Clock# ---------------## ----------------# PERIOD TIME-SPEC# ----------------# The PERIOD spec. covers all timing paths that start or end at a# register, latch, or synchronous RAM which are clocked by the reference# net (excluding pad destinations).  Also covered is the setup# requirement of the synchronous element relative to other elements# (ex. flip flops, pads, etc...).# NOTE:  The default unit for time is nanoseconds.##NET clock PERIOD = 50ns##       -OR-## ------------------# FROM:TO TIME-SPECs# ------------------# FROM:TO style timespecs can be used to constrain paths between time# groups.  NOTE:  Keywords:  RAMS, FFS, PADS, and LATCHES are predefined# time groups used to specify all elements of each type in a design.#TIMEGRP RFFS = RISING FFS ("*");  // creates a rising group called RFFS#TIMEGRP FFFS = FALLING FFS ("*");  // creates a falling group called FFFS#TIMESPEC TSF2F  = FROM : FFS   : TO : FFS   : 50 ns; // Flip-flips with the same edge#TIMESPEC TSR2F  = FROM : RFFS  : TO : FFFS  : 25 ns; // rising edge to falling edge#TIMESPEC TSF2R  = FROM : FFFS  : TO : RFFS  : 25 ns; // falling edge to rising edge## ---------------# Multiple Clocks# ---------------# Requires a combination of the 'Period' and 'FROM:TO' type time specifications#NET clock1 TNM_NET = clk1_grp#NET clock2 TNM_NET = clk2_grp##TIMESPEC TS_clk1 = PERIOD : clk1_grp : 50#TIMESPEC TS_clk2 = PERIOD : clk2_grp : 30#TIMESPEC TS_ck1_2_ck2 = FROM : clk1_grp : TO : clk2_grp : 50#TIMESPEC TS_ck2_2_ck1 = FROM : clk2_grp : TO : clk1_grp : 30############################################################### CLOCK TO OUT specifications - Tco                        ############################################################### from      _________      /^^^^^\       --------\# ----------| D   Q |-----{ LOGIC } -----| Pad    ># PLD       |       |      \vvvvv/       --------/#        ---|> CLK  |# clock  |  ---------# --------## ----------------# OFFSET TIME-SPEC# ----------------# To automatically include clock buffer/routing delay in your# clock-to-out timing specifications, use OFFSET constraints .# For an output where the maximum clock-to-out (Tco) is 25 ns:#NET out_net_name OFFSET = OUT 25 AFTER clock_net_name##      -OR-## ------------------# FROM:TO TIME-SPECs# ------------------#TIMESPEC TSF2P  = FROM : FFS   : TO : PADS  : 25 ns# Note that FROM: FFS : TO: PADS constraints start the delay analysis# at the flip flop itself, and not the clock input pin.  The recommended# method to create a clock-to-out constraint is to use an OFFSET constraint.############################################################### Pad to Flip-Flop speed specifications - Tsu              ############################################################### ------\         /^^^^^\       _________   into PLD# |pad   >-------{ LOGIC } -----| D   Q |------# ------/         \vvvvv/       |       |#                            ---|> CLK  |# clock                      |  ---------# ----------------------------## ----------------# OFFSET TIME-SPEC# ----------------# To automatically account for clock delay in your input setup timing# specifications, use OFFSET constraints.# For an input where the maximum setup time is 25 ns:#NET in_net_name OFFSET = IN 25 BEFORE clock_net_name##      -OR-## ------------------# FROM:TO TIME-SPECs# ------------------#TIMESPEC TSP2F  = FROM : PADS  : TO : FFS   : 25 ns# Note that FROM: PADS : TO: FFS constraints do not take into account any# delay for the clock path.  The recommended method to create an input# setup time constraint is to use an OFFSET constraint.############################################################### Pad to Pad speed specifications - Tpd                    ############################################################### ------\         /^^^^^\       -------\# |pad   >-------{ LOGIC } -----| pad   ># ------/         \vvvvv/       -------/## ------------------# FROM:TO TIME-SPECs# ------------------#TIMESPEC TSP2P  = FROM : PADS  : TO : PADS  : 125 ns############################################################### Other timing specifications                              ############################################################### -------------# TIMING IGNORE# -------------# If you can ignore timing of paths, use Timing Ignore (TIG). NOTE: The# "*" character is a wild-card which can be used for bus names.  A "?"# character can be used to wild-card one character.# Ignore timing of net reset_n:#NET : reset_n : TIG## Ignore data_reg(7:0) net in instance mux_mem:#NET : mux_mem/data_reg* : TIG## Ignore data_reg(7:0) net in instance mux_mem as related to a TIMESPEC# named TS01 only:#NET : mux_mem/data_reg* : TIG = TS01## Ignore data1_sig and data2_sig nets:#NET : data?_sig : TIG## ---------------# PATH EXCEPTIONS# ---------------# If your design has outputs that can be slower than others, you can# create specific timespecs similar to this example for output nets# named out_data(7:0) and irq_n:#TIMEGRP slow_outs = PADS(out_data* : irq_n)#TIMEGRP fast_outs = PADS : EXCEPT : slow_outs#TIMESPEC TS08 = FROM : FFS : TO : fast_outs : 22#TIMESPEC TS09 = FROM : FFS : TO : slow_outs : 75## If you have multi-cycle FF to FF paths, you can create a time group# using either the TIMEGRP or TNM statements.## WARNING:  Many VHDL/verilog synthesizers do not predictably name flip# flop Q output nets.  Most synthesizers do assign predictable instance# names to flip flops, however.## TIMEGRP example:#TIMEGRP slowffs = FFS(inst_path/ff_q_output_net1* :#inst_path/ff_q_output_net2*)## TNM attached to instance example:#INST inst_path/ff_instance_name1_reg* TNM = slowffs#INST inst_path/ff_instance_name2_reg* TNM = slowffs## If a FF clock-enable is used on all flip flops of a multi-cycle path,# you can attach TNM to the clock enable net.  NOTE:  TNM attached to a# net "forward traces" to any FF, LATCH, RAM, or PAD attached to the# net.#NET ff_clock_enable_net TNM = slowffs## Example of using "slowffs" timegroup, in a FROM:TO timespec, with# either of the three timegroup methods shown above:#TIMESPEC TS10 = FROM : slowffs : TO : FFS : 100## Constrain the skew or delay associate with a net.#NET any_net_name MAXSKEW = 7#NET any_net_name MAXDELAY = 20 ns### Constraint priority in your .ucf file is as follows:##    highest 1.  Timing Ignore (TIG)#                 2.  FROM : THRU : TO specs#             3.  FROM : TO specs#    lowest  4.  PERIOD specs## See the on-line "Library Reference Guide" document for# additional timespec features and more information.###############################################################                                                          ##         LOCATION and ATTRIBUTE SPECIFICATIONS            ##                                                          ############################################################## Pin and CLB location locking constraints                 ############################################################### -----------------------# Assign an IO pin number# -----------------------#INST io_buf_instance_name  LOC = P110#NET io_net_name  LOC = P111## -----------------------# Assign a signal to a range of I/O pins# -----------------------#NET "signal_name" LOC=P32, P33, P34## -----------------------# Place a logic element(called a BEL) in a specific CLB location.  BEL = FF, LUT, RAM, etc...# -----------------------#INST instance_path/BEL_inst_name  LOC = CLB_R17C36## -----------------------# Place CLB in rectangular area from CLB R1C1 to CLB R5C7# -----------------------#INST /U1/U2/reg<0> LOC=clb_r1c1:clb_r5c7## -----------------------# Place Heirarchial logic block in rectangular area from CLB R1C1 to CLB R5C7# -----------------------#INST /U1* LOC=clb_r1c1:clb_r5c7## -----------------------# Prohibit IO pin P26 or CLBR5C3 from being used:# -----------------------#CONFIG PROHIBIT = P26#CONFIG PROHIBIT = CLB_R5C3# Config Prohibit is very important for frocing the software to not use critical# configuration pins like INIT or DOUT on the FPGA.  The Mode pins and JTAG# Pins require a special pad so they will not be availabe to this constraint## -----------------------# Assign an OBUF to be FAST or SLOW:# -----------------------#INST obuf_instance_name FAST#INST obuf_instance_name SLOW## -----------------------# FPGAs only:  IOB input Flip-flop delay specifcation# -----------------------# Declare an IOB input FF delay (default = MAXDELAY).# NOTE:  MEDDELAY/NODELAY can be attached to a CLB FF that is pushed# into an IOB by the "map -pr i" option.#INST input_ff_instance_name MEDDELAY#INST input_ff_instance_name NODELAY## -----------------------# Assign Global Clock Buffers Lower Left Right Side# -----------------------# INST gbuf1 LOC=SSW#

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -