베릴로그-AMS

**베릴로그-AMS**(Verilog-AMS)는 아날로그 및 혼합 신호 시스템의 동작을 정의하기 위해 아날로그 및 혼합 신호 확장(AMS)을 포함하는 베릴로그 하드웨어 기술 언어의 파생 언어이다. 이는 베릴로그/시스템베릴로그/VHDL의 이벤트 기반 시뮬레이터 루프를 연속 시간 시뮬레이터로 확장하며, 이는 아날로그 도메인의 미분방정식을 해결한다. 두 도메인은 서로 연결되어 있어, 아날로그 이벤트가 디지털 동작을 유발할 수 있고 그 반대도 가능하다.Scheduling semantics are specified in the Verilog/AMS Language Reference Manual, section 8.
# 개요
베릴로그-AMS 표준은 아날로그 및 혼합 신호 시스템 및 집적 회로 설계자들이 시스템 및 구성 요소의 고수준 행동 설명뿐만 아니라 구조적 설명을 캡슐화하는 모듈을 생성하고 사용할 수 있도록 의도적으로 만들어졌다.Accellera Verilog Analog Mixed-Signal Group, "Overview," http://www.verilog.org/verilog-ams/htmlpages/overview.htmlVerilog-AMS Language Reference ManualThe Designer's Guide to Verilog-AMS 베릴로그-AMS는 혼합 신호 회로를 위한 산업 표준 모델링 언어이다. 이는 연속 시간 및 이벤트 기반 모델링 의미론을 모두 제공하므로 아날로그, 디지털 및 혼합 아날로그/디지털 회로에 적합하다. 특히 매우 복잡한 아날로그, 혼합 신호 및 RF 집적 회로의 검증에 적합하다.Verification of Complex Analog Integrated Circuits date=October 18, 2006 베릴로그와 베릴로그/AMS는 절차적 프로그래밍 언어가 아니라 이벤트 기반 하드웨어 기술 언어(HDL)이다. 따라서 이들은 병렬 동작 및 이벤트의 정의 및 동기화를 위한 정교하고 강력한 언어 기능을 제공한다. 반면에 HDL 프로그램 문장에 정의된 많은 동작은 병렬로 실행될 수 있다 (절차적 언어의 스레드 및 태스크와 다소 유사하지만 훨씬 세분화되어 있다). 그러나 베릴로그/AMS는 시뮬레이터의 베릴로그 절차적 인터페이스를 사용하여 ANSI C 언어와 같은 절차적 언어와 연결될 수 있어 테스트 스위트 구현을 용이하게 하고 레거시 코드 또는 테스트벤치 장비와의 상호 작용을 허용한다. 베릴로그-AMS 위원회의 원래 의도는 아날로그 및 디지털 설계를 위한 단일 언어였지만, 통합 과정의 지연으로 인해 베릴로그는 시스템베릴로그로 발전하여 IEEE로 넘어갔고, 베릴로그-AMS는 Accellera에 남아있다.
# 코드 예시
베릴로그/AMS는 베릴로그 디지털 HDL의 상위 집합이므로 디지털 도메인의 모든 문은 베릴로그와 동일하게 작동한다(예시는 해당 문서를 참조). 모든 아날로그 부분은 베릴로그-A와 동일하게 작동한다. 다음 베릴로그-AMS 코드 예시는 디지털 신호에 의해 트리거되는 아날로그 처리의 예시인 DAC를 보여준다. `include "constants.vams" `include "disciplines.vams" // Simple DAC model module dac_simple(aout, clk, din, vref); // Parameters parameter integer bits = 4 from [1:24]; parameter integer td = 1n from[0:inf); // Processing delay of the DAC // Define input/output input clk, vref; input [bits-1:0] din; output aout; //Define port types logic clk; logic [bits-1:0] din; electrical aout, vref; // Internal variables real aout_new, ref; integer i; // Change signal in the analog part analog begin @(posedge clk) begin // Change output only for rising clock edge aout_new = 0; ref = V(vref); for(i=0; i ADC 모델은 디지털 블록에서 아날로그 신호를 읽는다. `include "constants.vams" `include "disciplines.vams" // Simple ADC model module adc_simple(clk, dout, vref, vin); // Parameters parameter integer bits = 4 from[1:24]; // Number of bits parameter integer td = 1 from[0:inf); // Processing delay of the ADC // Define input/output input clk, vin, vref; output [bits-1:0] dout; //Define port types electrical vref, vin; logic clk; reg [bits-1:0] dout; // Internal variables real ref, sample; integer i; initial begin dout = 0; end // Perform sampling in the digital blocks for rising clock edge always @(posedge clk) begin sample = V(vin); ref = V(vref); for(i=0; i ref) begin dout[i] <= #(td) 1; sample = sample - ref; end else dout[i] <= #(td) 0; end end endmodule
# 구현
이 언어는 초기에는 상업 회사에서만 지원되었지만, 행동 모델링 하위 집합인 "베릴로그-A"의 일부는 트랜지스터 모델링 커뮤니티에서 채택되었다. ADMS 변환기는 Xyce 및 ngSPICE와 같은 오픈 소스 시뮬레이터를 지원한다. 보다 완전한 구현은 이제 OpenVAF를 통해 사용할 수 있다. 포스트-SPICE 시뮬레이터 Gnucap은 표준 문서에 따라 설계되었으며, 시뮬레이터 수준과 행동 모델링 모두에 대한 베릴로그-AMS 지원이 증가하고 있다.
## 일반
* Accellera 베릴로그 아날로그 혼합 신호 그룹 * verilogams.com — 베릴로그-AMS 및 베릴로그-A 사용자 매뉴얼 * 디자이너 가이드 커뮤니티, 베릴로그-A/MS — 베릴로그-AMS로 작성된 모델 예시 * EDA.ORG AMS 위키 - 문제, 미래 개발, 시스템베릴로그 통합
## 오픈 소스 구현
* OpenVAMS, 내부 VPI 유사 표현을 가진 오픈 소스 베릴로그-AMS-1.3 파서 * V2000 프로젝트 - 베릴로그-AMS 파서 및 정밀화 도구 * OpenVAF 베릴로그-A 컴파일러 * Xyce * Gnucap 위키데이터 속성 추적 분류:하드웨어 기술 언어