베릴로그 A
Verilog-AVerilog-A는 아날로그 회로용 업계 표준 모델링 언어입니다.이것은 Verilog-AMS의 연속 시간 서브셋입니다.상용 어플리케이션의 일부에서는 MEMS 설계를 Verilog-A 형식으로 내보낼 수 있습니다.
역사
Verilog-A는 다른 언어(예: MAST)로부터 아날로그 기능을 흡수하고 있던 VHDL(IEEE 표준)과의 경쟁에 직면하여 Spectre 동작 언어를 표준화할 필요성 때문에 만들어졌습니다.Open Verilog International(OVI, 원래 Verilog를 표준화한 기관)은 Verilog-AMS(아날로그와 디지털 설계를 모두 망라하는 단일 언어)를 작성하는 계획의 일환으로서 표준화를 서포트하는 것에 동의했습니다.Verilog-A는 프로젝트의 첫 단계였던 Verilog-AMS의 전체 아날로그 서브셋입니다.
최초의 Verilog-A 언어 레퍼런스 매뉴얼과 완전한 Verilog-AMS 사이에는 상당한 지연(지연 가능성이 있음)이 있었고, 그 사이에 Verilog-AMS는 Accellera에 남겨진 채 IEEE로 이동했다.
2000년 이메일 로그AD는 여기서 찾을 수 있습니다.
표준 가용성
Verilog-A 표준은 독립형으로 존재하지 않으며 완전한 Verilog-AMS 표준의 일부입니다.LRM은 Accellera [1]웹사이트에서 구할 수 있습니다.단, 초기 릴리즈와 후속 릴리즈는 여기에서 확인할 수 있습니다.이 릴리스는 향후 SystemVerilog의 새로운 net-type 기능을 활용할 것이기 때문에 최종 릴리즈가 될 가능성이 있습니다.Verilog-AMS의 "wreal"과 같은 기본 제공 유형은 VHDL 방법론에 따라 SystemVerilog의 사용자 정의 유형이 됩니다.
C 프로그래밍 언어와의 호환성
자동 디바이스 모델 신시사이저(ADMS)를 사용하여 Verilog-A의 서브셋을 C 프로그래밍 언어로 자동 번역할 수 있습니다.이 기능은 예를 들어 C에서 출시되지 않은BSIM Verilog-A 트랜지스터 모델을 ngspice [2]등의 시뮬레이터로 변환하기 위해 사용됩니다.
코드 예시
다음 예시는 Verilog-A에서의 모델링을 최초로 시연하고 있습니다.
「그럴 수 있다 "params.vams" 「그럴 수 있다 "temules.vams" 모듈 예(a,b,c,d,e,f); 파라미터 진짜 R = 1m; 파라미터 진짜 C = 1u; 파라미터 진짜 L = 1u; 파라미터 정수 얻다 = 2; 입력 a; 산출량 b; 인아웃 c,d,e,f; 전기적인 a,b,c,d,e,f; 아날로그 시작한다. // 일괄 요소 모델링 //저항기 V(c,d) <+> R*I(c,d); //인덕터 // 여러 전류 또는 전압 할당이 누적됩니다. V(c,d) <+> L * ddt(I(c,d)); //캐패시터 I(e,f) <+> C * ddt(V(e,f)); // 단순 증폭기 // 두 번째 노드가 제공되지 않을 경우 전압이 접지를 기준으로 합니다. V(b) <+> 얻다 * V(a); 끝. 엔드 모듈
이 Verilog-AMS 예에서는 분기 단자(a), (c)의 전압 및 시뮬레이션 회로의 주변 온도에 따라 분기(a, c)를 통과하는 전류를 정의함으로써 이상적인 다이오드를 구현하고 있습니다.
// 이상적인 다이오드 모듈 다이오드 (a, c); 인아웃 a, c; 전기적인 a, c; 파라미터 진짜 IS = 1.0e-14; // 사용자가 구성할 수 있는 포화 전류 진짜 아이디오; /* * 다음에 따라 다이오드를 통과하는 비선형 전류 계산 * - 열전압 $140(시뮬레이트 회로의 주변 온도) 및 * - 단자 간 전압 */ 아날로그 시작한다. 아이디오 = IS * (석회색(V(a,c)/$140) - 1); I(a,c) <+> 아이디오; 끝. 엔드 모듈
단순 DC 전압 소스의 경우 분기 전압이 상수(DC) 값으로 설정됩니다.
// DC 전원 모듈 vsrc (p,n); 파라미터 진짜 직류 = 1.0; 인아웃 p, n; 전기적인 p, n; 아날로그 시작한다. // 각 시간 스텝에서 일정한 DC 전압을 할당합니다. V(p,n) <+> 직류; 끝. 엔드 모듈
사인 전압 발생기는 내장된 sin() 함수를 사용할 수 있습니다.
// 사인파 전압원 「그럴 수 있다 "params.vams" 모듈 vsin (p,n); 파라미터 진짜 진폭 = 1.0; 파라미터 진짜 디스크 = 50.0; 파라미터 진짜 단계 = 0.0; 인아웃 p, n; 전기적인 p, n; 아날로그 시작한다. V(p,n) <+> 진폭 * 죄('M_TWO_PI' * 디스크 * $160 타임 + 단계); $bound_step(0.1/디스크); // 에일리어싱 문제를 피하기 위해 사이클당 최소 10포인트 요구 끝. 엔드 모듈
「 」를 참조해 주세요.
레퍼런스
- ^ Verilog-AMS 표준
- ^ "Verilog-A to C conversion guidelines". ngspice. Retrieved 2019-07-17.
외부 링크
- 언어 설계 목표(1994년경)
- Accellera Verilog 아날로그 혼합 신호 그룹
- 언어 레퍼런스 매뉴얼
- Verilog-AMS 설계 가이드
- verilogams.com - Verilog-AMS 및 Verilog-A 사용자 매뉴얼
- 디자이너 가이드 커뮤니티 - Verilog-A로 작성된 모델의 예