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了,哈哈。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值