FPGA——多路选择器实现按键控制LED灯的亮灭
创始人
2024-02-12 20:56:08

文章目录

  • 前言
  • 一、多路选择器
  • 二、绘制模块框图及波形图
  • 三、Verilog HDL代码及测试代码
  • 四、创建工程
  • 五、仿真
  • 六、上板验证
    • 1、分配引脚
    • 2、烧录
  • 七、效果演示
  • 八、总结


前言

  • 软件:Quartus Prime Standard 18.0
  • 仿真软件:modelsim 10.5
  • 代码编写软件:VSCode
  • 波形绘制工具:Visio 2013
  • 硬件:小脚丫 Altera MAX10

期望效果:
我们希望通过一个按键对输入LED的信号进行选择,在当我们摁下key3时,即当key3为低信号时,LED选择Key2为LED的信号,反之则取key1的信号进行参考。


一、多路选择器

多路选择器是数据选择器的别称,在多路数据传输中,能够根据需要将其中任一路选择出来的电路,叫做数据选择器,也称多路选择器或多路开关。是一种简单的组合逻辑电路。

  • 组合逻辑:

组合逻辑实际是VerilogHDL设计中的一个重要组成部分。从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没有反馈电路。

二、绘制模块框图及波形图

在工程开始时,新建一个项目文件,里面新建四个文件夹,分别为:
prj(工程文件)、rtl(.v文件)、sim(仿真测试文件)、doc(波形绘制文件)

  • 添加形状
    在这里插入图片描述
    在这里插入图片描述

  • 模块框图
    在这里插入图片描述

  • 波形图

在sel为0时,Out输出信号是in_2波形、反之为in_1波形。

在这里插入图片描述

三、Verilog HDL代码及测试代码

在rtl文件夹里创建一个mus2_1.v的文件,定义的模块名需要与文件名一致。此时双击打开VSCode进行代码编写。

module mus2_1(input wire  in_1,input wire in_2,input wire sel,//选通信号output reg out
);
always @(*)//组合逻辑进行阻塞赋值if(sel == 1'b1)out=in_1;elseout =in_2;endmodule

在sim文件夹里新建测试文件tb_mus2_1.v

`timescale 1ns/1ns //时间尺度
module tb_mus2_1();
reg in_1;
reg in_2;
reg sel;
wire out;
initial begin //初始化变量,上电后只执行一次in_1<=1'b0;in_2<=1'b0;sel <=1'b0;
end  
//设置随机波形图
always #10 in_1<={$random}%2;
always #10 in_2<={$random}%2;
always #10 sel<={$random}%2;mus2_1   mus2_1_inst  ( //实例化模块.in_1(in_1),.in_2(in_2),.sel(sel),//选通信号.out(out)
);
endmodule

四、创建工程

  • 打开quartus,new一个工程

在这里插入图片描述

  • 点击next
    在这里插入图片描述

  • 选择工程路径,选择到前面我们创建的prj文件夹下。填写工程名,这里尽量选择与我们的.v文件一致的名字—mus2_1。
    在这里插入图片描述

  • 这里我们不选择模板,直接next。
    在这里插入图片描述

  • 文件我们后面再添加,先next。

在这里插入图片描述

  • 对板子进行选型,这里我使用的是Altera max10,如果你用的是别的板子需要到英特尔的官网下载对应quartus版本的器件库,即使同样是max 10,如果quartus的版本不一样,器件库也不一样。需要注意。
    在这里插入图片描述
  • 选择仿真软件及语言
    在这里插入图片描述
  • 检查配置是否正确,然后点击finish完成工程创建。
    在这里插入图片描述
  • 添加源文件和测试文件

在这里插入图片描述

  • 双击
    在这里插入图片描述

  • 选择文件进行添加
    在这里插入图片描述

  • 将测试文件添加到仿真中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在上图的1下,选择测试文件,在2处填写测试文件名。

五、仿真

点击下方自动打开仿真软件

在这里插入图片描述

  • 仿真波形图

在这里插入图片描述

解释:在标线所处位置sel为1时,输出电平应为in_1的信号为0,此时out也为0。仿真成功!如何进行仿真的具体步骤这里不进行介绍。

六、上板验证

1、分配引脚

根据厂商提供的引脚分配图进行分配

在这里插入图片描述

  • 设置引脚
    在这里插入图片描述

  • 依次填写对应的引脚
    在这里插入图片描述

这里key1控制in_1信号,key2控制in_2信号,key3作为选通信号。初始时,三个按键均未摁下,key3为高电平,输出信号为key1,此时摁下key1时,key1处低电平灯亮。反之,摁下key3,选通信号选择的是key2信号,此时摁下key2,灯亮。总结,就是摁下key1灯亮,或者摁下key2+key3灯亮。

2、烧录

在这里插入图片描述

  • 选择USB

在这里插入图片描述

这里如果没有检测到USB-Blaster,有两种情况一是你的数据线不支持数据的传输、二是你驱动没有更新,搜一下进行更新即可识别。

  • 点击添加文件,在prj文件夹下寻找outputfiles文件夹下的sof文件
    在这里插入图片描述
  • 点击start开始烧录在,右边是进度条
    在这里插入图片描述

七、效果演示

keyofLED


八、总结

这是第一次实物操作fpga板子,感觉很棒,总体来说这次的操作还是比较简单,但是通过自己画模块框图及波形图,对后面的仿真及代码的理解具有很强的理解性上的帮助!通过这次实验,应该算是入坑了吧,哈哈!

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...