问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 186 人浏览分享

开启左侧

[MILIANPAI-F01-EG4D]FPGA程序设计基础实验连载-03安路TD结合modelsim仿真

[复制链接]
186 0
安路-FPGA课程
安路课程: 基础入门 » 新手入门实验
安路系列: EG4
本帖最后由 UT发布 于 2025-4-8 11:07 编辑

软件版本:TD_5.6.4_Release_97693
操作系统:WIN11 64bit
硬件平台:适用安路(Anlogic)FPGA
登录米联客”FPGA社区-www.uisrc.com视频课程、答疑解惑!
1概述

FPGA开发中对设计的代码功能进行必要的仿真可以提高研发效率,详尽的测试条件更能让一些设计隐患提前发现,所以代码的仿真在FPGA开发中非常重要,对于初学者一定不能只满足于表象的功能实现,而应该严谨的对自己编写的代码进行充分仿真验证,之后上板验证。

在进行本实验前,请提前安装好modelsim。本实验所实用的modelsim版本为modelsim-win64-10.6d-se


实验目的:

1:掌握modelsim如何编译TDFPGA

2:掌握modelsim如何仿真安路

3:掌握TD软件如何设置modelsim仿真

4:掌握从TD调用modelsim的仿真方法

2仿真库的编译

EG4D为例,TD软件自带有仿真模型,并可在modelsim进行编译,步骤如下:

1:modelsim 的安装目录下,新建文件夹,如:anlogic

image.jpg

2:启动 modelsim,选择 file → change directory 将路径转到 anlogic 文件夹下

image.jpg
image.jpg

3:在anlogic文件夹下新建文件夹,如:src,以存放TD的仿真模型源文件,并将TD安装路径下的sim目录下的所有文件复制过来。

image.jpg

4: modelsim file → new → library 下新建名为 eg4d 的库

image.jpg
image.jpg

5:打开 compile → compile,弹出compile souce files对话框,library中选择刚建立的eg4d,查找范围选择 src 下的所有文件芯片型号为EG4D,所以此处勾选alcommoneg文件夹中的所有文件)。勾选 compile selected files together,单击一个文件,按住ctrl+a全选,之后单击Compile执行编译命令

image.jpg
image.jpg

编译成功后单击Done

image.jpg
3使用modelsim仿真验证
3.1 方法一使用modelsim创建仿真工程

本文实验在前一个demo的基础上完整。仍以第二章创建的工程为例,提供testbench(文件名为pll_test_tb.v,一般存放在\uisrc\02_sim路径下)代码如下:

  1. `timescale 1ns / 100ps
  2. module pll_test_tb( );
  3. reg I_sysclk;
  4. wire [1:0] O_up_led;
  5. pll_test u_pll_test(
  6.     .I_sysclk(I_sysclk),
  7.     .O_up_led(O_up_led)
  8. );
  9. initial begin
  10.     I_sysclk = 1'b0;
  11. end
  12. always #20 I_sysclk=~I_sysclk;
  13. endmodule
复制代码

1:modelsim 中,点击 file → new → project,新建 project,如:sim_prj

image.jpg

2:可点击 add existing file 添加设计文件,也可点击 Create New File 创建新的设计文件,并将其添加到工程。

image.jpg

3:可以连续多次把需要仿真的文件都添加进来若未将文件一次性添加完,则在Project工作区空白处右击,选择Add to Project进行添加。

image.jpg

4:点击进行编译,编译成功后,源文件的状态将会由变成✔”

image.jpg
image.jpg

补充:若仿真时碰到关于glbl的问题,请在testbench中引用Anlogic的glbl模块。

image.jpg

5:点击 simulate → start simulation首先在Libraries选项卡中添加我们编译好的eg4d库文件。

image.jpg

点击Add,下拉选择eg4d库文件。

image.jpg

6. work 库中选择 testbench 文件进行仿真,如果想仿真后,在模块列表中查看各信号参数或波形的变化情况,可将“Enable optimization”前面的勾去掉,否则,Modelsim 会将信号参数优化掉,导致信号列表为空。

image.jpg

点击OK进行仿真

(如果波形窗口没有出来,单击View->Wave调用出来,其他窗口没有出来的也能通过这里设置)

image.jpg
image.jpg

点击u_pll_test,选择需要观察到波形窗口的信号

image.jpg

右击,把信号添加到波形窗口

image.jpg
image.jpg

设置单步仿真10us

image.jpg
image.jpg

注:此处pll_lock信号无法正常输出,与TD版本有关,在新版本中该问题能够解决。该问题仅在仿真时出现,不影响正常编译。

3.2 方法使用直接编辑仿真文件仿真

除了第一种方法,对于有一定经验的工程师可以使用第二种更加便捷的方法。

首先看下本工程路径下提供了2个模板文件

image.jpg

cmd.do文件可以直接在modelsim控制台中执行,其中D:/ModelSim_SE/anlogic/eg4d就是我们前面编译好的仿真库

  1. ## part 1: create lib
  2. vlib work
  3. vmap work work
  4. ## part 2: load rtl
  5. vlog  -timescale 1ps/1ps  -f   compile.f                                                                     
  6.                                                       
  7. ## part 3: sim
  8. vsim -L D:/ModelSim_SE/anlogic/eg4d -gui -novopt work.pll_test_tb
  9. #vsim -voptargs=+acc work.pll_test_tb         
  10. ## part 4: add wave
  11. #do wave.do
  12. add wave *
  13. ## part 5: show ui
  14. view wave
  15. view structure
  16. view signals
  17. ## part 6: run sim
  18. #run -all
  19. run 1000ns
复制代码

compile.f 设置编译文件的路径,一般只要对compile.f进行修改,本工程只用到了3个文件(../表示追溯到上一个文件夹)

  1. ../01_rtl/pll_test.v
  2. ../02_sim/pll_test_tb.v
  3. ../../al_ip/mypll.v
复制代码

cmd.docompile.f复制到uisrc/02_sim路径

image.jpg

打开modelsim并且设置路径

image.jpg

选择路径

image.jpg

在控制台输入do cmd.do

image.jpg

可以看到波形完成加载

image.jpg
之后的仿真和前面的方法一样。
3.3 方法使用TD联合仿真
3.3.1 仿真参数设置

TD 支持用户使用第三方工具(如 Synopsys VCSMentor Graphics Modelsim 等)来进行功能验证和时序验证。TD 提供仿真所需的功能和时序模型。

在进行TD联合调试前,请根据本实验前面内容完成仿真库的编译。

以下介绍在TD软件中生成供Modelsim 仿真所需文件的流程。

1:在运行 HDL2Bit Flow 前,先设置相关参数。

image.jpg

2:Optimize RTL,设置 rtl_sim_model ON。

image.jpg

3:Optimize Gate,设置 map_sim_modle gate_sim_model ON。

image.jpg

4:Optimize Routing,设置 set phy_sim_model ON。

image.jpg

5:Timing Option 设置 sdf ON。

image.jpg

6:设置 Modelsim 仿真相关参数


image.jpg

lib 指定仿真的库文件 没有默认值,需手动指定路径

runtime 指定仿真运行的时间 1000 ns

resolution 指定仿真的时间精度 1 ps

3.2.2 仿真文件do文件设置

1:运行 HDL2Bit Flow

对于向执行什么级别的仿真,就执行对应的HDL2Bit Flow

HDL2Bit Flow 运行至 Read Design 这一步时,可执行 Behavioral Simulation

HDL2Bit Flow 运行至 Optimize RTL 这一步时,可执行 Post-RTL Simulation

HDL2Bit Flow 运行至 Optimize Gate 这一步时,可执行 Post-Gate Simulation

HDL2Bit Flow 运行至 Optimize Routing 这一步时,可执行 Post-Route Simulation

以执行Behavioral Simulation仿真来说,只要执行Read Design 这一步,如下图

image.jpg

2:定义 testbench 文件

如点击 tools->Simulation 则会弹出如下对话框,可以添加一个已经存在的

image.jpg

testbench 文件可以新建一个 tb 或者添加一个已经编写好的 tb 仿真文件,这里我们添加已经编写好的。

image.jpg

点击 OK 后,将会在工程目录下生成 fpga_prj_behavioral_sim.do\ fpga_prj_gate_sim.v\ fpga_prj_map_sim.v\

fpga_prj_rtl_sim.do\ fpga_prj_rtl_sim.v 并在 TD 界面打开 fpga_prj_behavioral_sim.do 文件。

打开 fpga_prj_phy_sim.do 或者 fpga_prj_rtl_sim.do,并且修改,确保所有的程序文件路径都正确设置如下图所示。

image.jpg
3.2.3 启动modelsim仿真

1:改变路径

image.jpg

设置到工程路径下的 simulation 路径

image.jpg

路径切换成功

image.jpg

在控制台输入 ls 查看路径下的文件

image.jpg

输入 do fpga_prj_behavioral_sim.do 执行仿真

image.jpg
image.jpg
image.jpg





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

294

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版