Full Adder in Dataflow model:
Code:
module fulladder(
input a,
input b,
input cin,
output s,
output cout
);
assign s=a^b^cin;
assign cout=(a & b) | cin & (a ^ b);
endmodule
Output:
RTL Schematic:
Hardware:
Full Adder in Gate level model :
Code:
module fa(
input a,
input b,
input cin,
output s,
output cout
);
wire x1,x2,x3;
xor(x1,a,b);
and(x3,a,b);
xor(s,x1,cin);
and(x2,x1,cin);
or(cout,x2,x3);
endmodule
Output:
RTL Schematic:

Verilog full adder in dataflow & gate level modelling style.

  • 1.
    Full Adder inDataflow model: Code: module fulladder( input a, input b, input cin, output s, output cout ); assign s=a^b^cin; assign cout=(a & b) | cin & (a ^ b); endmodule Output:
  • 2.
  • 3.
  • 5.
    Full Adder inGate level model : Code: module fa( input a, input b, input cin, output s, output cout ); wire x1,x2,x3; xor(x1,a,b); and(x3,a,b); xor(s,x1,cin); and(x2,x1,cin); or(cout,x2,x3); endmodule Output:
  • 6.