Lined Notebook

[Verilog] 반가산기

by JungWook_

img

반가산기


첫번째 프로젝트로 반가산기를 만들어 보겠다.

반가산기는 위의 그림같은 회로를 가지고 있다. 입력과 출력이 두개인 아주 간단한 회로이다.

A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

반가산기의 truth table이다.

 

 

img

우선 New Project Wizard를 클릭하여 새 프로젝트를 만든다.

 

 

img

Next를 누른다.

 

 

img

위와같이 프로젝트명을 입력한다. 프로젝트 생성시에 디렉토리가 생성이 안되기때문에 직접 경로를 적어준다.

 

 

img

그러면 위와같이 디렉토리를 만들겠냐는 팝업창이 뜨는데 Yes를 누르면 된다.

 

 

img

빈 프로젝트로 생성한다.

 

 

img

추가할 파일이 있으면 추가하면 된다. 지금은 없기때문에 바로 Next를 누른다.

 

 

img

사용할 FPGA모델을 선택하면 된다. 나는 실습용으로 10M50DAF484C7G를 사용하기 때문에 저렇게 선택을 했다.

FPGA가 없다면 아무거나 선택해도 무방할거같다.

 

 

img

사용할 Simulator를 선택한다. ModelSim-Altera를 선택하면 된다.

 

 

img

Finish를 누르면 프로젝트 생성이 완료된다.

 

 

img

프로젝트를 생성하면 위와같이 아무것도 안뜬다. 빈프로젝트로 만들어서 그렇다. 여기에 이제 파일을 추가해야한다.

 

 

 

img

File메뉴에 New를 선택한다.

 

 

img

Verilog HDL File을 선택한다.

 

 

img

그럼 위와같이 텍스트를 입력할 수있는 에디터가 생성된다.

 

 

module halfAdder(x, y, sum, carry);
	input x;
	input y;
	output sum;
	output carry;
	
	xor XOR(sum, x, y);
	and AND(carry, x, y);
endmodule

문법은 나중에 공부하도록 하고 일단은 코드부터 작성해보자.

코드가 간단하니 코드에 대한 설명은 하지 않겠다.

파일이름은 Module이름과 같게했다. 꼭 그래야하는지는 모르겠지만 왠지 그래야 할거같다.

위 코드를 실행하기 위해서는 Testbench파일이 필요하다.

같은방법으로 새로운 파일을 생성해 다음 코드를 입력한다.

 

 

`timescale 1ns/100ps

module testbench();
		reg x, y;
		wire sum, carry;
		
		halfAdder adder(x, y, sum, carry);

		initial begin
			x = 0; y = 0; #200;
			x = 0; y = 1; #200;
			x = 1; y = 0; #200;
			x = 1; y = 1; #200;
			$finish;
		end
endmodule

#이 붙은건 Delay라고 생각하면 된다.

이제 왼쪽에 보면 다음과 같은 부분이 있다.

 

 

img

상단에 Hierarchy오른쪽에 화살표를 선택하면 Files가 있다. Files를 선택하자.

 

 

img

그러면 위의 사진과 같이 우리가 생성한 파일이 두개가 있다.

 

 

img

위의 사진과 같이 halfAdder를 Top-Level Entity로 설정한다.

 

 

img

testbench파일은 Properties에 들어간다음

 

 

img

Verilog Test Bench File로 설정하면 된다.

 

 

img

왼쪽 하단에 보면 위의 사진과 같은 부분이 있다. Analysis & Synthesis를 더블클릭하면 합성을 시작하는데 에러가 없다면 위의 사진처럼 초록색 체크가 될것이다.

이제 합성까지 끝났으니 시뮬레이션을 해야한다.

메뉴바 -> Tools -> Run Simulation Tool -> RTL Simultaion을 선택하면 되는데 아마 안될것이다. 시뮬레이션을 돌리기전에 설정해야할게있다.

메뉴바 -> Tools -> Options -> EDA Tool Options에 들어가면 Modelsim-Altera가 있다 그부분에 경로를 적어줘야 하는데 다른데에 설치하지 않았다면 C:\intelFPGA_lite\18.0\modelsim_ase\win32aloem를 적으면 된다.

 

 

img

그다음은 메뉴바 -> Assignments -> Settings -> Simulation에서 Compile test bench옆에 있는 Test Benchs .. 버튼을 클릭한다.

그다음 New를 누르고 작성한 Testbench파일 이름을 적고 추가하면된다.

 

 

img

그럼 위의 사진처럼 된다. OK를 누르고 메뉴바 -> Tools -> Run Simulation Tool -> RTL Simultaion를 선택하자.

 

 

img

위의 사진과같은 파형이 나온다면 성공했다.

다음번엔 반가산기를 이용해 전가산기를 만들어보자.

블로그의 정보

hongmono

JungWook_

활동하기