Verilog基础之八、多路选择器实现

一、前言

    选择器在FPGA中是基础的组成部分,英文全称为Multiplexer,为一个多输入单输出的结构。以器件xc7k480tffv1156为例,在slice中,也可以看到F7AMUX,F8MUX,这两个MUX都是二输入单输出的选择器。

二、工程实现

    以8-1选择器,8输入为例进行设计

2.1 设计代码

module MUX( sel,in,out  );
input [2:0] sel;
input [7:0] in;
output reg out;
always@(sel)
begin
case(sel)
3'b000: out<=in[0];
3'b001: out<=in[1];
3'b010: out<=in[2];
3'b011: out<=in[3];
3'b100: out<=in[4];
3'b101: out<=in[5];
3'b110: out<=in[6];
3'b111: out<=in[7];
endcase
end
endmodule

测试代码,选择变量sel每隔1ns加1,输入in每10ns增加1111。

module MUX_tb;
reg [2:0] sel;
reg [7:0] in;
wire out;
initial
begin
sel=3'b000;
in=8'b0000_0000;
end
always #1 sel=sel+1;
always #10  in=in+8'b1111;
MUX mux_test(.sel(sel),.in(in),.out(out));
endmodule

2.2 仿真结果

sel的值可看做in中地址值,sel为0时输出out即为in[0]的值,sel为1时输出out即为in[1]的值,输入in中左边为高位,右边为低位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值