有限编码器电路
题目描述
`timescale 1ns/1nsmodule encoder_0(input [8:0] I_n ,output reg [3:0] Y_n
);
// always @(*)begin
// casex(I_n)
// 9'b111111111 : Y_n = 4'b1111;
// 9'b0xxxxxxxx : Y_n = 4'b0110;
// 9'b10xxxxxxx : Y_n = 4'b0111;
// 9'b110xxxxxx : Y_n = 4'b1000;
// 9'b1110xxxxx : Y_n = 4'b1001;
// 9'b11110xxxx : Y_n = 4'b1010;
// 9'b111110xxx : Y_n = 4'b1011;
// 9'b1111110xx : Y_n = 4'b1100;
// 9'b11111110x : Y_n = 4'b1101;
// 9'b111111110 : Y_n = 4'b1110;
// default : Y_n = 4'b1111;
// endcase
// end always@(I_n)beginif(I_n[8] == 0) //第一优先Y_n = 4'b0110;else if(I_n[7] == 0)Y_n = 4'b0111;else if(I_n[6] == 0)Y_n = 4'b1000;else if(I_n[5] == 0)Y_n = 4'b1001;else if(I_n[4] == 0)Y_n = 4'b1010;else if(I_n[3] == 0)Y_n = 4'b1011;else if(I_n[2] == 0)Y_n = 4'b1100;else if(I_n[1] == 0)Y_n = 4'b1101;else if(I_n[0] == 0) //最后优先Y_n = 4'b1110;elseY_n = 4'b1111;end
endmodule
知识点
优先编码器是一种能将多个二进制输入压缩成更少数目输出的电路或算法。其输出是序数0到输入最高有效位的二进制表示。优先编码器常用于在处理最高优先级请求时控制中断请求。