filmov
tv
How To Implement Encoder Using ModelSim

Показать описание
In this video, we have implement 8 to 3 Encoder. How we use previous project to implement new project, We understand 8x3 Encoder circuit diagram & Truth table. We make wave of 8 to 3 Encoder.
Verilog code:
module encoder(x,y,z,d0,d1,d2,d3,d4,d5,d6,d7);
input d0,d1,d2,d3,d4,d5,d6,d7;
output x,y,z;
assign x=(d1|d3|d5|d7),
y=(d2|d3|d6|d7),
z=(d7|d6|d5|d4);
endmodule
Testbench:
module TestModule;
// Inputs
reg d0;
reg d1;
reg d2;
reg d3;
reg d4;
reg d5;
reg d6;
reg d7;
// Outputs
wire x;
wire y;
wire z;
encoder encode (
.x(x),
.y(y),
.z(z),
.d0(d0),
.d1(d1),
.d2(d2),
.d3(d3),
.d4(d4),
.d5(d5),
.d6(d6),
.d7(d7)
);
initial begin
// Initialize Inputs
d0 = 1;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 1;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 1;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 1;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 1;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 1;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 1;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 1;
// Add stimulus here
end
endmodule
#8x3encoder
#8x3encoderusingmodelsim
#8x3encodercircuitdiagram
#8x3encoderwave
Verilog code:
module encoder(x,y,z,d0,d1,d2,d3,d4,d5,d6,d7);
input d0,d1,d2,d3,d4,d5,d6,d7;
output x,y,z;
assign x=(d1|d3|d5|d7),
y=(d2|d3|d6|d7),
z=(d7|d6|d5|d4);
endmodule
Testbench:
module TestModule;
// Inputs
reg d0;
reg d1;
reg d2;
reg d3;
reg d4;
reg d5;
reg d6;
reg d7;
// Outputs
wire x;
wire y;
wire z;
encoder encode (
.x(x),
.y(y),
.z(z),
.d0(d0),
.d1(d1),
.d2(d2),
.d3(d3),
.d4(d4),
.d5(d5),
.d6(d6),
.d7(d7)
);
initial begin
// Initialize Inputs
d0 = 1;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 1;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 1;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 1;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 1;
d5 = 0;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 1;
d6 = 0;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 1;
d7 = 0;
// Wait 50 ns for global reset to finish
#50;
d0 = 0;
d1 = 0;
d2 = 0;
d3 = 0;
d4 = 0;
d5 = 0;
d6 = 0;
d7 = 1;
// Add stimulus here
end
endmodule
#8x3encoder
#8x3encoderusingmodelsim
#8x3encodercircuitdiagram
#8x3encoderwave
Комментарии