Выпуск #3/2014
Г.Нанн, Ф.Дельгуст, А.Хан, А.Верма, Б.Геден
Методы цифровой верификации для моделирования смешанных СНК в Synopsys VCS и CustomSim
Методы цифровой верификации для моделирования смешанных СНК в Synopsys VCS и CustomSim
Просмотры: 3648
Системы на кристалле (СнК) новых поколений содержат все больше аналоговых блоков. Аналоговые блоки также необходимы для работы с несколькими доменами питания, генерации тактовых сигналов, цифроаналоговых и аналого-цифровых преобразований. Для разработки таких СнК необходима среда, сочетающая аналоговые и цифровые методы верификации. Tакие возможности предоставляет технология смешанного моделирования Synopsys AMS.
Теги: cad soc synopsys сапр системы на кристалле
В традиционных подходах к верификации аналоговых схем все еще не хватает некоторых ключевых методов, которые эффективно используются для верификации цифровых схем в течение уже многих лет. Как правило, компоненты отладочной среды, основанной на SPICE, сложно повторно использовать
для верификации систем на кристалле, а скорость аналогового моделирования может быть недостаточной для верификации проекта в заданные сроки. Оперируя проверенными и хорошо зарекомендовавшими себя подходами VMM и UVM, технология верификации Synopsys VCS-АMS предоставляет разработчикам аналоговых схем и инженерам по верификации методологию, которая позволяет им:
составлять планы аналоговой верификации;
автоматически генерировать тестовые воздействия;
объединять эталонные модели с различным уровнем абстракции;
моделировать аналоговые воздействия на базе функциональных моделей шин на основе транзакций;
квантовать сигналы на аналоговых узлах для мониторинга входных сигналов;
использовать утверждения для аналоговых узлов;
измерять величину кодового и функционального покрытий;
управлять системой отладочных тестов.
В дополнение к этим возможностям, эта статья описывает масштабируемую методологию для верификации аналоговых IP-блоков, которая может быть повторно использована благодаря встроенным в СНК верификационным моделям. В зависимости от требуемой точности, эти модели могут быть реализованы на HDL или Verilog-AMS.
Так как необходимость размещать на кристалле все больше аналоговых IP-блоков возрастает, усложняется разработка среды верификации, которая может вместить и цифровые, и аналоговые сигналы. Как показано на рис.1, технология VCS-AMS дополняет традиционную среду цифровой верификации несколькими компонентами (такими, как аналого-цифровые и цифроаналоговые преобразователи или генераторы тактовых сигналов), которые дают возможность управлять аналоговыми узлами схемы.
Такая архитектура позволяет определить время начала и остановки генерации аналоговых сигналов, управляет квантованием результатов на выходах – например, для реализации типичного сценария работы электронного устройства: инициализации и конфигурирования регистров подсистемы, ожидания выхода на рабочий режим генератора тактового сигнала, генерации линейно-изменяющегося сигнала для АЦП и считывания сигнала с внутреннего цифрового выхода по внешнему прерыванию.
Это архитектура позволяет применять различные базовые классы и приложения VMM и UVM. Регистры могут инициализироваться с помощью RAL, а домены питания моделируются посредством VMM-LP. В зависимости от желаемой точности, АЦП может быть представлен либо списком цепей (netlist) транзисторного уровня, либо эталонной моделью, написанной на Verilog-AMS или SystemVerilog. Уровень детализации эталонной модели меньше, что обеспечивает более быстрое моделирование. Как показано на рис.2, методология VCS-AMS также имеет встроенные базовые классы, что позволяет подавать на аналоговые входы сигналы заданной формы.
Разработчика может заинтересовать возможность прямой подачи сигналов на любой вход аналогового IP-блока. Это полезно для работы с конвейеризованными IP-блоками или многокаскадными схемами – сигналы можно подавать непосредственно на входы каскадов, не тратя время на моделирование предыдущих. А язык SystemVerilog, в отличие от SPICE, позволяет описывать сигналы всего несколькими строками кода.
Архитектура
Технология AMS позволяет инженеру с легкостью включать Verilog-AMS- или SPICE-модели аналоговой схемы в отладочную среду SystemVerilog.
Важным аспектом предлагаемой методологии является возможность задавать источники и приемники аналогового сигнала непосредственно внутри компонентов или модулей отладочной среды на SystemVerilog. Для этих целей VCS предлагает следующий механизм коммуникации между аналоговым и цифровыми доменами:
для достижения высокой точности моделирования источником и приемником аналогового сигнала служат переменные типа real;
для преобразования аналогового сигнала в цифровой источником и приемником сигнала служат переменные типа logic.
Важно отметить, что все взаимодействие между SystemVerilog и SPICE ведется при помощи переменных типа real. Это дает возможность, к примеру, сгруппировать все аналоговые узлы тестового блока в рамках отдельного интерфейса SystemVerilog. При этом точно так же, как и при отладке чисто цифровых схем, могут быть использованы конструкции modport и clocking blocks для задания направления аналоговых портов (input, output, inout) и синхронизации с опорным сигналом, например синхросигналом схемы.
В главе, посвященной обработке утверждений, будет показана возможность группировки утверждений в рамках интерфейса. Подобный подход позволяет эффективно использовать интерфейсы как в процессе моделирования схемы, так и для повторного использования в других проектах либо для создания автономных IP-ядер с последующей их интеграцией в системы на кристалле. С решением вопросов взаимодействия между SPICE и SystemVerilog появляется возможность использовать техники, применимые для цифрового моделирования. К примеру, тестовое окружение может включать в себя:
интерфейсы типа "аналоговый сигнал – переменная типа real" и наоборот;
генераторы сигналов для аналоговых портов и узлов;
узлы квантования аналоговых выходов, которые могут взаимодействовать с функциональными моделями блоков для проверки правильности работы аналоговых узлов, подлежащих тестированию;
конфигурации, которые могут быть доступны для тестируемых SPICE-блоков;
утверждения, которые можно устанавливать как на порты SPICE-блоков, подлежащих тестированию, так и на внутренние узлы этих блоков.
Есть возможность анализировать тестовое покрытие с учетом узлов аналоговых цепей. К примеру, если напряжение на узле меняется в пределах
0,4–0,8 В, можно связать это переключение с метрикой покрытия переключений и в дальнейшем проверять, что выбранные сигналы переключились так, как и ожидается. На рис.3 приведена блок-схема типичного тестового окружения VCS-AMS, с помощью которого можно провести функциональную верификацию аналогового IP-ядра.
Дополнительное замечание касается блоков самопроверки тестового окружения с аналоговыми блоками. Если аналоговая подсистема реализует простейшее преобразование y = f(x), в этом случае эталонная функциональная модель может быть написана на SystemVerilog с использованием переменных типа real и математических функций для моделирования передаточной функции. В случае, если аналоговый блок выполняет более сложную функцию, может потребоваться использование таких языков, как Verilog-AMS.
Утверждения при моделировании AMS-систем
Технология VCS-AMS позволяет формулировать утверждения при моделировании смешанных аналого-цифровых блоков. Непосредственные, параллельные утверждения и последовательности запускаются при помощи аналоговых событий.
Непосредственные утверждения. Аналоговые утверждения могут моделироваться при помощи непосредственных утверждений, которые описываются событием дискретизации и свойством, подлежащим проверке. Обычно событие дискретизации – это фронт цифрового синхросигнала, а свойство представляет собой математическое выражение со скалярными переменными типа real. На рис.4 показан пример непрерывного утверждения, проверяющего, что уровень аналогового сигнала ниже 1,8 В на каждом переднем фронте синхросигнала clk.
Например, так можно проверять соответствие опорного напряжения, генерируемого тестируемым аналоговым блоком, допустимым пределам. Приведенный псевдокод показывает, как реализуется проверка утверждения в SystemVerilog:
always @(posedge clk)
assert(top.analog_node <= 1.8)
else $error ("Node is > VDD");
Обратите внимание, что так описываются несинхронные по своей природе аналоговые утверждения с проверкой аналоговых величин (реализуется аналоговое событие).
Параллельные утверждения применяются для проверки возникновения более сложных событий. Параллельные утверждения – это последовательность высказываний, определяющих, что проверяемые свойства истинны. Так обычно проверяются многоступенчатые протоколы и узлы со сложным поведением. К примеру, генератор с ФАПЧ должен выйти на рабочий режим и обеспечить генерацию сигнала с требуемой частотой в пределах предопределенного временного интервала, задаваемого числом импульсов тактовой частоты. Другим примером может быть проверка взаимодействия между двумя аналоговыми сигналами – например, если уровень сигнала i больше 90% от напряжения питания (UDD = 1,8 В), то уровень сигнала z должен быть больше 90% от UDD на следующем или последующем периоде тактового сигнала.
Реализовать это утверждение можно таким образом:
assert property @(posedge clk)
(i>1.62) |-> ##[1:2] (z>1.62);
Последовательности. Аналоговые утверждения могут явно задаваться в виде последовательностей с блокирующим оператором |->, который разрешает выполнение следующей по порядку последовательности только по приходу аналогового события.
Ниже показано, как описать блокирующую импликацию. Первый элемент последовательности s выполняется по приходу следующего события top.analog_clk:
wire clk;
assign clk=top.analog_clk;
sequence s;
@(posedge clk)
(i>V_HIGH) |-> (z>V_HIGH);
endsequence
property p;
(a<V_LOW) |-> s;
endproperty
assert propery (p);
Аналоговые утверждения могут явно задаваться и в виде последовательностей с использованием неблокирующего оператора |=>, при наличии которого идущие друг за другом последовательности выполняются одна за другой в течение одного аналогового события. В данном примере показано, как описать неблокирующую импликацию:
property p;
@(posedge clk)
(i>V_HIGH) |-> (z>V_HIGH);
endproperty
assert propery (p);
Здесь в первую очередь вычисляется условие i. Если оно истинно, в тот же момент времени вычисляется условие z.
Аналоговые события. Выше было показано, как запускать утверждения при помощи цифрового синхросигнала. Хотя запускающим событием был аналоговый сигнал, для простоты он был конвертирован в тип wire. Однако аналоговое событие также может быть запускающим:
always @ (analog_clk)
assert(top.analog_node <= 1.8)
else $error("Node is > VDD");
Блоки проверки для верификации аналоговых и смешанных схем
Так как технология VCS-AMS дает возможность реализовать аналоговые утверждения, необходимы и аналоговые блоки проверки. Часто применяемые блоки проверки могут быть реализованы как verilog-модули, которые могут быть включены в проект и привязаны к любому аналоговому узлу. Технология также обеспечивает моделирование этих компонентов как транзакторов, производных от vmm_xactor и uvm_component.
Главное преимущество этих компонентов – возможность управлять из VMM/UVM-окружения их запуском и остановкой, а также непосредственно управлять ими при помощи других компонентов.
Блок проверки порогов сигнала. На практике часто необходимо проверять, не вышел ли аналоговый сигнал за заданный предел. Например, напряжение на выходе каскада схемы не должно превышать максимально допустимого входного напряжения для следующих каскадов. Другой пример – напряжение на входе каскада становится отрицательным или превышает заданный порог; такая ситуация может случиться, если два каскада имеют разные домены питания, а соответствующие конверторы уровней в схеме отсутствуют.
VCS предоставляет возможность проверки,не вышло ли напряжение на аналоговом узле за заданные ограничения. Эта проверка может быть выполнена как синхронно, так и асинхронно. На рис.5 первая проверка показывает, что напряжение находится в пределах ожидаемого интервала; однако вторая выдаст ошибку, так как напряжение становится выше заданного.
Блок проверки стабильности сигнала. В некоторых случаях необходимо проверять, что уровень аналогового сигнала остается стабильным в пределах заданной погрешности. Например, источник опорного напряжения должен выдавать стабильное напряжение независимо от изменений процесса, напряжения питания и температуры. VCS позволяет убедиться, что аналоговый сигнал остается в пределах заданного уровня (рис.6.)
Блок проверки скорости нарастания сигнала. Для некоторых блоков необходима проверка скорости нарастания аналогового сигнала. Например, сигнал с компаратора должен нарастать с минимальной скоростью, независимо от изменений процесса, напряжения питания и температуры. На рис.7 первая проверка успешна, так как скорость нарастания сигнала больше ожидаемой величины dU/dt; однако для второй проверки будет выдана ошибка.
Блок проверки частоты. Генераторы с ФАПЧ и подобные схемы должны в рабочем режиме выдавать сигналы с частотой, стабильной в пределах заданной погрешности, независимо от колебаний температуры и напряжения питания. Как показано на рис.8, в первых четырех точках проверка, выполненная блоком, пройдена успешно и частота выходного сигнала равна ожидаемой, но для четвертой точки будет выдана ошибка, так как период сигнала уменьшился.
Источники опорного напряжения. Технология VCS-AMS включает несколько генераторов сигналов, которые могут быть подключены как к внутренним, так и к внешним аналоговым узлам.
Как показано на рис.9, возможно чередование сигналов нескольких генераторов во времени.
Генераторы входного сигнала могут быть скомбинированы для генерации сигналов более сложной формы. Типичная ситуация – добавление белого шума поверх несущей, сгенерированной источником синусоидального сигнала. Также может быть полезным моделировать внешние искажения или определять коэффициент ослабления синфазного сигнала дифференциального усилителя или других подобных устройств.
Как показано на рис.10, такой сигнал может быть представлен небольшими колебаниями напряжения, наложенными на несущую.
Так как генераторы выдают выходное напряжение с одинаковым шагом дискретизации, важно убедится, что форма сигнала достаточно точная и не слишком замедляет моделирование. Приемлемый компромисс – это десять квантов на период (т.е. десятикратная частота дискретизации).
Генераторы напряжения. В SPICE-моделировании на входы часто подаются пилообразные, синусоидальные или прямоугольные сигналы (рис.11). Такие сигналы могут быть реализованы в VCS c помощью генераторов сигналов. Инженер может задать характеристики сигналов – минимальное и максимальное напряжения Umin, Umax, частота f, скважность.
В дополнение к вышеупомянутым сигналам, VCS обеспечивает генератор напряжения произвольной формы, который может применяться для подачи на аналоговые узлы сигнала произвольной формы (рис.12).
В дополнение к предопределенным сигналам разработчик может создать генератор сигналов любой необходимой ему формы.
Управление генераторами напряжения
Генераторы напряжения могут быть легко сконфигурированы, сигналы с их выходов подаются на аналоговые узлы явным вызовом get_voltage(). Но можно поступить еще проще, применив универсальный VMM-генератор, основанный на vmm_xactor. Этот метод обеспечивает лучшую интеграцию, прямой доступ к предопределенным SystemVerilog интерфейсам и лучшую управляемость. Кроме этого, есть возможность получения уведомлений о достижении сигналом генератора половины периода. Это важно для изменения его параметров при достижении заданного состояния. Более того, генератор сигнала может быть запущен и остановлен пользователем с помощью VMM-методов start_xactor и stop_xactor.
* * *
Главное преимущество цифрового и смешанного моделирования – возможность контролировать его точность и скорость. На определенных этапах верификации, при которых требуется высокая производительность моделирования, уместно задавать низкую точность и высокую скорость. Увеличив точность для других тестов, блоки устройства проверяются с высокой достоверностью без изменения структуры тестового окружения. Все это, в сочетании со встроенными моделями покрытия, поставляемыми с технологией Synopsys VCS-AMS, обеспечивает надежное решение для верификации, снижая риски и увеличивая уверенность в работоспособности проекта. ⦁
для верификации систем на кристалле, а скорость аналогового моделирования может быть недостаточной для верификации проекта в заданные сроки. Оперируя проверенными и хорошо зарекомендовавшими себя подходами VMM и UVM, технология верификации Synopsys VCS-АMS предоставляет разработчикам аналоговых схем и инженерам по верификации методологию, которая позволяет им:
составлять планы аналоговой верификации;
автоматически генерировать тестовые воздействия;
объединять эталонные модели с различным уровнем абстракции;
моделировать аналоговые воздействия на базе функциональных моделей шин на основе транзакций;
квантовать сигналы на аналоговых узлах для мониторинга входных сигналов;
использовать утверждения для аналоговых узлов;
измерять величину кодового и функционального покрытий;
управлять системой отладочных тестов.
В дополнение к этим возможностям, эта статья описывает масштабируемую методологию для верификации аналоговых IP-блоков, которая может быть повторно использована благодаря встроенным в СНК верификационным моделям. В зависимости от требуемой точности, эти модели могут быть реализованы на HDL или Verilog-AMS.
Так как необходимость размещать на кристалле все больше аналоговых IP-блоков возрастает, усложняется разработка среды верификации, которая может вместить и цифровые, и аналоговые сигналы. Как показано на рис.1, технология VCS-AMS дополняет традиционную среду цифровой верификации несколькими компонентами (такими, как аналого-цифровые и цифроаналоговые преобразователи или генераторы тактовых сигналов), которые дают возможность управлять аналоговыми узлами схемы.
Такая архитектура позволяет определить время начала и остановки генерации аналоговых сигналов, управляет квантованием результатов на выходах – например, для реализации типичного сценария работы электронного устройства: инициализации и конфигурирования регистров подсистемы, ожидания выхода на рабочий режим генератора тактового сигнала, генерации линейно-изменяющегося сигнала для АЦП и считывания сигнала с внутреннего цифрового выхода по внешнему прерыванию.
Это архитектура позволяет применять различные базовые классы и приложения VMM и UVM. Регистры могут инициализироваться с помощью RAL, а домены питания моделируются посредством VMM-LP. В зависимости от желаемой точности, АЦП может быть представлен либо списком цепей (netlist) транзисторного уровня, либо эталонной моделью, написанной на Verilog-AMS или SystemVerilog. Уровень детализации эталонной модели меньше, что обеспечивает более быстрое моделирование. Как показано на рис.2, методология VCS-AMS также имеет встроенные базовые классы, что позволяет подавать на аналоговые входы сигналы заданной формы.
Разработчика может заинтересовать возможность прямой подачи сигналов на любой вход аналогового IP-блока. Это полезно для работы с конвейеризованными IP-блоками или многокаскадными схемами – сигналы можно подавать непосредственно на входы каскадов, не тратя время на моделирование предыдущих. А язык SystemVerilog, в отличие от SPICE, позволяет описывать сигналы всего несколькими строками кода.
Архитектура
Технология AMS позволяет инженеру с легкостью включать Verilog-AMS- или SPICE-модели аналоговой схемы в отладочную среду SystemVerilog.
Важным аспектом предлагаемой методологии является возможность задавать источники и приемники аналогового сигнала непосредственно внутри компонентов или модулей отладочной среды на SystemVerilog. Для этих целей VCS предлагает следующий механизм коммуникации между аналоговым и цифровыми доменами:
для достижения высокой точности моделирования источником и приемником аналогового сигнала служат переменные типа real;
для преобразования аналогового сигнала в цифровой источником и приемником сигнала служат переменные типа logic.
Важно отметить, что все взаимодействие между SystemVerilog и SPICE ведется при помощи переменных типа real. Это дает возможность, к примеру, сгруппировать все аналоговые узлы тестового блока в рамках отдельного интерфейса SystemVerilog. При этом точно так же, как и при отладке чисто цифровых схем, могут быть использованы конструкции modport и clocking blocks для задания направления аналоговых портов (input, output, inout) и синхронизации с опорным сигналом, например синхросигналом схемы.
В главе, посвященной обработке утверждений, будет показана возможность группировки утверждений в рамках интерфейса. Подобный подход позволяет эффективно использовать интерфейсы как в процессе моделирования схемы, так и для повторного использования в других проектах либо для создания автономных IP-ядер с последующей их интеграцией в системы на кристалле. С решением вопросов взаимодействия между SPICE и SystemVerilog появляется возможность использовать техники, применимые для цифрового моделирования. К примеру, тестовое окружение может включать в себя:
интерфейсы типа "аналоговый сигнал – переменная типа real" и наоборот;
генераторы сигналов для аналоговых портов и узлов;
узлы квантования аналоговых выходов, которые могут взаимодействовать с функциональными моделями блоков для проверки правильности работы аналоговых узлов, подлежащих тестированию;
конфигурации, которые могут быть доступны для тестируемых SPICE-блоков;
утверждения, которые можно устанавливать как на порты SPICE-блоков, подлежащих тестированию, так и на внутренние узлы этих блоков.
Есть возможность анализировать тестовое покрытие с учетом узлов аналоговых цепей. К примеру, если напряжение на узле меняется в пределах
0,4–0,8 В, можно связать это переключение с метрикой покрытия переключений и в дальнейшем проверять, что выбранные сигналы переключились так, как и ожидается. На рис.3 приведена блок-схема типичного тестового окружения VCS-AMS, с помощью которого можно провести функциональную верификацию аналогового IP-ядра.
Дополнительное замечание касается блоков самопроверки тестового окружения с аналоговыми блоками. Если аналоговая подсистема реализует простейшее преобразование y = f(x), в этом случае эталонная функциональная модель может быть написана на SystemVerilog с использованием переменных типа real и математических функций для моделирования передаточной функции. В случае, если аналоговый блок выполняет более сложную функцию, может потребоваться использование таких языков, как Verilog-AMS.
Утверждения при моделировании AMS-систем
Технология VCS-AMS позволяет формулировать утверждения при моделировании смешанных аналого-цифровых блоков. Непосредственные, параллельные утверждения и последовательности запускаются при помощи аналоговых событий.
Непосредственные утверждения. Аналоговые утверждения могут моделироваться при помощи непосредственных утверждений, которые описываются событием дискретизации и свойством, подлежащим проверке. Обычно событие дискретизации – это фронт цифрового синхросигнала, а свойство представляет собой математическое выражение со скалярными переменными типа real. На рис.4 показан пример непрерывного утверждения, проверяющего, что уровень аналогового сигнала ниже 1,8 В на каждом переднем фронте синхросигнала clk.
Например, так можно проверять соответствие опорного напряжения, генерируемого тестируемым аналоговым блоком, допустимым пределам. Приведенный псевдокод показывает, как реализуется проверка утверждения в SystemVerilog:
always @(posedge clk)
assert(top.analog_node <= 1.8)
else $error ("Node is > VDD");
Обратите внимание, что так описываются несинхронные по своей природе аналоговые утверждения с проверкой аналоговых величин (реализуется аналоговое событие).
Параллельные утверждения применяются для проверки возникновения более сложных событий. Параллельные утверждения – это последовательность высказываний, определяющих, что проверяемые свойства истинны. Так обычно проверяются многоступенчатые протоколы и узлы со сложным поведением. К примеру, генератор с ФАПЧ должен выйти на рабочий режим и обеспечить генерацию сигнала с требуемой частотой в пределах предопределенного временного интервала, задаваемого числом импульсов тактовой частоты. Другим примером может быть проверка взаимодействия между двумя аналоговыми сигналами – например, если уровень сигнала i больше 90% от напряжения питания (UDD = 1,8 В), то уровень сигнала z должен быть больше 90% от UDD на следующем или последующем периоде тактового сигнала.
Реализовать это утверждение можно таким образом:
assert property @(posedge clk)
(i>1.62) |-> ##[1:2] (z>1.62);
Последовательности. Аналоговые утверждения могут явно задаваться в виде последовательностей с блокирующим оператором |->, который разрешает выполнение следующей по порядку последовательности только по приходу аналогового события.
Ниже показано, как описать блокирующую импликацию. Первый элемент последовательности s выполняется по приходу следующего события top.analog_clk:
wire clk;
assign clk=top.analog_clk;
sequence s;
@(posedge clk)
(i>V_HIGH) |-> (z>V_HIGH);
endsequence
property p;
(a<V_LOW) |-> s;
endproperty
assert propery (p);
Аналоговые утверждения могут явно задаваться и в виде последовательностей с использованием неблокирующего оператора |=>, при наличии которого идущие друг за другом последовательности выполняются одна за другой в течение одного аналогового события. В данном примере показано, как описать неблокирующую импликацию:
property p;
@(posedge clk)
(i>V_HIGH) |-> (z>V_HIGH);
endproperty
assert propery (p);
Здесь в первую очередь вычисляется условие i. Если оно истинно, в тот же момент времени вычисляется условие z.
Аналоговые события. Выше было показано, как запускать утверждения при помощи цифрового синхросигнала. Хотя запускающим событием был аналоговый сигнал, для простоты он был конвертирован в тип wire. Однако аналоговое событие также может быть запускающим:
always @ (analog_clk)
assert(top.analog_node <= 1.8)
else $error("Node is > VDD");
Блоки проверки для верификации аналоговых и смешанных схем
Так как технология VCS-AMS дает возможность реализовать аналоговые утверждения, необходимы и аналоговые блоки проверки. Часто применяемые блоки проверки могут быть реализованы как verilog-модули, которые могут быть включены в проект и привязаны к любому аналоговому узлу. Технология также обеспечивает моделирование этих компонентов как транзакторов, производных от vmm_xactor и uvm_component.
Главное преимущество этих компонентов – возможность управлять из VMM/UVM-окружения их запуском и остановкой, а также непосредственно управлять ими при помощи других компонентов.
Блок проверки порогов сигнала. На практике часто необходимо проверять, не вышел ли аналоговый сигнал за заданный предел. Например, напряжение на выходе каскада схемы не должно превышать максимально допустимого входного напряжения для следующих каскадов. Другой пример – напряжение на входе каскада становится отрицательным или превышает заданный порог; такая ситуация может случиться, если два каскада имеют разные домены питания, а соответствующие конверторы уровней в схеме отсутствуют.
VCS предоставляет возможность проверки,не вышло ли напряжение на аналоговом узле за заданные ограничения. Эта проверка может быть выполнена как синхронно, так и асинхронно. На рис.5 первая проверка показывает, что напряжение находится в пределах ожидаемого интервала; однако вторая выдаст ошибку, так как напряжение становится выше заданного.
Блок проверки стабильности сигнала. В некоторых случаях необходимо проверять, что уровень аналогового сигнала остается стабильным в пределах заданной погрешности. Например, источник опорного напряжения должен выдавать стабильное напряжение независимо от изменений процесса, напряжения питания и температуры. VCS позволяет убедиться, что аналоговый сигнал остается в пределах заданного уровня (рис.6.)
Блок проверки скорости нарастания сигнала. Для некоторых блоков необходима проверка скорости нарастания аналогового сигнала. Например, сигнал с компаратора должен нарастать с минимальной скоростью, независимо от изменений процесса, напряжения питания и температуры. На рис.7 первая проверка успешна, так как скорость нарастания сигнала больше ожидаемой величины dU/dt; однако для второй проверки будет выдана ошибка.
Блок проверки частоты. Генераторы с ФАПЧ и подобные схемы должны в рабочем режиме выдавать сигналы с частотой, стабильной в пределах заданной погрешности, независимо от колебаний температуры и напряжения питания. Как показано на рис.8, в первых четырех точках проверка, выполненная блоком, пройдена успешно и частота выходного сигнала равна ожидаемой, но для четвертой точки будет выдана ошибка, так как период сигнала уменьшился.
Источники опорного напряжения. Технология VCS-AMS включает несколько генераторов сигналов, которые могут быть подключены как к внутренним, так и к внешним аналоговым узлам.
Как показано на рис.9, возможно чередование сигналов нескольких генераторов во времени.
Генераторы входного сигнала могут быть скомбинированы для генерации сигналов более сложной формы. Типичная ситуация – добавление белого шума поверх несущей, сгенерированной источником синусоидального сигнала. Также может быть полезным моделировать внешние искажения или определять коэффициент ослабления синфазного сигнала дифференциального усилителя или других подобных устройств.
Как показано на рис.10, такой сигнал может быть представлен небольшими колебаниями напряжения, наложенными на несущую.
Так как генераторы выдают выходное напряжение с одинаковым шагом дискретизации, важно убедится, что форма сигнала достаточно точная и не слишком замедляет моделирование. Приемлемый компромисс – это десять квантов на период (т.е. десятикратная частота дискретизации).
Генераторы напряжения. В SPICE-моделировании на входы часто подаются пилообразные, синусоидальные или прямоугольные сигналы (рис.11). Такие сигналы могут быть реализованы в VCS c помощью генераторов сигналов. Инженер может задать характеристики сигналов – минимальное и максимальное напряжения Umin, Umax, частота f, скважность.
В дополнение к вышеупомянутым сигналам, VCS обеспечивает генератор напряжения произвольной формы, который может применяться для подачи на аналоговые узлы сигнала произвольной формы (рис.12).
В дополнение к предопределенным сигналам разработчик может создать генератор сигналов любой необходимой ему формы.
Управление генераторами напряжения
Генераторы напряжения могут быть легко сконфигурированы, сигналы с их выходов подаются на аналоговые узлы явным вызовом get_voltage(). Но можно поступить еще проще, применив универсальный VMM-генератор, основанный на vmm_xactor. Этот метод обеспечивает лучшую интеграцию, прямой доступ к предопределенным SystemVerilog интерфейсам и лучшую управляемость. Кроме этого, есть возможность получения уведомлений о достижении сигналом генератора половины периода. Это важно для изменения его параметров при достижении заданного состояния. Более того, генератор сигнала может быть запущен и остановлен пользователем с помощью VMM-методов start_xactor и stop_xactor.
* * *
Главное преимущество цифрового и смешанного моделирования – возможность контролировать его точность и скорость. На определенных этапах верификации, при которых требуется высокая производительность моделирования, уместно задавать низкую точность и высокую скорость. Увеличив точность для других тестов, блоки устройства проверяются с высокой достоверностью без изменения структуры тестового окружения. Все это, в сочетании со встроенными моделями покрытия, поставляемыми с технологией Synopsys VCS-AMS, обеспечивает надежное решение для верификации, снижая риски и увеличивая уверенность в работоспособности проекта. ⦁
Отзывы читателей