인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

디지털로가자님의 프로필 이미지

작성한 질문수

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

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

SRAM 테스트벤치 작성할때 질문

해결된 질문

작성

·

41

0

테스트 벤치 작성할 때 time scale`를 작성하지 않아도 되는건가요?

작성하지 않을 경우 자동으로 #5같은경우는 5ns로 처리되는건지 궁금합니다.

답변 2

0

회로설계 멘토 삼코치님의 프로필 이미지

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

Verilog에서는 timescale을 명시적으로 작성하지 않으면, 시뮬레이터에 따라 기본 timescale(예: 1ns/1ps 등)이 적용됩니다. 따라서 #5라는 구문은 “기본 timescale 단위 × 5”로 해석되므로, 기본이 1ns라면 #5가 곧 5ns가 됩니다. 다만 이것이 시뮬레이터별로 달라질 수 있으므로, 동일한 결과와 타이밍을 보장하려면 프로젝트 상위 레벨(혹은 테스트벤치 파일)에 명시적으로 timescale 지시어를 써주는 것이 좋습니다.

예시:

`timescale 1ns / 1ps

module tb;
  // ...
  initial begin
    #5; // timescale 1ns 이므로 5ns 지연
    // ...
  end
endmodule
  • 명시하지 않을 경우 시뮬레이터의 기본 설정(디폴트 timescale)을 사용

  • 다양한 시뮬레이터(또는 상위 레벨 모듈)의 설정에 따라 달라질 수 있으므로, 프로젝트 전체적으로 같은 timescale을 사용하려면 반드시 명시하는 것을 권장합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 디지털로가자님.

SRAM이나 다른 디지털 회로의 테스트벤치를 작성할 때, timescale은 시뮬레이션이 어떤 단위로 동작할지를 결정하는 중요한 요소입니다. timescale을 지정하지 않으면 시뮬레이터의 기본 설정에 따라 시간 단위가 결정되며, 이 값은 시뮬레이터의 환경 설정에 따라 다를 수 있습니다.

timescale을 명시적으로 설정하면 코드 내에서 사용되는 시간 단위를 명확히 알 수 있고, 다른 프로젝트와 혼동을 피할 수 있습니다. 예를 들어 timescale 1ns/1ps로 설정하면, #5는 5 나노초를 의미하게 됩니다.

관련된 질문과 답변을 포함한 참고 자료는 다음 링크에서 확인하실 수 있습니다:

이러한 링크는 관련된 교재와 실습을 보다 잘 이해하는 데 도움을 줄 것입니다.

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