如何基于FPGA开发板点亮LED灯?看完你就会了!
扫描二维码
随时随地手机看文章
在下述的内容中,小编将会基于FPGA开发板去点亮LED灯,如果FPGA开发板相关的开发是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。
一、如何基于FPGA开发板点亮LED灯
使用用户手册,了解硬件资源,这个示例中需要用到按键和LED灯:
1、按键
在没有按键按下时,输出高电平(红色);当按键按下的时候,被按下的按键端会输出低电平(蓝色)。
2、LED灯
当 FPGA 输出低电平时,LED 点亮,当 LED 输出高电平时,没有电位差,LED 灯熄灭。
需要实现的功能是,当按下按键时(key_in=0,PIN_M16管脚),LED灯要被点亮(led_out=0,PIN_A2管脚)。对于复杂电路还是需要画波形来理清思路。这里波形应该是key与led波形一致。
打开quartus,新建工程。
编写.v文件,代码如下:
将.v文件添加到文件目录下,右键Files文件夹选择添加.v文件,添加完成后可以在Files下看到添加的.v文件:
点击如图所示的图标,可以检查语法是否有错,综合器将代码解释为电路的形式。绿色表示通过。
点击RTL viewer可以查看设计的硬件电路结构,和我们设计所表达的意思相同
Testbench是测试电路功能和性能的脚本。在线逻辑分析虽然好用但是每次修改代码都需要综合一次,而使用testbench做仿真的速度就很快,所以一开始就应该编写testbench以便后面大型电路的验证。
编写.v文件
tb_led模块中,首先定义初始的输入信号为低电平(一般时序电路使用非阻塞赋值<=),延迟10个时间单位(ns)产生随机数0或1赋值给输入,就完成了输入信号的波形设计。根据上一节中实例化的讲解,第2-5行和第14-19行完成的功能是将上一个led.v文件中led模块与tb_led模块相连。这样随机生成的输入信号就被加到led模块上,并得到输出led_out,通过验证led_out与我们期望的输出是否一致,就知道我们的设计是否正确。
和之前的操作一样,将这个tb_led.v文件添加到Files文件下。然后在quartus的菜单栏中找到assignments-setting,如图所示。
二、采用FPGA点亮LED灯的优缺点
(一)优点
FPGA的优点如下:
(1) FPGA由逻辑单元、RAM、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路。
(2) FPGA可通过使用框图或者Verilog HDL来设计,从简单的门电路到FIR或者FFT电路。
(3) FPGA可无限地重新编程,加载一个新的设计方案只需几百毫秒,利用重配置可以减少硬件的开销。
(4) FPGA的工作频率由FPGA芯片以及设计决定,可以通过修改设计或者更换更快的芯片来达到某些苛刻的要求(当然,工作频率也不是无限制的可以提高,而是受当前的IC工艺等因素制约)。
(二)缺点
FPGA的缺点如下:
(1) FPGA的所有功能均依靠硬件实现,无法实现分支条件跳转等操作。
(2) FPGA只能实现定点运算。
总结:FPGA依靠硬件来实现所有的功能,速度上可以和专用芯片相比,但设计的灵活度与通用处理器相比有很大的差距。
以上所有内容便是小编此次为大家带来的所有介绍,如果你想了解更多有关它的内容,不妨在我们网站或者百度、google进行探索哦。