stringtranslate.com

Верилог-АМС

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 [ я ]; end end 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 ; конец                                  // Всегда выполнять выборку в цифровых блоках для нарастающего фронта тактового сигнала @( 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. Симулятор Gnucap после SPICE был разработан в соответствии со стандартным документом, и его поддержка Verilog-AMS как на уровне симулятора, так и для поведенческого моделирования растет.

Смотрите также

Рекомендации

  1. ^ Семантика планирования указана в Справочном руководстве по языку Verilog/AMS, раздел 8.
  2. ^ Группа аналоговых смешанных сигналов Accellera Verilog, «Обзор», http://www.verilog.org/verilog-ams/htmlpages/overview.html
  3. ^ Справочное руководство по языку Verilog-AMS
  4. ^ Руководство дизайнера по Verilog-AMS
  5. ^ Проверка сложных аналоговых интегральных схем. Архивировано 18 октября 2006 г., в Wayback Machine.

Внешние ссылки

Общий

Реализации с открытым исходным кодом