Gowin FPGA工程modelsim功能仿真和时序仿真

news2024/12/23 22:18:38

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Gowin FPGA工程的modelsim功能仿真和时序仿真

  • 前言
  • 功能仿真
  • 时序仿真(后仿真)


前言

下面记录一下modelsim功能仿真和时序仿真的操作步骤,学习新器件的第一步,当然是要知道怎么进行IP核的仿真了。下面就以高云IP库中 Gowin_Uart_to_Bus_RefDesign的参考设计来举例说明
下载地址:
http://www.gowinsemi.com.cn/enrollment_view.aspx?TypeId=67&Id=953&FId=t27:67:27

功能仿真

功能仿真包括综合前的用户RTL 设计功能仿真和综合后逻辑网表功能仿真,所需要的文件有:综合前用户设计RTL 文件、综合后网表文件(*.vg)、激励文件(testbench)*tb.v 以及功能仿真库文件prim_sim.v。

功能仿真prim_sim.v文件都在这个simlib文件夹里面了,根据使用的器件选择prim_sim.v就是。
在这里插入图片描述
高云IP的参考设计都做得比较贴心,在参考设计中
在这里插入图片描述
直接点击do.bat就能自动调用modelsim进行功能仿真了
在这里插入图片描述
cmd.do中内容如下:

## part 1: new lib
vlib work
vmap work work

## part 2: load design
vlog -novopt -incr -work work "../../tb/prim_sim.v"
vlog -novopt -incr -work work "../../tb/tb_top.v"
vlog -novopt -incr -work work "../../project/src/top.v"
vlog -novopt -incr -work work "../../project/src/apb2local.v"
vlog -novopt -incr -work work "../../project/src/local2reg.v"
vlog -novopt -incr -work work "../../project/src/uart_to_bus/uart_to_bus.vo"



## part 3: sim design
vsim -novopt work.tb_top

## part 4: add signals
add wave -group "tb_top" {sim:/tb_top/*}


## part 5: show ui 
view wave
view structure
view signals

## part 6: run 
run 160000000ns

时序仿真(后仿真)

时序仿真需要的文件:软件产生的时序仿真逻辑网表文件*.vo、对应的延时文件*.sdf、对应的激励文件tb.v 以及时序仿真库prim_tsim.v。注意,这里是时序仿真库哦!!!这个库也在那个simlib文件夹里面。
时序仿真逻辑网表文件
.vo 和延时文件*.sdf 可以通过云源界面运行工程生成
在这里插入图片描述
编译完成之后,project\impl\pnr文件夹中会有一个uart_to_bus_demo.vo 文件和uart_to_bus_demo.fs文件。

然后将do文件中脚本如下设置。因为现在的IDE,GW5AT还没有提供prim_tsim.v文件,这里先把器件改成了GW2A的。注意do文件中和上面功能仿真时do文件的差异。

## part 1: new lib
vlib work
vmap work work


## part 2: load design
#vlog -novopt -incr -work work "../../tb/simlib/gw2a/prim_sim.v"
vlog -novopt -incr -work work "../../tb/simlib/gw2a/prim_tsim.v"


vlog -novopt -incr -work work "../../tb/tb_top.v"
#vlog -novopt -incr -work work "../../project/src/top.v"
#vlog -novopt -incr -work work "../../project/src/apb2local.v"
#vlog -novopt -incr -work work "../../project/src/local2reg.v"
#vlog -novopt -incr -work work "../../project/src/uart_to_bus/uart_to_bus.vo"

vlog -novopt -incr -work work "../../project/impl/pnr/uart_to_bus_demo.vo"
## part 3: sim design
vsim -novopt -gui work.tb_top -sdfnoerror -sdfnowarn -sdftyp "tb_top/u_top=../../project/impl/pnr/uart_to_bus_demo.sdf"

## part 4: add signals
add wave -group "tb_top" {sim:/tb_top/u_top/*}

## part 5: show ui
view wave
view structure
view signals


## part 6: run
run 160000000ns

特别要注意这句话:
vsim -novopt -gui work.tb_top -sdfnoerror -sdfnowarn -sdftyp “tb_top/u_top=…/…/project/impl/pnr/uart_to_bus_demo.sdf”
这里tb_top/u_top都是代码中的例化名,而不是模块名或者文件名

改完之后,点击do.bat。时序仿真明显变慢了很多
在这里插入图片描述
找一些内部信号来看,已经不和时钟上升沿对齐了,说明sdf中的延迟信息生效了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/916906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

持续集成与持续交付:现代软件测试的变革之路

引言 在数字化时代,软件开发的速度和复杂性都在不断增加。为了满足市场的需求,企业需要更快、更高效地交付高质量的软件产品。在这样的背景下,持续集成与持续交付(CI/CD)成为了软件开发和测试的核心实践。 软件开发的…

Android 之 Vibrator (振动器)

本节引言: 本节我们介绍的是Vibrator(振动器),是手机自带的振动器,别去百度直接搜针振动器,因为 你的搜索结果可能是如图所示的神秘的道具,或者其他神秘道具: 嗯,说回本节介绍的Vibrator&#…

电路学习+硬件每日学习十个知识点(39)23.8.19 (电路模型,电感,电容)

文章目录 1.电力线路和通信线路2.实际电路的元器件3.集总参数元件(类似于物理的质点)4.电子电路习惯画法5.电感元件6.电容元件 1.电力线路和通信线路 电路的基本功能可分为两大类:一类电路进行能量的传输、分配和转换,如电力线路…

jdk生成jre供javaFx使用

文章目录 前言一、Jdk二、使用步骤1.进入到jdk目录下2.地址栏输入cmd3.执行生成命令4.注意 总结 前言 JavaFx开发桌面程序,发布给其它人时候需要附带jre 一、Jdk 自备jdk8、jdk11、jdk17等等 二、使用步骤 1.进入到jdk目录下 2.地址栏输入cmd 3.执行生成命令 b…

Error: Flash Download failed - “Cortex-M7“

选择对应FLM文件加上即可。 具体可参考: https://www.sunev.cn/embedded/669.html https://zhuanlan.zhihu.com/p/487664063

【Git】学习总结

【Git】学习总结 【一】安装【二】Git克隆项目代码【1】idea下载git项目【2】创建新的分支【3】新建的分支推送到远程【4】合并最新代码到主分支【5】切换分支 【三】提交本地项目到远程🚀1. 配置 Git🚀2. 创建项目远程仓库🚀3. 初始化本地仓…

江西萍乡能源石油化工阀门三维扫描3d测量抄数建模-CASAIM中科广电

长期以来,石油天然气、石油石化、发电和管道输送行业在环保、健康和安全保障方面一直承受着巨大的压力,他们必须确保相关规程在各项作业中得到全面贯彻。 阀门作为流体管道运输中的组成部分,其装配密封度是保证流体运输安全的重要一环&#…

将AI融入CG特效工作流;对谈Dify创始人张路宇;关于Llama 2的一切资源;普林斯顿LLM高阶课程;LLM当前的10大挑战 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 将AI融入CG特效工作流,体验极致的效率提升 BV1pP411r7HY 这是 B站UP主 特效小哥studio 和 拓星研究所 联合投稿的一个AI特…

分布式锁系列之zookeeper分布式锁和mysql分布式锁

目录 介绍 下载安装 基本指令​编辑 java集成zookeeper 官方提供版 永久节点 临时节点​编辑 永久序列化节点 判断当前节点是否存在 获取当前节点中的数据内容 获取当前节点的子节点 更新节点内容 删除节点 zookeeper实现分布式锁 Mysql实现分布式锁 总结 介绍 ZooK…

关于stm32推挽带有上下拉电阻的思考、IO口驱动能力是什么

1、发现推挽带有上下拉电阻 1.1、stm32手册 记忆中推挽是不需要上下拉的,没关注过,但是我真的理解上下拉吗,下图来自stm32f4的中文版和英文版的数据手册,没有翻译错,就是“推挽带有上下拉的能力”。 1.2、查找相关信…

tomcat8的安装和部署启动jpress应用

首先准备tomcat,jdk,jpress安装包 一. tomcat8的安装 1. 使用xftp等工具将软件包上传至Linux 2. 将jdk移至/usr/local/tomcat并安装jdk mv jdk-8u261-linux-x64.rpm /usr/local/tomcat yum localinstall jdk-8u261-linux-x64.rpm -y 3. 将tomca…

【PHP】数据类型运算符位运算

文章目录 数据类型简单(基本)数据类型:4个小类复合数据类型:2个小类特殊数据类型:2个小类类型转换类型判断整数类型浮点类型布尔类型 运算符赋值运算符算术运算符比较运算符逻辑运算符连接运算符错误抑制符三目运算符自…

高忆管理:哪些股票建议不要选?是什么原因?

出资者在进行股票买卖时,股票的挑选也是很重要的一个过程,其决议了后期股票的开展情况以及出资者的盈亏情况。那么哪些股票主张不要选?是什么原因?下面就由高忆管理为大家分析: 1、成绩不好的股票 上市公司的成绩是支…

关于chromedriver.exe一系列问题的解决办法

最新 chromedriver.exe下载地址:https://googlechromelabs.github.io/chrome-for-testing/#stable 下载最新版本的 chromedriver.exe 将其解压在 python.exe 同目录下,以及Chrome 的路径下 例如: C:\Program Files\Google\Chrome\Applicati…

动态修改日志级别,太有用了!

首发于公众号:BiggerBoy 背景 我们在系统中一般都会打印一些日志,并且在开发、测试、生产各个环境中的日志级别可能不一样。在开发过程中为了方便调试打印了很多debug日志,但是生产环境为了性能,为了节约存储资源,我们…

设备管理系统是什么?的修设备管理系统有什么功能?

随着计算机技术的迅速发展和移动互联网的商业化和社会化应用,设备的种类和数量急剧增加。如何利用先进的网络技术和快速更新的计算机设备来有效地收集和处理设备信息,建立以信息化为核心的管理体系,减轻管理和业务人员的数据处理负担&#xf…

影像组学文章复现:ITHscore:通过多尺度放射学特征全面定量NSCLC肿瘤内异质性 ----小细胞肺癌肿瘤异质性评分

目的:通过计算机断层扫描(CT)图像量化非小细胞肺癌(NSCLC)的肿瘤内异质性(ITH)。 方法:整合局部辐射特征和全局像素分布模式,开发定量ITH测量-ITHscore。在六个患者队列(n = 1399)中检查ITHscore与肿瘤表型,基因型和患者预后的关联,以验证其在表征ITH方面的有效性…

【QT】绘制旋转等待

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 程序中经常会遇到耗时的操作,需要提供等待的窗口,防止用户多次点击造成卡顿等问题。本文分享旋转等待技术,希望对各位小伙伴有所帮助!结果如下:

长胜证券:越南首富,又火了!旗下汽车股市值盘中超越比亚迪!

当地时刻8月22日,美股三大股指涨跌纷歧,其中,道指跌0.51%,标普500指数跌0.28%,纳斯达克指数涨0.06%。 异动股方面,8月22日周二,越南电动轿车出产商VinFast Auto ADR盘中上涨超越167%&#xff0c…

uniapp日期选择组件优化

<uni-forms-item label="出生年月" name="birthDate"><view style="display: flex;flex-direction: row;align-items: center;height: 100%;"><view class="" v-