约束文件怎么写:
Vivado中的xdc是基于Synopsys的设计约束(SDC),同时也是Xilinx专有的物理约束。
我这次主要用到时钟约束和引脚约束,两者都有文本设置和GUI设置。具体的实现过程,可以看《Xilinx FPGA权威设置指南》
时钟约束和I/O管脚约束:
(1)时钟约束
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets sys_clk]
set_property PACKAGE_PIN J8 [get_ports {sys_clk_p[0]}]
如果由普通的IO管脚驱动全局时钟资源,比如bufg或者mmcm,则CLOCK_DEDICATED_ROUTE = FALSE。
因为是IO管脚上,所以其周围没有全局时钟 BUFG,所以我们在 XDC 里使用:set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets {OV7670_PCLK_IBUF}] 来屏蔽 Xilinx 的检测,从而通过编译。这个方式在软件提示的错误中也提供了解决方法,
(这部分的解释来源于https://blog.csdn.net/Iloadingl/article/details/114296432)
create_clock -period 9.411 -name sys_clk_p -waveform {0.000 4.705} [get_ports sys_clk_p]
其中9.411是时钟周期,0.000是上升沿的时间点,4.705是下降沿的时间点
(2)I/O引脚约束
set_property PACKAGE_PIN D29 [get_ports clk_sys_test]//I/O引脚分配设置命令
set_property IOSTANDARD LVCMOS25 [get_ports clk_sys_test]//I/O引脚电气标准设置命令
还有很多其他的约束命令,具体的可以参考《Xilinx FPGA权威设置指南》