본문 바로가기
Programming/Verilog HDL

[Verilog HDL] Tool setup(Quartus Prime/Questa(modelsim)) (5)-Error loading design/변수가 생기지 않을때

by 끝까지 생각하고 알아내자 2023. 1. 5.

더블클릭 오류해결을 했으면 이제 본격적으로 시뮬레이션을 돌려보자

이렇게 간단하게 플립플랍을 만들어 주고 테스트벤치 파일을 코딩한 뒤, 시뮬레이션을 돌려보자 좌측에 워크파일이 생성돼있는 것을 확인할 수 있는데 처음에는 이 워크파일이 생성되지 않을 때도 있을 것이다. 이때는 파일설치를 처음에 잘못설치했거나, 임의로 파일경로를 바꾸었을 때 워크파일이 프로젝트창에 뜨지 않는 것을 경험적으로 알았다. 그러니 만약 워크파일이 뜨지 않는다면 파일을 재설치해보거나 파일경로를 초기화해서 다시 실행해 보자.

그다음 테스트벤치파일을 우클릭해서 시뮬레이션 실행 중간에 error loading design 이 뜰 때도 있는데 이 경우에는 입/출력 포트가 맞지 않거나, 인스턴스를 잘못했거나, 아니면 이미 실행 중인 시뮬레이션이 존재하면 이러한 오류가 뜬다. 컴파일은 성공하더라도 error loading design의 오류가 뜨면 코드를 한번 다시 보자 분명히 틀린 게 있을 것이다. 나 역시 모듈 인스턴스를 잘못해서 코드를 고치고 다시 시뮬레이션을 실행하였다. 

이렇게 시뮬레이션창이 뜨면 성공이다. 하지만 이 역시 바로 안되고 좌측에 존재하는 변수가 뜨지 않는 오류가 생길 수 있다. 이럴 때는 시뮬레이션을 실행하는 경로가 이상하거나 코드를 컴파일하는 과정에서 테스트벤치 변수이름과 모듈의 변수이름이 동일하지 않을 때 툴이 해석하지 못해서 변수가 뜨지 않을 수 있다. 따라서 모듈과 테스트벤치 변수를 통일시키고 시뮬레이션을 실행할 때 꼭 워크파일에 존재하는 테스트벤치를 통해서 실행하자.

하단 transcript창에 run N(N:실행할 시간)을 입력하면 입력한 시간만큼 툴이 waveform을 출력하는 것을 확인할 수 있다. 이때 출력파형이 위의 사진처럼 녹색 파형이 아니라 빨간 파형이나 파란색 파형이 나온다면 잘못된 파형이다. 지금부터 이렇게 잘못된 파형이 나올 때는 어떻게 해결하는지 알아보자.

 

1. 빨간색 파형이 나오는 경우

대표적으로 빨간색파형이 나오는 경우 거의 80%~90%는 초기값을 지정해 주지않았을때 빨간색 파형이 출력된다. waveform을 찍어보면 빨간파형은 unknown으로 출력되는것을 확인할수있는데, 이의미는 플립플랍에 초기값이 지정되지않아서 어떤 상태인지 모른다는 뜻이다. 따라서 툴이 해석할 수 있도록 초기값을 플립플랍에 지정해 줘서 파형을 정상적으로 출력할수 있도록 하자 초기값을 지정하는 방법은 테스트 벤치 코드에서 initial 블럭을 이용해서 입력값들의 초기값을 지정해 주어서 정상적인 파형이 출력되도록 해결할수 있다. 

 

2. 파란색 파형이 나오는경우

파란색 파형이 나오는 경우는 거의 대부분 입/출력 포트를 제대로 지정해주지 않았을 때 생기는 파형이다. 파란 파형을 확인해보면 z라고 되어있는 것을 확인할 수 있는데 이 의미는 포트연결이 되지 않은 상태를 의미한다. 인스턴스에서 변수를 까먹고 적지 않았거나, 변수의 이름을 헷갈려서 다르게 적었거나, 애초에 선언할 때 형식이 잘못된 변수라서 선언이 안되었을 경우에도 이와 같은 잘못된 파형이 출력된다. 코드를 다시 확인해서 연결이 제대로 되었는지, 인스턴스나 선언이 잘 되어있는지 확인해서 알맞은 파형이 출력되도록 하자