VERILOG CODE USING BEHAVIOURAL:
module encoder8_3b(Dout,Din);
output [2:0]Dout;
input [7:0]Din;
reg [2:0]Dout;
always @(Din)
begin
case(Din)
8'd1 : Dout=3'd0;
8'd2 : Dout=3'd1;
8'd4 : Dout=3'd2;
8'd8 : Dout=3'd3;
8'd16 : Dout=3'd4;
8'd32 : Dout=3'd5;
8'd64 : Dout=3'd6;
8'd128 : Dout=3'd7;
default : Dout=3'dx;
endcase
end
endmodule
TEST BENCH USING BEHAVIOURAL:
module tb_encoder8_3b;
wire [2:0]Dout;
reg [7:0]Din;
encoder8_3b uut(Dout,Din);
initial begin
Din = 8'd1;
#10 Din = 8'd2;
#10 Din = 8'd4;
#10 Din = 8'd8;
#10 Din = 8'd16;
#10 Din = 8'd32;
#10 Din = 8'd64;
#10 Din = 8'd78;
#20 $finish;
end
endmodule
RTL SCHEMATIC:
POWER:
TIMING REPORT:
UTILIZATION REPORT: