0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的多路选择器设计

CHANBAEK 来源:小小研究生 作者: xxyjs2020 2023-05-12 12:47 次阅读

组合逻辑电路的输出信号只与当前时刻的输入信号有关,与其他时刻的输入状态无关,无存储电路或反馈电路。 多路选择器是在多路数据传送过程中,根据需要选择一条电路。 如果还没看懂功能,结合真值表就好理解了。

图片

图片

A1A0是选择线,D0-D3是数据线,A1A0构成00-11共4种选择,对应着D的下标,被选中的数据线作为输出。 8选1,16选1同理。 在本例中,选择最简单的2选1电路。

设计规划

这个示例中,采用两个按键作为信号输入,一个按键作为信号选择,LED作为数据输出。 需要实现的功能是,当按下按键sel时(sel=0),LED灯状态取决于按键in2,当不按下sel时(sel=1),LED灯状态取决于按键in1。 h绘制波形图如图所示。

图片

编写代码

module mux2_1(
input wire in1,
input wire in2,
input wire sel,
output wire out);
assign out=(sel==1'b1)?in1:in2;
endmodule

这里的组合逻辑电路可以采用always中if-else实现方法,always中case实现方法,assign中条件运算符(三元运算符)实现方法。 涉及到always的语句还没进行总结,这里采用最简单的assign语句,用到了很熟悉的三元运算符。 编写好.v文件后编译通过。

点击RTL viewer可以查看设计的硬件电路结构,和我们设计所表达的意思相同。

图片

编写testbench

`timescale 1ns/1ns
module tb_mux2_1();
//在testbench中待测试RTL模块的输入永远是reg型变量
reg in1;
reg in2;
reg sel;
//在testbench中待测试RTL模块的输出永远是wire型变量
wire out;
initial 
  begin
    in1 <=1'b0;
    in2 <=1'b0;
    sel  <=1'b0;
  end


//每隔10ns产生输入随机数0或1
always #10 in1 <= {$random} % 2;
always #10 in2 <= {$random} % 2;
always #10 sel <= {$random} % 2;


//------------------------mux2_1_inst------------------------
mux2_1 mux2_1_inst
(
.in1(in1), //input in1
.in2(in2), //input in2
.sel(sel), //inputsel
.out(out) //output out
);
endmodule

和上一节中结构类似,tb_mux2_1模块中,首先定义初始的输入信号in_1,in_2,sel为低电平(一般时序电路使用非阻塞赋值<=),延迟10个时间单位(ns)产生随机数0或1赋值给输入,就完成了输入信号的波形设计。 根据实例化的讲解,第2-6行和第22-28行完成的功能是将上一个mux2_1.v文件中mux2_1模块与tb_mux2_1模块相连。 这样随机生成的输入信号就被加到mux2_1模块上,并得到输出mux2_1_out,通过验证mux2_1_out与我们期望的输出是否一致,就知道我们的设计是否正确。

对比波形

图片

波形显示当sel为高电平时,out与in1一致,sel为低电平时,out与in2一致。

分配管脚

图片

图片

全编译后上板验证

图片

图片

按下S2(sel=0)时,按下S1(in2=0)LED就亮(out=in2=0),只按下S0(in1=0)LED就亮(out=in1=0)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21664

    浏览量

    601677
  • led
    led
    +关注

    关注

    240

    文章

    23129

    浏览量

    658294
  • 反馈电路
    +关注

    关注

    11

    文章

    146

    浏览量

    37160
  • 组合逻辑电路

    关注

    6

    文章

    70

    浏览量

    14621
  • 多路选择器
    +关注

    关注

    1

    文章

    22

    浏览量

    6517
收藏 人收藏

    评论

    相关推荐

    一文解析多路选择器的工作原理及电路实现

    本文开始介绍了多路选择器的概念和在FPGA多路选择器结构,其次介绍了多路
    的头像 发表于 04-27 08:46 6w次阅读
    一文解析<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>的工作原理及电路实现

    FPGA基础学习笔记--组合逻辑电路-多路选择器多路分解

    1.2多路选择器1.2.1不带优先级的多路选择器四路选择器如下代码如下:module multiplexer (input iA,input
    发表于 02-16 15:01

    至芯科技之altera 系列FPGA教程 第九篇 二选一多路选择器的设计

    至芯科技之altera 系列FPGA教程 第九篇 二选一多路选择器的设计
    发表于 08-11 03:25

    至芯科技之altera 系列FPGA教程 第十篇 二选一多路选择器激励的设计

    至芯科技之altera 系列FPGA教程 第十篇 二选一多路选择器激励的设计
    发表于 08-11 03:27

    4选1多路选择器是什么?

    Verilog数字系统设计三简单组合逻辑实验2文章目录Verilog数字系统设计三前言一、4选1多路选择器是什么?二、编程1.要求:2.always块实现:3.assign语句实现:5.仿真波形总结
    发表于 02-09 06:00

    基于FPGA多路选择器设计(附代码)

    实战应用,这种快乐试试你就会懂的。话不多说,上货。 多路选择器设计 多路选择器是数据选择器的别称。在
    发表于 03-01 17:10

    译码多路选择器的使用( EDA 仿真) 实验

    译码多路选择器的使用( EDA 仿真) 实验 一、实验目的1. 掌握Multisim电子电路仿真软件的使用,并能进行
    发表于 02-06 14:11 6160次阅读
    译码<b class='flag-5'>器</b>及<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>的使用( EDA 仿真) 实验

    多路选择器有哪些_多路选择器分类介绍

    本文开始介绍了多路选择器的分类与多路选择器的4选1原理图,其次介绍了多路选择器的典型芯片,最后介
    的头像 发表于 04-27 09:13 3.5w次阅读
    <b class='flag-5'>多路</b><b class='flag-5'>选择器</b>有哪些_<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>分类介绍

    4选1多路选择器电路图(四款多路选择器电路)

    本文主要介绍了四款4选1多路选择器电路图。多路选择器是数据选择器的别称。在多路数据传送过程中,能
    发表于 04-27 09:37 14w次阅读
    4选1<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>电路图(四款<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>电路)

    eda四选一多路选择器的设计

    本文开始对多路选择器进行了详细介绍,其中包括了多路选择器功能、典型芯片及应用,另外还详细介绍了eda四选一多路
    发表于 04-27 10:13 3.4w次阅读
    eda四选一<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>的设计

    8选1多路选择器电路图(五款8选1多路选择器电路)

    多路选择器又称数据选择器。8选1数据选择器(型号有74151、74LS151、74251、74LS152),下面就以74LS151为例子,介绍几款电路图。
    发表于 04-28 17:25 13.1w次阅读
    8选1<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>电路图(五款8选1<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>电路)

    Verilog HDL之多路选择器设计

    在数字信号的传输过程中,有时需要从多路输入数据中选出某一路数据,完成此功能的逻辑器件称为数据选择器,即所谓多路开关,简称MUX(Multiplexer)。2选1多路
    发表于 07-20 08:56 4603次阅读
    Verilog HDL之<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>设计

    写出一个包含触发多路选择器的子模块

    我们用3个包含触发多路选择器的子模块来实现图中电路。题目要求我们写出包含一个触发和一个多路选择器
    的头像 发表于 11-17 09:37 1039次阅读

    【教程分享】零基础学习:基于FPGA多路选择器设计(附代码)

    大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白
    的头像 发表于 06-07 12:25 1764次阅读

    零基础学习:基于FPGA多路选择器设计(附代码)

    大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白
    的头像 发表于 06-08 18:55 3035次阅读
    零基础学习:基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>设计(附代码)