verilog-library

Naming conventions

  1. s_: Less Clock version
  2. v_: Verilog special syntax

Subtractor

Half Subtractor

half_subtractor(input A, B, output Bo, D);

RTL_View Symbol

Full Subtractor

full_subtractor(input A, B, Bi, output Bo, D);

RTL_View Alt text

Other implementations

module s_full_subtractor(input A, B, Bi, output D, Bo);
  assign D = A ^ B ^ Bi;
  assign Bo = (~A & B) | (~(A ^ B) & Bi);
endmodule
module v_full_subtractor(input A, B, Bi, output D, Bo);
  assign {Bo, D} = A - B - Bi;
endmodule

Flip Flop

RS Flip Flop

NOR

rs_flip_flop(input R, S, output Q, Qbar);

RTL_view Symbol

NAND

nand_rs_flip_flop(input Rbar, Sbar, output Q, Qbar);

Alt text

Adder

Full Adder

full_adder(input A, B, Ci, output Co, S)

RTL_View Symbol

Other implementations

module s_full_adder(input A, B, Ci, output Co, S);
  assign S = A ^ B ^ Ci;
  assign Co = (A & B) | ((A ^ B) & Ci);
endmodule

S-Full adder

Verilog special syntax

module v_full_adder(input A, B, Ci, output Co, S);
  assign {Co, S} = A + B + Ci;
endmodule

V-Full adder

Half Adder

half_adder(input A, B, output C, S);

RTL_View Symbol