Верилог-АМС
Verilog-AMS — это производная от Verilog языка описания аппаратного обеспечения , который включает расширения аналоговых сигналов и смешанных сигналов (AMS) для определения поведения аналоговых систем и систем смешанных сигналов. на основе событий Он расширяет циклы симулятора Verilog/ SystemVerilog / VHDL за счет симулятора непрерывного времени, который решает дифференциальные уравнения в аналоговой области. Обе области связаны: аналоговые события могут запускать цифровые действия и наоборот. [1]
Обзор [ править ]
Стандарт Verilog-AMS был создан с целью дать возможность разработчикам аналоговых и смешанных сигнальных систем и интегральных схем создавать и использовать модули, инкапсулирующие описания поведения высокого уровня, а также структурные описания систем и компонентов. [2] [3] [4]
Verilog-AMS — это стандартный язык моделирования схем со смешанными сигналами. Он обеспечивает семантику моделирования как в непрерывном времени, так и на основе событий, поэтому подходит для аналоговых, цифровых и смешанных аналогово-цифровых схем. Он особенно хорошо подходит для проверки очень сложных аналоговых, смешанных и радиочастотных интегральных схем. [5]
на основе событий Verilog и Verilog/AMS — это не процедурные языки программирования, а языки описания оборудования (HDL). По сути, они предоставляют сложные и мощные языковые функции для определения и синхронизации параллельных действий и событий. С другой стороны, многие действия, определенные в операторах программы HDL, могут выполняться параллельно (что-то похожее на потоки и тасклеты в процедурных языках, но гораздо более детально). Однако Verilog/AMS можно объединить с процедурными языками, такими как язык ANSI C, используя процедурный интерфейс Verilog симулятора, который упрощает реализацию набора тестов и позволяет взаимодействовать с устаревшим кодом или оборудованием испытательного стенда.
Первоначальным намерением комитета Verilog-AMS был единый язык для аналогового и цифрового проектирования, однако из-за задержек в процессе слияния он остается в Accellera, в то время как Verilog превратился в SystemVerilog и перешел в IEEE.
Пример кода [ править ]
Verilog/AMS — это расширенная версия Verilog digital HDL, поэтому все операторы в цифровой области работают так же, как и в Verilog (примеры см. здесь). Все аналоговые части работают как в Verilog-A .
В следующем примере кода в Verilog-AMS показан ЦАП , который является примером аналоговой обработки, запускаемой цифровым сигналом:
`include "constants.vams" `include "disciplines.vams" простой модели DAC // Модуль dac_simple ( aout , clk , din , vref ); // Параметры параметра целочисленные биты = 4 из [ 1 : 24 ]; параметра целое число td = 1 n from [ 0 : inf ); // Задержка обработки ЦАП // Определение ввода/вывода input clk , vref ; вход [ биты - 1 : 0 ] din ; выход выходной ; //Определение типов портов log clk ; логика [ биты - 1 : 0 ] din ; электрический выход , vref ; // Внутренние переменные real aout_new , ref ; целое число я ; // Изменить сигнал в аналоговой части Analog Begin @( Posege Clk ) Begin // Изменить выход только для нарастающего фронта тактового сигнала aout_new = 0 ; ссылка = V ( vref ); for ( я = 0 ; я < биты ; я = я + 1 ) начать ref = ref / 2 ; aout_new = aout_new + ref * din [ я ]; конец конец V ( aout ) < + переход ( aout_new , td , 5 n ); // Получаем более плавный переход при изменении выходного уровня end endmodule
Модель АЦП считывает аналоговые сигналы в цифровых блоках:
`include "constants.vams" `include "disciplines.vams" простой модели АЦП // Модуль adc_simple ( clk , dout , vref , vin ); // Параметры параметра целочисленные биты = 4 из [ 1 : 24 ]; // Число бит параметра целое число td = 1 from [ 0 : inf ); // Задержка обработки АЦП // Определение ввода/вывода input clk , vin , vref ; вывод [ биты - 1 : 0 ] dout ; //Определение типов портов electric vref , vin ; логика клк ; reg [ биты - 1 : 0 ] dout ; // Внутренние переменные real ref , sample ; целое число я ; начальное начало dout = 0 ; end выполнять выборку в цифровых блоках для нарастающего фронта тактовой частоты // Всегда @( posege clk ) Begin Sample = V ( vin ); ссылка = V ( vref ); for ( я = 0 ; я < биты ; я = я + 1 ) начать ref = ref / 2 ; if ( образец > ссылка ) начать dout [ i ] <= #( td ) 1 ; образец = образец - ссылка ; конец еще dout [ i ] <= #( td ) 0 ; конец, конец, конецмодуль
Реализации [ править ]
Хотя изначально этот язык поддерживался только коммерческими компаниями, часть подмножества поведенческого моделирования «Verilog-A» была принята сообществом, занимающимся моделированием транзисторов. Транслятор ADMS поддерживает его для симуляторов с открытым исходным кодом, таких как Xyce и ngSPICE. Более полная реализация теперь доступна через OpenVAF. Пост-SPICE-симулятор Gnucap был разработан в соответствии со стандартным документом, и его поддержка Verilog-AMS как на уровне симулятора, так и для поведенческого моделирования растет.
См. также [ править ]
Ссылки [ править ]
- ^ Семантика планирования указана в Справочном руководстве по языку Verilog/AMS, раздел 8.
- ^ Группа аналоговых смешанных сигналов Accellera Verilog, «Обзор», http://www.verilog.org/verilog-ams/htmlpages/overview.html
- ^ Справочное руководство по языку Verilog-AMS
- ^ Руководство дизайнера по Verilog-AMS
- ^ Проверка сложных аналоговых интегральных схем. Архивировано 18 октября 2006 г., в Wayback Machine.
Внешние ссылки [ править ]
- И. Миллер и Т. Кассань, «Verilog-AMS упрощает моделирование сигналов смешанного режима», Технические материалы Международной конференции 2000 г. по моделированию и симуляции микросистем , стр. 305–308, доступно: https://web.archive.org /web/20070927051749/http://www.nsti.org/publ/MSM2000/T31.01.pdf
Общие [ править ]
- Группа аналоговых смешанных сигналов Accellera Verilog
- verilogams.com — Руководство пользователя для Verilog-AMS и Verilog-A.
- Сообщество Designer's Guide, Verilog-A/MS — примеры моделей, написанных на Verilog-AMS.
- EDA.ORG AMS Wiki - Проблемы, будущее развитие, интеграция SystemVerilog