Эффект нарушения метастабильности в ADC Flash

В этом примере показано, как настроить Аналого-цифровой преобразователь флэш-памяти (ADC) путем добавления вероятности метастабильности как нарушения. Можно измерить нарушение вероятности метастабильности, чтобы подтвердить реализацию. Пример также показывает эффект метастабильности на динамических характеристиках ADC флэш-памяти. Когда цифровой выход от компаратора неоднозначен (ни нуль, ни один), выход задан как метастабильный. Неоднозначный выход описывается как NaN. Эта модель в качестве примера использует блок MATLAB function, чтобы добавить нарушение метастабильности в архитектуру ADC флэш-памяти. Другая подсистема сообщает о вероятности метастабильности на лету.

Настройте ADC Flash

Извлеките внутреннюю структуру ADC флэш-памяти, чтобы добавить настроенное нарушение. Добавьте блок Flash ADC от библиотеки Mixed-Signal Blockset™ до холста Simulink®. Посмотрите под маской, чтобы найти плоскую структуру ADC. Скопируйте и вставьте полную структуру к другому новому пустому полотну.

Удалите блок Clock Generator, потому что он не используется, чтобы обеспечить часы преобразования запуска. Подсистема внешних стимулов используется с этой целью. ADC флэш-памяти теперь состоит из трех главных компонентов:

  • Компараторы ADC Flash

  • Отказ осведомленный счетчик единиц

  • Тип выходных данных

Компараторы ADC Flash

ADC флэш-памяти N-bit использует$${2^{Nbits}}$ компараторы параллельно. Сама подсистема Компараторов 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.

Реализуйте вероятность метастабильности как нарушение к ADC Flash

Чтобы добавить нарушение метастабильности, поместите триггируемую подсистему с блоком 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);

Эффект метастабильности на динамических характеристиках ADC

Можно наблюдать эффект метастабильности на динамических характеристиках ADCs. Модель показывает две настройки систем ADC флэш-памяти: один с метастабильностью и другим без. Блок постобработки, который берет в цифровом выходе, которому повреждают, и преобразует NaNs к нулям. Это вызвано тем, что цифровой выход с NaNs не может быть распознан спектром анализатор как допустимый сигнал для спектрального анализа. Присоедините блок измерения AC ADC, чтобы наблюдать различные показатели производительности как ОСШ, ENOB, уровень шума и так далее. Результаты симуляции показывают, что анализ AC вызывает значительное понижение эффективности для ADC с метастабильностью, как показано ниже ENOB и более высокий уровень шума.

model2='flashAdc_metastability_Effect.slx';
open_system(model2);
sim(model2);

Смотрите также

| |

Похожие темы