优先编码器电路①

描述

下表是某优先编码器的真值表。
①请用System Verilog实现此优先编码器

输入描述:

①输入描述:

input    logic  [8:0]         I_n

输出描述:

①输出描述:

output logic [3:0]         Y_n

解答:

分析:

只需要采用case语句将每种情况进行描述,根据输入选择不同的输出。

不过由于在判断时只判断部分位,所以要区分case、casex、casez的区别。

case:进行全等匹配,只有全部相等才进行下一步。

casex:高阻值与不定值都忽略,不关心。

casez:不处理高阻值的位,视为正常z状态。

故,代码如下:

`timescale 1ns/1ns

module encoder_0(
   input  logic    [8:0]         I_n   ,
   
   output logic [3:0]         Y_n   
);

always@(*) begin
    casex(I_n)
        9'b1111_1111_1: Y_n = 4'b1111;
        9'b0xxx_xxxx_x: Y_n = 4'b0110;
        9'b10xx_xxxx_x: Y_n = 4'b0111;
        9'b110x_xxxx_x: Y_n = 4'b1000;
        9'b1110_xxxx_x: Y_n = 4'b1001;
        9'b1111_0xxx_x: Y_n = 4'b1010;
        9'b1111_10xx_x: Y_n = 4'b1011;
        9'b1111_110x_x: Y_n = 4'b1100;
        9'b1111_1110_x: Y_n = 4'b1101;
        9'b1111_1111_0: Y_n = 4'b1110;
        default: Y_n = 4'b0000;
    endcase
end

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值