在Vivado工程的调试中,xdc文件指定管脚后,我们偶尔会临时修改管脚位置,但之前的位置信息还想保留在xdc中,因此很多工程师就会选择将之前的管脚信息注释在修改位置的后面。比如下面的工程中,rxd_pin的位置本来是F25
,我们需要临时改成E17
,同时把F25
注释到后面,表明这个位置之前是F25
![image-20210913152939927 图片[1]-Xilinx FPGA的 XDC约束中加入注释,为什么会导致该约束失效?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/41668139440.png)
在综合完后,Open Synthesised Design
后,会提示下面的Critial Warning
:
![image-20210913151152886 图片[2]-Xilinx FPGA的 XDC约束中加入注释,为什么会导致该约束失效?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/101668139443.png)
意思就是我们加的这个注释有问题,同时我们看下管脚分配的页面中,这个管脚确实是有问题的:
![image-20210913151803156 图片[3]-Xilinx FPGA的 XDC约束中加入注释,为什么会导致该约束失效?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/81668139443.png)
这是为什么呢?
首先大家需要知道的一点是,xdc里面的语句都是tcl脚本,所以语法也都是tcl的语法,如果语法错误,那xdc里面的内容也不会生效。
在tcl的语法中,行末注释是需要加分号的,就像下面这样:
![image-20210913153006166 图片[4]-Xilinx FPGA的 XDC约束中加入注释,为什么会导致该约束失效?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/41668139444.png)
再重新综合,打开管脚页面,可以看到,并没有任何错误和警告。
![image-20210913152458509 图片[5]-Xilinx FPGA的 XDC约束中加入注释,为什么会导致该约束失效?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/81668139455.png)
也可以把注释单独一行,也是正确的语法:
![image-20210913155134121 图片[6]-Xilinx FPGA的 XDC约束中加入注释,为什么会导致该约束失效?-Xilinx-AMD社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2022/11/71668139450.png)