【万物基于电灯】FPGA点亮LED做一个流水灯

刚刚入门FPGA,菜鸟一个,新手一个,勿喷**

0、实验目标

使用Quartus II在黑金Alinx301开发板上实现时间间隔为1s的流水灯。

1、 软件安装:Quartus II与ModelSim-Altera 10.1d (Quartus II 13.0)、Notepad++的关联

关于Quartus II、Modeisim、Notepad++的安装在此不做过多赘述(更换路径,一路next)。
链接:https://pan.baidu.com/s/1_heL0osKhZFGUfNHsyXBMQ
提取码:62ck
安装完成后,打开Quartus II,在上方菜单栏中找到“Tools”(如下图所示)

2、 USB-Blaster以及元件库的安装

1)USB-Blaster:将开发板、USB-Blaster 和电脑进行正确连接,保证供电正常,打开开发板电源。鼠标右击“此电脑”,选择“管理(G)”在“设备管理器”的“其他设备”中发现未识别的名为“USB-Blaster”的外设,此外设的驱动还未被添加,设备图标显示感叹 。
鼠标右击“USB-Blaster”选择“更新驱动程序§”。
选择“浏览我的计算机以查找驱动程序软件。
点 击 “ 浏 览 ” 选 择 驱 动 路 径 , 路 径(安装路径)为
“quartusII13.0quartusdriversusb-blaster”,然后点击“下一步(N)”。
点击“安装(I)”即可。
驱动安装完成,点击“关闭退出。
完成 USB-Blaster 驱动安装后,在“通用串行总线控制器”下显示出“Altera USB-Blaster”,表示驱动成功安装。
2)元件库安装:QuartusII 软件安装完成后会同时安装一个名为“Quartus II 13.0sp1 Device Install…”的选项,打开该文件。

4、 硬件电路

6、程序设计

在src中新建LED_Water.v文件

计数到最大4秒时对应的十进制数为199_999_999换算成二进制数为1011 1110 1011 1100 0001 1111 1111一共28位,所以声明一个28位的变量,并且使用always语句进行赋值,所以声明为reg变量。

7、仿真验证

1)新建工程,打开Quartus,File->New->New Quartus II Project
把工程路径改到quartus_prj文件下,并命名位LED_Water,在Add_File选择Next,然后选择芯片,最后来到这个界面,切记切记在这个地方选择verilog

TB文件的编写是个很有意思的过程。
(1)·timescale 定义仿真时间单位与精度,1ns(前)是时间单位,即在仿真中用#10表示延迟10ns。1ns(后)表示时间精度。
(2)声明module,因为是仿真文件,所以没有输入输出信 。
(3)声明变量clk,rst_n,使用always语句和initial语句所以声明为reg型变量
(4)声明wire型变量led_data
(5)initial语句与always仿真时钟
(6)例化module LED_Water(可以修改常量的值,尽量修改的小一点,这样方便在Modelsim观察)
4)同添加LED_Water一样讲TB文件一样添加到工程下,CTRL+L仿真
5)仿真设置:在菜单栏中Assignments下的setting中找到Simulation选项卡

【万物基于电灯】FPGA点亮LED做一个流水灯

9、小总结

第一篇关于FPGA的文,后面还会写很多,一些基础的时序电路和组合逻辑电路,Modelsim仿真还有MATLAB以及FPGA的应用,谢谢大家,如有意见,评论区见

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月26日
下一篇 2022年2月26日

相关推荐