Verilog-AMS
Verilog-AMSVerilog-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; 끝. 끝. 엔드 모듈 「 」를 참조해 주세요.
레퍼런스
- ^ 스케줄링의 의미는 Verilog/AMS Language Reference Manual 섹션 8에 명시되어 있습니다.
- ^ Accellera Verilog 아날로그 혼합 신호 그룹, "개요", http://www.verilog.org/verilog-ams/htmlpages/overview.html
- ^ Verilog-AMS 언어 레퍼런스 매뉴얼
- ^ Verilog-AMS 설계 가이드
- ^ 2006년 10월 18일 웨이백 머신에서 아카이브된 복잡한 아날로그 집적회로 검증
외부 링크
- I. 밀러와 T.Cassagnes, "Verilog-AMS는 혼합 모드 신호 시뮬레이션을 용이하게 한다", 2000년 마이크로시스템 모델링 및 시뮬레이션에 관한 국제회의 기술진행, 페이지 305~308, 이용가능://www.nsti.org/publ/MSM2000/T31.01.pdf
일반
- Accellera Verilog 아날로그 혼합 신호 그룹
- verilogams.com - Verilog-AMS 및 Verilog-A 사용자 매뉴얼
- 디자이너 가이드 커뮤니티, Verilog-A/MS - Verilog-AMS로 작성된 모델의 예
- EDA.ORG AMS Wiki - 문제, 향후 개발, SystemVerilog 통합