题解 | #优先编码器电路①#
这样的真值表很适合采用case语句实现,解码器多数都可以使用case。注意有x态,因此使用casex……endcase结构。
`timescale 1ns/1ns
module encoder_0(
input [8:0] I_n ,
output reg [3:0] Y_n
);
always@(*) begin: truth_table
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
endmodule
《Verilog/VHDL必刷习题集》 文章被收录于专栏
Verilog/VHDL必刷习题集,包含基础知识、组合逻辑设计、时序逻辑设计、状态机设计、RAM及FIFO设计等等。