Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 - это надмножество цифрового HDL Verilog, поэтому все операторы в цифровой области работают так же, как и в Verilog (см. Там примеры). Все аналоговые части работают как в Verilog-A .

В следующем примере кода в Verilog-AMS показан ЦАП, который является примером аналоговой обработки, запускаемой цифровым сигналом:

`include  " constants.vams " ` include  " disclines.vams " // Модуль  простой модели DAC dac_simple ( aout ,  clk ,  din ,  vref );// Параметры параметра  целочисленные  биты  =  4  из  [ 1 : 24 ]; целое число параметра  td = 1 n из [ 0 : inf ); // Задержка обработки ЦАП     // Определение ввода / вывода input  clk ,  vref ; вход  [ биты - 1 : 0 ]  din ; вывод  aout ;// Определяем типы портов logic  clk ; логика  [ биты - 1 : 0 ]  din ; электрические  aout ,  vref ;// Внутренние переменные real  aout_new ,  ref ; целое число  i ;// Изменение сигнала в аналоговой части analog  begin @ ( posedge  clk )  begin  // Изменение вывода только для нарастающего фронта тактового сигналаaout_new  =  0 ; ref  =  V ( vref );for ( i = 0 ;  i < биты ;  i = i + 1 )  begin ref  =  ref / 2 ; aout_new  =  aout_new  +  ref  *  din [ я ]; конец конец V ( aout )  <+  transition ( aout_new ,  td ,  5 n );  // Более плавный переход при изменении уровня вывода end endmodule

Модель АЦП считывает аналоговые сигналы в цифровых блоках:

`include  " constants.vams " ` include  " disclines.vams " // Модуль  простой модели АЦП adc_simple ( clk ,  dout ,  vref ,  vin );// Параметры параметра  целочисленные  биты  =  4  из [ 1 : 24 ];  // Число битов параметра  целое число  td  =  1  from [ 0 : inf );  // Задержка обработки АЦП// Определение ввода / вывода input  clk ,  vin ,  vref ; output  [ биты - 1 : 0 ]  dout ;// Определяем типы портов электрические  vref ,  vin ; логический  clk ; reg  [ биты - 1 : 0 ]  dout ;// Внутренние переменные real  ref ,  sample ; целое число  i ;начальное  начало dout  =  0 ; конец// Всегда  выполняем выборку в цифровых блоках для нарастающего фронта тактового сигнала @ ( posedge  clk )  beginобразец  =  V ( vin ); ref  =  V ( vref );for ( i = 0 ;  i < bits ;  i = i + 1 )  beginref  =  ref / 2 ;если ( образец  >  ref )  begin dout [ i ]  <=  # ( td )  1 ; образец  =  образец  -  ссылка ; конец else dout [ i ]  <=  # ( td )  0 ; конец конец конечный модуль

См. Также [ править ]

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • И. Миллер и Т. Кассанес, "Verilog-AMS упрощает моделирование смешанных сигналов", Технические материалы Международной конференции 2000 г. по моделированию и моделированию микросистем , стр. 305–308, Доступно: https://web.archive.org /web/20070927051749/http://www.nsti.org/publ/MSM2000/T31.01.pdf

Общие [ править ]

Реализации с открытым исходным кодом [ править ]

  • OpenVAMS, парсер VerilogAMS-1.3 с открытым исходным кодом и внутренним представлением в стиле VPI.
  • Проект V2000 - парсер и разработчик Verilog-AMS