基于FPGA开发板点亮LED灯

时间:2025-11-01  作者:Diven  阅读:0

设计流程:

基于FPGA开发板点亮LED灯

设计规划--波形绘制--编写代码--代码编译--编写testbench--对比波形--绑定管脚--全编译--上板验证

设计规划

使用用户手册,了解硬件资源,这个示例中需要用到按键和LED灯:

1、按键

在没有按键按下时,输出高电平(红色);当按键按下的时候,被按下的按键端会输出低电平(蓝色)。2、LED灯

当 FPGA 输出低电平时,LED 点亮,当 LED 输出高电平时,没有电位差,LED 灯熄灭。由上可知:需要实现的功能是,当按下按键时(key_in=0,PIN_M16管脚),LED灯要被点亮(led_out=0,PIN_A2管脚)。此处波形非常简单,省略画波形的步骤,对于复杂电路还是需要画波形来理清思路。这里波形应该是key与led波形一致。

打开quartus,新建工程。编写代码

编写.v文件,代码如下:

Module led(input wire key_in , //输入按键output wire led_out //输出控制led灯);//led_out:led灯输出的结果为key_in按键的输入值assign led_out = key_in;endModule

将.v文件添加到文件目录下,右键Files文件夹选择添加.v文件,添加完成后可以在Files下看到添加的.v文件:代码编译

点击如图所示的图标,可以检查语法是否有错,综合器将代码解释为电路的形式。绿色表示通过。点击RTL viewer可以查看设计的硬件电路结构,和我们设计所表达的意思相同编写testbench

Testbench是测试电路功能和性能的脚本。在线逻辑分析虽然好用但是每次修改代码都需要综合一次,而使用testbench做仿真的速度就很快,所以一开始就应该编写testbench以便后面大型电路的验证。

testbench就是产生输入波形,加入到被测模块上并观测其输出,和我们之前画好的波形进行比对。

编写.v文件

`timescale 1ns/1ns //时间尺度/时间精度,时间精度<=时间尺度module tb_led(); wire led_out ;reg key_in ;//初始化输入信号initial key_in <= 1'b0;//key_in:产生输入随机数,模拟按键的输入情况always #10 key_in <= {$random} % 2; //\\* Instantiate \\//led led_inst(.key_in (key_in ), //input key_in.led_out(led_out) //output led_out);endmodule

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,如图所示。对比波形

设置完成后,点击菜单栏的tools-run simulation tool-RTL simulation,能自动打开modelsim说明之前的关联操作是成功的,如果不成功,在上一节中看怎么关联。得到波形如图,观察得知led_out波形与key_in波形一致。分配管脚在开发板用户手册中就有对应管脚,按键有三个,我们选择M16的S0作为key_in,LED有四个,我们选择A2的LED0作为led_out。全编译

全编译需要进行布局布线,管脚绑定后就可以对全局进行布局布线了。没有错误就可以上板了,有错误的话根据提示改。上板验证上板是需要安装USB_blaster驱动的,在设备管理器中如果USB-blaster有黄色感叹号需要右键更新,文件在安装文件quartus-drivers-USBblaster或USBblaster ii中。安装完成后感叹号消失。再点start,右上角的progress到100%,开发板就下载完成了。按着按键A0不放,LED0一直被点亮,松手就关闭。

猜您喜欢

高分子固态电容是现代电子产品中重要的元件。具有高性能和长寿命的优点。本文将介绍一些高分子固态电容厂家排行。通过这些信息,您可以更好选择合适的产品。厂家A厂家A是...
2025-03-27 16:30:35

电流采样电阻,又称分流器,是电流测量系统中非常重要的组件。选择合适的电流采样电阻时,需要关注几个关键参数。首先是电阻值,通常以毫欧(mΩ)为单位,选择合适的电阻...
2015-08-29 00:00:00

贴片电感是电子元件中常见的。焊接是连接电感和电路板的重要步骤。本文将介绍贴片电感的焊接方法,帮助读者掌握技巧。准备工作焊接前,准备工具很重要。需要焊接铁、焊锡和...
2025-03-24 20:31:07

电容是电子产品中重要的元件。具有储存电能的功能。电容应用于各类电子设备中。本文将深入探讨电容的几种主要应用。 滤波器电容常用于滤波器中。帮助去除信号中的噪声。这...
2025-04-02 06:01:07

近年来,居民消费升级,绿色化、智慧化、定制化等逐渐成为家居消费新趋势。其中智能门锁成为家居必备,其智能化程度越来越高,不仅能够实现指纹、密码、人脸识别等最基本的...
2023-09-28 09:37:00

百洁布和钢丝球是家庭清洁中常见的工具,各自有不同的参数和特点。百洁布通常由聚酯纤维和尼龙制成,具有良好的耐磨性和吸水性。其厚度一般在0.5毫米到1毫米之间,适用...
2010-03-02 00:00:00

双向触发二极管(也称为双向可控硅,简称TRIAC)是应用于电力电子和控制系统中的半导体器件。具有在正向和反向电压下均能导通的特性,因而在交流电路中尤为重要。双向...
2025-04-07 10:31:09

油石作为常见的磨具,因其独特的性能而受到青睐。油石具有优异的磨削能力,其表面光滑,能够有效去除金属表面的毛刺和不平整,提升工件的光洁度。油石的耐磨性非常强,使用...
2022-01-09 00:00:00

现代科技中,电源系统不断更新。超级锂离子电容,成为一个热门话题。与传统电池相比,有许多优势。本文将探讨其替代电池的可能性。超级锂离子电容的定义超级锂离子电容是新...
2025-03-21 15:00:02

整流桥是电子电路中常见的组成部分,主要用于将交流电转换为直流电。在整流桥中,二极管的工作状态直接影响整流效果。准确测量整流桥二极管的好坏非常重要。本文将介绍如何...
2025-04-08 19:00:03