当前位置: 首页 > news >正文

Vivado生成edif网表及其使用

        介绍如何在Vivado中将模块设为顶层,并生成相应的网表文件(Verilog文件和edif文件),该过程适用于需要将一个模块作为顶层设计进行综合,并生成用于其他工程中的网表文件的情况。

        例如要将fpga_top模块制作成网表给其它工程使用:

1. 将模块设为顶层

首先要确保“fpga_top”模块是顶层模块,在Vivado中进行以下操作:

  • 在Vivado中打开项目。

  • 在“Sources”窗口中,右键点击 fpga_top模块。

  • 选择 “Set as Top”,将其设为顶层模块。

2. 修改综合设置(Synthesis Settings)

进入综合设置,进行以下修改:

  • 在“Flow Navigator”面板中,点击 “Settings”

  • 在左侧选择 “Synthesis”

  • 修改以下选项:

  • -flatten_hierarchy:设置为 full,使综合后的层次结构扁平化,只保留顶层模块。这样做会使得生成的网表文件不易查看到模块之间的层次结构(网表文件只包含顶层模块的内容)。

  • -mode:设置为 -mode out_of_context,这样综合时不会自动插入IO buffer(如IBUF、OBUF等),从而生成一个干净的网表文件,如果生成的网表文件需要被其他模块例化,插入的 IO buffer 会导致端口连接错误或冗余逻辑。

3. 进行综合(Synthesis)

        点击 Run Synthesis,开始综合。

4. 打开综合后的设计(Open Synthesized Design)

        综合完成后,点击 Open Synthesized Design,进入综合后的设计视图。

5. 生成Verilog网表文件

        在 Tcl Console 中输入以下1种命令,生成Verilog网表文件:添加了路径的命令.v文件生成在指定位置,没有添加路径的命令生成的.v文件默认保存在工程文件路径

  • 如果使用的是 Vivado 2017.4 或更早版本,使用以下命令:
write_verilog -mode port <路径><文件名>.v
或者
write_verilog -mode port <文件名>.v
  • 如果使用的是 Vivado 2018.1 或更新版本,使用以下命令:
write_verilog -mode synth_stub <路径><文件名>.v
或者
write_verilog -mode synth_stub <文件名>.v

例如,文件名为 fpga_top.v,可以使用:

write_verilog -mode synth_stub E:/FPGA_PRJ/pga_top.v
或者
write_verilog -mode synth_stub fpga_top.v
  • 这将生成包含仅有IO接口信息的 .v 文件。

7. 生成EDIF网表文件

Tcl Console 中输入以下命令来生成EDIF网表文件:

  • 如果模块不包含Xilinx的IP,使用:
    write_edif <路径><文件名>.edf
    或者
    write_edif <文件名>.edf
  • 如果模块包含Xilinx的IP,使用:
    write_edif -security_mode all <路径><文件名>.edif
    或者
    write_edif -security_mode all <文件名>.edif
    例如,文件名为fpga_top.edif,可以使用:
    write_edif fpga_top.edf
    或者
    write_edif E:/FPGA_PRJ/fpga_top.edf
    这将生成一个.edif文件,包含LUT、FDCE等连接信息,没有RTL源码。

8. 查看生成的网表文件

在目录下找到生成的网表文件,1个.v文件和1个.edif文件

,生成后的网表文件包含了以下内容:

  • fpga_top.v 文件:只包含IO接口信息,其他部分为空。
  • fpga_top.edif文件:包含了使用的LUT、FDCE等资源的连接信息。

9. 使用网表文件

        将生成的 .v 和.edif文件导入到目标工程中,然后进行模块的例化使用。这些文件可以在其他模块中被实例化,或者与其他模块进行集成。

        顶层例化.edif和.v文件时,命名需要和文件名一样

        eg:有生成好的网表fpga_top.edif和 fpga_top.v ,在顶层FPGA调用例化此网表时,需要将模块名和文件名一致,否则例化会失败( fpga_top u_1)

http://www.lryc.cn/news/538392.html

相关文章:

  • Win10环境借助DockerDesktop部署大数据时序数据库Apache Druid
  • mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办
  • 力扣动态规划-32【算法学习day.126】
  • 【算法进阶详解 第一节】树状数组
  • 【苍穹外卖】学习
  • Python常见面试题的详解8
  • Deepseek R1模型本地化部署与API实战指南:释放企业级AI生产力
  • node.js + html调用ChatGPTApi实现Ai网站demo(带源码)
  • sql语言语法的学习
  • 力扣 最长递增子序列
  • 【linux】在 Linux 服务器上部署 DeepSeek-r1:70b 并通过 Windows 远程可视化使用
  • visutal studio 2022使用qcustomplot基础教程
  • Linux:线程概念、理解、控制
  • Postman如何流畅使用DeepSeek
  • K8S下载离线安装包所需文件
  • 探索Hugging Face:开源AI社区的核心工具与应用实践
  • 【操作系统】深入理解Linux物理内存
  • npm 私服使用介绍
  • 安全筑基,智能赋能:BeeWorks IM引领企业协同新纪元
  • 水务+AI应用探索(一)| FastGPT+DeepSeek 本地部署
  • [JVM篇]垃圾回收器
  • SQL Server:查看当前连接数和最大连接数
  • DeepSeek应用——与PyCharm的配套使用
  • 【第15章:量子深度学习与未来趋势—15.3 量子深度学习在图像处理、自然语言处理等领域的应用潜力分析】
  • 多模态基础模型训练笔记-第一篇InternVL-g
  • MyBatis:动态SQL高级标签使用方法指南
  • 使用grafana v11 建立k线(蜡烛图)仪表板
  • ubuntu 安装 Redis
  • 利用docker-compose一键创建并启动所有容器
  • mysql开启gtid并配置主从