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

一、前言

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

Verilog基础之八、多路选择器实现_第1张图片

二、工程实现

    以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中左边为高位,右边为低位。

你可能感兴趣的:(Vivado,FPGA所知所见所解,Verilog学习笔记,fpga开发,Verilog,多路选择器,modelsim)