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

相关文章

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me