`timescale 1ns/1ns
module encoder_83(
input [7:0] I ,
input EI ,
output reg [2:0] Y ,
output reg GS ,
output reg EO
);
always @(*) begin
if ( ~EI ) begin
Y = 'b0;
GS = 'd0;
EO = 'd0;
end
else begin
casex(I)
'b00000000: begin Y= 'd0; EO = 'd1; GS = 'd0; end
'b1xxxxxxx: begin Y= 'd7; EO = 'd0; GS = 'd1; end
'b01xxxxxx: begin Y= 'd6; EO = 'd0; GS = 'd1; end
'b001xxxxx: begin Y= 'd5; EO = 'd0; GS = 'd1; end
'b0001xxxx: begin Y= 'd4; EO = 'd0; GS = 'd1; end
'b00001xxx: begin Y= 'd3; EO = 'd0; GS = 'd1; end
'b000001xx: begin Y= 'd2; EO = 'd0; GS = 'd1; end
'b0000001x: begin Y= 'd1; EO = 'd0; GS = 'd1; end
'b00000001: begin Y= 'd0; EO = 'd0; GS = 'd1; end
// default :begin Y= 'd0; EO = 'd0; GS = 'd1; end
endcase
end
end
endmodule
重点在于casex和case的区别,使用x态所以需要casex



京公网安备 11010502036488号