「Verilog学习笔记」优先编码器Ⅰ

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

分析

分析编码器的功能表:

当使能El=1时,编码器工作:而当E1=0时,禁止编码器工作,此时不论8个输入端为何种状态,3个输出端均为低电平,且GS和EO均为低电平。

只有在EI为1,且所有输入端都为0时,EO输出为1.它可与另一片编码器的EI连接,以便组成更多输入端的优先编码器。

GS的功能是,当EI为1,且至少有一个输入端有高电平信号输入时,GS为1.表明编码器处于工作状态,否则GS为0,由此可以区分当电路所有输入端均无高电平输人,或者只有I0输入端有高电平时,Y2:0均为000的情况

复制代码
`timescale 1ns/1ns

module encoder_83(
   input      [7:0]       I   ,
   input                  EI  ,
   
   output wire [2:0]      Y   ,
   output wire            GS  ,
   output wire            EO    
);
    reg [2:0] Y_r ;
    reg GS_r ;
    reg EO_r ; 

    always @ (*) begin 
        if (~EI) begin
            Y_r = 3'b000 ; 
            GS_r = 0 ; 
            EO_r = 0 ; 
        end 
        else begin 
            if (!I) begin 
                Y_r = 0 ; 
                GS_r = 0 ; 
                EO_r = 1 ; 
            end 
            else begin 
                GS_r = 1 ; 
                EO_r = 0 ; 
                casez (I) 
                    8'b1???????: Y_r = 3'b111 ; 
                    8'b01??????: Y_r = 3'b110 ; 
                    8'b001?????: Y_r = 3'b101 ; 
                    8'b0001????: Y_r = 3'b100 ; 
                    8'b00001???: Y_r = 3'b011 ;
                    8'b000001??: Y_r = 3'b010 ; 
                    8'b0000001?: Y_r = 3'b001 ; 
                    8'b00000001: Y_r = 3'b000 ; 
                    default: Y_r = 3'b000 ;
                endcase
            end
        end
    end

    assign Y = Y_r ; 
    assign GS = GS_r ; 
    assign EO = EO_r ;
    
endmodule   
相关推荐
Rabitebla16 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件17 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
一个天蝎座 白勺 程序猿17 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
楚山之石18 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri
坤坤子吖21 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
YLCHUP1 天前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
LGL6030A1 天前
Java学习历程31——初识Spring Boot
java·spring boot·学习
阿达和自己1 天前
springboot学习-springboot引入MyBatis-Plus
spring boot·学习·mybatis
旖旎夜光1 天前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
星恒随风2 天前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql