You are on page 1of 7

//OR gate with behavioral modeling

module orgate_veriloghdl(output reg Y, input A, B);


always @ (A or B)
begin
if (A == 1'b0 & B == 1'b0)
begin
Y = 1'b0;
end
else
Y = 1'b1;
end
endmodule

//OR gate with Testbench


module orgate_veriloghdl_test;
reg A, B;
wire Y;
orgate_veriloghdl Indtance0 (Y, A, B);
initial begin
A = 0; B = 0;
#300 A = 0; B = 1;
#300 A = 1; B = 0;
#300 A = 1; B = 1;
end
initial begin
$monitor ("%t | A = %d| B = %d| Y = %d", $time, A, B, Y);
$dumpfile("dump.vcd");
$dumpvars();
end
endmodule
//NAND gate with
behavioral modeling
module
nandgate_veriloghdl
(output reg Y, input A, B);
always @ (A or B) begin
if (A == 1'b1 & B == 1'b1) begin
Y = 1'b0;
end
else
Y = 1'b1;
end
endmodule
//NAND gate with testbench
module nandgate_veriloghdl_test;
reg A, B;
wire Y;
nandgate_veriloghdl Indtance0 (Y, A, B);
initial begin
A = 0; B = 0;
#300 A = 0; B = 1;
#300 A = 1; B = 0;
#300 A = 1; B = 1;
end
initial begin
$monitor ("%t | A = %d| B = %d| Y = %d", $time, A, B, Y);
$dumpfile("dump.vcd");
$dumpvars();
end
endmodule

//NOR gate with


behavioral modeling
module
norgate_veriloghdl
(output reg Y, input A,
B);
always @ (A or B) begin
if (A == 1'b0 & B ==
1'b0) begin
Y = 1'b1;
end
else
Y = 1'b0;
end
endmodule

//NOR Gate with testbench


module norgate_veriloghdl_test;
reg A, B;
wire Y;
norgate_veriloghdl Instance0 (Y, A, B);
initial begin
A = 0; B = 0;
#300 A = 0; B = 1;
#300 A = 1; B = 0;
#300 A = 1; B = 1;
end
initial begin
$monitor ("%t | A = %d| B = %d| Y = %d", $time, A, B, Y);
$dumpfile("dump.vcd");

$dumpvars();
end
endmodule

//XOR gate with behavioral modeling


module xorgate_veriloghdl (output reg Y, input A, B);
always @ (A or B) begin
if (A == 1'b0 & B == 1'b0) begin
Y = 1'b0;
end
else if (A == 1'b1 & B == 1'b1) begin
Y = 1'b0;
end
else
Y = 1'b1;
end
endmodule

//XOR gate with testbench


module xorgate_veriloghdl_test;
reg A, B;
wire Y;
xorgate_veriloghdl Instance0 (Y, A, B);
initial begin
A = 0; B = 0;
#300 A = 0; B = 1;
#300 A = 1; B = 0;
#300 A = 1; B = 1;
end
initial begin
$monitor ("%t | A = %d| B = %d| Y = %d", $time, A, B, Y);
$dumpfile("dump.vcd");
$dumpvars();
end
endmodule

//XNOR gate with behavioral


modeling
module
xnorgate_veriloghdl(output reg
Y, input A, B);
always @ (A or B) begin
if (A == 1'b0 & B == 1'b0) begin
Y = 1'b1;
end
else if (A == 1'b1 & B == 1'b1) begin
Y = 1'b1;
end
else
Y = 1'b0;
end
endmodule

//XNOR gate with testbench


module xnorgate_veriloghdl_test;
reg A, B;wire Y;
xnorgate_veriloghdl Instance0 (Y, A, B);
initial begin
A = 0; B = 0;
#1 A = 0; B = 1;
#1 A = 1; B = 0;
#1 A = 1; B = 1;
end
initial begin
$monitor ("%t | A = %d| B = %d| Y = %d", $time, A, B, Y);
$dumpfile("dump.vcd");
$dumpvars();
end
endmodule

//NOT gate with


behavioral modeling
module
notgate_veriloghdl(output
reg Y, input A);
always @ (A) begin
if (A == 1'b0 ) begin
Y = 1'b1;
end
else if (A == 1'b1) begin
Y = 1'b0;
end
end
endmodule

//NOT Gate with testbench


module notgate_veriloghdl_test;
reg A;wire Y;
notgate_veriloghdl Instance0 (Y, A);
initial begin
A = 0;
#300 A = 1;
#300 A = 0;
end
initial begin
$monitor ("%t | A = %d| Y = %d", $time, A, Y);
$dumpfile("dump.vcd");
$dumpvars();
end
endmodule

You might also like