Linux下学习FPGA


声明(叠甲):鄙人水平有限,本文章仅供参考。


1.环境

推荐使用 Ubuntu20.04这是我使用多个版本中最好用的一个,相关安装教程可以自行上网搜索这不再赘述,但要补充的一点的是源推荐使用中科大的源。


2.IDE

代码编写工具就因人而异了,我个人是推荐vscode的,相比vim来说,它上手简单,插件种类多且好用。并在此推荐几个我个人一直使用的几个插件:

Ayu(主题插件) vscode-icons-mac(文件主题插件) C/C++(C/C++补全与高亮的插件) Chinese(中文插件) Git Grap(git可视化插件)Verilog-HDL/SystemVerilog/Bluespec SystemVerilog(verilog补全与高亮的插件)Bracket Pair Colorizer(用于区分不同括号的插件,很好用强推)


3.相关工具

这推荐的工具都为开源免费的工具,仅供参考,你也可以选择你熟悉工具的Linux版本,如Vivado的Linux版,而且这篇将只会介绍有哪些工具,不会进行使用的教学,具体教程可以移步到我其它的文章。

编译工具:verilator
看波形:gtkwave
综合工具:yosys


4.虚拟板卡:nvboard

NVBoard(NJU Virtual Board)是南京大学开发的, 用于教学的虚拟FPGA板卡项目, 可以在RTL仿真环境中提供一个虚拟板卡的界面, 支持拨码开关, LED灯, VGA显示等功能, 在速度要求不高的场景下可完全替代真实的FPGA板卡(毕竟不是每人身边都有一块FPGA)。相关的使用教程可见其给的案例、源代码和本文的第5点。


5.工作流

(1) 编写verilog代码(verilog教程推荐:菜鸟教程)
(2) 使用verilator进行编译排除警告与错误,一遍为便于项目的管理一般来说会进行编写一个Makefile进行管理。
(3) 使用C++或者systemc编写测试案例即仿真,再使用verilator生成可执行文件,运行其生成波形文件和我关心的log。
(4) 参看终端的log和使用gtkwave查看生成的波形文件(即.vcd文件),排除不符合预期的行为。
(5) 使用yosys参看生成的RTL视图,是否与预期符合,是否需要优化。
(6) 接入NVBoard查看现象是否符合预期。


这里给个流水灯的案例。
https://gitee.com/lh-luoke/linux-fpga


6.推荐

最后再推荐几个相关学习的好网站
HDLBits
中科大的在线verilog OJ平台
南京大学的数电实验
一生一芯

posted @ 2022-12-08 14:00  luokesi  阅读(502)  评论(0编辑  收藏  举报