1生成网表文件,有参数的不能生成edn,在生成时不报错,在整体代码综合时就报错。我还犯过一次错误是忘记ifndef里的模块有参数,也不能直接生成为edn文件,得把参数去掉
2 先把子模块设为top综合了,记得去掉约束文件在综合和布局中的勾选 加上综合选项-mode out_of_content
3子模块打开综合的文件(open synthesized design) 用tcl指令生成v和edn
tcl指令 write_verilog –mode synth_stub D:/<design_name>.v
其中design_name必须和模块名一致,而不是和本来的源码文件名一致,我这块犯过错误,之后用edn替代代码加不进去。
write_edif –security_mode all D:/<design_name>.edn
edn edf都行 我这边工程师习惯edn
4 移掉代码,换上edn,换回正常top,设置综合的配置 删掉-mode out_of_content,如果不删除,在最后的布局布线会报错,生成不了bit文件。约束文件在综合和布局的勾选选中,让约束文件起效
5 综合 布局 生成bit 完成~
6 综在使用中新发现的问题,如果Verilog中用了宏 define,我生成完edn文件之后,改了宏的状态(比如从不注释到注释了宏),要重新生成edn。所以在生成edn前检查好了,生成了之后就不要动。