FPGA 入门实战:Quartus II 环境配置与 LED 点亮
1. 工程准备
首先建立一个名为 led 的工程文件夹,文件夹下包含 doc、quartus_prj、rtl、sim 四个子文件夹:
[图片]
各文件夹功能如下:
- doc:主要包含文档资料、数据手册、Visio 波形等,相当于档案库;
- quartus_prj:主要包括使用 Quartus II 软件新建的工程,相当于操作台;
- rtl:主要放置生成硬件电路的代码,相当于原材料;
- sim:放置对生成硬件电路代码的仿真文件,相当于质检室。
这四个文件夹各自完成不同的分工,它们之间通过路径关联和文件引用,形成 FPGA 开发闭环。quartus_prj 作为工程中枢,向上访问 doc 读取说明,向下访问 rtl 获取硬件代码,向外访问 sim 获取仿真脚本;sim 向上访问 rtl 在逻辑上验证硬件代码的正确性。
2. 设计过程
无论使用 FPGA 做什么类型的项目,都要参照具体的流程。这里介绍通用的开发流程:
- 看手册和原理图:搞清楚需要实现什么功能,就像做饭时需要看食谱。
- 选芯片与建工程:对应选择食材和调料,新建工程并选择对应的开发芯片。本文使用野火的 Altera EP4CE10 征途 Mini 开发板。
- 编写代码:运用 Verilog 代码实现电路功能,即'炒菜'。
- 编译与仿真:写完代码后,编译代码、写仿真软件测试是否有逻辑错误,即'品尝'。
- 引脚分配:测试仿真完成后,分配硬件引脚,使工程能正常跑出来,即'装盘'。
有了具体流程后,按此思路实现 LED 点亮工程。
3. 工程实现
(1)看食谱(原理图分析)
打开开发板的原理图,找到'按键'和'LED'模块,选取 KEY1 与 LED1:
[图片]
[图片]
分析原理图实现 LED 点亮的逻辑:
- 当 SW2 按键松开时,1、2 与 3、4 不导通,KEY1 被拉低到 GND 低电平,发出低电平信号 key_in 为 0。FPGA 输入引脚接收 0 信号,给 LED 电路发送 0 信号,led_out 为 0,LED1 不亮。
- 当 SW2 按键按下时,1、2 与 3、4 导通,KEY1 被拉高到 3V3 高电平,发出高电平信号 key_in 为 1。FPGA 输入引脚接收 1 信号,给 LED 电路发送 1 信号,led_out 为 1,LED1 亮。
接着在 Visio 中绘制 LED 功能框图和波形图,此处不再赘述,理解上述电路解析后容易理解:
[图片]
[图片]
记得做完后保存到 doc 文件夹中。至此,工程前提工作就绪,接下来新建工程,开始备菜。
(2)备菜(新建工程)
在 Quartus 中新建工程,工程放到 quartus_prj 文件夹中:
[图片]
对于以下页面,官方文档说明较简略,补充解释:将写好的代码文件和新建工程绑定在一起,Quartus 只有在列表里看到该文件,才会读取它生成对应的电路。目前尚未开始写代码,暂时不用添加代码文件。

