Xilinx(AMD) vivado对FPGA网表文件进行功能仿真的方法

2024-06-10 21:20

本文主要是介绍Xilinx(AMD) vivado对FPGA网表文件进行功能仿真的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 概述

       在FPGA开发中很多商用IP核出于知识产权保护的目的,不提供源代码,而是提供综合后的FPGA网表。由于没有源代码,也无法对网表文件直接进行仿真的操作来验证功能,此时需要独立的仿真模型文件。

       本文介绍在Xilinx(AMD) vivado软件下对FPGA代码综合生成网表、网表的仿真模型,以及使用仿真模型对网表进行仿真的方法。

2 FPGA网表

        在vivado软件下有edf和dcp两种格式的网表文件。

2.1 综合设置

        网表生成前的综合设置,需要添加-mode out_of_context选项。在综合时vivado软件将不给顶层模块的input和output插入IO buffer。

       其余选项可以根据具体需求来选择。通常也有人会将代码的模块层次去除,在综合后的网表里就看不到模块的层次结构。

        设置完成后点击综合即可。

2.2 生成网表文件

       综合完成后,dcp格式的网表文件可以直接在工程目录下.runs\synth_1路径下找到与顶层模块同名的.dcp后缀的文件。

       生成edf格式的网表则需要进行额外几步操作。

1、打开综合结果

2、指定edf存放路径

       在Tcl Console输入例如:

cd E:/XXX/YYY/ZZZ/

3、生成edf网表端口描述文件

       在Tcl Console输入:

       vivado 2017.4及以前

write_verilog -mode port <design_name>.v

       vivado 2018.1及以后

write_verilog -mode synth_stub <design_name>.v

4、生成edf网表文件

       在Tcl Console输入:

       模块不包含Xilinx的IP

write_edif <design_name>.edf

       模块包含Xilinx的IP

write_edif -security_mode all <design_name>.edf

2.3 生成仿真模型

       1、指定文件存放路径

       在Tcl Console输入例如:

cd E:/XXX/YYY/ZZZ/

       2、生成仿真模型

       在Tcl Console输入:

write_verilog -force -mode funcsim <design_name>_sim_model.v

 3 仿真模型使用

       将生成的仿真模型<design_name>_sim_model.v添加到工程仿真文件中,为了防止与源文件冲突,设置其仅用于仿真。

       仿真模型可以用于综合前的行为仿真和综合后的功能仿真。

       可以直接使用仿真源文件的test bench对仿真模型进行仿真,无需做修改。仿真模型的仿真速度会比源文件的仿真速度慢很多。

这篇关于Xilinx(AMD) vivado对FPGA网表文件进行功能仿真的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049297

相关文章

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Java捕获ThreadPoolExecutor内部线程异常的四种方法

《Java捕获ThreadPoolExecutor内部线程异常的四种方法》这篇文章主要为大家详细介绍了Java捕获ThreadPoolExecutor内部线程异常的四种方法,文中的示例代码讲解详细,感... 目录方案 1方案 2方案 3方案 4结论方案 1使用 execute + try-catch 记录

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使