【搬家】FPGA学习手记(一) FPGA入门及建立FPGA开发环境
2012-03-10 15:27
435 查看
FPGA学习手记(一) FPGA入门及建立FPGA开发环境
By Nightmare 2011-07-27 @Xinxiang
一直没有勇气涉足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或稍逊色一些。开发环境QuartusII 9.1,Altera路线,要走Xilinx路线的可绕道。
如果作为入门,可以选一本书或者看视频(比如特权同学的)。看视频当然更易于入门,不过稍显繁琐了,书本一般比较简要,急性子的人可以通过视频快速上手以后,转而通过专业书学习。不过不管再怎么学,不动手做些东西是不行的,做个小项目或者DIY可以使你摆脱四脚书橱的命运。好了,不说废话了……
EP2C5T144的最小系统包括电源稳压、配置芯片、晶振、JTAG/ASP接口和I/O接口等。上原理图:EP2C5Core.pdf
运行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); 声明了名为HelloFPGA的模块和端口(注意后面的分号),建议模块名称与文件名相同。Key和LED分别定义为输入和输出信号,在不声明的情况下,信号默认为wire型。
一句相当于:
由于核心板上LED高电平点亮,因而对按键输入信号取反。然后按 进行分析、综合。完成后会提示错误和警告数。
再点击
分配引脚,FPGA可以灵活分配引脚,极大地方便了PCB布线和后续设计。这里根据原理图上LED的位置和按键插线位置设置引脚,以及电平标准。
完成配置后,点击
编译工程,这样就生成了可以下载到FPGA和配置芯片的文件。在编译之前,还需要进行一些设置,在Settings中选择Device,再选择Device and Pin Options。
在中将不用的管脚设置为三态输入:
在配置选项卡里选择配置芯片,超出配置芯片容量的代码会得到提示。
点击进行下载,请确保正确安装了下载线驱动。点击Hardware Setup配置下载线,选择识别到的USB-Blaster,如果没有识别,请检查硬件连接和驱动。
JTAG模式可下载到FPGA中,掉电后会丢失,AS方式可下载到EPCS4配置芯片里(非易失),再次上电时配置芯片会对FPGA进行配置。通过AddFile打开HelloFPGA.sof文件,选择Program/Configure,按Start下载。
结果如下,未按按键时小灯熄灭。
点亮!
如果采用AS方式,载入HelloFPGA.pof文件,设置如下:
断电后拔掉下载线,重新上电,没有产生想要的效果,可以更改这里的设置,就是前面配置EPCS芯片的地方。貌似是个BUG呀 >_<。
By Nightmare 2011-07-27 @Xinxiang
一直没有勇气涉足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或稍逊色一些。开发环境QuartusII 9.1,Altera路线,要走Xilinx路线的可绕道。
如果作为入门,可以选一本书或者看视频(比如特权同学的)。看视频当然更易于入门,不过稍显繁琐了,书本一般比较简要,急性子的人可以通过视频快速上手以后,转而通过专业书学习。不过不管再怎么学,不动手做些东西是不行的,做个小项目或者DIY可以使你摆脱四脚书橱的命运。好了,不说废话了……
EP2C5T144的最小系统包括电源稳压、配置芯片、晶振、JTAG/ASP接口和I/O接口等。上原理图:EP2C5Core.pdf
运行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进行配置。通过AddFile打开HelloFPGA.sof文件,选择Program/Configure,按Start下载。
结果如下,未按按键时小灯熄灭。
点亮!
如果采用AS方式,载入HelloFPGA.pof文件,设置如下:
断电后拔掉下载线,重新上电,没有产生想要的效果,可以更改这里的设置,就是前面配置EPCS芯片的地方。貌似是个BUG呀 >_<。
相关文章推荐
- FPGA学习手记(一) FPGA入门及建立FPGA开发环境
- 《华清远见学习手记》之 嵌入式Linux开发环境的建立
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- Zigbee开发环境的建立入门
- Python的入门学习及开发环境的搭建
- VxWorks入门级开发环境学习
- Java入门学习-理解什么是JRE和JDK,然后搭建JAVA开发环境,用eclipse写出第一个helloworld程序
- Zigbee入门指导(一)基于CC2430的Zigbee开发环境的建立
- HoloLens开发手记 - 入门学习阶段总结
- OPhone J2ME开发入门环境建立
- 黑莓开发学习(入门教程)05-再说开发环境和入门阶段的一些问题
- cocos2d开发学习一:开发环境搭建以及入门学习资源
- Angular 2 CLI 开发环境的建立与App应用开发入门
- [转载]Symbian OS开发入门(二) :VS2003环境下Symbian工程的导入与建立
- cocos2d开发学习一:开发环境搭建以及入门学习资源
- java学习之旅15、16--eclipse开发环境的使用_建立java项目_运行java项目,eclipse运行程序的问题(src和bin问题)_debug模式
- JAVA学习 JAVA开发环境建立
- 学习心得:嵌入式linux开发环境的建立
- 【搬家】FPGA学习手记(二) 简单功能仿真及Verilog基础电路设计
- 转帖-----我的WinCE5.0入门全过程,为了方便后来者,写了一天多,仅供大家参考!(开发环境建立+流驱动开发+相关资料)