강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

전자취준맨님의 프로필 이미지
전자취준맨

작성한 질문수

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

컴퓨터 구조의 메모리 계층 구조와 Verilog로 SRAM 모델링하기

SRAM 강의 modelsim 시뮬레이션에서 inner 메모리를 Objects 리스트에서 찾으려고 하는데 안보입니다.

해결된 질문

작성

·

24

0

스크린샷 2025-10-16 130732.png.webp

삼코치님 sram강의에서 waveform에서 inner 메모리를 보기위해서 modelsim에서 Memory List 부분에서 sram인스턴스 네임을 클릭하면 Objects 리스트에서 mem 시그널이 표시된다고 하셨는데 Memory List에서 클릭을 했는데 Objects 목록에서 mem 시그널이 안 뜨는데 어떻게 해야 하나요? 일단 저는 최신 quartus프로그램과 questa를 깔긴했는데 강의에서 처럼 quartus 20.1버전과 modelsim을 깔아서 다시 시뮬레이션을 돌려봐도 mem 시그널이 안보입니다.

답변 2

0

안녕하세요, 답변 남겨드립니다.

버전마다 원인이 다를수있어서 아래 방법들 한번 시도해보시겠어요?

1. 시뮬레이션 시작 전 설정

  1. 상단 메뉴에서 Simulate → Start Simulation... 선택

  2. 창이 열리면 상단 탭 중 Optimization 탭으로 이동

  3. 다음 항목을 설정

    • Enable optimization은 그대로 둠

    • Debug / Access 항목을 All 또는 Full Visibility 로 변경
      (버전에 따라 “Debug: All”, “Signal Visibility: Full” 등으로 표시됨)

  4. 설정을 마친 후 OK → Run 클릭

이렇게 하면 내부 메모리(mem)가 최적화로 숨겨지지 않고 표시됩니다.


2. Memory List에서 인스턴스 선택

  1. 시뮬레이션이 실행된 상태에서 상단 메뉴 View → Memory 선택
    → “Memory List” 창이 나타납니다.

  2. “Memory List” 창에서 /tb_sram/u_sram_8 인스턴스를 클릭


3. Objects 창 확인

  1. Objects 창의 상단 Scope 드롭다운/tb_sram/u_sram_8 로 되어 있는지 확인
    (다른 스코프로 되어 있으면 mem이 보이지 않음)

  2. 이제 Objects 창에서 mem 신호가 표시되어야 합니다.


4. 웨이브폼에 추가

mem 신호가 보이면

  • Objects 창에서 mem 항목을 마우스로 드래그해서 Wave 창에 놓습니다.

  • 이후 시뮬레이션을 실행하면 강의처럼 내부 메모리 내용이 웨이브폼에 표시됩니다.


5. 그래도 안 보일 때

  • 다시 Simulate → Start Simulation... 열고
    Optimization → Access: All 로 되어 있는지 재확인

  • 설정 후 Restart 또는 시뮬레이션 재실행

0

안녕하세요, 인프런 AI 인턴입니다. 전자취준맨님.

SRAM 시뮬레이션에서 inner 메모리를 Models 이나 퀘스타에 표시하려고 할 때 발생하는 이런 이슈는 다양한 이유로 나타날 수 있습니다. 이를 해결하기 위해 몇 가지 일반적인 점검 및 해결 방법을 안내해드리겠습니다.

  1. 설계 파일 확인:

    • HDL 설계 코드에서 mem 신호가 올바르게 정의되고 있는지 확인하세요. 만약 해당 신호가 내부적으로 선언되어 있고 하위 모듈로 전달되지 않으면 시뮬레이터에서 탐색하지 못할 수 있습니다.
  2. 위치 설정 확인:

    • Models 이나 퀘스타 환경 설정에서 신호의 가시성을 컨트롤하는 옵션이 고급 설정에 있으므로, 이러한 설정이 시뮬레이션에 영향을 주지 않는지 확인해야 합니다.
  3. 컴파일 및 시뮬레이션 과정 점검:

    • HDL 파일 및 관련 라이브러리가 정상적으로 컴파일되었는지 확인하고, 시뮬레이션이 중단되지 않고 끝까지 완료되는지 점검합니다.
  4. 탑 레벨 모듈 체크:

    • 최상위 모듈 내에서 mem 신호가 공개적으로 선언되었는지 확인하세요. 경우에 따라 외부 참조를 허용하지 않는 구조일 수도 있습니다.
  5. 디버그 신호 추가:

    • 추가적인 디버깅이 필요하다면, 특정 위치에 $display 또는 $monitor와 같은 Verilog 문법을 추가하여 mem 신호의 값을 출력하도록 설정할 수 있습니다.

아래는 관련된 개념에 대한 추가 정보를 제공할 수 있는 기존 질문입니다:
- SRAM 시뮬레이션 결과가 이상해서 질문드립니다.

위의 해결책을 통해 문제가 해결되지 않으면, 프로젝트의 특정 구성이나 오류 메시지를 더욱 자세히 살펴볼 필요가 있습니다. 컴파일 및 에러 로그를 살펴보거나 강의 자료의 예제 및 설정과 어떤 차이가 있는지 비교 검토하는 것도 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

전자취준맨님의 프로필 이미지
전자취준맨

작성한 질문수

질문하기