当前位置:首页 > FPGA > 正文内容

多路选择器

浩雨3年前 (2022-08-12)FPGA5616

多路选择器:在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路。


二选一多路选择器 --- 模块框图

image.png

in_1:输入信号

in_2:输入信号

sel:控制选择信号

out:输出信号


二选一多路选择器 --- 波形图

image.png

in_1、in_2、sel 的波形是随机的。

out 的波形根据控制选通信号而定。当 sel为高电频时,输出信号为 in_1;当 sel为低电频时,输出信号为 in_2。


代码部分:

功能代码:

在创建的该二选一多路选择器文件夹下的 Src文件夹中新建 mux2_1.v文件

module mux2_1
(
    input   wire    [0:0]    in_1,      // 输入信号1
    input   wire             in_2,      // 输入信号2
    input   wire             sel,       // 选通信号

    output  reg              out        // 输出信号
);

always@(*)
//     if(sel == 1'b1)
//         out = in_1;
//     else
//         out = in_2;
    case(sel)
        1'b1    : out = in_1;
        1'b0    : out = in_2;
        default : out = in_1;
    endcase

endmodule

然后将其添加到 Quartus软件中编译,编译通过后,接着就是仿真文件的编写与编译

仿真文件在 Sim文件夹下新建 tb_mux2_1.v文件

`timescale  1ns/1ns
module tb_mux2_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;
initial
    begin
        // -9表示时间格式是纳秒 要和“ns”一致,即10的负9次方;0表示小数点后精确的位数;6打印的最小数字字符是6个
        $timeformat(-9,0,"ns",6);
        // 打印他们的电频变化
        $monitor("@time %t:in_1=%b in_2=%b sel=%b out=%b",$time,in_1,in_2,sel,out);
    end
mux2_1  mux2_1_inst
(
    .in_1(in_1),      // 输入信号1
    .in_2(in_2),      // 输入信号2
    .sel (sel),      // 选通信号
    .out (out)       // 输出信号
);
endmodule

由下图可知:打印的波形和日志均正常

image.png

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://myfpga.cn/index.php/post/255.html

分享给朋友:
返回列表

上一篇:点亮LED灯实验

下一篇:3-8译码器

“多路选择器” 的相关文章

Xilinx_ISE_DS_Win_14.7_1015_1 安装教程(Xilinx High Speed Cable USB驱动安装)

Xilinx_ISE_DS_Win_14.7_1015_1 安装教程(Xilinx High Speed Cable USB驱动安装)

首先下载Xilinx ISE软件的安装包,以下是百度云链接,6.12G,放着一晚上就下载完了链接:https://pan.baidu.com/s/13cUoFZgbld0X4ikCLsVFNQ 提取码:53ro更建议使用win7来安装这个,win8 win10 ...

Intel FPGA初级考试模拟试题 四套含答案

Intel FPGA初级考试模拟试题 四套含答案

*1.下列对异步信号进行同步的描述错误的是(使用锁存器)。采用保持寄存器加握手信号的方法特殊的具体应用电路结构,根据应用的不同而不同使用锁存器异步 FIFO *2.FPGA 的可编程是主要基于什么结构(查找表(LUT))。查找表(LUT)ROM 可编程PAL 可编程与或阵列可编程解析:FP...

Verilog实现串并转换

Verilog实现串并转换

项目文件:SIPO.zip//------------------------------------------------------// File Name        : SIPO.v// Author       &n...

半加器

半加器

半加器:两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。即两个一位二进制数的加法运算电路。半加器 模块框图:sum:结果位count:进位半加器 真值表:半加器 波形图:代码部分:选择器代码:在Src文件夹中新建 half_adder.v文件module half_adder...

时序约束(TCL脚本)

时序约束(TCL脚本)

get_ports的使用方法如下:# 获取所有端口 get_ports *   # 获取名称中包含data的端口 get_ports *data*   # 获取所有输出端口 get_ports -filter {DIRECTION == OUT}   # 获取所有输入端口 all...

CDC跨时钟域信号处理

CDC跨时钟域信号处理

保证时序电路的时序要求:建立时间:在有效的时钟沿到来之前,输入端的输入信号需要保持稳定不变的最小时间保持时间:在有效的时钟沿到来之后,输入端的输入信号需要保持稳定不变的最小时间CDC问题1:亚稳态亚稳态原因:亚稳态解决方法:对于单信号来说,使用 Double FF来进行信号同步CDC问题2:数据收敛...