ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。
实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要介绍通过界面修改属性。
在工程实现后,调试过程中发现需要修改某个经MMCM产生的时钟相位,从0都改为90都,步骤如下:
1)打开实现的设计open implementation design,并找到相应的mmcm模块,按F4即可出现schematic视图
2)选中mmcm_adc_inst模块,在cell_properties(如果没有出现,右键即可找到cell properties)
找到CLKOUT0_PHASE,默认值为0,我们直接改为90即可
3)保存,此时会生成一条tcl指令到约束文件中
4)这时我们就可以生成.bit了。此时不能点击左侧Generate Bitstream,而必须使用tcl指令
write_bitstream temp.bit
.bit文件名和路径可自行指定,结束后会有提示
如果没有指定路径,temp.bit生成后在当前默认路径下,输入pwd即可查看
pwd
C:/Users/xxxxx/AppData/Roaming/Xilinx/Vivado
通过vivado界面修改寄存器初始值,查找表内容,甚至手动布线等操作基本相同。