Verilog-AMS

Verilog-AMS

Verilog-AMS는 아날로그 및 혼합 신호 시스템의 동작을 정의하기 위해 아날로그 및 혼합 신호 확장(AMS)을 포함하는 Verilog 하드웨어 기술 언어의 파생어입니다.Verilog/SystemVerilog/VHDL의 이벤트 기반 시뮬레이터 루프를 연속 시간 시뮬레이터로 확장하여 아날로그 영역의 미분 방정식을 해결합니다.두 도메인은 결합되어 있습니다. 아날로그 이벤트는 디지털 액션을 트리거할 수 있으며 [1]그 반대도 마찬가지입니다.

개요

Verilog-AMS 표준은 아날로그 및 혼합 신호 시스템 및 집적회로 설계자가 시스템 및 [2][3][4]컴포넌트의 구조 기술뿐만 아니라 높은 수준의 동작 기술을 캡슐화하는 모듈을 만들고 사용할 수 있도록 하기 위해 작성되었습니다.

Verilog-AMS는 혼합 신호 회선의 업계 표준 모델링 언어입니다.연속 시간 및 이벤트 구동 모델링 의미론을 모두 제공하므로 아날로그, 디지털 및 혼합 아날로그/디지털 회로에 적합합니다.특히 매우 복잡한 아날로그, 혼합 신호 및 RF 집적회로의 [5]검증에 적합합니다.

Verilog 및 Verilog/AMS는 프로시저 프로그래밍 언어가 아니라 이벤트 기반 하드웨어 기술 언어(HDL)입니다.이와 같이 병렬 액션과 이벤트의 정의와 동기화를 위한 정교하고 강력한 언어 기능을 제공합니다.한편, HDL 프로그램 문장에 정의된 많은 액션은 병렬로 실행할 수 있습니다(프로시저 언어의 스레드 및 태스크렛과 비슷하지만 훨씬 세밀합니다).단, Verilog/AMS는 시뮬레이터의 Verilog Procedural Interface를 사용하여 ANSI C 언어 등의 절차 언어와 결합할 수 있습니다.이것에 의해, 테스트 슈트의 실장이 용이하게 되어, 레거시 코드나 테스트 벤치 기기와의 상호작용이 가능하게 됩니다.

Verilog-AMS 위원회의 원래 의도는 아날로그와 디지털 디자인 모두 단일 언어였지만 합병 프로세스의 지연으로 인해 Accellera에 머무르며 Verilog는 SystemVerilog로 발전하여 IEEE로 넘어갔습니다.

코드 예시

Verilog/AMS는 Verilog 디지털 HDL의 슈퍼셋이기 때문에 디지털 도메인의 모든 문장은 Verilog와 같이 동작합니다(예에 대해서는, 여기를 참조).아날로그 부품은 모두 Verilog-A와 동일하게 동작합니다.

Verilog-AMS의 다음 코드 예는 디지털 신호에 의해 트리거되는 아날로그 처리의 예인 DAC를 보여 줍니다.

「그럴 수 있다 "params.vams" 「그럴 수 있다 "temules.vams" // 단순 DAC 모델 모듈 dac_module(아웃, 째깍째깍 소리를 내다, 쨍그랑 소리를 내다, vref);    // 파라미터  파라미터 정수 비트 = 4 부터 [1:24];  파라미터 정수 td = 1n 부터[0:인피);  // DAC 처리 지연    // 입력/출력 정의  입력 째깍째깍 소리를 내다, vref;  입력 [비트-1:0] 쨍그랑 소리를 내다;  산출량 아웃;     //포트 타입의 정의  논리 째깍째깍 소리를 내다;  논리 [비트-1:0] 쨍그랑 소리를 내다;  전기적인  아웃, vref;    // 내부 변수  진짜 aout_신규, 레퍼런스;  정수 i;    // 아날로그 부분의 신호 변경  아날로그 시작한다.   @(엣지 째깍째깍 소리를 내다) 시작한다. // 상승 클럭 에지에 대해서만 출력 변경        aout_신규 = 0;    레퍼런스 = V(vref);        위해서(i=0; i< >비트; i=i+1) 시작한다.     레퍼런스 = 레퍼런스/2;     aout_신규 = aout_신규 + 레퍼런스 * 쨍그랑 소리를 내다[i];    끝.   끝.    V(아웃) <+> 전이(aout_신규, td, 5n); // 출력 레벨이 변경되었을 때 보다 부드러운 전환 실현  끝. 엔드 모듈 

ADC 모델은 디지털 블록에서 아날로그 신호를 읽고 있습니다.

「그럴 수 있다 "params.vams" 「그럴 수 있다 "temules.vams" // 심플 ADC 모델 모듈 adc_module(adc_module)(째깍째깍 소리를 내다, 아웃, vref, );    // 파라미터  파라미터 정수 비트 = 4 부터[1:24]; // 비트 수  파라미터 정수 td = 1 부터[0:인피);  // ADC 처리 지연    // 입력/출력 정의  입력 째깍째깍 소리를 내다, , vref;  산출량 [비트-1:0] 아웃;    //포트 타입의 정의  전기적인 vref, ;  논리 째깍째깍 소리를 내다;  조정하다 [비트-1:0] 아웃;    // 내부 변수  진짜 레퍼런스, 샘플;  정수 i;      초기의 시작한다.   아웃 = 0;  끝.   // 상승 클럭 에지에 대해 디지털 블록에서 샘플링 수행  항상 @(엣지 째깍째깍 소리를 내다) 시작한다.      샘플 = V();   레퍼런스 = V(vref);       위해서(i=0; i< >비트; i=i+1) 시작한다.        레퍼런스 = 레퍼런스/2;         한다면(샘플 > 레퍼런스) 시작한다.     아웃[i] <=> #(td) 1;     샘플 = 샘플 - 레퍼런스;    끝.    또 다른     아웃[i] <=> #(td) 0;   끝.  끝. 엔드 모듈 

「 」를 참조해 주세요.

레퍼런스

  1. ^ 스케줄링의 의미는 Verilog/AMS Language Reference Manual 섹션 8에 명시되어 있습니다.
  2. ^ Accellera Verilog 아날로그 혼합 신호 그룹, "개요", http://www.verilog.org/verilog-ams/htmlpages/overview.html
  3. ^ Verilog-AMS 언어 레퍼런스 매뉴얼
  4. ^ Verilog-AMS 설계 가이드
  5. ^ 2006년 10월 18일 웨이백 머신에서 아카이브된 복잡한 아날로그 집적회로 검증

외부 링크

  • I. 밀러와 T.Cassagnes, "Verilog-AMS는 혼합 모드 신호 시뮬레이션을 용이하게 한다", 2000년 마이크로시스템 모델링시뮬레이션에 관한 국제회의 기술진행, 페이지 305~308, 이용가능://www.nsti.org/publ/MSM2000/T31.01.pdf

일반

오픈 소스 구현