题解 | #使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器#

使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器

http://www.nowcoder.com/practice/dcfa838e43de4744bc976abee96dc566

4-16对于3-8逻辑是:3-8有一块有输入,4-16就有输入(GS为逻辑或),3-8两块都没输入,4-16才没输入(EO为逻辑与),Y的选择按照优先编码器的规则,先判断高位,再判断低位。

`timescale 1ns/1ns
module encoder_83(
   input      [7:0]       I   ,
   input                  EI  ,
   
   output wire [2:0]      Y   ,
   output wire            GS  ,
   output wire            EO    
);
assign Y[2] = EI & (I[7] | I[6] | I[5] | I[4]);
assign Y[1] = EI & (I[7] | I[6] | ~I[5]&~I[4]&I[3] | ~I[5]&~I[4]&I[2]);
assign Y[0] = EI & (I[7] | ~I[6]&I[5] | ~I[6]&~I[4]&I[3] | ~I[6]&~I[4]&~I[2]&I[1]);

assign EO = EI&~I[7]&~I[6]&~I[5]&~I[4]&~I[3]&~I[2]&~I[1]&~I[0];

assign GS = EI&(I[7] | I[6] | I[5] | I[4] | I[3] | I[2] | I[1] | I[0]);
//assign GS = EI&(| I);
         
endmodule

module encoder_164(
   input      [15:0]      A   ,
   input                  EI  ,
   
   output wire [3:0]      L   ,
   output wire            GS  ,
   output wire            EO    
);
    wire [2 : 0] Y0;
    wire [2 : 0] Y1;
    wire GS0;
    wire GS1;
    wire EO0;
    wire EO1;
    
    encoder_83 en0(
        .I(A[7 : 0]),
        .EI(EI),
        .Y(Y0),
        .GS(GS0),
        .EO(EO0)
    );
    encoder_83 en1(
        .I(A[15 : 8]),
        .EI(EI),
        .Y(Y1),
        .GS(GS1),
        .EO(EO1)
    );
    
    assign L = GS1 ? {1'b1, Y1} : GS0 ? {1'b0, Y0} : 4'b0000;
    assign GS = GS1 | GS0;
    assign EO = EO0 & EO1;
    
    
endmodule
全部评论
帅的
点赞 回复 分享
发布于 2024-04-30 21:44 辽宁

相关推荐

如题,只有过一段小厂实习经历,秋招会很吃亏吗?
KarlAllen:我也没大厂实习。今年大厂又扩招实习生。不知道秋招要怎么办了
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
评论
12
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务