영어프랑스어스페인어

Ad


온웍스 파비콘

iverilog - 클라우드 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 iverilog 실행

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 iverilog 명령입니다.

프로그램:

이름


iverilog - Icarus Verilog 컴파일러

개요


이베리로그 [-ESVv] [-Bpath] [-ccmdfile|-fcmdfile] [-Dmacro[=defn]] [-pflag=값] [-dname]
[-g1995|-g2001|-g2005|-g ] [-Iincludedir] [-mmodule] [-Mfile] [-Nfile]
[-ooutputfilename] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] [-ypath] 소스 파일

기술


이베리로그 Verilog 소스 코드를 실행 가능한 프로그램으로 변환하는 컴파일러입니다.
시뮬레이션 또는 추가 처리를 위한 기타 넷리스트 형식. 현재 지원되는
목표는 vvp 시뮬레이션을 위해 FPGA를 합성을 위해. 다른 대상 유형은 다음과 같이 추가됩니다.
코드 생성기가 구현됩니다.

옵션


이베리로그 다음 옵션을 허용합니다.

-B기지 XNUMXD덴탈의 이베리로그 프로그램은 외부 프로그램과 구성 파일을 사용하여 전처리합니다.
Verilog 소스를 컴파일합니다. 일반적으로 이러한 도구를 찾는 데 사용되는 경로는
내장 이베리로그 프로그램. 그러나, 그 -B 스위치는 사용자가 선택할 수 있습니다.
다른 프로그램 세트. 주어진 경로는 위치를 찾는 데 사용됩니다. ivlpp, ivl, 코드
발전기 및 VPI 모듈.

-c파일 -f파일
이 플래그는 Verilog 소스 파일 목록을 포함하는 입력 파일을 지정합니다.
이것은 명령 파일 다른 Verilog 시뮬레이터의
명령줄에서 가져오는 대신 파일 이름을 포함하는 파일입니다. 보다
명령 파일 아래.

-D매크로 매크로 정의 매크로 문자열 `1'을 정의로 사용합니다. 이 양식은 일반적으로
Verilog 소스에서 ifdef 조건문을 트리거하는 데만 사용됩니다.

-D매크로=defn
매크로 정의 매크로 as 데프.

-dname 컴파일러 디버깅 메시지 클래스를 활성화합니다. 그만큼 -d 스위치는 다음과 같이 사용할 수 있습니다.
원하는 모든 메시지를 활성화하는 데 필요한 만큼 자주. 지원되는 이름은
범위, eval_tree, 정교함 및 synth2; 다른 이름은 무시됩니다.

-E Verilog 소스를 전처리하지만 컴파일하지는 마십시오. 출력 파일은
Verilog 입력이지만 파일 포함 및 매크로 참조가 확장 및 제거되었습니다.
예를 들어 Verilog 소스를 다른 사람이 사용할 수 있도록 사전 처리하는 데 유용합니다.
컴파일러.

-g1995|-g2001|-g2001-noconfig|-g2005
Verilog 언어 선택 세대 컴파일러에서 지원합니다. 이것은 선택
사이에 IEEE1364-1995, IEEE1364-2001IEEE1364-2005. 일반적으로 Icarus Verilog
기본적으로 알려진 최신 언어 세대를 사용합니다. 이 플래그는 가장 유용합니다
특정 세대의 도구가 지원하는 집합으로 언어를 제한합니다.
다른 도구와의 호환성.

-gverilog-ams|-gno-verilog-ams
Verilog-AMS에 대한 지원을 활성화 또는 비활성화(기본값)합니다. 아주 작은 Verilog-AMS
특정 기능이 현재 지원됩니다.

-g지정|-gno 지정
활성화 또는 비활성화(기본값) 블록 지원을 지정합니다. 활성화되면 블록 지정
코드가 정교합니다. 비활성화되면 지정 블록이 구문 분석되지만 무시됩니다. 지정
블록은 일반적으로 RTL 시뮬레이션에 필요하지 않으며 실제로 다칠 수 있습니다.
시뮬레이션의 성능. 그러나 특정 블록을 비활성화하면 정확도가 떨어집니다.
풀 타임 시뮬레이션의.

-gstd-포함|-gno-std-include
표준 설치 포함 검색 활성화(기본값) 또는 비활성화
다른 모든 명시적 포함 디렉터리 다음에 디렉터리를 추가합니다. 이 표준에는 다음이 포함됩니다.
디렉토리는 Verilog가 제공하는 표준 헤더 파일을 설치하기에 편리한 장소입니다.
프로그램이 포함될 수 있습니다.

-상대적 포함|-gno-상대적-포함
시작 부분에 로컬 파일 디렉토리 추가를 활성화 또는 비활성화(기본값)
포함 파일 검색 경로. 이렇게 하면 파일을
더 일반적인 파일이 아닌 현재 파일이 작업 디렉토리에서만 발견되거나
지정된 포함 파일 검색 경로에서.

-gxtypes|-gno-xtypes
확장 유형에 대한 지원을 활성화(기본값) 또는 비활성화합니다. 확장 유형 활성화
Icarus Verilog에서 지원하는 새로운 유형을
베이스라인 Verilog. 코드를 컴파일하는 경우 확장 유형을 비활성화해야 할 수 있습니다.
유형 시스템을 구현하는 데 사용되는 몇 가지 새로운 키워드와 충돌합니다.

-지오 범위 오류|-gno-io-범위 오류
표준에서는 벡터화된 포트가 해당 포트에 대해 일치하는 범위를 가질 것을 요구합니다.
선언 및 모든 net/register 선언. 에서 일반적인 관행이었습니다.
net/register 선언 및 일부 도구에 대한 범위만 지정하기 위해 과거
여전히 이것을 허용하십시오. 기본적으로 모든 불일치는 오류로 보고됩니다. 사용
-gno-io-범위 오류 케이스에 대한 치명적인 오류 대신 경고를 생성합니다.
벡터화된 네트/레지스터 및 스칼라 포트 선언.

-gstrict-ca-eval|-gno-strict-ca-eval
표준에서는 연속 할당 식에 대한 입력이 있는 경우 다음을 요구합니다.
값이 변경되면 전체 표현식이 재평가됩니다. 기본적으로
변경된 입력 값에 의존하지 않는 표현식은 재평가되지 않습니다.
식에 전적으로 의존하지 않는 함수에 대한 호출이 포함된 경우
입력 값이나 부작용이 있는 경우 결과 동작은
표준에서 요구하는 것. 사용 -gstrict-ca-eval 표준을 강제할 것입니다
규정 준수 동작(일부 성능 저하 포함).

-I포함
디렉토리 추가 포함 Verilog에 대해 검색된 디렉토리 목록에 포함
파일. 그만큼 -I 여러 디렉토리를 지정하기 위해 스위치를 여러 번 사용할 수 있습니다.
검색, 디렉토리는 명령줄에 나타나는 순서대로 검색됩니다.

-M통로 에 기여하는 파일 목록을 경로로 지정된 파일에 씁니다.
디자인의 편집. 여기에는 include에 의해 포함된 파일이 포함됩니다.
라이브러리 지원에 의해 자동으로 로드되는 지시문 및 파일. 출력
선행 또는 후행 공백 없이 한 줄에 하나의 파일 이름입니다.

-m모듈
시뮬레이션에서 로드할 VPI 모듈 목록에 이 모듈을 추가합니다. 많은
모듈을 지정할 수 있으며 지정된 순서대로 모두 로드됩니다. 그만큼
시스템 모듈은 암시적이며 항상 포함됩니다. 시스템 함수 테이블 파일인 경우
( .sft)가 자동으로 로드될 모듈에 대해 존재합니다.

-N통로 이는 컴파일러를 올바르게 디버깅하는 데 사용됩니다. 의 최종 넷리스트 형식을 덤프합니다.
지정된 파일로 디자인합니다. 그렇지 않으면 기기의 작동에 영향을 미치지 않습니다.
컴파일러. 덤프는 설계가 정교해지고 최적화된 후에 발생합니다.

-o 파일 이름
파일에 출력 배치 파일 이름. 출력 파일 이름을 지정하지 않으면 이베리로그
기본 이름 사용 아웃.

-p플래그=값
대상별 플래그에 값을 할당합니다. 그만큼 -p 스위치는 다음과 같이 자주 사용할 수 있습니다.
원하는 모든 플래그를 지정하는 데 필요합니다. 사용되는 플래그는 다음에 따라 다릅니다.
선택된 대상이며 대상별 문서에 설명되어 있습니다. 플래그
사용되지 않는 것은 무시됩니다.

-S 합성하다. 일반적으로 대상이 행동 설명을 받아들일 수 있는 경우
컴파일러는 동작 형태로 프로세스를 남깁니다. 그만큼 -S 스위치 원인
대상에 필요하지 않은 경우에도 합성을 수행하는 컴파일러. 만약
대상 유형은 넷리스트 형식이며, -S 스위치는 불필요하며 효과가 없습니다.

-s 탑모듈
자세히 설명할 최상위 모듈을 지정합니다. Icarus Verilog는 기본적으로
다른 모듈에서는 인스턴스화되지 않지만 때로는 그렇지 않은 모듈
충분하거나 너무 많은 모듈을 인스턴스화합니다. 사용자가 하나 이상을 지정하는 경우
루트 모듈 -s 플래그는 대신 루트 모듈로 사용됩니다.

-T최소|통상|최대
이 스위치를 사용하여 min:typ:max 표현식에서 최소, 일반 또는 최대 시간을 선택합니다.
일반적으로 컴파일러는 단순히 이러한 표현식의 유형 값을 사용합니다.
(찾은 처음 XNUMX개에 대한 경고 인쇄) 하지만 이 스위치는
사용할 값을 컴파일러에서 명시적으로 지정합니다. 이렇게 하면 다음과 같은 경고가 표시되지 않습니다.
컴파일러가 선택을 하고 있습니다.

-t목표
이 스위치를 사용하여 대상 출력 형식을 지정합니다. 참조 목표 아래 섹션
유효한 출력 형식 목록을 보려면.

-v 자세한 메시지를 켭니다. 이렇게 하면 실행되는 명령줄이 인쇄됩니다.
다양한 버전 정보와 함께 실제 컴파일을 수행합니다.
구성 요소 및 전체 제품 버전. 당신은 알 수 있습니다
명령줄에 다음을 전달하는 키 임시 파일에 대한 참조가 포함됩니다.
컴파일러에 적절한 정보를 제공합니다. 해당 파일이 삭제되지 않도록 하려면
프로세스가 끝나면 환경 변수에 자신의 파일 이름을 제공하십시오.
IVERILOG_ICONFIG.

-V 컴파일러 버전을 인쇄하고 종료합니다.

-W수업 다른 종류의 경고를 켭니다. 참조 경고 타입 아래 섹션
다른 경고 그룹에 대한 설명. 여러 개일 경우 -W 스위치가 사용되며,
경고 세트는 요청된 모든 클래스의 합집합입니다.

-y라이브러리 디렉토리
라이브러리 모듈 검색 경로에 디렉토리를 추가하십시오. 컴파일러가 찾을 때
정의되지 않은 모듈은 이 디렉토리에서 올바른 이름을 가진 파일을 찾습니다.

-Y접미사
검색할 때 사용되는 허용된 파일 이름 접미사 목록에 접미사 추가
세포용 라이브러리. 목록의 기본값은 단일 항목입니다. .v.

MODULE 라이브러리


Icarus Verilog 컴파일러는 모듈 라이브러리를 Verilog를 포함하는 디렉토리로 지원합니다.
소스 파일. 정교화하는 동안 컴파일러는 정의되지 않은 인스턴스화를 확인합니다.
모듈 유형. 사용자가 라이브러리 검색 디렉토리를 지정하면 컴파일러는 검색합니다.
누락된 모듈 유형의 ​​이름을 가진 파일의 디렉토리. 그런 파일을 찾으면
Verilog 소스 파일로 로드하고 모듈을 정교하게 다시 시도합니다.

라이브러리 모듈 파일에는 단일 모듈만 포함되어야 하지만 필수 사항은 아닙니다.
라이브러리 모듈은 라이브러리 또는 기본 디자인의 다른 모듈을 참조할 수 있습니다.

목표


Icarus Verilog 컴파일러는 다양한 목적을 위해 다양한 대상을 지원하며
-t 스위치는 원하는 대상을 선택하는 데 사용됩니다.

null로 null 대상으로 인해 코드가 생성되지 않습니다. 확인하는데 유용합니다.
Verilog 소스의 구문.

vvp 이것이 기본값입니다. vvp 대상은 vvp 런타임용 코드를 생성합니다. 출력
설계를 시뮬레이트하는 완전한 프로그램이지만 vvp
명령.

FPGA를 이것은 주로 EDIF에 의해 다양한 fpga 장치를 지원하는 합성 대상입니다.
형식 출력. Icarus Verilog fpga 코드 생성기는 완전한 생성이 가능합니다.
다른 사람이 더 큰 디자인으로 가져올 수 있는 디자인 또는 EDIF 매크로
도구. NS FPGA를 목표는 합성을 의미합니다 -S 깃발.

VHDL 이 대상은 Verilog 넷리스트의 VHDL 변환을 생성합니다. 출력은
Verilog의 모듈에 해당하는 VHDL 엔티티를 포함하는 단일 파일
소스 코드. Verilog 언어의 하위 집합만 지원됩니다. 보다
자세한 내용은 위키를 참조하십시오.

경고 타입


다음은 관리자가 선택할 수 있는 경고 유형입니다. -W 스위치. 모든 경고
유형(이외 모든) 접두사가 붙을 수도 있습니다. 아니 - 그 경고를 끄려면. 이것은
후에 가장 유용한 -벽 격리된 경고 유형을 억제하는 인수.

모든 이것은 암시적, portbind, select-range, timescale 및
감도 전체 어레이 경고 범주.

절대적인
이렇게 하면 암시적 선언 생성에 대한 경고가 활성화됩니다. 예를 들어
스칼라 와이어 X가 사용되었지만 Verilog 소스에서 선언되지 않은 경우
처음 사용할 때 경고합니다.

포트 바인드
이렇게 하면 연결되지 않은 모듈 인스턴스화 포트에 대한 경고가 활성화됩니다.
하지만 아마 그래야 할 것입니다. 예를 들어 매달린 입력 포트는
경고.

범위 선택
이것은 범위를 벗어난 선택에 대한 경고를 활성화합니다. 여기에는 부분 또는
범위를 완전히 벗어난 선택 및 'bx 또는 'bz를 포함하는 선택
색인.

시간 척도
이렇게 하면 timescale 지시문의 일관성 없는 사용에 대한 경고가 활성화됩니다. 그것은 감지
일부 모듈에 시간 척도가 없거나 모듈이 다른 모듈에서 시간 척도를 상속받는 경우
파일. 둘 다 아마도 시간 척도가 일관성이 없고 시뮬레이션 타이밍이
혼란스럽고 컴파일 순서에 따라 달라질 수 있습니다.

인플루프 이렇게 하면 런타임 무한 루프가 있을 수 있는 always 문에 대한 경고가 활성화됩니다.
(지연이 없거나 XNUMX인 경로가 있음). 이 종류의 경고는 다음에 포함되지 않습니다. -벽
따라서 아니 - 변종. 치명적인 오류 메시지는 항상
컴파일러가 확실히 무한대가 있을 것이라고 결정할 수 있을 때 인쇄됩니다.
루프(모든 경로에 지연이 없거나 제로임).

always 문이 런타임 무한 루프를 생성한다고 의심되면 다음을 사용하십시오.
논리를 확인해야 하는 항상 문을 찾기 위한 플래그입니다. 그것은
코드가
모든 변수의 값과 불확실한 신호.

감도 전체 벡터
이렇게 하면 "always @*" 문 내에서 부품이 선택될 때 경고가 활성화됩니다.
암시적 민감도 목록에 전체 벡터가 추가됩니다.
이 동작은 IEEE 표준에 규정되어 있지만
예상할 수 있으며 벡터가 큰 경우 성능에 영향을 줄 수 있습니다.

감도 전체 어레이
이렇게 하면 "always @*" 문 내에서 단어가 선택될 때 경고가 표시됩니다.
암시적 민감도 목록에 전체 배열이 추가됩니다. 하지만
이 동작은 IEEE 표준에 규정되어 있으며,
어레이가 클 경우 성능에 영향을 줄 수 있습니다.

시스템 FUNCTION 파일


소스 파일 이름이 .sft 접미사는 시스템 기능 테이블로 간주됩니다.
파일. 시스템 함수 테이블 파일은 반환 유형을 컴파일러에 설명하는 데 사용됩니다.
시스템 기능을 위해. 이것은 컴파일러가 이 정보를 필요로 하기 때문에 필요합니다.
이러한 시스템 기능을 포함하지만 sizetf를 실행할 수 없는 정교한 표현식
런타임이 없기 때문에 작동합니다.

테이블의 형식은 ASCII이며 라인당 하나의 함수입니다. 빈 줄은 무시되며
'로 시작하는 줄#' 문자는 주석 행입니다. 각 비주석 줄 시작
함수 이름과 vpi 유형(예: vpiSysFuncReal) 다음 유형은
지원 :

vpiSysFunc실수
이 함수는 실제/실시간 값을 반환합니다.

vpiSysFuncInt
이 함수는 정수를 반환합니다.

vpiSysFunc크기
이 함수는 주어진 너비의 벡터를 반환하며 부호가 있거나 부호가 없습니다.
플래그에 따라.

COMMAND 파일


명령 파일을 사용하면 사용자가 소스 파일 이름과 특정 명령줄을 배치할 수 있습니다.
긴 명령줄 대신 텍스트 파일로 전환합니다. 명령 파일에는 C가 포함될 수 있습니다.
또는 C++ 스타일 주석과 # 주석(#이 줄을 시작하는 경우).

파일 name
간단한 파일 이름 또는 파일 경로는 Verilog 소스 파일의 이름으로 간주됩니다.
경로는 공백이 아닌 첫 번째 문자로 시작합니다. 변수는
파일 이름으로 대체됩니다.

-c cmd 파일 -f cmd 파일
A -c or -f 토큰은 명령에서와 마찬가지로 명령 파일의 접두사입니다.
선. cmdfile은 같은 줄이나 주석이 없는 다음 줄에 있을 수 있습니다.

-y 라이브러리 디렉토리
A -y 토큰은 명령 파일의 라이브러리 디렉토리 앞에 붙습니다.
명령줄에서. 에 대한 매개변수 -y 플래그는 같은 줄에 있거나
주석이 아닌 다음 줄.

의 변수 라이브러리 디렉토리 대체됩니다.

+incdir+포함
XNUMXD덴탈의 +incdir+ 명령 파일의 토큰은 포함 파일을 검색할 디렉터리를 제공합니다.
거의 같은 방식으로 -I 플래그는 명령줄에서 작동합니다. 차이점은
그 여러 +포함디렉터리 디렉토리는 단일에 대한 유효한 매개변수입니다. +incdir+
토큰, 여러 개가 있을 수도 있지만 +incdir+ 윤곽.

의 변수 포함 대체됩니다.

+libext+내선
XNUMXD덴탈의 +자유 텍스트 명령 파일의 토큰 fives 파일 확장자를 찾을 때 시도합니다.
라이브러리 파일. 이것은 다음과 함께 유용합니다. -y 시도할 접미사를 나열하는 플래그
다음 라이브러리 디렉토리로 이동하기 전에 각 디렉토리에서.

+libdir+DIR
이것은 라이브러리 디렉토리를 지정하는 또 다른 방법입니다. -y 플래그를 참조하십시오.

+libdir-nocase+DIR
이것은 마치 +libdir 문이지만 선언된 디렉토리 내의 파일 이름
대소문자를 구분하지 않습니다. 조회에서 누락된 모듈 이름은
문자가 올바른 한 파일 이름의 대소문자를 구분합니다. 예를 들어 "foo"는 일치합니다.
"Foo.v"이지만 "bar.v"는 아닙니다.

+정의+이름=가치
XNUMXD덴탈의 +정의+ 토큰은 다음과 같습니다. -D 명령줄의 옵션. 가치
토큰의 일부는 선택 사항입니다.

+타임스케일+가치
XNUMXD덴탈의 +타임스케일+ 토큰은 시뮬레이션의 기본 시간 척도를 설정하는 데 사용됩니다.
이것은 `timescale 지시어 이전 또는 a 이후의 시간 단위 및 정밀도입니다.
'리셋 지시어. 기본값은 1초/1초입니다.

+toupper-파일 이름
이 토큰으로 인해 명령 파일에서 이 이후의 파일 이름이 다음으로 변환됩니다.
대문자. 이것은 디렉토리가 DOS를 통과한 상황에 도움이 됩니다.
시스템에 저장되고 그 과정에서 파일 이름이 지워집니다.

+tolower-파일 이름
이것은 +toupper-파일 이름 위에서 설명한 해킹.

+정수 너비+가치
이를 통해 프로그래머는 정수 변수의 너비를 선택할 수 있습니다.
Verilog 소스. 기본값은 32이며 값은 원하는 정수 값이 될 수 있습니다.

변수 IN COMMAND 파일


경우에 따라 iverilog는 명령 파일의 변수를 지원합니다. 이들은 다음의 문자열입니다.
양식 "$(이름)" 또는 "${이름}", 어디 이름 환경 변수의 이름입니다.
읽다. 전체 문자열이 해당 변수의 내용으로 대체됩니다. 변수는
파일 및 디렉터리를 포함하여 명시적으로 지원하는 컨텍스트에서만 대체됩니다.
문자열.

변수 값은 전처리기가 아닌 운영 체제 환경에서 가져옵니다.
파일 또는 명령줄의 다른 위치에서 정의합니다.

미리 정의 매크로


다음 매크로는 컴파일러에 의해 사전 정의됩니다.

__이카루스__ = 1
이것은 Icarus Verilog로 컴파일할 때 항상 정의됩니다.

__VAMS_활성화__ = 1
Verilog-AMS가 활성화된 경우 정의됩니다.

사용 예


이 예제는 현재 디렉토리에 hello.v라는 Verilog 소스 파일이 있다고 가정합니다.
예배 규칙서

hello.v를 a.out이라는 실행 파일로 컴파일하려면:

iverilog hello.v

hello.v를 hello라는 실행 파일로 컴파일하려면:

iverilog -o 안녕하세요 hello.v

vvp 런타임을 사용하여 명시적으로 컴파일하고 실행하려면:

iverilog -ohello.vvp -tvvp hello.v

onworks.net 서비스를 사용하여 온라인에서 iverilog 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad