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

本文详细介绍了如何在GowinFPGA的modelsim中进行用户RTL设计的功能仿真和综合后的逻辑网表功能仿真,以及如何进行时序仿真,包括所需文件、仿真脚本和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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中的延迟信息生效了

高云 FPGA 仿真环境搭建涉及以下步骤: 1. 第一步是安装 FPGAs 以及辅助工具。首先,需要选择合适的 FPGA 开发板,并按照厂商提供的指南进行硬件的连接安装。然后,根据 FPGA 型号开发环境,下载并安装相应的开发工具、驱动程序文档。 2. 接下来,需要创建工程文件。在开发工具中,选择新建项目,并配置好项目的基本参数,如项目名称、FPGA型号、时钟频率等。然后,添加需要仿真的设计文件,如VHDL或Verilog源文件,以及其他外部依赖文件。 3. 在创建工程后,需要配置仿真选项。根据设计的功能需求,选择合适的仿真模式仿真器。常见的仿真模式包括行为级仿真、寄存器传输级仿真门级仿真,不同的模式可提供不同层次的仿真精度仿真速度。此外,还需配置时钟输入激励信号以及仿真结束条件等。 4. 在配置好仿真选项后,可以对设计进行编译综合。开发工具会将设计文件转换为可在 FPGA 上实现的二进制文件。同时,还可以利用综合工具将设计转换为门级电路,以优化设计的时序资源利用。 5. 一切准备就绪后,可以进行仿真运行。在仿真工具中,设置仿真的起始时间仿真时间,并启动仿真过程。仿真工具会逐步执行设计中的各个模块,记录输出结果,并生成仿真波形图或仿真日志,以便分析设计的正确性性能。 6. 最后,根据仿真结果分析,进行必要的调试优化。根据仿真波形日志,可以检查设计中的错误、时序问题或性能瓶颈,并进行适当的修改优化。 以上就是高云 FPGA 仿真环境搭建的基本步骤。通过正确配置仿真选项、编译综合设计,并进行仿真运行分析,可以有效验证设计的功能性能,并为后续的 FPGA 开发工作提供指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA十年老鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值