【约束文件】

约束文件


set_property BITSTREAM.GENERAL.CRC DISABLE [current_design]

set_property PACKAGE_PIN W8  [get_ports ref_clk_clk_p]
create_clock -period 10.000 -name ref_clk_clk_p -waveform {0.000 5.000} [get_ports ref_clk_clk_p]

set_property -dict { PACKAGE_PIN AF14 IOSTANDARD LVCMOS18 IOB TRUE} [get_ports {hdmi_24_data_0[23]}]

set_clock_groups -name async_clock0 -asynchronous -group [get_clocks clk_freerun] -group [get_clocks rxoutclk_out[0]]
set_property DATA_RATE DDR [get_ports exdes_bg3_pin11_50]
#### Need to set diff_std before uncommenting the below line#######
set_property IOSTANDARD LVDS [get_ports exdes_bg3_pin11_50]
set_property LVDS_PRE_EMPHASIS FALSE [get_ports exdes_bg3_pin11_50]
set_property PHASESHIFT_MODE WAVEFORM [get_cells -hierarchical *plle*]
##### Use the below mentioned constraints to fix Timing Violations on Bitslice Inputs
#set_property -name CLKOUT0_PHASE -value -90.000 -objects [get_cells *_inst/inst/top_inst/clk_rst_top_inst/clk_scheme_inst/plle3_adv_pll0_inst]
#set_multicycle_path -from [get_clocks -of_objects [get_pins *_inst/inst/top_inst/clk_rst_top_inst/clk_scheme_inst/plle3_adv_pll0_inst/CLKOUT0]] -to [get_clocks -of_objects [get_pins *_inst/inst/top_inst/bs_ctrl_top_inst/BITSLICE_CTRL*.bs_ctrl_inst/*_BIT_CTRL_OUT*]] 2
set_property LOC PLLE3_ADV_X0Y4 [get_cells -hier -filter {REF_NAME =~ PLLE*_ADV && NAME =~ *pll0*}]
current_instance core_inst/inst
set_false_path -to [get_pins -hier *sync_flop_0*/D]

set_property PACKAGE_PIN N46 [get_ports clkin_p]
set_property DATA_RATE DDR [get_ports clkin_p]
###### Need to set diff_std before uncommenting the below line
set_property IOSTANDARD LVDS [get_ports clkin_p]
set_property DATA_RATE DDR [get_ports bg1_pin2_15]
########## Need to set diff_std before uncommenting the below line #########
set_property IOSTANDARD LVDS [get_ports bg1_pin2_15]
################## I/O constraints #################
set_property PACKAGE_PIN P49 [get_ports bg1_pin2_15]

################ Rx Equalization constraints ###########
set_property EQUALIZATION EQ_LEVEL0 [get_ports bg0_pin0_0]
set_property DIFF_TERM_ADV TERM_100 [get_ports bg0_pin0_0]
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets clk]
#####################################

1)以下是将一个BRAM放置在RAMB18_X0Y10的位置,并且将其位置固定。

set_property LOC RAMB18_X0Y10 [get_cells u_ctrl0/ram0]

2)以下是将一个LUT放置到一个切片内的C5LUT BEL的位置,并且将BEL的分配固定。

set_property BEL C5LUT [get_cells u_ctrl0/lut0]

3)以下是将输入总线寄存器放置到ILOGIC单元中。这样做的目的是为了更短输入延迟。

set_property IOB TRUE [get_cells mData_reg*]

4)以下是将两个小的LUT组合到一个LUT6_2中,它使用了O5和O6输出。

set_property LUTNM L0 [get_cell {u_ctrl0/dmux0 u_ctrl0/dmux1}]

5)以下是用于阻止布线器使用第一列的BRAM


#----------------------------------------------------------------------------
set_property LOC SLICE_X0Y47 [get_cells {a0 L0 L1}]
set_property BEL CFF [get_cells a0]
set_property BEL A6LUT [get_cells L0]
set_property BEL B6LUT [get_cells L1]
set_property LOCK_PINS {I1:A4 I0:A2} [get_cells L0]
set_property LOCK_PINS {I1:A3 I0:A2} [get_cells L1]
set_property FIXED_ROUTE {CLBLL_LL_CQ CLBLL_LOGIC_OUTS6 FAN_ALT5 FAN_BOUNCE5  {IMUX_L17 CLBLL_LL_B3} IMUX_L11 CLBLL_LL_A4} [get_nets netA]

#--------------------------------------------------------------------------------```

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vivado约束文件是一个重要的设计文件,它用于对FPGA设计进行时序约束。在Vivado中,约束文件的扩展名为“.xdc”,它包含了时钟频率、时序延迟、时钟分配以及IO管脚等信息。通过正确地编写约束文件,可以确保FPGA设计的时序满足要求,从而提高设计的可靠性和稳定性。 在编写Vivado约束文件时,可以使用Vivado自带的约束编辑器,也可以手动编写。约束文件的基本格式如下: ``` # 注释行,以“#”开头 set_property <属性名> <属性值> [<对象>] [;] ``` 其中,属性名和属性值是必须的,对象是可选的。常用的属性包括: - `PACKAGE_PIN`:指定IO管脚的引脚位置; - `IOSTANDARD`:指定IO管脚的标准; - `CLOCK_PERIOD`:指定时钟周期; - `NET`:指定信号的名称; - `TIMEGRP`:指定时序组,用于约束时序关系; - `OFFSET`:指定时序偏移量。 例如,下面的代码片段定义了一个时钟信号和一个输出信号,其中时钟频率为100MHz,输出信号延迟1个时钟周期: ``` # 设置时钟信号 set_property -dict { PACKAGE_PIN P17 IOSTANDARD LVCMOS33 } [get_ports { clk }] create_clock -period 10.000 -name clk -waveform {0.000 5.000} [get_ports { clk }] # 设置输出信号 set_property -dict { PACKAGE_PIN N1 IOSTANDARD LVCMOS33 } [get_ports { out }] set_output_delay -clock clk 10.000 [get_ports { out }] ``` 需要注意的是,约束文件中的属性名和属性值都是大小写敏感的。因此,在编写约束文件时要仔细检查每个属性的拼写和大小写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值