Linux下学习FPGA

2023-05-02,,


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


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平台

南京大学的数电实验

一生一芯

Linux下学习FPGA的相关教程结束。

《Linux下学习FPGA.doc》

下载本文的Word格式文档,以方便收藏与打印。