1.优先编码器
1.1定义
为了防止多条线信号同时有效,规定只对序号最高的有效信号线进行编码,相当于该线的优先级别最高,称为优先编码器。
2.例子
真值表如下:
设计代码:
module encoder8_3(
input [7:0] din,
output reg [2:0] out);
always@(*) begin
casex(din)
8'bx0: out=3'b000;
8'bx01:out=3'b001;
8'bx011:out=3'b010;
8'bx0111:out=3'b011;
8'bx01111:out=3'b100;
8'bx011111:out=3'b101;
8'bx0111111:out=3'b110;
8'b0111_1111:out=3'b111;
endcase
end
endmodule
testbench:
`timescale 1ns/1ns
module encoder8_3_tb;
reg [7:0] din;
wire [2:0]out;
initial begin
din=0;
repeat (20) begin
#10 din=8'b0101_1111;
#15 din=8'b1111_1110;
#10 din=8'b0111_1111;
#5 din=8'b1010_1111;
#20 din=8'b1111_0101;
#10 din=8'b1111_1011;
#7 din=8'b1110_0111;
#9 din=8'b1011_1111;
#8 din=8'b0011_1111;
end
end
encoder8_3 u1( din,out);
endmodule
仿真波形图: