查看: 2043|回复: 0

[评测分享] 【树莓派5 测评】 + 09.基于iverilog的RTL仿真(zmj)

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 254 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2024-4-27 18:57:38 | 显示全部楼层 |阅读模式
    分享到:
    【树莓派5 测评】 + 09.基于iverilog的RTL仿真(zmj)
    对于FPGA或者RTL爱好者来讲,树莓派5开发板可以运行RTL仿真,仿真工具使用iverilog,波形工具使用gtkwave。为什么是这些?因为工具免费且对硬件性能要求更少……
    1.        工具简介
    iverilog 和 GTKwave 的安装非常便捷。
    1.1        iverilog
    Icarus Verilog 是一个轻量级的 verilog 仿真工具,以编译器的形式工作,将以 verilog 编写的源代码编译为某种目标格式。如果要进行仿真的话,它可以生成一个叫做 vvp 的中间格式。这个格式可以由其所附带的 vvp 命令执行。
    1.2        GTKwave
    GTKwave是一款免费的波形查看器,可以用于查看标准的 verilog VCD/EVCD,以及其他一些格式的波形文件。
    1.3        环境安装配置
    环境配置主要是仿真软件iverilog、波形软件gtkwave的安装。
    1. //------环境安装配置
    2. # 安装iverilog仿真软件
    3. sudo apt install iverilog
    4. 或者
    5. sudo apt-get install iverilog
    6. # 安装gtkwave
    7. sudo apt install gtkwave
    8. 或者
    9. sudo apt-get install gtkwave
    10. //------
    11. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/heart_rtl$ iverilog -V
    12. Icarus Verilog version 11.0 (stable) ()
    13. Copyright 1998-2020 Stephen Williams
    14. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/heart_rtl$ vvp -V
    15. Icarus Verilog runtime version 11.0 (stable) ()
    16. Copyright 1998-2020 Stephen Williams
    17. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/heart_rtl$ gtkwave -V
    18. GTKWave Analyzer v3.3.118 (w)1999-2023 BSI
    19. This is free software; see the source for copying conditions.  There is NO
    20. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    21. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$
    复制代码

    2.        仿真测试
    安装完所需软件之后,准备仿真文件进行仿真测试。仿真测试流程及结果参考下方记录。
    1. //------仿真测试
    2. //---流程
    3. 编辑源码 --> 执行仿真,输出仿真结果 --> 导出波形 --> 查看波形
    4. //---指令
    5. a.编辑源码:
    6. 编写任意rtl代码,此处设计了加法器和波形仿真,详细代码参考**代码截图。
    7. /wave_rtl
    8. .
    9. ├── tb_wave.v      //仿真顶层文件
    10. ├── dut_add.v      //加法器
    11. ├── wave_rtl.v     //读取文件,输出波形
    12. └── init_wave.txt  //初始化文件
    13. 在“tb_wave.v”中使用了系统函数 dumpfile 用来在运行仿真时生成 .vcd 波形文件;
    14. dumpvars 表示选择记录哪些信号,直接加分号结束表示记录设计中所有信号。
    15. b.执行仿真,输出仿真结果:
    16. iverilog -o test.out tb_wave.v dut_add.v wave_rtl.v
    17. “-o”选项用来指定输出文件,执行完仿真之后,输出仿真结果test.out文件。
    18. c.导出波形:
    19. vvp -n test.out
    20. test.out是目标可执行文件,但此文件执行后只会在终端上显示仿真时文字信息,需要使用 vvp 工具将其可视化成 .vcd 文件。
    21. 其中“-n”选项表示运行完退出,以便进行下一步操作。
    22. d.查看波形:
    23. gtkwave wave.vcd
    24. 用 GTKwave 打开并显示出波形。
    25. //------示例Log
    26. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$ ll
    27. total 28
    28. drwxr-xr-x 2 zhaomeijing zhaomeijing 4096 Apr 27 14:46 ./
    29. drwxr-xr-x 4 zhaomeijing zhaomeijing 4096 Apr 27 14:47 ../
    30. -rw-r--r-- 1 zhaomeijing zhaomeijing  314 Apr 27 11:50 dut_add.v
    31. -rw-r--r-- 1 zhaomeijing zhaomeijing 4128 Apr 27 13:05 init_wave.txt
    32. -rw-r--r-- 1 zhaomeijing zhaomeijing 1905 Apr 27 13:03 tb_wave.v
    33. -rw-r--r-- 1 zhaomeijing zhaomeijing 2168 Apr 27 13:06 wave_rtl.v
    34. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$ iverilog -o test.out tb_wave.v dut_add.v wave_rtl.v
    35. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$ ll ; vvp -n test.out ;
    36. total 36
    37. drwxr-xr-x 2 zhaomeijing zhaomeijing 4096 Apr 27 14:49 ./
    38. drwxr-xr-x 4 zhaomeijing zhaomeijing 4096 Apr 27 14:47 ../
    39. -rw-r--r-- 1 zhaomeijing zhaomeijing  314 Apr 27 11:50 dut_add.v
    40. -rw-r--r-- 1 zhaomeijing zhaomeijing 4128 Apr 27 13:05 init_wave.txt
    41. -rw-r--r-- 1 zhaomeijing zhaomeijing 1905 Apr 27 13:03 tb_wave.v
    42. -rwxr-xr-x 1 zhaomeijing zhaomeijing 7510 Apr 27 14:49 test.out*
    43. -rw-r--r-- 1 zhaomeijing zhaomeijing 2168 Apr 27 13:06 wave_rtl.v
    44. WARNING: wave_rtl.v:32: $readmemh(init_wave.txt): Too many words in the file for the requested range [0:1023].
    45. VCD info: dumpfile wave.vcd opened for output.
    46. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$ ll
    47. total 60
    48. drwxr-xr-x 2 zhaomeijing zhaomeijing  4096 Apr 27 14:50 ./
    49. drwxr-xr-x 4 zhaomeijing zhaomeijing  4096 Apr 27 14:47 ../
    50. -rw-r--r-- 1 zhaomeijing zhaomeijing   314 Apr 27 11:50 dut_add.v
    51. -rw-r--r-- 1 zhaomeijing zhaomeijing  4128 Apr 27 13:05 init_wave.txt
    52. -rw-r--r-- 1 zhaomeijing zhaomeijing  1905 Apr 27 13:03 tb_wave.v
    53. -rwxr-xr-x 1 zhaomeijing zhaomeijing  7510 Apr 27 14:49 test.out*
    54. -rw-r--r-- 1 zhaomeijing zhaomeijing  2168 Apr 27 13:06 wave_rtl.v
    55. -rw-r--r-- 1 zhaomeijing zhaomeijing 20948 Apr 27 14:50 wave.vcd
    56. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$ gtkwave wave.vcd

    57. GTKWave Analyzer v3.3.118 (w)1999-2023 BSI

    58. [0] start time.
    59. [3795000] end time.
    60. WM Destroy
    61. zhaomeijing@raspberrypi5:~/workspace/13_rtl_sim/wave_rtl$
    复制代码
    //------仿真源码
    image-20240427150347047.png
    //------运行仿真,查看波形
    image-20240427150138952.png
    //------完整仿真波形
    image-20240427144433309.png

    //------end

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 12:10 , Processed in 0.128128 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.