RENESAS ForgeFPGA 소프트웨어 시뮬레이션

RENESAS ForgeFPGA 소프트웨어 시뮬레이션

중요 정보

시뮬레이션은 RTL 코드가 의도한 방식으로 동작하는지 확인하기 위해 서로 다른 시간에 서로 다른 입력 자극을 설계에 적용하는 기술입니다. 설계의 견고성을 검증하는 데 사용됩니다. 시뮬레이션을 통해 사용자는 다음을 수행할 수 있습니다. view 디자인의 디자인 설명이 어떻게 이해되는지 이해하기 위한 관련 신호의 타이밍 다이어그램 file 행동한다.

테스트벤치는 시뮬레이션에 사용되는 코드 조각입니다. 간단한 테스트벤치는 UUT(테스트 대상 장치)를 인스턴스화하고 입력을 구동합니다. Go 구성 소프트웨어는 Icarus Verilog(iVerilog) 및 GTKWave를 사용하여 테스트벤치에서 제공되는 자극으로 시뮬레이션 파형을 관찰합니다.

이 문서에서는 시스템에 Icarus를 설치하는 동안 수행해야 하는 단계와 성공적인 시뮬레이션을 실행하는 방법을 설명합니다.

Icarus Verilog 설치

a. 다음에서 최신 버전의 Icarus Verilog(IVerilog)를 설치합니다. https://bleyer.org/icarus/
b. PATH에 IVerilog를 추가하고 GTKWave를 설치하도록 하십시오(그림 1 참조).
Icarus Verilog 설치

c. Go 구성 소프트웨어를 열고 SLG47910(Rev BB) 부품을 선택하여 Forge Workshop을 엽니다(그림 2 참조).
Icarus Verilog 설치

d. 상단 도구 모음 중앙에 있는 FPGA 편집기를 클릭하거나 사용자가 창 중앙에 있는 FPGA 코어 구조를 두 번 클릭할 수도 있습니다.
Icarus Verilog 설치

e. Forge Workshop이라는 새 창이 열립니다. 상단 메뉴 툴바에서 옵션 → 설정을 클릭하세요. 설정 대화 상자에서 사용자 설정 탭 아래의 도구로 이동합니다. Icarus Verilog 및 GTKWave 모두에 대해 "시스템 환경 상자" 사용을 선택 취소합니다. 시스템에 저장된 Iverilog 및 GTKWave 경로를 주어진 공간에 추가합니다(그림 4 참조).
Icarus Verilog 설치

테스트벤치를 시뮬레이션하기 위한 모든 설정이 완료되었으며 위의 단계를 통해 Go 구성 소프트웨어에서 테스트벤치를 시뮬레이션할 때 GTKWave가 자동으로 시작되는지 확인합니다.

테스트벤치

시스템을 성공적으로 구현하는 데 가장 중요한 단계는 설계와 기능을 검증하는 것입니다. 하드웨어를 구현한 후 복잡한 시스템을 검증하는 것은 현명한 선택이 아닙니다. 돈, 시간, 자원 측면에서 비효율적입니다. 따라서 FPGA의 경우 Verilog 소스 코드를 테스트하기 위해 테스트 벤치가 사용됩니다.

11비트 입력이 있고 가능한 모든 입력 조합 값(예: (211))에 대해 장치를 테스트한다고 가정합니다. 이는 조합 수가 매우 많기 때문에 수동으로 테스트하는 것은 불가능합니다. 이러한 경우 테스트벤치는 가능한 모든 값에 대해 자동으로 설계를 테스트하고 테스트 설계의 신뢰성을 확인할 수 있으므로 매우 유용합니다. Verilog 테스트벤치는 물리적 하드웨어 장치 없이도 설계를 시뮬레이션하고 분석하는 데 사용됩니다.

DUT로 축약되는 테스트 중인 설계는 테스트하려는 기능을 합성할 수 있는 모듈입니다. 즉, 우리가 테스트하고 싶은 회로 설계입니다. Verilog의 세 가지 모델링 스타일(게이트 레벨, 데이터 흐름 또는 동작) 중 하나를 사용하여 DUT를 설명할 수 있습니다.

테스트벤치는 합성할 수 없으므로 시뮬레이션 목적으로만 사용됩니다. 이를 통해 사용자는 테스트벤치를 작성하기 위해 "for", "$display" 및 "$monitor" 등과 같은 키워드와 같은 Verilog 구성의 전체 범위를 사용할 수 있습니다. 간단한 테스트벤치는 UUT(테스트 대상 장치) 또는 DUT(테스트 대상 장치)를 인스턴스화하고 입력을 구동합니다.

테스트벤치 이해

테스트벤치 이해

테스트벤치의 시간 척도 정의

시뮬레이션할 때 소프트웨어는 시간이 어떻게 정의되었는지 알아야 합니다. 지연 단위는 `timescale 지시문을 사용하여 지정되며, 이는 시간 단위와 그에 따르는 모듈의 정밀도를 지정합니다. `시간 척도는 #1이 시간 측면에서 무엇을 의미하는지 결정하는 데 도움이 됩니다. #은 시간 척도에 지정된 시간 단위에 따라 시스템에 도입될 지연을 정의하는 데 사용됩니다. 따라서 #1은 time_unit이 ns 단위인 경우 1ns의 지연을 의미합니다.

통사론:
`시간 척도 / /

time_unit은 #1의 지연이 나타내는 시간입니다. time_precision 기준은 시간 단위와 관련하여 사용할 소수점 이하 자릿수를 나타냅니다. (그림 23의 5행 참조)

동일한 디자인에서 서로 다른 시간 단위를 사용하기 위해 시간 척도 구성을 사용할 수 있습니다. 사용자는 지연 사양을 합성할 수 없으며 하드웨어 로직으로 변환할 수 없다는 점을 기억해야 합니다. 지연 기능은 전적으로 시뮬레이션 목적으로 사용됩니다. $시간 그리고 $실시간 시스템 기능은 현재 시간을 반환하며 기본 보고 형식은 다른 시스템 작업 $timeformat을 사용하여 변경할 수 있습니다.

Examp르 : 

`시간 척도 10us/100ns
`시간 척도 1ns/1ps
#10 재설정 = 1; // 신호를 10ns 지연시킵니다.
#0.49 $display( "T = %0t 시간 #0.49", $realtime) ;

지정된 지연은 단위 시간의 절반보다 작은 #0.49입니다. 그러나 시간 정밀도는 1ps로 지정되므로 시뮬레이터는 1ns보다 작아질 수 없으므로 주어진 지연 문을 반올림하여 0ns를 생성합니다. 따라서 이 진술은 지연을 제공하지 못합니다.

시뮬레이션 로그: 

T = 1(시간 #0.49)

모듈 선언

모든 테스트벤치의 모듈 선언은 기본 Verilog 코드와 다릅니다. 테스트벤치에서 모듈은 터미널 포트 없이 선언됩니다. (그림 25의 5행 참조)

통사론: 

기준 치수 ;

모듈 선언 다음에는 기본 설계에서 앞서 정의한 입력 및 출력 신호를 정의합니다. file.
시뮬레이션 중에 신호를 구동하고 모니터링하기 위해 두 가지 신호 유형을 사용합니다. reg 데이터 유형은 새 값이 할당될 때까지 값을 유지합니다. 이 데이터 유형은 항상 또는 초기 블록에서만 값을 할당할 수 있습니다.
Wire 데이터 유형은 물리적 연결의 데이터 유형과 유사합니다. 이는 포트, 할당 문 또는 등록에 의해 구동되는 값을 보유합니다. 이 데이터 유형은 초기 또는 항상 블록에서 사용할 수 없습니다. 모든 매개변수 및 정수 선언도 이 ​​섹션에서 수행됩니다.

Examp르 :
등록 a, b; // HDL 코드의 입력은 테스트벤치에서 reg로 정의됩니다.
와이어 y; // HDL의 출력 신호는 테스트벤치에서 와이어로 정의됩니다.

DUT 인스턴스화

테스트벤치의 목적은 DUT 모듈이 작동하는지 확인하는 것입니다. 따라서 모듈을 테스트하기 위해 디자인 모듈을 인스턴스화해야 합니다.

통사론: 

(. (신호1), . 신호1>(신호2));

Examp르 :

ALU d0 (.a(a), // ALU의 신호 "a"는 ALU_tb 모듈의 "a"에 연결되어야 합니다.
.b(b), // ALU의 신호 "b"는 ALU_tb 모듈의 "b"에 연결되어야 합니다.
.c(c)) ;// ALU의 신호 "c"는 ALU_tb 모듈의 "c"에 연결되어야 합니다.

DUT 모듈 ALU를 테스트 모듈로 인스턴스화했습니다. 인스턴스 이름(d0)은 사용자가 선택합니다. 마침표 “.”가 있는 신호 그 앞에는 ALU 모듈 내부의 신호 이름이 있고 테스트 벤치에서 연결되는 와이어 또는 레지스터는 괄호 안의 신호 옆에 있습니다. 컴파일 오류 메시지가 오류가 발생한 줄 번호를 올바르게 가리키도록 각 포트 연결을 별도의 줄에 코딩하는 것이 좋습니다. 이러한 연결은 이름을 기준으로 이루어지기 때문에 표시되는 순서는 중요하지 않습니다.

테스트벤치 모듈의 신호 이름이 다른 모듈에 대해서도 DUT 인스턴스화를 수행할 수 있습니다. 인스턴스화할 때 신호의 올바른 매핑이 중요합니다.

Examp르 : 

ALU d0 (.a(A), // ALU의 신호 "a"는 ALU_tb 모듈의 "A"에 연결되어야 합니다.
.clk(clock), // ALU의 "clk" 신호는 "clock" ALU_tb 모듈에 연결되어야 합니다.
.out(OUT)) ; // ALU의 "out" 신호는 ALU_tb 모듈의 "OUT"에 연결되어야 합니다.

테스트벤치의 항상 및 초기 블록

Verilog에는 초기 블록과 항상 블록이라는 두 개의 순차 블록이 있습니다. 우리가 자극을 적용하는 것은 바로 이 블록들입니다.

초기 블록

한 번만 실행되고 블록의 마지막 라인이 실행되면 종료되는 초기 블록입니다. 자극은 초기 블록에 기록됩니다. (그림 54의 72-5행 참조)

통사론:
..
초기 시작
$dumpfile();
$dumpvars();
..(자극 입력)

초기 블록은 시간 t = 0에서 시뮬레이션 시작 시 실행을 시작합니다. 시작과 끝 사이의 첫 번째 줄부터 시작하여 각 줄은 지연에 도달할 때까지 위에서 아래로 실행됩니다. 지연 시간에 도달하면 이 블록의 실행은 지연 시간(10시간 단위)이 지날 때까지 기다렸다가 다시 실행됩니다.
사용자는 모든 조합을 수동으로 입력하는 대신 이 초기 블록 내에서 루프(for, while, if-else)를 사용하여 자극을 정의할 수 있습니다.
초기 블록

 

Examp르 :
초기 시작
A = 0; b = 0; // 실행 시작
#10a = 0; b = 1; // 실행은 t = 10단위 시간에 이루어집니다.
#10a = 1; b = 0; // 실행은 t = 20단위 시간에 이루어집니다.

덤프 Files

명심해야 할 또 다른 사항은 $ 선언입니다.덤프files 그리고 $덤프바 초기 블록 내부(그림 55의 56-5행 참조). $덤프file 네트와 레지스터 값의 변경 사항을 덤프하는 데 사용됩니다. file 이것이 인수로 명명됩니다.

예를 들어amp르 :

$덤프file(“alu_tb.vcd”);

변경 사항을 덤프합니다. file 이름은 alu_tb.vcd입니다. 변경 사항은 file VCD라고 함 file 이는 값 변경 덤프를 의미합니다. VCD(값 변경 덤프)는 값 변경에 대한 모든 정보를 저장합니다. $dump는 두 개 이상 가질 수 없습니다.file Verilog 시뮬레이션의 진술.

$덤프바 덤프할 변수를 지정하는 데 사용됩니다( file $dump에서 언급됨file). 이를 사용하는 가장 간단한 방법은 논쟁이 없는 것입니다. $dumpvars의 일반적인 구문은 다음과 같습니다.

$덤프바 ( <, >);

기본적으로 어떤 모듈과 모듈의 어떤 변수를 덤프할지 지정할 수 있습니다. 이를 사용하는 가장 간단한 방법은 레벨을 0으로 설정하고 모듈 이름을 최상위 모듈(일반적으로 최상위 테스트벤치 모듈)로 설정하는 것입니다.

$덤프바(0, alu_tb);

level이 0으로 설정되고 모듈 이름만 지정되면 해당 모듈의 모든 변수와 이 최상위 모듈에 의해 인스턴스화된 모든 하위 수준 모듈의 모든 변수가 덤프됩니다. 이 최상위 모듈에 의해 인스턴스화되지 않은 모듈이 있으면 해당 변수는 다루어지지 않습니다. 한 가지 더, $ 선언덤프file $dumpvars 또는 덤프를 지정하는 다른 시스템 작업 앞에 와야 합니다. 이들 덤프 files는 자극 입력 전에 선언되어야 하며, 그렇지 않으면 이러한 덤프에 값이 저장되지 않습니다. files.

항상 차단

초기 명령문과 달리 Always 블록은 실행이 t = 0 시간에 시작되지만 반복적으로 실행됩니다. 예를 들어amp즉, 클럭 신호는 플립플롭과 같은 순차 회로의 작동에 필수적입니다. 지속적으로 공급되어야 합니다. 따라서 테스트벤치에서 클록 작동을 위한 코드를 다음과 같이 작성할 수 있습니다(그림 52의 5행 참조).

언제나
#10 clk = ~clk;
엔드모듈

위 명령문은 t = 10에서 시작하여 0ns 후에 실행됩니다. clk 값은 이전 값에서 10ns 후에 반전됩니다. 따라서 20ns 펄스폭의 클럭 신호를 생성합니다. 따라서 이 명령문은 주파수 50MHz의 신호를 생성합니다. 신호의 초기화는 항상 차단되기 전에 수행된다는 점에 유의하는 것이 중요합니다. 초기화 부분을 수행하지 않으면 clk 신호는 t – 0에서 x가 되고 10ns 후에는 다른 x로 반전됩니다.

자체 점검 테스트벤치

자체 점검 테스트벤치에는 현재 상태를 점검하는 명령문이 포함되어 있습니다.

  • $표시하다 시스템 작업은 주로 시뮬레이션 흐름을 추적하기 위해 디버그 메시지를 표시하는 데 사용됩니다.

초기 시작
A = 0; b = 0; c = 0; #10; // 입력을 적용하고 기다립니다.
if( y ! == 1) 시작
$display("000 실패") ; //확인하다
c = 1; #10 ; //입력 적용, 대기

else if (y ! == 0) 시작
$display(“001 실패”) // 확인
b = 1; c = 0; #10 ; 끝
그렇지 않은 경우(y!==0)
$display(“010 실패”); //확인하다

엔드모듈

$표시하다 변수, 문자열 또는 표현식의 값을 표시하는 데 사용됩니다. 위의 예에서amp즉, if-else 루프 중 하나라도 충족될 때마다 시뮬레이터 로그에 해당 $가 표시됩니다.표시하다 성명. 문자열 끝에는 기본적으로 개행 문자가 있습니다.

$표시하다 ("시간 = %t , A = %b, B = %b, C = %b", $시간, A, B, C);

따옴표 안에 언급된 문자는 그대로 인쇄됩니다. %와 함께 있는 문자는 문자열 형식을 나타냅니다. %b를 사용하여 이진 데이터를 나타냅니다. 10진수, 16진수, 8진수를 각각 %d, %h, %o로 표현할 수 있습니다. %g는 실수를 표현하는데 사용됩니다. 언급된 순서대로 견적 외부의 값으로 대체됩니다. 예를 들어amp즉, 위의 설명은 시뮬레이션 로그에 time = 20, A = 0, B =1, C = 0으로 표시됩니다.

테이블 1. Verilog 테이블 형식

논쟁 설명
%h, %H 16진수 형식으로 표시
%d, %D 십진수 형식으로 표시
%b, %B 바이너리 형식으로 표시
%mm 계층적 이름 표시
%봄 여름 시즌 문자열로 표시
%t, %T 시간 형식으로 표시
%f, %F '실수'를 10진수 형식으로 표시
%e, %E 지수 형식으로 '실수' 표시

$표시하다 주로 C의 printf처럼 그 순간의 데이터나 변수를 그대로 인쇄합니다. $를 언급해야 합니다.표시하다 어떤 텍스트를 보내든 view 시뮬레이션 로그에서

  • $시간

$시간 시뮬레이션의 현재 시간을 반환하는 시스템 작업입니다.

  • $감시 장치

$감시 장치 기록된 데이터나 변수를 모니터링하고 변수가 변경될 때마다 인쇄합니다.
변경된 값. 인수가 반환될 때마다 $display를 호출하는 것과 비슷한 효과를 얻습니다.
업데이트되었습니다. $감시 장치 이는 모니터링하고 모니터링하는 메인 스레드의 백그라운드에서 실행되도록 생성된 작업과 같습니다.
인수 변수의 값 변경 사항을 표시합니다. $감시 장치 $와 동일한 구문을 갖습니다.표시하다.

$감시 장치(“ 시간 = %t, A = %b, B = %b, C = %b”, $시간, A, B, C);
자체 점검 테스트벤치

그림 7에서 테스트벤치를 자체 평가하기 위해 새로운 코드 줄이 추가된 것을 볼 수 있습니다. $의 배치표시하다 그리고 $감시 장치 테스트벤치의 서로 다른 섹션에 있는 명령문은 서로 다른 결과를 낳습니다(그림 8 참조). $시간 이 명령문에 언급된 값은 값이 인쇄되는 시간을 인쇄합니다. 동시에 170000이라는 단위를 사용하면 $로 인해 A와 B의 값에 차이가 있는지 확인할 수 있습니다.표시하다 그리고 $감시 장치 진술.
자체 점검 테스트벤치

GTKWave 소프트웨어

GTKWave는 모든 기능을 갖춘 GTK+ 웨이브입니다. viewLXT, LXT32, VZT, FST 및 GHW를 읽는 Unix, Win2 및 Mac OSX의 경우 file표준 VCD/EVCD뿐만 아니라 files 그리고 그들의 viewing. 공식적인 web사이트는 다음 위치에 있습니다 http://gtkwave.sourceforge.net/ . GTKWave가 권장됩니다 viewIcarus Verilog 시뮬레이션 도구를 사용합니다.

사용자가 설계 기능을 테스트하기 위한 테스트벤치를 성공적으로 생성하면 사용자는 이제 GTKWave 소프트웨어를 사용하여 다음 작업을 수행할 수 있습니다. view 파형.

GTKWave 소프트웨어를 실행하려면 view 파형을 보려면 사용자는 도구 모음 상단에 있는 테스트벤치 시뮬레이션 버튼을 클릭하거나 기본 메뉴 도구→시뮬레이션→테스트벤치 시뮬레이션을 클릭해야 합니다. 구문 오류가 없으면 디자인에 따라 GTKWave가 자동으로 실행되거나 테스트벤치의 자극 결과가 창의 Logger 섹션에 표시됩니다.

GTKWave 소프트웨어는 .vcd 형식 덤프를 엽니다.file 자동으로. GTKWave 창은 열릴 때 파형을 표시하지 않습니다. 이를 통해 사용자는 원하는 신호를 선택할 수 있습니다. view 그리고 관찰하세요. 신호를 선택하려면 사용자가 SST 탭 아래 창 왼쪽에 있는 모듈/인스턴스 이름을 클릭해야 합니다. 모든 인스턴스의 +를 클릭하면 하단에서 해당 인스턴스와 관련된 신호를 볼 수 있습니다. 그런 다음 원하는 신호를 끌어서 놓거나 두 번 클릭하여 신호 창에 표시할 수 있습니다. 또한 모두 선택(CTRL + A)하여 신호 창에 삽입할 수도 있습니다(그림 9 참조).
GTKWave 소프트웨어

이제 신호가 신호 창에 추가되었지만 아직 시뮬레이션되지 않았습니다. 원하는 신호를 신호 창에 추가한 후상징 신호를 창의 현재 너비에 맞추고 다시 로드에서 신호를 다시 로드하려면상징 도구 모음에 있는 기호입니다. 이제 해당 값과 함께 신호를 볼 수 있습니다.

신호 값

기본적으로 신호 값은 16진수 형식이며 모든 웨이브는 녹색으로 표시됩니다(올바르게 실행되는 경우).

사용자는 신호를 마우스 오른쪽 버튼으로 클릭하고 데이터 형식 또는 색상 형식을 선택하여 이러한 신호의 속성을 변경할 수 있습니다. 사용자는 빈 신호를 삽입하여 신호 그룹 사이에 섹션을 만들 수도 있습니다. 원하는 광학 결과를 얻으면 다음으로 이동하여 구성을 저장할 수 있습니다. File → 쓰기 저장 File.

GTKWave 툴바

도구 모음(그림 10 참조)을 통해 사용자는 신호에 대한 기본 기능을 수행할 수 있습니다. 도구 모음의 각 옵션을 왼쪽에서 오른쪽으로 살펴보겠습니다.
GTKWave 툴바

  1. 메뉴 옵션: 이 옵션에서는 다음을 수행할 수 있습니다. view 소프트웨어를 가지고 놀 때 사용할 수 있는 소프트웨어의 모든 다양한 기능. 이 메뉴 옵션의 세부 사항은 이 사용자 가이드의 섹션 8에서 다룹니다.
  2. 흔적 잘라내기: 신호창에서 선택신호를 삭제/삭제하는데 사용됩니다.
  3. 추적 복사: 시그널 창에서 선택된 시그널을 복사하는데 사용됩니다.
  4. 추적 붙여넣기: 복사/잘라낸 트레이스를 신호 창의 다른 위치에 붙여넣을 수 있습니다.
  5. 줌 핏: 사용자가 표시하기로 선택한 창의 크기에 따라 신호를 맞추는 데 사용됩니다.
  6. 확대: 신호창을 확대하는데 사용됩니다.
  7. 축소: 신호창을 축소하는데 사용됩니다.
  8. 확대/축소 실행 취소: 신호창 확대/축소를 취소하는데 사용됩니다.
  9. 시작 부분으로 확대: 신호 창을 확대하여 신호의 시작 시간을 표시합니다.
  10. 끝까지 확대/축소: 신호의 종료 시간을 표시하는 신호 창을 확대합니다.
  11. 이전 가장자리 찾기: 마커를 이전 가장자리를 나타내는 왼쪽으로 이동합니다.
  12. 다음 가장자리 찾기: 마커를 오른쪽으로 이동하여 다음 가장자리를 나타냅니다.
  13. 스크롤 하한/상한 본드: 이를 사용하여 사용자가 표시하려는 시간 프레임을 설정할 수 있습니다. 예를 들어amp즉, 시간 프레임을 0초 ~ 500ns로 설정할 수 있으며 해당 기간 동안의 신호만 표시됩니다.
  14. 새로 고침 : 표시된 신호가 변경될 때마다 다시 로드를 누릅니다. 새로운 매개변수에 따라 신호를 다시 로드하고 표시합니다. 예를 들어amp즉, 신호의 시간 프레임을 변경한 후 새로 설정된 시간 프레임에 신호를 표시하려면 신호를 다시 로드해야 합니다.

메뉴 옵션

GTKWave 소프트웨어의 왼쪽 상단에서 사용자는 세 개의 수직선을 클릭하여 메뉴 옵션에 액세스할 수 있습니다(그림 11 참조). 사용자는 메뉴 옵션에서 다음 옵션을 찾을 수 있습니다.
메뉴 옵션

File

그만큼 File 하위 메뉴에는 액세스와 관련된 다양한 항목이 포함되어 있습니다. files, VCD 가져오기-내보내기 files, 인쇄 및 읽기/쓰기 files 및 종료.

편집하다

편집 하위 메뉴는 웨이브 하위 창에서 값의 데이터 표현을 변경하는 등 다양한 유틸리티 기능을 수행하는 데 사용됩니다. 편집 하위 메뉴 아래의 옵션을 사용하여 사용자는 신호의 데이터 형식 변경, 재배열, 이동, 자르기, 강조 표시, 신호 그룹화, 신호에 대한 설명, 신호 색상 변경 등을 수행할 수 있습니다.

검색

검색 하위 메뉴는 네트 이름과 값에 대한 검색을 수행하는 데 사용됩니다. VCD의 신호 및 인스턴스의 다양한 계층 구조 수준에서 기능을 수행하는 데 도움이 됩니다. file.

시간

시간 하위 메뉴에는 탐색 및 상태 패널 버튼이 수행하는 기능의 상위 집합이 포함되어 있습니다.
이는 확대/축소, 특정 시점으로 이동, 특정 방향으로 신호 이동 등과 같은 간단한 시간 관련 기능을 가능하게 합니다.

채점자

마커 하위 메뉴는 마커에 대한 다양한 조작을 수행하고 화면 밖의 스크롤을 제어하는 ​​데 사용됩니다.
이는 신호 창에 수많은 마커를 추가하는 기능을 활성화합니다. 최대 26개의 이름 표시가 허용되며 모든 시간은 서로 달라야 합니다.

a. 신호 창에 마커를 추가하려면
마커를 배치하려는 필요한 지점을 마우스 왼쪽 버튼으로 클릭하고 ALT + N을 누릅니다. 그러면 필요한 지점에 명명된 마커(A,B,C 등)가 배치됩니다. 사용자는 26개의 다른 시간 위치에 대해 이 작업을 계속할 수 있습니다.
모든 장소 마커의 시간 값을 비교하려면 메뉴 → 마커 → 변경 마커 데이터 표시를 선택하세요.
그러면 각 마커의 시간 값이 표시된 창이 열립니다. 사용자는 배치된 각 마커의 시간 값을 수동으로 기록하고 이를 빼서 두 마커 간의 시간 차이를 계산할 수 있습니다.
b. 신호 창에서 마커를 제거하려면

사용자는 메뉴 → 마커 → 명명된 마커 수집으로 이동할 수 있습니다. 이렇게 하면 신호 창에 배치된 마지막 이름의 마커가 제거됩니다. 사용자는 메뉴 → 마커 → 모든 명명된 마커 수집으로 이동하여 명명된 모든 마커를 제거할 수 있습니다(그림 12).
메뉴 옵션

그림 13에서는 신호 색상이 어떻게 변경되었는지 확인할 수 있습니다. 공백 신호(Blank Signal)라는 설명과 함께 신호 창에 추가된 공백 신호를 관찰할 수 있습니다.
또한 6개의 명명된 마커(A – E)가 있고 이러한 마커 사이의 시간 값이 ps 단위로 계산된다는 점에 유의하세요.
메뉴 옵션

View

그만큼 View 하위 메뉴는 상태 항목의 그래픽 렌더링과 신호 하위 창의 값을 처리하는 다양한 속성을 제어하는 ​​데 사용됩니다. 이 메뉴에서 신호 창을 흑백 또는 컬러로 변환할 수도 있습니다. 그만큼 View 하위 메뉴를 사용하면 초(secs)에서 피코초(fs)까지의 시간 차원을 변경할 수도 있습니다. 사용자는 이 옵션을 찾을 수 있습니다 View → 시간 차원으로 확장 → fs.

돕다

도움말 하위 메뉴에는 온라인 도움말을 활성화하고 프로그램 버전 정보를 표시하는 옵션이 포함되어 있습니다.

결론

이 문서는 필요한 테스트벤치 초안을 수정하고 GTKWave와 함께 Icarus Verilog를 사용하여 파형을 표시하고 결과를 관찰함으로써 사용자가 성공적으로 설계를 시뮬레이션하고 기능을 검증하는 데 도움을 주기 위해 작성되었습니다.

개정 내역

개정 날짜 설명
1.00 20년 2024월 XNUMX일 최초 출시.

R19US0011EU0100 Rev.1.0
20년 2024월 XNUMX일
© 2024 르네사스 일렉트로닉스
심벌 마크

문서 / 리소스

RENESAS ForgeFPGA 소프트웨어 시뮬레이션 [PDF 파일] 사용자 가이드
REN_r19us0011eu0100, ForgeFPGA 소프트웨어 시뮬레이션, ForgeFPGA 소프트웨어, ForgeFPGA, ForgeFPGA 시뮬레이션, 소프트웨어 시뮬레이션, 시뮬레이션, 소프트웨어

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *