当前位置: 首页 > news >正文

简单组合逻辑

多路选择器

  在多路数据传输过程中,能够将任意一路选出来的电路叫做数据选择器,也称多路选择器。对于一个具有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    
);case(sel)1'b1:    out    =    in1    ;1'b0:    out    =    in2    ;default:    out    =    in1    ;endcaseendmodule

多路选择器    ?:;

        

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
);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    ;endcaseendmodule


http://www.mrgr.cn/news/83657.html

相关文章:

  • 《跟我学Spring Boot开发》系列文章索引❤(2025.01.09更新)
  • RK3399开发板Linux实时性改造
  • 系统看门狗配置--以ubuntu为例
  • 《Java核心技术II》网络使用telnet
  • 使用python生成gif图
  • RedisDB双机主从同步性能测试
  • 计算机数据提取与固定
  • sparkRDD教程之基本命令
  • linux软件框架中间件选择(GDbus与FDbus)
  • python基础语法(1) ------- 学习笔记分享
  • vue城市道路交通流量预测可视化系统
  • shell脚本第一次作业
  • 1/13C++
  • 127.【C语言】补充:函数的三种调用约定
  • SpringBoot:使用HTTP2+protobuf实现高性能微服务调用
  • 【Linux】Linux开发:GDB调试器与Git版本控制工具指南
  • JVM:ZGC详解(染色指针,内存管理,算法流程,分代ZGC)
  • 拷贝构造函数
  • 基于深度学习的视觉检测小项目(十二) 使用线条边框和渐变颜色美化界面
  • pytest+request+yaml+allure搭建低编码调试门槛的接口自动化框架
  • 指针的进阶
  • 蓝耘:GPU算力云服务的技术探索与AIGC应用支持
  • 渗透Vulnhub-hackme靶机
  • Windows 11更新之后卡顿 (黑神话掉帧严重)问题探索
  • 聊聊AI Agent
  • windows及linux 安装 Yarn 4.x 版本