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

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

3天内不再提示

多路选择器设计

冬至子 来源:小小研究生 作者:xxyjs2020 2023-05-22 15:10 次阅读

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

图片

图片

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)。

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

    关注

    22

    文章

    1592

    浏览量

    107776
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59674
  • 组合逻辑电路

    关注

    6

    文章

    70

    浏览量

    14611
  • 多路选择器
    +关注

    关注

    1

    文章

    22

    浏览量

    6509
收藏 人收藏

    评论

    相关推荐

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

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

    教你学Vivado—以2选1多路选择器为例

    在EGO1开发板上实现2选1多路选择器
    的头像 发表于 10-02 15:58 2653次阅读
    教你学Vivado—以2选1<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>为例

    请问有stm32控制4选1多路选择器的程序吗

    求大神提供stm32控制4选1多路选择器的程序参考,单片机9,10引脚控制多路选择器
    发表于 01-16 06:35

    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 6155次阅读
    译码<b class='flag-5'>器</b>及<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>的使用( EDA 仿真) 实验

    八选一多路选择器Verilog代码及仿真结果MUX_8

    八选一多路选择器 Verilog代码 附仿真结果(modelsim仿真)
    发表于 03-28 15:27 33次下载

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

    本文开始介绍了多路选择器的分类与多路选择器的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>电路)

    设计一个1位的二选一多路选择器及其VHDL描述

    本文首先介绍了二选一多路选择器真值表,其次介绍了1位二选一多路选择器设计及其VHDL描述,最后介绍了它的逻辑表达式实现。
    的头像 发表于 04-27 09:52 3.1w次阅读
    设计一个1位的二选一<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>及其VHDL描述

    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 13w次阅读
    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 4564次阅读
    Verilog HDL之<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>设计

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

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

    基于FPGA的多路选择器设计

    组合逻辑电路的输出信号只与当前时刻的输入信号有关,与其他时刻的输入状态无关,无存储电路或反馈电路。多路选择器是在多路数据传送过程中,根据需要选择一条电路。如果还没看懂功能,结合真值表就
    的头像 发表于 05-12 12:47 1465次阅读
    基于FPGA的<b class='flag-5'>多路</b><b class='flag-5'>选择器</b>设计