본문 바로가기

공부/Verilog

4. Four bit ripple carry adder

728x90

지난시간에 Adder를 설계해보고 실제로 시뮬레이션까지 돌려보았다.

 

https://ksh9-9.tistory.com/14

 

Logic circuit_4: Combination Logic(1)

논리회로는 combination logic과 sequential logic 2개로 분류할 수 있다.input이 들어가면 바로 output이 나오는 combination logic에 대해 며칠에 거쳐 포스팅할 예정이다.또한, 해당 내용 포스팅이 끝나면 관련

ksh9-9.tistory.com

 

오늘은 지난시간에 설계한 Adder를 인스턴스화시켜서 4bit ripple carry adder를 설계해보고 위에 첨부한 포스팅에서 설계한 Delay가 적은 4bit Adder까지 동일하게 설계한 후에 동일한 결과가 나오는지 확인까지 해보겠다.

 

Full Addeer

 


Ripple Carry Adder




Ripple Carry Adder

 

Test bench

 

 

 

Ripple Carry Adder를 instination이라는 방법을 써서 Full Adder를 사용한 방법으로 Verilog coding을 진행하였는데,

이게 전체 ripple carry adder구조이고, 안에 아래와같은 Full Adder가 4개 들어가게 설계를 해 놓은 상태이다.

Verilog는 코딩을할때 "연결"에 집중해줘야한다는것을 명심하고,

RCA 모듈 전체의 port를 4bit X, 4bit Y, C_0, 5bit output임을 처음에 생각을하고 나머지 안에 구성되는 것들을 wire로 선언해준다.

 

그 후, instination방법을 사용하여 아래와같이 하위모듈과 탑모듈을 "연결" 시켜준다.

 

 

이제 위 베릴로그짠것을 behavioral simulation을 돌리게되면 다음과 같은 결과가 나오게 된다.

testbench에서 input을 넣어주고 예상한결과가 그대로 잘 나오게 되는것을 확인할 수 있다.

 

이때, ripple carray adder는 delay가 있다고 한것을 기억할 것이다. 이를 직관적으로 알아보기 위해 synthesis와 implementation까지 실행시켜보고 다시 simulation 파형을 관찰해보면,

 

다음과같은 결과 파형을 얻을 수 있다.

하드웨어인만큼 delay가 엄청날 수 없다는것을 이론적으로 알고 있었고, implementation simulation결과가 예상한대로 나오는것을 직접확인한 것이다.

testbench상에서 10ns 자체를 5ns로바꾸어 다시 simulation돌려보면 위와같이 나오는데 대략 

Latency자체가 8ns근처로 되는것을 볼 수 있다.

 

Timing report를 확인해보면,

위와같이 setup/ hold time violation은 slack>0인것을보아 발생하지 않는다. (사실 4bit ripple carry adder자체는 너무 간단해서 그런듯 싶다.) 시간이 될때 좀 더 사이즈를 키워 감/가산기 또는 곱셈기등의 설계를 나중에 해보는 시간을 가져보겠다.

 

 

 

 

ripple carry adder의 simulation파형을 보았으니 다음은 Delay를 개선한 4bit Adder를 설계해보겠다.

(생각보다 설명할게 많아서 다음 포스팅에 이어나가도록 하겠다.)

728x90

'공부 > Verilog' 카테고리의 다른 글

6. Sequential Logic_ Counter  (0) 2025.01.18
5. Binary multiplier  (2) 2025.01.14
3. Design Full Adder  (1) 2025.01.11
2. Verilog_ Simulation by using Vivado  (0) 2025.01.11
1. Verilog_Preview  (0) 2025.01.10