В этом примере показано, как настроить Аналого-цифровой преобразователь флэш-памяти (ADC) путем добавления вероятности метастабильности как нарушения. Можно измерить нарушение вероятности метастабильности, чтобы подтвердить реализацию. Пример также показывает эффект метастабильности на динамических характеристиках ADC флэш-памяти. Когда цифровой выход от компаратора неоднозначен (ни нуль, ни один), выход задан как метастабильный. Неоднозначный выход описывается как NaN
. Эта модель в качестве примера использует блок MATLAB function, чтобы добавить нарушение метастабильности в архитектуру ADC флэш-памяти. Другая подсистема сообщает о вероятности метастабильности на лету.
Извлеките внутреннюю структуру ADC флэш-памяти, чтобы добавить настроенное нарушение. Добавьте блок Flash ADC от библиотеки Mixed-Signal Blockset™ до холста Simulink®. Посмотрите под маской, чтобы найти плоскую структуру ADC. Скопируйте и вставьте полную структуру к другому новому пустому полотну.
Удалите блок Clock Generator, потому что он не используется, чтобы обеспечить часы преобразования запуска. Подсистема внешних стимулов используется с этой целью. ADC флэш-памяти теперь состоит из трех главных компонентов:
Компараторы ADC Flash
Отказ осведомленный счетчик единиц
Тип выходных данных
Компараторы ADC Flash
ADC флэш-памяти N-bit использует компараторы параллельно. Сама подсистема Компараторов ADC Flash основана на коде MATLAB®. Прежде чем симуляция запускается, компараторы вычисляют отдельные ссылочные напряжения и хранят их в векторе. На каждом заданном ребре вход сравнивается со способностью MATLAB использования ссылок сравнить векторы. Это генерирует код термометра, похожий на действительный ADC флэш-памяти без задержки от отдельных блоков компаратора N в модели.
Чтобы создать ADC на 10-биты, определите Номер битов (nbits) к 10
, Входной диапазон к [-1 1]
, и вектор INL к 0
. Триггерный тип сохранен в его значении по умолчанию Rising edge
.
Отказ осведомленный счетчик единиц
Отказ Осведомленная подсистема Счетчика Единиц реализует нарушения в архитектуре ADC флэш-памяти. Действительные ADCs обрабатывают преобразование от термометра до двоичного файла через логические схемы. Эта подсистема берет сумму элементов вектора, сохраненного компараторами, и применяет ту сумму к интерполяционной таблице, чтобы симулировать недостающие коды, в противном случае известные как пузыри.
Установите Отказ Осведомленные параметры Счетчика Единиц: Количество Битов (nbits) к 10
, Входной диапазон к [-1 1]
, и пузырьковые коды к []
. Триггерный тип сохранен в его значении по умолчанию Rising edge
.
Тип выходных данных
Подсистема Типа Выходных данных обрабатывает преобразование из типа данных при выходе Отказа Осведомленные Единицы В противоречии с типом данных, заданным на маске ADC Flash.
Разорвите связь библиотеки между блоком Output Data Type и его ссылочной библиотекой. Установите Входной динамический диапазон на [-1 1]
и Данные, содержащие положительные и отрицательные значения вводят к double
.
Чтобы добавить нарушение метастабильности, поместите триггируемую подсистему с блоком MATLAB function после подсистемы Компараторов ADC Flash. Блок 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
Обеспечьте вероятность метастабильности, что вы хотите реализовать через постоянный блок, соединенный с портом Probability.
Чтобы измерить нарушение метастабильности, считайте количество NaNs
столкнутый и делят это на количество общего компаратора выходные параметры, сгенерированные во время полной симуляции. Простая реализация Simulink измерения вероятности метастабильности:
Инпорты:
ADC выход - Получает выход цифровой код, сгенерированный ADC флэш-памяти.
Готовый сигнал - Получает готовый сигнал, который представляет уровень, на котором происходит цифровое преобразование. Цифровой код сгенерирован в каждом возрастающем ребре сигналов, полученных портом 'Ready signal'.
Модель ниже комбинирует индивидуально настраиваемый ADC флэш-памяти со своим выходом, соединенным с системой измерения вероятности метастабильности. В модели у вас есть 10-битный ADC флэш-памяти с вероятностью метастабильности добавленного 1e-6. Подсистема Стимулов генерирует аналоговый сигнал 100 Гц и часы преобразования запуска с частотой 100 МГц. ADC действует на уровне, заданном тактовой частотой преобразования запуска. Осциллограф инструментальной панели обеспечивает поведение номера вероятности в зависимости от времени. Блок отображения показывает текущую вероятность, измеряемую подсистемой. Необходимо запустить симуляцию в течение достаточно длинного периода, чтобы видеть номер вероятности, улаженный в требуемом значении, в этом случае 1e-6.
NBits=10; model1='flashAdc_metastability.slx'; open_system(model1); open_system([bdroot,'/Scope']); sim(model1);
Можно наблюдать эффект метастабильности на динамических характеристиках ADCs. Модель показывает две настройки систем ADC флэш-памяти: один с метастабильностью и другим без. Блок постобработки, который берет в цифровом выходе, которому повреждают, и преобразует NaNs
к нулям. Это вызвано тем, что цифровой выход с NaNs
не может быть распознан спектром анализатор как допустимый сигнал для спектрального анализа. Присоедините блок измерения AC ADC, чтобы наблюдать различные показатели производительности как ОСШ, ENOB, уровень шума и так далее. Результаты симуляции показывают, что анализ AC вызывает значительное понижение эффективности для ADC с метастабильностью, как показано ниже ENOB и более высокий уровень шума.
model2='flashAdc_metastability_Effect.slx';
open_system(model2);
sim(model2);
ADC AC Measurement | Flash ADC | Выборка источника часов