공부/Verilog

5. Binary multiplier

ksh9-9 2025. 1. 14. 23:16
728x90

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

 

Logic_Circuit_5-Combination Logic(2)-Multiplier

지난 시간에 감/가산기까지 내용을 정리해보았다.오늘은 여러가지 combination logic에 대해 더 알아보겠다. 1. Binary Multiplier110 X 101을 해보자.너무나도 쉽다.이거를 회로로 어떻게 표현해야할까? 처

ksh9-9.tistory.com

위에 포스팅한 내용을 베릴로그로 구현하는 시간을 갖도록 하겠다.

 

여기서 파악해야할 것은 input값은 A1A0, B1B0이고, output값은 O[3:0]이라는것이다. 큰 module의 port는 이것뿐이며,

그 외 나머지 선들은 wire로 따로 선언해주고 이용해야한다.

이 점을 명심해서 코딩을해주면,

 

Half Adder

 

 


Top module (2X2 binary multiplier)

 

 

Test bench

 

이렇게 코드를 짠 후 simulation을 돌리면,

 

다음과 같이 결과가 잘 나오는것을 확인할 수 있다.

 

다음은 3 X 3 binary multiplier설계로 넘어가보자.

 

HA/ FA를 설계하고 이거를 이용하는 Adder를 설계하고 Adder를 가지고 Top module을 설계하면된다.

 

 

첫번째 adder는 HA -> FA -> HA순서대로 모듈을 인스턴스해주고 마지막 출력부분을 위에적은 알파 베타 감마 오메가 순으로 할당시켜준다.

 

두번째 adder는 HA->FA->FA순서대로 모듈을 인스턴스화해주고 마지막에 출력을 원하는대로 맞게끔 할당해줘야하는데 이에 유념하면서 아래에 첨부한 코드를 확인하면 좋을 것 같다.

 

 

 

이렇게 코딩한 후, simulation을 돌려보면,

source창

 

 

testbench에서 input값을 넣어준대로 값이 잘 들어감을 볼 수 있으며, 예상한 출력값이 잘 나오고 있는 것 또한 볼 수 있다. (직접 binary 곱셈을 해보면 저 값이 맞다는걸 쉽게 알 수 있으므로 해당 과정은 생략하겠다.)

 

이상으로 금일 논리회로 포스팅한것을 그대로 베릴로그 코딩 후 시뮬레이션까지 돌려본 과정을 마치겠다.

728x90