本文主要是介绍Vivado生成网表文件的步骤及方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
软件版本 Vivado 2018.3 估计是在2018 1019系列应该都适用。亲测可用。全部干货。
第①步:
将需要生成网表的模块代码设置为顶层
第②步:
在界面中的Tools -> setting -> synthesis
修改Synthesis Options
其中需要注意的是,Options中将-flatten_hierarchy设为full,意思是模块综合后的层次结构全部为平级,只剩下顶层,这样产生的网表文件就不易被查看到层级关系了。
第③步:
在界面中的Tools -> setting -> synthesis
在 more options* 中填入:-mode out_of_context
More Options选项设置为-mode out_of_context,原因是因为Vivado在综合的时候会自动将顶层的IO口自动插入buffer,而现在需要生成网表的模块往往不是顶层,生成的文件是需要被其他模块例化的,所以不能含有IO buffer,设为-mode out_of_context即表示不插入IO buffers,具体可详见UG901的第26页。
第④步:
对模块进行综合,点击Run Synthesis
第⑤步:
综合完成之后打开综合完成的设计,点击Open Synthesized Design
第⑥步:
生成网表文件
生成网表文件前需要先Open Synthesized Design,然后在Tcl Console中输入命令
vivado 2017.4及以前 命令格式为:
write_verilog -mode port <design_name>.v
vivado 2018.1及以后 命令格式为:
write_verilog -mode synth_stub <design_name>.v
举个例子:
文件名前面不加地址则默认保存在C:/Users/<user>/AppData/Roaming/Xilinx/Vivado/
write_verilog -mode synth_stub D:/fsm_test_top.v
此时只生成了只有IO接口信息的.v文件,还需要最后一步就完成。
第⑦步:
生成网表edf文件,同样在Tcl Console中输入
模块不包含Xilinx的IP命令格式为:
write_edif <design_name>.edf
模块包含Xilinx的IP命令格式为:
write_edif -security_mode all <design_name>.edf
到此时,网表文件生成完成。
补充:
网表文件的调用是直接例化就可以,把.v文件和edf文件一起添加到工程中直接例化就可以使用。
在Synthesis Settings中的-flatten_hierarchy不选择full,而保持默认的none,那么在其他所有操作不变的情况下,在其他工程实例化该网表文件,并且对其进行综合,可以得到综合后的结果,和之前和结果一样,别人可以看到结构层次,选择为full就可以直接铺平,别人看不到层次等级。
时隔2年再一次开始写CSDN了,哈哈。
这篇关于Vivado生成网表文件的步骤及方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!