在VIVADO中Block Design设计中调用v或者vhd文件作为模块,如果模块中调用了IP,那么编译时会报下面这个错:
[filemgmt 56-328] Reference 'input_buffer' contains sub-design file 'e:/Vivado_PRJ_18.2/0604/0604.srcs/sources_1/ip/input_ram/input_ram.xci', which is configured for out-of-context synthesis. OOC sub-designs are not allowed in the reference. To change the setting, use TCL command: 'set_property generate_synth_checkpoint 0 [get_files input_ram.xci]'.
使用 set_property generate_synth_checkpoint 0 [get_files input_ram.xci] 即可解决上面的错误。
但是,如果修改模块中调用的子IP,VIVADO并不会更新Block Design下模块生成的IP。我遇到这个坑,修改完子IP,编译生成比特流,仍然不能解决问题,后来才发现这个坑。目前我的解决办法是,重新定制一个别的名称的子IP,在模块里例化新的,删掉旧的。