[X]关闭

[米联派-安路飞龙DR1-FPSOC] FPGA基础篇连载-03 安路TD结合modelsim仿真

文档创建者:FPGA课程
浏览次数:396
最后更新:2024-09-07
文档课程分类-安路-DR1
安路-DR1: FPSOC-DR1-FPGA部分 » 2_FPGA实验篇(仅旗舰) » 1-FPGA基础入门实验
本帖最后由 FPGA课程 于 2024-9-9 18:36 编辑


软件版本:Anlogic -TD5.9.1-DR1_ES1.1
操作系统:WIN10 64bit
硬件平台:适用安路(Anlogic)FPGA
实验平台:米联客-MLKPAI-SF01-DR1M90M开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!

1概述
FPGA开发中对设计的代码功能进行必要的仿真可以提高研发效率,详尽的测试条件更能让一些设计隐患提前发现,所以代码的仿真在FPGA开发中非常重要,对于初学者一定不能只满足于表象的功能实现,而应该严谨的对自己编写的代码进行充分仿真验证,之后上板验证。
在进行本实验前,请提前安装好modelsim。本实验所实用的modelsim版本为modelsim-win64-10.6d-se。
实验目的:
1:掌握modelsim如何编译TD的FPGA库
2:掌握modelsim如何仿真安路
3:掌握TD软件如何设置modelsim仿真
4:掌握从TD调用modelsim的仿真方法
2仿真库的编译
以DR1器件为例,TD软件自带有仿真模型,并可在modelsim进行编译,步骤如下:
1:在 modelsim 的安装目录下,新建文件夹,如:anlogic,
a4dccbd331a94bd0b40840791940ad33.jpg
2:启动 modelsim,选择 file → change directory 将路径转到 anlogic 文件夹下
09ec7b86970046c58de131994fadf4f7.jpg
4b84a4fcbfe34c499d32c096607503ae.jpg
3:在 modelsim 的 file → new → library下新建名为DR1的库
66ecc77134ea45d783c3b9aaa8348d52.jpg ​编辑
fa3ef6c0308444a69e6c071000d6156c.jpg
5:打开 compile → compile,弹出compile souce files对话框,library中选择刚建立的DR1,查找范围选择 src 下的所有文件,勾选 compile selected files together,执行编译命令
6a5bcfdf7850430d84ae6f604736021a.jpg
d54f531664074c778b28969f9f5a5765.jpg
TD路径下的FPGA器件仿真库文件具体路径如下:
0a3d352be670432eabb845e992b973e3.jpg
单击一个文件,安装ctrl+a全选,之后单击Compile
651eaea313cb41be89d124e3c26360f1.jpg
编译成功后单击Done
e212128b042240c1bb792d4a1d843e63.jpg
3使用modelsim仿真验证
3.1 方法一使用modelsim创建仿真工程
本文实验在前一个demo的基础上完整。
1: 选择 file → change directory
918e8b32431c4ebfb8f64c98178c618d.jpg
7cc691b089b84d3cae10389a752aab6f.jpg
1:在 modelsim 中,点击 file → new → project,新建 project,如:sim_prj
38fbee9ab1f84934a033af46b145bcbf.jpg
f6f731f6c67d4d6fb90294e1314a689a.jpg

2:可点击 add existing file 添加设计文件,也可点击 Create New File 创建新的设计文件,并将其添加到工程。
fe3823b9bd444a2d8a8da2d958c902fd.jpg
3:可以连续多次把需要仿真的文件都添加进来
b62c2695982d494e8ba214c194808526.jpg
d7c9336c02ad457da816f1463d379c16.jpg
4:点击 进行编译,编译成功后,源文件的状态将会由“?”变成“✔”
da9943402ede4840a753698302fdb584.jpg
5:点击 simulate → start simulate,在 work Library 中选择 testbench 文件进行仿真,如果想仿真后,在模块列表中查看各信号参数或波形的变化情况,可将“Enableoptimization”前面的勾去掉,否则,Modelsim 会将信号参数优化掉,导致信号列表为空。
fc096fbc14dd4f81ac7f432acb78622e.jpg
43d63159fb544ebd8edea00742a50d1a.jpg
6:然后选择 libraries 点击 add,选择之前编译的DR1路径。
a82fb982f37e405bb04abebd9dac34d0.jpg
9b1e367b8d37465abc93fe23f5d1736b.jpg
点击 OK 进行仿真

c89791e90e76499f8ed1313aa6184636.jpg
56fc533f590a494dbb735254060dd625.jpg
如果波形窗口没有出来,单击View->Wave调用出来,其他窗口没有出来的也能通过这里设置
d0d29d7208b24d7586e4ec7b94c63c41.jpg
点击u_pll_test,选择需要观察到波形窗口的信号
b74c796038e54638899fbd22d043e31d.jpg
右击,把信号添加到波形窗口
1a4fce45b63b4ad498d40382b9e371f2.jpg
38a009e765be41cc902a51e7b3ffbf25.jpg
设置单步仿真10us
a4990505510b4cf780966d72d5b44c4c.jpg
仿真效果
bcd0f5df7baf4d0c829acb97ad2483cd.jpg

3.2 方法二使用直接编辑仿真文件仿真
除了第一种方法,对于有一定经验的工程师可以使用第二种更加便捷的方法。
首先看下本工程路径下提供了2个模板文件
0d8a18afb63c48c6b9ccbf0e76db2ed3.jpg
cmd.do改文件可以直接在modelsim控制台中执行,其中C:/modeltech64_10.6d/anlogic/DR1就是我们前面编译好的仿真库
  1. ## part 1: create lib
  2. vlib work
  3. vmap work work

  4. ## part 2: load rtl
  5. vlog -timescale 1ps/1ps -sv -f   compile.f                                                                     
  6.                                                       
  7. ## part 3: sim
  8. vsim -L C:/modeltech64_10.6d/anlogic/PH1 -gui -novopt work.sim_top_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/sim_top_tb.v
  3. ../03_ip/al_ip/mypll.v
复制代码
9d59af86079a4fa28e7fa8ae817bd6d0.jpg
打开modelsim并且设置路径
8cc63e26d7d2426c97afb65deaad5940.jpg
选择路径
39343ac733384baeab7caab0a8421532.jpg
在控制台输入do cmd.do
8cafc0fa91314529acd98dbfd5de0570.jpg
可以看到波形完成加载
4a1b6a355fb943a2a92d4990012ee769.jpg
之后的仿真和前面的方法一样。
3.3 方法三使用TD联合仿真
3.3.1 仿真参数设置
TD 支持用户使用第三方工具(如 Synopsys VCS、 Mentor Graphics Modelsim 等)来进行功能验证和时序验证。TD 提供仿真所需的功能和时序模型。
在进行TD联合调试前,请根据本实验前面内容完成仿真库的编译。
以下介绍在TD软件中生成供Modelsim 仿真所需文件的流程。
1:在运行 HDL2Bit Flow 前,先设置相关参数。
fcfa8c2d2ed24ee5b28435e4682c908c.jpg
2:点击 Simulation进行仿真相关的设置,设置与当前创建的工程相关联。
8e529c862e5440109560081ae4149437.jpg
3.3.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 这一步,如下图
c807b7cd2db24728a5f4c64875c60252.jpg
2:TD界面仿真库编译
3a40f04d435a46b6a011ae657e153d39.jpg
testbench文件可以新建一个tb或者添加一个已经编写好的tb仿真文件,这里我们添加已经编写好的。
ee4909622c2243b8aa43c1b55b050f84.jpg
(1)Simulator:选择仿真工具,目前支持 Modelsim 以及 Questasim;
(2)Executable Path:选择仿真工具的可执行文件路径,Windows 系统的 TD 版本支持在默认状态下自动识别目标仿真工具的可执行路径,若目标仿真工具未添加到 PATH 环境变量或者需要覆盖环境变量中的路径时需要设置;
(3)Device Family:选择编译的器件库,TD 支持的器件库以界面选项为准,默认状态下选择编译所有器件库;
(4)Compiled Library Location: 选择保存编译库结果的路径,TD 将在该路径下创建相应的文件夹保存对应器件库的编译结果;
(5)Recompile:选中该选项后会对已编译过的器件库进行重新编译,默认状态不会重编译。

3:定义 testbench 文件
如点击 tools->Simulation则会弹出如下对话框,可以添加一个已经存在的
85d3dc7badb140f786d2d3ef1fd0f7ca.jpg
testbench文件可以新建一个tb或者添加一个已经编写好的tb仿真文件,这里我们添加已经编写好的。
706fc79ce8a64fa09a2b334124bc653b.jpg
勾选run,点击 OK即调用第三方仿真工具自动执行行为级功能仿真。
7af21290aec44f1b824100ab76681926.jpg
需要注意,调用IP的时候产生的xml文件不能用来仿真,需要注释掉。
仿真文件需要添加glbl glbl();DR1_PHY_GSR DR1_PHY_GSR();这两句话,不然编译可能会报错。
3.3.3 启动modelsim仿真
打开modelsim并且设置路径
cad52475c76d4e01a3ade94fdf85be7f.jpg
选择路径
0b1c07e411aa45288b2a44f64e021cf9.jpg
在控制台输入do fpga_prj_behavioral_sim.do

91767cf1afa54262b9dc302ada5498fa.jpg
之后的仿真和前面的方法一样。
79d1fcb6b5b44c4c83dd2f57ae95b9bb.jpg
4总结
本实验演示了三种方法进行仿真,用户可以根据自己的使用习惯选择仿真方式,我比较推荐第二种方式。如果需要进行布局布线后的仿真,可以选择第三种方式。




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

本版积分规则