前言
本文章是通过按键 KEY0 控制发光二极管 LEDG0 的亮灭,它们之间是反相的关系。并由开关 SW0 来允许和禁止这个控制功能。
一、FPGA的设计流程
- 设计输入
- 综合
- 功能仿真
- 布局布线(Fitting)
- 时序(Timing)分析、时序仿真
- 编程和配置
二、按键控制发光二极管的亮灭的过程
(一)创建工程
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
(二)绘制原理图
- 分析控制的原理
当 SW处于上位(1)时,按下和松开 KEY可分别控制 LED亮和灭;当 SW处于下位(0)时,LED始终亮不受 KEY的控制。 - 绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File
选择元件
添加输入输出,完成效果
(三)编译
将上面绘制的原理图文件保存,并开始编译。
选择菜单项 Processing→Start Compilation或者代表编译的图标
可以通过rtl View查看电路图
(四)分配引脚
查看芯片手册,得到对应的引脚
分配完成后,重新编译一次
(五)仿真与时序分析
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号
设置仿真时长,选择菜单项 Edit→End Time,这里我们设置仿真时长为1微秒
设置输入信号的值
保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier
功能仿真结果
通过波形可以看出满足设计要求,当sw为1时,led才受key的控制。
编译进行时序仿真,仿真结果
结果存在时延,跟实际更加相符。
(六)配置FPGA
- 模式配置
SW19(RUN/PROG)开关用来选择这两种配置模式中的一种,RUN 位置为JTAG 模式,PROG 位置则为 AS 模式。 我们这里使用 JTAG 模式, 请先确认 DE2 板上的 SW19 (RUN/PROG) 开关位于 RUN 位置。 - 连接设备
使用 USB 线,一端连接到开发板的 J9(BLASTER)口,另一端连接到计算机的 USB 口,开发板加电。 - 配置下载
编程器界面显示了当前检测到的编程线缆,应可以检测到USB-Blaster。如果未显示,请点击 Hardware Setup 按钮查看并检查线是否插好,存在就添加就可以了
点击Start,就开始下载,出现100%,就下载完成了
(七)下载结果
总结
整个过程,还比较简单,采用输入原理图的方式,但是当元件很多的时候,继续采用这种方式,就会很麻烦。整个过程也可采用Verilog编程的方式,主要不同的步骤就是将输入原理图的地方更改为代码输入。