博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FPGA学习手记(一) FPGA入门及建立FPGA开发环境
阅读量:5922 次
发布时间:2019-06-19

本文共 2146 字,大约阅读时间需要 7 分钟。

FPGA学习手记(一) FPGA入门及建立FPGA开发环境

一直没有勇气涉足FPGA领域,虽说在学院限选课里也学过大规模可编程逻辑器件,接触过Quartus II和VerilogHDL,但毕竟大学课程都是些理论与皮毛,大可不必当真。此后将目光投向ARM,并一直在学习或参与基于各种MCU的设计,学习CPLD/FPGA的设想就一直仅作为设想而搁置一旁。

后来临末之时,突然又起了兴趣。这一方面是将来必然要涉及更高速度的电路和数据处理,也因为手头还算宽裕。索性就淘宝了一款阿杜觊觎已久的FPGA核心板(后来大呼上当 >_<),开始试足于FPGA的深水中,但求小心徐行,不要被淹屎才好。

作手记,已备重拾只用。

欲善其事,先利其器。这个道理大家都懂,一套完整好用的开发工具是必须的。本人使用的是EP2C5T144核心板+专业版USB Blaster下载线(我不是卖板子的,品牌隐去),板上只有一片FPGA和配置芯片EPCS4。受了阿杜的蛊惑,买的仓促,后来才注意没有外部RAM(没法做大量数据的处理了),既然已经买了,暂且用着。另外自己焊了一块MCU入门外设板,包括LED、按键、AD、蜂鸣器和简易RS232串口。如下:

丑了点,不过很好用。 关键是可以省钱 ^_^,无论核心板还是外设板都能够重复利用,总觉得买个功能简陋的外设板不划算,如果没有条件自己搭设的童鞋可以买一块带外设的开发板,当然要买就买个齐全一些的,只有些小灯数码管EEPROM什么的就算了吧。

HDL语言采用VerilogHDL,听老师说如果不做系统级设计Verilog和VHDL是差不多的,而VHDL或稍逊色一些。开发环境Quartus II 9.1,Altera路线,要走Xilinx路线的可绕道。

如果作为入门,可以选一本书或者看视频(比如特权同学的)。看视频当然更易于入门,不过稍显繁琐了,书本一般比较简要,急性子的人可以通过视频快速上手以后,转而通过专业书学习。不过不管再怎么学,不动手做些东西是不行的,做个小项目或者DIY可以使你摆脱四脚书橱的命运。好了,不说废话了……

EP2C5T144的最小系统包括电源稳压、配置芯片、晶振、JTAG/ASP接口和I/O接口等。上原理图:

运行Quartus II,通过New Project Wizard 建立工程,设置工程路径、名称以及顶层实例的名称。这里都是HelloFPGA。

之后添加文件,如果有已完成的文件,可以添加尽力啊,这里将在稍后新建文件,直接跳过。

选择芯片,这里是Cyclone II系列的EP2C5T144C8。Cyclone是Altera的低成本产品系列,更高性能的可以选择Stratix系列。

设置其他工具接口,根据已安装的第三方工具设置,如仿真工具中常用的ModelSim,此处不进行仿真,Next跳过,建立工程。

工程建好后,通过File -> New新建Verilog文件,保存为HelloFPGA.v

这里写一个按键控制小灯的程序,实现按下按键点亮板载LED。用过MCU的童鞋都知道按键是需要消抖的,FPGA的按键消抖常采用边缘检测+延时的方法,这里只是演示……代码如下:

module HelloFPGA(Key, LED);

input Key;

output LED;

wire LED=~Key;

endmodule

其中module HelloFPGA(Key, LED); 声明了名为HelloFPGA的模块和端口(注意后面的分号),建议模块名称与文件名相同。Key和LED分别定义为输入和输出信号,在不声明的情况下,信号默认为wire型。

wire LED=~Key; 一句相当于:

wire LED;

assign LED=~Key;

由于核心板上LED高电平点亮,因而对按键输入信号取反。然后按 进行分析、综合。完成后会提示错误和警告数。

再点击 分配引脚,FPGA可以灵活分配引脚,极大地方便了PCB布线和后续设计。这里根据原理图上LED的位置和按键插线位置设置引脚,以及电平标准。

完成配置后,点击 编译工程,这样就生成了可以下载到FPGA和配置芯片的文件。在编译之前,还需要进行一些设置,在Settings中选择Device,再选择Device and Pin Options。

在中将不用的管脚设置为三态输入:

在配置选项卡里选择配置芯片,超出配置芯片容量的代码会得到提示。

点击进行下载,请确保正确安装了下载线驱动。点击Hardware Setup配置下载线,选择识别到的USB-Blaster,如果没有识别,请检查硬件连接和驱动。

JTAG模式可下载到FPGA中,掉电后会丢失,AS方式可下载到EPCS4配置芯片里(非易失),再次上电时配置芯片会对FPGA进行配置。通过Add File打开HelloFPGA.sof文件,选择Program/Configure,按Start下载。

结果如下,未按按键时小灯熄灭。

点亮!

如果采用AS方式,载入HelloFPGA.pof文件,设置如下:

断电后拔掉下载线,重新上电,没有产生想要的效果,可以更改这里的设置,就是前面配置EPCS芯片的地方。貌似是个BUG呀 >_<。

转载地址:http://mhnvx.baihongyu.com/

你可能感兴趣的文章
linux之路(二)学会使用命令帮助
查看>>
扒一扒爱情公寓电影为什么那么渣
查看>>
从源码看React.PureComponent
查看>>
使用 Python 生成二维码
查看>>
使用shouldComponentUpdate进行性能优化
查看>>
前端日拱一卒D1——结构化与SEO
查看>>
从零开始最小实现 react 服务器渲染
查看>>
人人都能学会的python编程教程15:高级特性2
查看>>
Node小结
查看>>
夸一夸支付宝小程序的厉害之处
查看>>
PHP之回调,匿名函数,闭包
查看>>
android h5 js 匿名函数通信
查看>>
Java泛型理解与使用
查看>>
励志前行,加速BCH创新落地
查看>>
使用 postman 调试 jwt 开发的接口
查看>>
Xcode可删除文件列表
查看>>
使用SAPGUI画图
查看>>
Event loop (JavaScript中的执行机制)
查看>>
iOS新建推送证书无法生成p12文件的解决办法
查看>>
动态索引之B树和B+树
查看>>