基于FPGA的多路选择器

目录

一、组合逻辑

二、多路选择器简介:

三、实战演练

四、总结



摘要:本实验设计并实现了一个简单的多路选择器

说明:本文章参考[野火]FPGA Verilog开发实战指南,文章后附工程代码链接

开发平台:Quartus Prime 18.1Standard Edition         EP4CE10F17C8(征途PRO系列)

一、组合逻辑

组合逻辑是VerilogHDL设计中的一个重要组成部分。从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没有反馈电路。

二、多路选择器简介:

多路选择器是数据选择器的别称,在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。

三、实战演练

1、实验目标:设计并实现2选1多路选择器,主要功能是通过选通控制信号sel确定选通in_1路或in_2路作为信号输出。当选通控制信号S为1时,信号输出为in_1路信号;当选通控制信号sel为0时,信号输出为in_2信号

2、模块框图:

输入输出信号描述:

3、模块波形图:

4、实验代码

module mux2_1 (
    input           wire        in_1,
    input           wire        in_2,
    input           wire        sel ,
​
    output          reg         out
);
always @(*) begin//always @(in_1,in_2,sel) begin
    if(sel == 1'b1)
        out = in_1;
    else
        out = in_2;
end
endmodule
`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;
​
 mux2_1 mux2_1_inst(
   . in_1(in_1),
   . in_2(in_2),
   . sel (sel ),
   . out (out )
);
​
endmodule

5、仿真波形图:

7、引脚绑定

6、上板验证:略

7、项目工程

链接:https://pan.baidu.com/s/1WA_O13RfpUoZtocgRJuW0A?pwd=yykl 
提取码:yykl

四、总结

本实验设计并实现了一个简单的多路选择器,并完成了代码的仿真。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
8选1选择器可以用FPGA实现,其中FPGA是一种可编程逻辑器件,可以通过编程来实现各种数字电路。下面是一个简单的8选1选择器的FPGA实现过程: 1. 首先,我们需要使用HDL语言(如Verilog或VHDL)来描述8选1选择器的行为和功能。在这个例子中,我们使用Verilog来实现。 2. 在Verilog代码中,我们需要定义8个输入信号和1个输出信号。这些输入信号表示8个不同的输入,输出信号表示选中的输入。 3. 在代码中,我们需要使用一个3位二进制编码器来选择输入信号。这个编码器将8个输入信号编码为3位二进制数,然后将这个编码器的输出与8个输入信号的“与”门相连。 4. 最后,我们需要使用一个多路选择器来选择编码器的输出,并将其作为输出信号。这个多路选择器可以通过使用FPGA内部的LUT(查找表)来实现。 下面是一个简单的Verilog代码示例,用于实现8选1选择器: ``` module mux8to1 ( input [7:0] in, input [2:0] sel, output reg out ); always @ (*) 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 ``` 这里我们使用了一个case语句来实现多路选择器的逻辑。在这个例子中,我们定义了8个输入信号(in[0]到in[7]),一个输出信号(out),以及一个3位二进制选择器(sel)。通过使用case语句,我们可以根据选择器的值选择正确的输入信号,并将其输出到输出信号中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值