FPGA四选一多路选择器

这篇具有很好参考价值的文章主要介绍了FPGA四选一多路选择器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、四选一多路选择器原理

二、原代码

1.Verilog源码

2.测试文本

3、仿真结果

总结


前言

这里是小白新手的课后作业之——基于FPGA的四选一数据选择器的设计!!


一、四选一多路选择器原理

四选一多路选择器共由四个1位的输入端口(int0、int1、int2、int3)、一个2位控制端口(sel)和一个输出端口(out)组成,原理如图1所示,真值表如下:

四选一多路选择器真值表
sel out
00 int0
01 int1
10 int2
11 int3

四选一多路选择器,小白的学习笔记,fpga开发

图1 


二、原代码

1.Verilog源码

//四位选一多路选择器
   // 定义模块名及输入输出变量
module mux4_1 (
   input   wire [0:0]   int0   ,
   input   wire [0:0]   int1   ,
   input   wire [0:0]   int2   ,
   input   wire [0:0]   int3   ,
   input   wire [1:0]   sel    ,
   output  reg  [0:0]   out  
);                                
//逻辑功能描述
always @(*) begin
    case (sel)
        2'b00   : out = int0;  // sel=0,输出为int0
        2'b01   : out = int1;  // sel=0,输出为int1
        2'b10   : out = int2;  // sel=0,输出为int2
        2'b11   : out = int3;  // sel=0,输出为int3
        default : out = 1'bx ; //默认处理输出为空
    endcase
end
    
endmodule

2.测试文本

`timescale 1ns/1ns // 定义时间单位和延时精度
module mux4_1_tb(); // 定义模块名

// 定义激励信号
 reg          tb_int0 ;
 reg          tb_int1 ;
 reg          tb_int2 ;
 reg          tb_int3 ;
 reg   [1:0]  tb_sel  ;

// 定义输出信号
 wire         out;

parameter TIME = 20;

// 模块例化
mux4_1 mux4_1_tb(
    .int0 (tb_int0) ,
    .int1 (tb_int1) ,
    .int2 (tb_int2) ,
    .int3 (tb_int3) ,
    .sel  (tb_sel)  ,
    .out  (out)
);

// 模拟输入
initial begin
    tb_int0 = 0;         // 将tb_int0初始化为0
    forever begin
        #TIME;
        tb_int0 = ~tb_int0; // 每20个时间单位内,将tb_int0的值取反
    end
end

initial begin
    tb_int1 = 0;         // 将tb_int1初始化为0
    forever begin
        #(TIME*2);
        tb_int1 = ~tb_int1; // 每40个时间单位内,将tb_int1的值取反
    end
end

initial begin
    tb_int2 = 0;         // 将tb_int2初始化为0
    forever begin
        #(TIME*3);
        tb_int2 = ~tb_int2; // 每60个时间单位内,将tb_int2的值取反
    end
end

initial begin
    tb_int3 = 0;         // 将tb_int3初始化为0
    forever begin
        #(TIME*4);
        tb_int3 = ~tb_int3; // 每80个时间单位内,将tb_int3的值取反
    end
end

initial begin
    tb_sel = 0;         // 将tb_sel初始化为0
    forever begin
        #(TIME*6);
        tb_sel = ~tb_sel; // 每160个时间单位内,将tb_sel的值取反
    end
end
endmodule

3、仿真结果

四选一多路选择器,小白的学习笔记,fpga开发

总结

咔嚓又是一天文章来源地址https://www.toymoban.com/news/detail-714124.html

到了这里,关于FPGA四选一多路选择器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从底层结构开始学习FPGA(4)----MUX多路选择器(Multiplexer)

            系列目录与传送门         一、什么是MUX         二、FPGA内部的MUX         

    2023年04月08日
    浏览(43)
  • (1)FPGA开发实战——二选一数据选择器

    数据选择器是指经过选择,把多个通道的数据传送到唯一的公共数据通道上去,实现数据选择功能的逻辑电路称为数据选择器。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。在选择变量n控制下,从多路数

    2024年02月08日
    浏览(37)
  • VHDL学习笔记——半加器 多路选择器 分频器

    VHDL程序结构: 条件语句 if_then_else_end if 数据类型 BIT类型(取逻辑位’1’或’0’)、整数类型INTEGER、布尔类型BOOLEAN(取TRUE或FALSE)、标准逻辑类型STD_LOGIC等 进程语句与顺序语句 process(敏感信号表)_endprocess VHDL中所有的顺序语句都必须放在进程语句中 端口语句 port(端口模式

    2024年02月02日
    浏览(36)
  • FPGA的verilog关于多路选择器(2选1)的设计

    ​​​​​​​ 实验目的 实现一个多路选择器,进行“2选1”。也就是对2个信号进行1个特定条件的筛选,满足这个特定条件的话,其中一个的数值或信息就成为输出信号的数值或信息。不满足此条件的,就输出另一个信号的数值和信息。 实验原理 理论原理 2个输入信号,选

    2024年02月07日
    浏览(45)
  • FPGA结构:LUT(查找表)和 MUX(多路选择器)介绍

    如果你想学习有关FPGA的专业术语,可以参考这一篇:FPGA专业术语介绍 一句话概括,通过将函数的真值表存放在少量内存单元中来实现组合逻辑电路功能的模块称为LUT。 这里以简单的一个3-LUT(3输入查找表)为例,以下给出其示意图的简化描述: 输入1 ----┐ 输入2 ----┼---

    2024年02月04日
    浏览(51)
  • 【FPGA/verilog -入门学习4】verilog 实现多路脉冲计数

    设计一个脉冲计数器,其功能如下 输入脉冲:4路脉冲信号,分别对每路进行脉冲检测并计数 使能信号:高电平进行计数,低电平清零计数器 计数器:在使能信号高电平期间,对脉冲信号的上升沿进行检测并递增计数值 编写测试脚本,进行仿真验证 使用上一章的一路脉冲检

    2024年02月04日
    浏览(51)
  • Docker官方文档学习笔记(一):安装Docker Engine(和安装Docker Desktop for Linux二选一)

    参考官方文档 /var/lib/docker 中的内容会被保留,如果要完全删除,继续参考文章最后的卸载教程完成卸载 三种方法,通过仓库安装(推荐),通过DEB包手动安装,以及使用脚本安装。 在安装之前,请让自己熟悉脚本安装的潜在风险和限制: 该脚本需要root或sudo特权才能运行。

    2024年02月12日
    浏览(42)
  • Docker官方文档学习笔记(一):安装、升级、卸载Docker Desktop for Linux(和安装Docker Engine二选一,推荐Docker Engine)

    参考自官方文档Install Docker Desktop on Linux和Install Docker Desktop on Ubuntu 本教程所用系统为Ubuntu22.04 对新手来说有个图形化界面还是挺方便的,可以装上跟着学习笔记(二)熟悉Docker,我是练完手之后卸载了Docker Desktop转而装了Docker Engine,因为当时发现DD4L好像不支持容器内运行图

    2024年02月10日
    浏览(47)
  • 中科大计网学习记录笔记(十四):多路复用与解复用 | 无连接传输:UDP

    前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信息量过大,有太多无法理解的地方,在我第一次点开的时候也有相同的感受

    2024年02月21日
    浏览(43)
  • Vivado 多路选择器(含测试代码)

    本篇文章使用 Verilog 语言编写实现五选一多路选择器,含有设计代码和测试代码。 一、接口描述 五选一多路选择器接口描述表: 二、设计代码 三、测试代码 四、仿真波形图 由波形图可得,在输入信号sel为000且in0为1时(此时其余输入信号均为0),输出信号out的值等于in0的值为

    2024年02月13日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包