专栏前言
本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网
`timescale 1ns/1ns
//优先编码器电路1
//电路的优先顺序是,从9到1,高级到低级
//9个输入端:I端,4个输出端:Y端,低电平有效。
//输入端从9到1有效输入,输出端从9到1进行输出
module encoder_0(
input [8:0] I_n ,
output reg [3:0] Y_n
);
always @ (*) begin
casez(I_n) //casez语句用来处理不考虑高阻值z的比较过程,即状态z在case语句中不会被视为正常的z状态
9'b1_1111_1111: Y_n = 4'b1111 ;
9'b0_????_????: Y_n = 4'b0110 ; //其中?,被视为高阻状态,casez中视为不必考虑的状态
9'b1_0???_????: Y_n = 4'b0111 ;
9'b1_10??_????: Y_n = 4'b1000 ;
9'b1_110?_????: Y_n = 4'b1001 ;
9'b1_1110_????: Y_n = 4'b1010 ;
9'b1_1111_0???: Y_n = 4'b1011 ;
9'b1_1111_10??: Y_n = 4'b1100 ;
9'b1_1111_110?: Y_n = 4'b1101 ;
9'b1_1111_1110: Y_n = 4'b1110 ;
default: Y_n = 4'b0000 ;
endcase
end
endmodule