본문 바로가기
Language/Verilog & SV

[Verilog] Full-adder, Ripple-carry adder

by VIR&US 2023. 7. 20.
반응형

목차


1bit Full-adder 

circuit diagram and truth table

 

출처: PyQUBO: Python Library for Mapping Combinatorial Optimization Problems to QUBO Form, March 2021

Code

module Full_adder (          
  	input a, b, cin,
  	output sum, cout);
  
  	wire s1, c1, c2;
     
    xor  G1(s1, a, b);
    and  G2(c1, a, b);
    and  G3(c2, cin, s1);
    xor  G4(sum, s1, cin);
    xor  G5(cout, c1, c2);
     
endmodule

8 bits Ripple-carry adder instance

n-bit 가산기는 단순하게 n개의 전가산기를 연결하여 만들 수 있습니다. 이전 비트의 Cout이 다음 비트의 Cin이 되도록 연결하면 됩니다. 

Code

`include "full_adder.v"

module Ripple_FA_8(
  	input [7:0] a, 
  	input [7:0] b,
	input cin,
  	output [7:0] sum,
  	output carry);
  
  	wire [6:0]c;

  	Full_adder FA0(
      	.a(a[0]),
      	.b(b[0]),
      	.cin(cin),
      	.sum(sum[0]),
      	.cout(c[0]));
  	
  	Full_adder FA1(
      	.a(a[1]),
      	.b(b[1]),
      	.cin(c[0]),
      	.sum(sum[1]),
      	.cout(c[1]));
  	
  	Full_adder FA2(
      	.a(a[2]),
      	.b(b[2]),
      	.cin(c[1]),
      	.sum(sum[2]),
      	.cout(c[2]));
  
  	Full_adder FA3(
      	.a(a[3]),
      	.b(b[3]),
      	.cin(c[2]),
      	.sum(sum[3]),
      	.cout(c[3]));
  
  	Full_adder FA4(
      	.a(a[4]),
      	.b(b[4]),
      	.cin(c[3]),
      	.sum(sum[4]),
      	.cout(c[4]));
  
  	Full_adder FA5(
      	.a(a[5]),
      	.b(b[5]),
      	.cin(c[4]),
      	.sum(sum[5]),
      	.cout(c[5]));
  
  	Full_adder FA6(
      	.a(a[6]),
      	.b(b[6]),
      	.cin(c[5]),
      	.sum(sum[6]),
      	.cout(c[6]));
  
  	Full_adder FA7(
      	.a(a[7]),
      	.b(b[7]),
      	.cin(c[6]),
      	.sum(sum[7]),
      	.cout(carry));

  
endmodule

Sim

EDA Playground에서 Simulation과 파형을 보실 수 있습니다. 

https://www.edaplayground.com/x/u4Ti

 

EDA Playground

Edit, save, simulate, synthesize SystemVerilog, Verilog, VHDL and other HDLs from your web browser.

www.edaplayground.com

 

728x90
반응형

'Language > Verilog & SV' 카테고리의 다른 글

[Verilog] Counter  (0) 2023.07.21
[Verilog] APB의 State FSM, 간단한 Master Code  (0) 2023.07.21
[Verilog] Clock generator  (0) 2023.07.20
[Verilog] Blocking(=) vs Nonblocking(<=)  (0) 2023.07.19
[Verilog] Parameter  (0) 2023.07.19