Timing constraint:
TS_u_clk_rst_gen_u_clk_pll1_CLKOUT4_BUF = PERIOD TIMEGRP “u_clk_rst_gen_u_clk_pll1_CLKOUT4_BUF” TS_SYS_clk_100m_i / 1.25 HIGH 50%;
For more information, see Period Analysis in the Timing Closure User Guide (UG612).
431090 paths analyzed, 57963 endpoints analyzed, 540 failing endpoints 540 timing errors
detected. (540 setup errors, 0 hold errors, 0 component switching limit errors)
Minimum period is 9.824ns.
Paths for end point u_low_pass/u_low_data/u_low_data_mux17/blk00000001/blk00000015
(DSP48_X6Y33.PCIN0), 35 paths
Slack (setup path): -0.844ns (requirement - (data path -clock path skew + uncertainty))
Source:
u_low_pass/u_low_data/u_low_data_rom/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/valid.cstr/ramloop[0].ram.r/v5_init.ram/SP.WIDE_PRIM18.SP (RAM)
Destination: u_low_pass/u_low_data/u_low_data_mux17/blk00000001/blk00000015 (DSP)
Requirement: 8.000ns
Data Path Delay: 8.347ns (Levels of Logic = 1)
lock Path Skew: -0.415ns (1.107 - 1.522)
Source Clock: clk_125m rising at 0.000ns
Destination Clock: clk_125m rising at 8.000ns
Clock Uncertainty: 0.082ns
Clock Uncertainty: 0.082ns((TSJ^2 + DJ2)1/2)/2+PE
Total System Jitter (TSJ): 0.070ns
Discrete Jitter (DJ): 0.147ns
Phase Error (PE): 0.000ns
解决方式:1、更改Place and Route Effort Level,overall,把Standard模式(通过最少的布局布线努力,给出最快的运行时间,适用于不太复杂的设计)更改为High模式(有最好的布局布线结果,运行实际也长,适用于复杂设计(默认设置))。2、通过在.UFC文件中添加约束规则,把RAM输出端口和DSP的输入端口的布线延时进行缩短,约束规则如下:TIMESPEC
“TS_low_data_rom_to_low_data_DSP” = FROM “u_low_pass/u_low_data/u_low_data_rom/BRAMS_PORTB” TO “u_low_pass/u_low_data/u_low_data_mux2/DSPS” 8 ns DATAPATHONLY;
NET “adc_fclk_p<0>” CLOCK_DEDICATED_ROUTE = FALSE;
CLOCK_DEDICATED_ROUTE是一个高级约束,它指导软件是否遵循时钟配置规则。
当没有设置CLOCK_DEDICATED_ROUTE或设置为TRUE的时候,软件必须遵循时钟配置规则。
当CLOCK_DEDICATED_ROUTE设置为FLASE的时候,软件进行操作:
1 忽略到时钟配置规则
2 继续布局布线
只有当必须违反时钟配置规则的时候才设置CLOCK_DEDICATED_ROUTE约束。
ERROR:Pack:2907 - The I/O component “adc_clk_out_p” has an illegal IOSTANDARD value. The IOBM component is configured to use differential signaling and can not use single-ended IOSTANDARD value LVCMOS25. Two ways to rectify this issue are: 1)Change the IOSTANDARD value to a differential standard. 2) Correct the I/O connectivity by instantiating a single-ended I/O buffer.
这个是更改IO的电平标准。
ERROR:Xst:2033 - Port IB of Input buffer u_adc_inf/adc_inf[0].u_adc64xx/ibufdsah_inst is connected to GND
ERROR:Xst:1847 - Design checking failed
ERROR:Xst:2033的意思是:在IBUFDS模块里面的输入被接地了。
问题的原因是:这个源语的输入是一个0.这种原因一般是输入信号的例化出了问题或者输入信号是个定值。更改这个错误一般是找输入信号的各个例化路径和信号的输入源头。
ERROR:NgdBuild:455 - logical net ‘clk400m_p’ has multiple driver(s)
原因分析:DCM出来的时钟经进了BUFG,输入时钟是从IBUFG进入的,在底层结构上BUFG不能联到IBUFG。DDR生成后有一个顶层的源文件,在那里面找到一个关于原语写的BUFG也不知是IBUFG,将这个原语跳过就可以,保存然后在编译就不报错了。
"ERROR:ConstraintSystem:59 - Constraint< xxx>: NET/INST “xxx” 未找到。Please verify that:
- The specified design element actually exists in the design.2. The specified object is spelled correctly in the
constraint source file.
解决办法:为了防止综合工具删除net,应为 net 应用 (* keep=“true” *)
另外注意检查管脚约束UCF文件中,是否有对多余的IO信号分配了同一个管脚。
NET"u_ddr2_infrastructure/sys_clk_ibufg"TNM_NET= “SYS_CLK”;
TIMESPEC “TS_SYS_CLK” = PERIOD “SYS_CLK” 3.75 ns HIGH 50 %;
NET “u_ddr2_infrastructure/clk200_ibufg” TNM_NET = “SYS_CLK_200”;
TIMESPEC “TS_SYS_CLK_200” = PERIOD “SYS_CLK_200” 5 ns HIGH 50 %;
但是在Implement Design过程中会报错找不到NET"SYS_CLK",
原因就是时序约束时没有把系统官方给的时序约束添加到自己文件放置的路径上。可以这样修改:就是把自己文件所在的路径加上即可INST “u_hight_pass/u_ddr2_core/
/gen_rden_dly.u_ff_rden_dly” TNM =
“TNM_RDEN_DLY”;
TIMESPEC “TS_MC_RDEN_DLY” = FROM"TNM_RDEN_DLY" TO FFS “TS_SYS_CLK” * 4;