В этом примере показано, как настроить флэш-аналого-цифровой преобразователь (АЦП) путем добавления вероятности метастазирования в качестве нарушения. Вы можете измерить обесценение вероятности метастазирования, чтобы подтвердить свою реализацию. Пример также показывает эффект метастабельности на динамическую эффективность флэш-АЦП. Когда цифровой выход от компаратора неоднозначен (ни нуля, ни единицы), выход определяется как метастаблируемый. Неоднозначный выход выражается как NaN
. Эта модель примера использует блок MATLAB function, чтобы добавить нарушение метастойкости к архитектуре flash ADC. Другая подсистема сообщает о вероятности метастазирования на лету.
Извлеките внутреннюю структуру флэш-АЦП, чтобы добавить индивидуальное ухудшение. Добавьте блок Flash ADC из библиотеки Mixed-Signal Blockset™ в холст Simulink ®. Смотрите под маской, чтобы найти плоскую структуру АЦП. Скопируйте и вставьте полную структуру в другое новое пустое полотно.
Удалите блок Clock Generator, поскольку он не используется для обеспечения синхроимпульса преобразования запуска. Для этой цели используется внешняя подсистема Stimuli. Теперь flash ADC состоит из трех основных компонентов:
Флэш-компараторы АЦП
Счетчик таковых
Выход данных
Флэш-компараторы АЦП
N-битный флэш-АЦП использует компараторы параллельно. Сама подсистема Flash ADC Comparators основана на коде MATLAB ®. Перед началом симуляции компараторы вычисляют отдельные опорные напряжения и сохраняют их в векторе. На каждом заданном ребре вход сравнивается с ссылками, используя способность MATLAB сравнивать векторы. Это генерирует код термометра, подобный реальному флэш-АЦП, без задержки от N отдельных блоков компаратора в модели.
Чтобы создать 10- биты АЦП, установите значение Number of бит (nbits) равным 10
, Входная Область значений для [-1 1]
и INL- Вектора для 0
. Тип триггера сохраняется на значении по умолчанию Rising edge
.
Счетчик таковых
Подсистема Fault Aware Таковых Counter реализует нарушения во флэш- архитектуру АЦП. Реальные АЦП обрабатывают преобразование из термометра в двоичный через логические схемы. Эта подсистема принимает сумму элементов вектора, сохраненную компараторами, и применяет эту сумму к интерполяционной таблице, чтобы симулировать отсутствующие коды, иначе известные как пузыри.
Установите параметры счетчика Fault Aware Ones: Number of Bits (nbits) в 10
, Входная Область значений для [-1 1]
, и пузырьковые коды в []
. Тип триггера сохраняется на значении по умолчанию Rising edge
.
Выход данных
Подсистема Output Data Type обрабатывает преобразование типа данных на выходе счетчика Fault Account One в тип данных, заданный в маске Flash ADC.
Разорвать ссылку между блоком Output Data Type и его ссылочной библиотекой. Установите входную динамическую область значений на [-1 1]
и Биполярный тип данных для double
.
Чтобы добавить нарушение метастабильности, поместите триггируемую подсистему с Блоком MATLAB function после подсистемы Flash ADC Comparators. Этот Блок MATLAB function устанавливает сигналы кода термометра в NaNs
с вероятностью от генератора равномерных случайных чисел. Блок сбрасывает сигналы на следующем релевантном ребре, из-за чего используется триггируемая подсистема. Используйте этот код для реализации Подсистемы Ухудшения Метастабильности.
% function y = metastability(u, Probability) % mult = ones(size(u)); % mult(rand(size(u)) < Probability(1)) = NaN; % metastability = NaN % y = u .* mult; % end
Предоставьте вероятность метастазирования, которую вы хотите реализовать через постоянный блок, соединенный с портом Вероятности.
Чтобы измерить нарушение метастабильности, подсчитайте количество NaNs
встретились и разделите это на количество суммарных выходов компаратора, сгенерированных во время полной симуляции. Простая реализация Simulink измерения вероятности метастазирования является:
Входные порты:
Выход АЦП - Получает выходной цифровой код, сгенерированный флэш-АЦП.
Сигнал готовности - получает сигнал готовности, который представляет скорость, с которой происходит цифровое преобразование. Цифровой код генерируется на каждом восходящем ребре сигналов, принимаемых портом 'Ready signal'.
Модель ниже объединяет настраиваемый АЦП вспышки с его выходом, соединенным с системой измерения вероятности метастазирования. В модели у вас есть 10-битный флэш-АЦП с вероятностью метастазирования 1e-6, добавленной. Подсистема Stimuli генерирует аналоговый сигнал частотой 100 Гц и часы начального преобразования с частотой 100 МГц. АЦП работает со скоростью, заданной тактовой частотой преобразования запуска. Панель мониторинга возможностей обеспечивает поведение числа вероятностей с течением времени. Блок отображения показывает текущую вероятность, измеряемую подсистемой. Вы должны запустить симуляцию в течение достаточно длительного периода, чтобы увидеть число вероятностей, рассчитанное при желаемом значении, в этом случае 1e-6.
NBits=10; model1='flashAdc_metastability.slx'; open_system(model1); open_system([bdroot,'/Scope']); sim(model1);
Можно наблюдать эффект метастабельности на динамическую эффективность АЦП. Модель показывает две настройки флэш-систем АЦП: одна с метастабильностью и другая без. Блок постобработки, который принимает нарушенный цифровой выход и преобразует NaNs
в нули. Это связано с тем, что цифровой выход с NaNs
не может быть распознан анализатором спектра как действительный сигнал для спектрального анализа. Прикрепите блок измерения AC ADC, чтобы наблюдать различные показатели эффективности, такие как ОСШ, ENOB, шумовой пол и так далее. Результаты симуляции показывают, что анализ AC вызывает значительное падение эффективности для АЦП с метастабильностью, как показано более низким уровнем ENOB и более высоким уровнем шума.
model2='flashAdc_metastability_Effect.slx';
open_system(model2);
sim(model2);
ADC AC Measurement | Flash ADC | Источник синхроимпульса дискретизации