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版,而且这篇将只会介绍有哪些工具,不会进行使用的教学,具体教程可以移步到我其它的文章。
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 下学习 C 语言有什么好处?
作者:宅学部落链接:https://www.zhihu.com/question/23893390/answer/832610610来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- Linux下学习摄像头使用
刚接触Linux硬件驱动有关的项目,配置摄像头经历的一些操作 (这篇文章是刚接触Linux下V4L时作为记录记下的,感觉只有几个命令还有参考作用) 一 确定摄像头种类 确定是否符合UVC标准协议,一般 ...
- Linux下学习王爽老师的汇编语言
坐起来非常容易,找到这条路确实非常曲折,为了后来的同志们不再纠结,特记录如下: 这几天看汇编语言时,很多人都推荐王爽老师的<汇编语言>,老师的书的确写的很好,但是讲的是ms的汇编,但是总不 ...
- 2018.3.26 Linux下学习命令
Linux下的终端文件颜色说明 ---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never'.'always'或'auto'其中之一 白色:表示普通文件 蓝色:表示目录 绿色:表 ...
- 在Linux下开始C语言的学习
为什么要在linux下学习C语言? linux下可以体验到最纯粹的C语言编程,可以抛出其他IDE的影响 环境配置简单,一条命令就足够.甚至对于大多数linux发行版本,都已经不需要配置C语言的环境 查 ...
- Linux 下从头再走 GTK+-3.0 (一)
原本由于项目需求在 Linux 下学习过一段时间的 GTK+2.0 图形开发,时隔一段时间,想真正深入学习一下 GTK . 这次直接从头学习 GTK+-3.0 ,并写下博文便于日后查看,也方便新手入门 ...
- 别出心裁的Linux系统调用学习法
别出心裁的Linux系统调用学习法 操作系统与系统调用 操作系统(Operating System,简称OS)是计算机中最重要的系统软件,是这样的一组系统程序的集成:这些系统程序在用户对计算机的使用中 ...
- MongoDB学习笔记—Linux下搭建MongoDB环境
1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
随机推荐
- Cxf框架中@WebService注解的使用
最近工作中总是不可避免的使用WebService来对接功能,经过自己一番摸索,总结出了一些使用方法,做一下记录: 记录了两个SpringBoot版本使用WebService的一些问题和用法,Sprin ...
- 解决java.sql.SQLException: null, message from server: "Host 'XXX' is not allowed to connect异常
Sqoop连接MySQL报异常.这个异常是数据库只允许localhost或127.0.0.1访问,不允许远程访问.我用的本机IP都不行. 解决办法:修改访问权限即可. 打开cmd,进入mysql fl ...
- springboot项目记录2用户注册功能
七.注册-业务层 7.1规划异常 7.1.1用户在进行注册的时候,可能会产生用户名被占用的错误,抛出一个异常: RuntimeException异常,作为该异常的子类,然后再去定义具体的异常类型继承这 ...
- C#MSDN简体中文 最后一版本 2007年的
我在学习C# 需要 先看 MSDN文档,英文看的很吃力,就找了好久 MSDN简体中文版本的: 因为微软已经关闭网站(MSDN中文的链接),我找到的就是 磁力链接的: 我分享出来 ,有需要的 自行下载 ...
- 通过【leaflet】 调用高德离线瓦片地图
官网:https://leafletjs.com/ 首先在官网下载[leaflet.css]和[leaflet.js] 引用js和css <link href="js/leaflet. ...
- python excel使用
python excel使用 https://blog.csdn.net/m0_59235508/article/details/122808875 pandas不覆盖写入 https://blog. ...
- js实现指定dom节点滚动到可视窗口
const rollDom = document.getElementById('domId') // 获取想要滚动的dom节点 rollDom.scrollIntoView({ block: 'ce ...
- IntelliJ IDEA 2021.2 暴力破解
注意 本教程适用于 IntelliJ IDEA 2021.2 以下所有版本,请放心食用~ 本教程适用于 JetBrains 全系列产品,包括 Pycharm.IDEA.WebStorm.Phpstor ...
- 【转】Thunderbird 设置转移
此文章可能已经过时. 此文章的原文版本已经做出了重大更动.在此页面更新前,您可能也会觉得这个有用:Profiles - Where Thunderbird stores your messages a ...
- DBeaver通过phoenix连接云主机的hbase
准备 1.云主机上已经安装好jdk.hadoop.hbase.zookeeper.phoenix,并且在主机上测试连接成功.可参考 https://blog.csdn.net/shangxindeku ...