Этот пример показывает, как использовать блок Variable Pulse Delay от Смешанной Библиотеки Сигнала, чтобы создать точные модели синхронизации логических схем.
Этот пример является первым из трех примеров, которые используют три кольцевых модели осциллятора этапа, чтобы исследовать область значений опций для симуляции аналоговых применений цифровых схем. Задержки каждого этапа определяют вывод кольцевого осциллятора frquency, делая точное моделирование этих задержек важным для симуляция схемы.
Вторые и третьи примеры и показывают, как произвести аналоговые формы волны с точной формой и синхронизацией. Необходимо изучить этот пример прежде, чем изучить другие два.
Задержки этой модели введены Переменными Импульсными блоками Задержки от библиотеки Utilities Mixed-Signal Blockset с задержкой, заданной отдельным входом к блоку. Начальные выходные значения для Переменных Импульсных блоков Задержки собираются гарантировать колебание. Начальное выходное значение для двух из блоков установлено в значение по умолчанию нуля, в то время как начальный вывод для третьего блока установлен в один.
Осциллограф сконфигурирован, чтобы отобразить выборки как точечную диаграмму без рендеринга между выборками. Различные шаги расчета делают различные предположения о значении сигналов между выборками таким как
Нулевой порядок содержит (ZOH). Значение сигналов принято, чтобы равняться значению новой выборки.
Первый порядок содержит (FOH). Значение сигналов принято, чтобы отличаться линейно от одной выборки до следующего.
Найквист ограничивается. Сигнал принят, чтобы иметь нулевое спектральное содержимое выше частоты, равной одной половине фиксированной частоты дискретизации.
Ряд Тейлора. Для каждого главного демонстрационного шага решатель ОДУ производит полином, который аппроксимирует значение сигналов по тому временному интервалу.
Блок осциллографа основывает свой рендеринг на этих предположениях. Необходимо фокусироваться на самих выборках и понять explicity предположения, что различные шаги расчета делают.
Выборки, отображенные на осциллографе, показывают одну выборку для каждого события переключения логики. Эти выборки сгенерированы Переменными Импульсными блоками Задержки. Каждый раз, когда блок Variable Pulse Delay получает выборку, он генерирует новое событие, за один раз равняются шагу расчета плюс значение во входном порту задержки.
Как обозначено расцветкой шага расчета, выходной шаг расчета для инверторов Фиксируется На Незначительном шаге (FIM). Это означает, что каждый инвертор произведет выходное демонстрационное значение для каждого главного шага расчета в модели, независимо используется ли тот шаг расчета во входном порту логического элемента.
Это поведение FIM типично для большинства логических блоков; однако необходимо обратить особое внимание на распространение шага расчета в инициированных подсистемах, таких как D-триггеры. Если триггер ввел, использует фиксированный шаг дискретный шаг расчета, то любой вход, который не синхронен с тем шагом расчета, не может быть обработан правильно. Инициированная подсистема может быть обеспечена, чтобы действовать в режиме FIM путем инициирования его с переменным шагом дискретный триггер тот, который был бы произведен блоком Variable Pulse Delay или блоком Logic Decision (также от библиотеки Utilities Mixed-Signal Blockset).
Поскольку модель не содержит дифференциальных уравнений, решатель является Переменным Дискретным Шагом.
Задержка на каскад установлена в |100|ps, приводящий к половине периода точно |300|ps и периоду |600|ps, как продемонстрировано в симуляции вывод.
% Load the logic timing model and update the model to display sample times. open_system('LogicTiming'); set_param(gcs,'SimulationCommand','update');
% Run the logic timing model sim('LogicTiming');