Анна Сергеева. Возможности языка Verilog-A для повышения точности и достоверности моделей проектируемых устройств // Компоненты и технологии. — 2016. — №12(185). — С. 128-131
Нередко перед проектировщиками электронной аппаратуры стоит задача создания моделей для таких специфических устройств как солнечные батареи, датчики изображений, тиристоры, TFT, LDMOS или MEMS. Одним из лучших языков для описания поведения подобного оборудования с уверенностью можно назвать Verilog-A.
В статье приведен обзор ключевых возможностей языка с наглядными примерами.
Опубликовано в разделе "Проектирование и схемотехника"
Эта же статья на сайте журнала
О недостатках традиционного способа проектирования
Традиционно, при проектировании аналоговых устройств используется методология снизу вверх (рис. 1).
Рис. 1. Традиционная методология проектирования аналоговых устройств снизу вверх.
Однако, поскольку проработка вопросов системной интеграции располагается на последних стадиях проектирования, такой подход может вылиться в необходимость выполнения дорогостоящих дополнительных действий. Эти затраты являются нежелательными, но их можно избежать, принципиально отказавшись от традиционного подхода.
Улучшенный подход - поведенческое моделирование с Verilog-A
Язык описания аппаратуры Verilog-A позволяет инженерам-схемотехникам создавать наиболее производительные и точные модели электронных систем.
Verilog-A дает возможность применять подход к проектированию аппаратуры сверху вниз, когда моделирование на системном уровне проводится на уже на самых первых этапах (рис. 2). Это позволяет выявить возможные проблемы интеграции и интерфейсного взаимодействия как можно раньше, и устранить их с наименьшими усилиями и затратами [1].
Рис. 2. Улучшенный подход к поведенческому моделированию с помощью средств языка Verilog-A.
Принцип разработки следующий. Проектировщики создают поведенческие модели для каждого ключевого блока схемы и приступают к симуляции системного уровня. Это позволяет убедиться, что все блоки взаимодействуют корректно.
После успешного завершения симуляции системного уровня, специалисты переходят к более детальному проектированию блоков на уровне отдельных устройств. Каждая такая поведенческая модель блока-устройства обязательно проходит калибровку.
В дальнейшем, при проектировании нового оборудования, все успешно откалиброванные модели устройств могут применяться в качестве исходных блоков для симуляции системного уровня. Это может значительно сэкономить рабочее время и силы проектировщиков.
Комбинированная симуляция дает более быстрые результаты
Существует еще одна причина использовать язык Verilog-A для создания поведенческих моделей: возможность совместной симуляции на уровнях блоков и устройств для ускорения всего процесса моделирования, а также и для сокращения числа циклов проектирования [2].
Так, например, при проектировании системы фазовой автоподстройки частоты (ФАПЧ), можно комбинировать и сопоставлять поведенческие модели и модели уровня устройств в разных средах исполнения для оперативного достижения требуемой точности.
Для ФАПЧ, блок-схема которого показана на рис. 3, в таблице 1 приведено сравнение вариантов моделирования устройства в разных средах исполнения, где для каждого блока реализовано и поведенческое представление, и модель уровня устройства.
Рис. 3. Блок-схема ФАПЧ.
Таблица 1. Сравнение комбинаций сред исполнения для моделирования ФАПЧ.
Задающий генератор |
Сравнение фаз |
Генератор, управляемый напряжением |
Делитель частоты |
Время процессорной обработки |
SPICE |
SPICE |
SPICE |
SPICE |
100x |
Verilog-A |
SPICE |
SPICE |
Verilog-A |
64x |
Verilog-A |
SPICE |
Verilog-A |
Verilog-A |
13x |
Verilog-A |
Verilog-A |
Verilog-A |
Verilog-A |
1x |
Представленные варианты сред различаются по набору реализованных представлений уровня блоков. Как видим, чем больше блоков описано на языке Verilog-A, тем быстрее работает модель. Это позволяет проектировщикам сосредоточить внимание на моделировании на уровне блоков, и в то же время, иметь возможность выполнять моделирование и на системном уровне, без длительной проработки.
Таким образом, проектировщики могут достаточно быстро создавать сложные поведенческие модели с помощью стандартных математических уравнений или передаточных функций. Например, частотный модулятор можно создать с помощью всего трех строк кода:
Parameter real FrequencyDeviation = 1 from (0:inf);
//Частотная модуляция, которая базируется на входном сигнале.
InMod = idtmod(FrequencyDeviation*V(Vin), 0, 1, -0.5);
vModulate = CarrierFreq*$abstime() + InMod;
V(Vout) <+ vMid*cos(2*`M_PI*vModulate) + vMid;
Результат обработки такой модели на языке Verilog-A приведен на рис. 4.
Рис. 4. Частотная модуляция цифрового сигнала по модели на языке Verilog-A.
Простое создание сложных моделей
Следует отметить, что язык Verilog-A особенно успешно используется для моделирования блоков смешанного типа.
Так, описание блока квадратурной модуляции с фазовым сдвигом (Quadrature Phase-Shift
Keying, QPSK) можно уместить примерно в 10 строк кода (рис. 5). При этом, работать такой код будет более чем в 20 раз быстрее, чем аналогичное полное представление на языке SPICE (рис. 6).
Рис. 5. Код QPSK-модулятора на языке Verilog-A.
Рис. 6. QPSK-модуляция цифрового сигнала по модели на языке Verilog-A.
Можно легко создавать описание передаточных функций в терминах как линейных s-функций (используя функции laplace_xx языка Verilog-А для преобразования Лапласа), так и дискретных z-функций (с помощью функций zi_xx для z-преобразования).
Например, модель цифрового фильтра Чебышева можно описать всего одной строкой кода:
V(out) <+ zi_zp(V(in), { -1,0, -1,0, -1,0, -1,0},
{ 0.4323169286, 0.8162145664,
0.6874125865, 0.3713689385,
0.6874125865, -0.3713689385,
0.4323169286, -0.8162145664}, 2E-5);
На рис. 7 показаны входной и выходной сигналы для созданной модели.
Рис. 7. Входной и выходной сигналы для модели цифрового фильтра Чебышева на языке Verilog-A.
Область безопасной работы
Для проектировщиков электронных систем язык Verilog-A является удобным инструментом работы, который позволяет выявлять ошибки проектирования на самых ранних стадиях создания аппаратуры.
Verilog-A позволяет проводить целый ряд специфичных проверок, таких как, например, проверка области безопасной работы.
В частности, в процессе симуляции можно отслеживать уровни напряжения в разных контрольных точках и выдавать соответствующие предупреждения, если напряжение какого-либо узла или контакта вышло за границы допустимого безопасного диапазона. Это очень полезная возможность удостовериться, что входное напряжение АЦП находится в пределах диапазона, который он сможет преобразовать.
Дополнительно, можно реализовать проверку, если напряжение поднимается выше установленного уровня более чем на разрешенное время.
На рис. 8 приведен пример результатов симуляции, когда напряжение превысило допустимый предел и выдано соответствующее предупреждение.
Рис. 8. Пример результатов проверки превышения напряжения во время симуляции.
Проектировщики также могут устанавливать границы зон безопасной работы для конкретных транзисторов и средствами языка Verilog-A выдавать предупреждения, если эти устройства не функционируют в указанной зоне, например, линейной или зоне насыщения.
Обобщая вышесказанное, можно сказать, что такие компактные модели на языке Verilog-A можно частично модифицировать и включать практически в любые виды проверок областей безопасной работы.
Специфические измерения
Часто проектировщики сталкиваются с необходимостью выполнения комплексных измерений, которые невозможно реализовать средствами команд .MEASURE языка SPICE.
Verilog-A позволяет измерять очень сложные технические характеристики проектируемых схем, в том числе, показатели дифференциальной и интегральной нелинейности для АЦП и ЦАП, или относительное время установления значения, если конечное стационарное значение не известно, и т. д. Пример результатов такого измерения приведен на рис. 9.
Рис. 9. Результаты измерения относительного времени установления значения.
Поддержка комплексных входных сигналов
С помощью языка Verilog-A можно моделировать комплексные входные воздействия, создание которых средствами SPICE представляется затруднительным или невозможным вовсе.
Приведем пример, когда нужно включить с цепь генератор случайных сигналов и реализовать проверку реакции модели на внешний шум. Для сравнения, добавление случайного шума средствами SPICE выглядит так:
V1 in 0 SIN (0 1 50k)
X1 in out RandomNoise Type=1 Mean=75mv
А добавление того же шума с помощью языка Verilog-A выглядит так:
//добавление случайного шума к входному сигналу
vRandom = $rdist_normal(MySeed, 0, Mean);
V(out) <+ V(in) + vRandom;
Результаты моделирования сигналов с добавленным случайным шумом приведены на рис. 10.
Рис. 10. Сигналы с добавленным случайным шумом.
Кроме того, можно генерировать псевдослучайный битовый поток, или урезанные сигналы, или сигналы с нелинейным сжатием. Также можно создавать различные семпловые данные по заданным шаблонам. Пример результатов такого моделирования приведен на рис. 11.
Рис. 11. Основной сигнал и различные семпловые данные, смоделированные средствами языка Verilog-A.
Заключение
В статье приведен обзор ключевых возможностей языка Verilog-A, используемого инженерами-схемотехниками для создания собственных моделей описания поведения таких нестандартных устройств как датчики изображений, солнечные батареи, тиристоры, MEMS, TFT, и т. д.
Verilog-A дает возможность выполнять поведенческое моделирование системного уровня на более ранних стадиях проектирования и с применением более быстрых сред исполнения. Так что скрытые проблемы будут выявлены и устранены с наименьшими усилиями и затратами.
Расширенные возможности языка позволяют легко и эффективно реализовывать различные специфические проверки, такие как контроль области безопасной работы устройств. Проводить сложные измерения технических характеристик схем: показателей дифференциальной и интегральной нелинейности для АЦП и ЦАП, относительного времени установления значения и т. д. По сравнению с Verilog-A, аналогичная реализация типовыми средствами языка SPICE будет значительно затруднена.
Verilog-A поддерживает моделирование комплексных входных сигналов и воздействий разных видов: случайные сигналы, псевдослучайные битовые потоки, урезанные сигналы и с нелинейным сжатием.
Язык стремительно набирает популярность, поэтому целый ряд стандартных моделей, таких как EKV 3.0, BSIM3.3 и BSIM3.4, уже имеют описание в формате Verilog-A. На их базе проектировщики могут создавать модифицированные и улучшенные версии моделей, в соответствии с требованиями конкретных проектов.
Производители электронных устройств и компонентов постепенно переходят к производству различных нестандартных устройств на основе моделей, предоставленных в формате Verilog-A. По сравнению с SPICE, это более удобное и эффективное описание.
Таким образом, формируется тенденция выхода Verilog-A на уровень стандарта языка описания моделей поведения для проектируемых устройств.
Литература
[1] https://www.mentor.com/tannereda/resources/
[2] http://www.techonline.com/electrical-engineers/education-training/