简单组合逻辑

ops/2025/1/15 3:56:59/

多路选择器

  在多路数据传输过程中,能够将任意一路选出来的电路叫做数据选择器,也称多路选择器。对于一个具有2^n个输入和一个输出的多路选择器,有n个选择变量,多路选择器也是FPGA内部的一个基本资源,主要用于内部信号的选通。简单的多路选择器还可以通过级联生成更大的多路选择器。

译码器

  译码是编码的逆过程,在编码时,每一种二级制都有特定的含义,都表示一个确定的信号。把代码状态的含义翻译出来的过程叫做译码,实现该功能的电路叫做译码器。或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示原来含义的电路。

  译码器是一类      多输入多输出   的组合逻辑电路器件,可以分为变量译码和显示译码。

多路选择器 if else
module  mux_2_1
(input    wire    in1    ,input    wire    in2    ,input    wire    sel    ,output    reg    out
);always@(*)beginif(sel == 1'b1)beginout = in1    ;endelsebeginout = in2    ;endendendmodule

 多路选择器 case
module mux2_1
(input    wire    in1    ,input    wire    in2    ,input    wire    sel    ,output    reg    out    
);always@(*)begincase(sel)1'b1:    out    =    in1    ;1'b0:    out    =    in2    ;default:    out    =    in1    ;endcaseendendmodule

多路选择器    ?:;

        

module mux2_1
(input    wire    in1    ,input    wire    in2    ,input    wire    sel    ,output   wire    out
);assign    out    =    (sel == 1'b1)?in1:in2;endmodule

译码器 if else 

module decode_3_8
(input    wire    in1    ,input    wire    in2    ,input    wire    in3    ,output   reg [7:0]    out    );always@(*)beginif(  {in1,in2,in3}  == 3'b000 )beginout    =    8'b0000_0001    ;endelse if(  {in1,in2,in3}  == 3'b001  )beginout    =    8'b0000_0010    ;endelse if(   {in1,in2,in3} == 3'b010   )beginout    =    8'b0000_0100    ;endelse if(   {in1,in2,in3} == 3'b011   )beginout    =    8'b0000_1000    ;endelse if(   {in1,in2,in3} == 3'b100     )beginout    =    8'b0001_0000    ;endelse if(   {in1,in2,in3}  == 3'b101    )beginout    =    8'b0010_0000    ;endelse if(  {in1,in2,in3} == 3'b110  )beginout    =    8'b0100_0000    ;endelse if(  {in1,in2,in3} == 3'b111  )beginout    =    8'b1000_0000    ;endelsebeginout    =    8'b0000_0001    ;endendendmodule

译码器 case

module decode3_8
(input    wire    in1    ,input    wire    in2    ,input    wire    in3    ,output   reg [7:0]    out
);always@(*)
begin    case({in1,in2,in3})3'b000    :    out    =    8'b0000_0001    ;3'b001    :    out    =    8'b0000_0010    ;3'b010    :    out    =    8'b0000_0100    ;3'b011    :    out    =    8'b0000_1000    ;3'b100    :    out    =    8'b0001_0000    ;3'b101    :    out    =    8'b0010_0000    ;3'b110    :    out    =    8'b0100_0000    ;3'b111    :    out    =    8'b1000_0000    ;default   :    out    =    8'b0000_0001    ;endcase
endendmodule

仿真验证

仿真文件编写

`timescale 1ns/1nsmodule tb_decode3_8();reg    in1    ;reg    in2    ;reg    in3    ;wire  [7:0] out    ;initialbeginin1 <= 1'b0    ;in2 <= 1'b0    ;in3 <= 1'b0    ;endalways #10    in1 <= {$random}%2    ;always #10    in2 <= {$random}%2    ;always #10    in3 <= {$random}%2    ;initialbegin$timeformat(-9.0,"ns",6)    ;$monitor("@time %t , in1 = %b ,in2 = %b ,in3 = %b , out = %b ",$time,in1,in2,in3,out)    ;enddecoder3_8    decoder3_8_inst
(.in1    (in1)    ,.in2    (in2)    ,.in3    (in3)    ,.out    (out)
);endmodule


http://www.ppmy.cn/ops/150185.html

相关文章

Python 基于 opencv 的人脸识别监控打卡系统(源码+部署)

1. 引言 今天&#xff0c;我们将基于 Python 的 OpenCV 库和 wxPython 框架&#xff0c;构建一个实用的 人脸识别考勤系统。这是一个适合大学生学习的实战项目&#xff0c;功能经过充分调试&#xff0c;确保运行稳定。该系统不仅能帮助你了解人脸识别技术的基本原理&#xff0…

Linux常用指令

目录 1 概述2 指令2.1 简单指令2.2 解压缩2.2.1 tar.bz2和tar.gz2.2.2 单独bz22.2.3 zip2.2.4 7z 2.3 网卡操作 1 概述 本章主要是记录一些日常用到的Linux指令&#xff0c;方便自己忘记的时候查找&#xff0c;也为有需要的人提供参考。 2 指令 2.1 简单指令 指令解释cat /…

学习通过几何约束从单个图像预测 3D 车道形状和相机姿态 | 论文解读

学习通过几何约束从单个图像预测 3D 车道形状和相机姿态 | Learning to Predict 3D Lane Shape and Camera Pose from a Single Image via Geometry Constraints https://zhuanlan.zhihu.com/p/563985000https://zhuanlan.zhihu.com/p/563985000

《AI赋能鸿蒙Next,打造极致沉浸感游戏》

在游戏开发领域&#xff0c;鸿蒙Next系统与人工智能技术的结合为开发者们带来了前所未有的机遇&#xff0c;使打造更具沉浸感的游戏成为可能。以下将深入探讨如何利用人工智能在鸿蒙Next上开发出令人身临其境的游戏。 利用AI优化游戏角色智能行为 在传统游戏中&#xff0c;非…

第 3 章 HTML5 编程基础教案

谢从华&#xff0c;高蕴梅 著.Web前端设计基础入门——HTML5、CSS3、JavaScript&#xff08;微课视频版&#xff09;,2023, 清华大学出版社. ISBN&#xff1a;9787302641261. 一、教学目标&#xff08;Objectives&#xff09; 1. 知识目标&#xff1a; - 深入理解 HTML5 相较于…

Qt 坐标系统和坐标变换

一、概述:1、QPainter在QPaintDevice上绘图的默认坐标系统是&#xff0c;原点(0,0)在左上角&#xff0c;x轴正方向水平向右&#xff0c;y轴正方向竖直向下的坐标系。 2、为了绘图的方便&#xff0c;QPainter提供了一些坐标变换的功能&#xff0c;通过平移、旋转、缩放等坐标变…

鼠标过滤驱动

文章目录 概述代码参考资料 概述 其编写过程大体与键盘过滤驱动相似&#xff0c;只需要切换一下附加的目标设备以及创建的设备类型等。但在该操作后依然无法捕获到Vmware创建的win7操作系统的鼠标irp信息&#xff0c;于是通过在获取鼠标驱动&#xff0c;遍历其所有的设备进而附…

springMVC百宝箱

springMVC工具箱 文章目录 springMVC工具箱依赖过滤设置DispatcherServlet的注册&#xff08;web.xml)标准配置文件头标准springmvc-servlet.xml文件注解版springmvc-servlet.xml文件spring乱码过滤器自定义万能过滤器自定义万能过滤器注册JSON格式化乱码&#xff08;anncation…