Статьи

Поддержка аналого-цифрового моделирования на языке Verilog-AMS в Delta Design 3.5

30.09.2021 Simtera Verilog-AMS

Verilog-AMS – подмножество языка Verilog, в котором акроним «AMS» говорит сам за себя – Analog Mixed-Signal (аналоговый, со смешанными сигналами). Языковые расширения в Verilog-AMS дают разработчикам радиоэлектроники описывать работу как аналоговых, так и цифровых электронных компонентов и схем. Использование Verilog-AMS будет интересно промышленным предприятиям, выпускающим радиоэлектронные изделия на базе печатных плат, а также предприятиям-разработчикам интегральных микросхем и микросборок.

Основные особенности расширения Verilog-AMS:

  1. Цепи аналогового и цифрового типов могут описываться в одном и том же модуле, 
  2. Процедурные блоки always, initial, analog могут использоваться в одном и том же блоке, 
  3. Чтение и запись аналоговых и цифровых цепей доступно из любого контекста в одном модуле, 
  4. Значение цифровым цепям может быть назначено в любом контексте вне процедурного блока analog,
  5. Аналоговые значение (токи и напряжения) могут быть назначены только внутри процедурного блока analog,
  6. Семантика блоков initial и always остается такой же, как в языке Verilog,
  7. Добавляется новый оператор connect для соединения модулей из аналогового и цифровых доменов

В качестве примера можно рассмотреть работу аналого-цифровой части, в которой описана работа тактового генератора в цифровой части, а в аналоговой – подключенного к нему резистора.

Описание аналоговой части:

`include "disciplines.vams"
module resistor (p, n);
parameter real r=5; // resistance (Ohms)
inout p, n;
electrical p, n;
analog
I(p,n) <+ V(p,n) / r ;
endmodule

Цифровой:

module clock(output reg clk);
always
begin
    #10 clk <= 1;
    #10 clk <= 0;
end
endmodule

Соединение аналогового и цифрового доменов:

`include "disciplines.vams"
connectmodule d2a (out, in);
input in;
output out;
electrical out;
parameter integer a = 5;
parameter integer b = 0;

analog @(posedge in)
begin
if (in)
     V(out) <+ a;
else
     V(out) <+ b;
end
endmodule

Тестовая часть (тестбенч)

`timescale 10ns / 10ps
`include "disciplines.vams"
`include "digital.v"

module testbench();
electrical out_v;

wire iner;
resistor R (in, out_v);
clock Clocker(iner);
endmodule

Поддерживаемая версия Verilog-AMS - 2.4.0 (стандарт Accelera, May 30, 2014).

Для разработки аналого-цифровых частей радиоэлектронных изделий в Delta Design предусмотрен текстовый редактор с подсветкой синтаксиса и авто дополнениями. Начиная с версии 3.5 – добавлена подсистема распознавания конструкций языка (парсер), подсистема компиляции распознанных конструкций языка (компилятор), подсистема цифрового моделирования, вывода на экран результатов моделирования. Также необходимо упомянуть о наличии в САПР подсистемы аналогового моделирования SimOne и возможности аналого-цифрового взаимодействия между симуляторами. На рисунке представлен графический интерфейс Delta Design 3.5 с приведенным выше примером. Его же (пример) будем использовать для демонстрации работы с симулятором в серии статей по Verilog-AMS в Delta Design 3.5. 


Не нашли то, что искали?

Загляните на наш Форум или воспользуйтесь поиском по Базе знаний

Найти

Будьте в курсе новостей и спецпредложений

Авторизация
Чтобы продолжить покупку, пожалуйста, авторизируйтесь на сайте.
Забыли пароль?