МОДЕЛИРОВАНИЕ ЦИФРОВЫХ УЗЛОВ

PAGE 2

МОДЕЛИРОВАНИЕ ЦИФРОВЫХ УЗЛОВ


ВВЕДЕНИЕ

В последние десятилетия произошло стремительное развитие информационных технологий, основу которых составляют вычислительные машины, системы и сети. Разработка аппаратных средств вычислительной техники в настоящее время базируется на информационных технологиях, позволяющих проводить описание цифровых устройств на языке высокого уровня, проводить логическое и схемотехническое моделирование с учетом разброса параметров, температуры и многого другого.

Функциональные блоки ЭВМ первых поколений выполнялись на цифровых микросхемах средней степени интеграции, размешенных на двухслойных или многослойных печатных платах. Проектирование функционального блока проводилось вручную, затем изготовлялся макет или опытный образец, который испытывался и настраивался в эксперименте на стендах.

На кристаллах современных БИС можно поместить множество функциональных блоков старых ЭВМ вместе с цепями межблочных соединений. Разработка и тестирование таких кристаллов возможно только методами математического моделирования с использованием мощных компьютеров.

Современным международным стандартом описания цифровой аппаратуры (Hardware Description Language – HDL) являются языки высокого уровня VHDL и VERILOG [1 – 6]. Используя эти языки, можно описать цифровое устройство, а затем провести логическое моделирование работы этого устройства на компьютере. Добившись правильного функционирования модели, можно перейти к следующему этапу проектирования – созданию топологии интегральной схемы или конфигурации программируемой логической интегральной схемы (ПЛИС). Разработано несколько популярных систем автоматизированного проектирования (САПР), в частности, пакет Active-HDL (www.aldec.com), позволяющий разрабатывать описание цифровых устройств на языках VHDL и VERILOG, а затем проводить логическое моделирование их на компьютере.

Программы схемотехнического моделирования входят в состав всех современных систем сквозного проектирования электронных блоков (OrCAD, P-CAD, Micro-Cap и др.). Все основные фирмы, производящие электронные компоненты, разрабатывают модели этих компонентов в стандарте SPICE. Профессиональные версии программ позволяют проводить моделирование электронных устройств, включающих сотни тысяч активных и пассивных электронных компонентов, конструктивно размещенных на многих печатных платах.

Для первоначального изучения методов схемотехнического моделирования цифровых устройств наиболее удобна программа Micro-Cap (Microcomputer Circuit Analysis Program) (www.spectrum-soft.com) [7 – 9], разработанная фирмой Spectrum Software. Эта программа имеет удобный интегрированный интерфейс и использует математические модели электронных компонентов, совместимые с программами семейства SPICE.

1. МОДЕЛИРОВАНИЕ ЦИФРОВЫХ УЗЛОВ В Active-HDL

Среда логического моделирования цифровых устройств Active-HDL является мощным современным средством проектирования и моделирования, ориентированным на языки VHDL и VERILOG.

Лабораторная работа охватывает начальный этап изучения интегрированной инструментальной среды Active-HDL на примере моделирования простых элементов цифровых устройств.

1.1. Создание нового проекта

Мастер проекта (Design Wizard) предназначен для создания проекта цифрового устройства. Окно Начало (Getting Started) автоматически появляется после запуска программы (рис. 1.1).

Для создания нового проекта в этом окне необходимо установить курсором точку в позицию Создать новый проект (Create New Design) и нажать кнопку ОК. Для продолжения работы с ранее созданным проектом (кнопка More design) необходимо выбрать заголовок проекта в рабочем каталоге (к примеру C:/My_Design).

Рис. 1.1. Окно Getting Started Рис. 1.2. Окно New Design Wizard

При создании нового проекта появляется окно Мастер нового проекта (New Design Wizard) (рис. 1.2), в котором необходимо курсором поставить точку в позицию Создать пустой проект (Create en empty design) и нажать кнопку Далее (Next). Следующее окно (рис. 1.3, а) служит для указания способа ввода проекта (установить в окне HDL), а окно (рис. 1.3, б) – заголовка имени проекта и имени рабочей папки проекта.

В учебных целях в качестве заголовка проекта следует набрать фамилию студента в верхнем окошке (набрано Petrov) и уточнить расположение рабочей папки во втором окошке (папка C:\My_Designs на диске).

Мастер нового проекта (New Design Wizard) позволяет создавать Новые файлы проекта, содержащие шаблон для создания VHDL-описания проекта на основе информации, вводимой в диалоговом режиме в процессе дальнейшей работы с мастером. Кроме того, имеется возможность добавлять (Add) в проект ранее созданные файлы, в частности, файлы из других проектов.

а б

Рис. 1.3. Окна Мастера нового проекта (New Design Wizard):

а – первое окно; б – второе окно

Нажав кнопку Далее (Next), переходим к очередному окну Мастера, в котором необходимо утвердить заголовок нового проекта. В результате станет доступным Мастер процесса проектирования (Design Flow Manager) (рис. 1.4).

Для продолжения работы над проектом необходимо нажать иконку HDE, выбрать в появившемся окне язык VHDL и, нажав ОК, перейти к окну

Мастера новых исходных файлов (New Source File Wizard) (рис.1.5). Мастер позволяет создать шаблон VHDL-описания цифрового устройства с указанием его портов и подключенных библиотек.

Создадим в качестве примера VHDL-описание D-триггера(D-Flipflop (DFF)) с синхронизацией по переднему фронту синхроимпульса (Rising Edge Flipflop):

Рис. 1.4. Окно Мастера процесса проектирования (Design Flow Manager )

Сигнал на выходе Q D-триггера соответствует сигналу на входе D в момент появления переднего фронта синхроимпульса С и появляется на выходе Q с задержкой, например в 5 нс. Сигнал на инверсном выходе Q также появляется с задержкой 5 нс.

Нажав кнопку Далее (Next) на первом окне Мастера новых исходных файлов (рис. 1.5, а), переходим к следующему окну Мастера (рис. 1.5, б), в окошках которого необходимо набрать имя файла VHDL-описания (например, REDFF_1.vhd), имя устройства (entity) (например, REDFF_1) и имя архитектуры устройства (например, REDFF_behavior_1).

а б

Рис. 1.5. Окна Мастера нового исходного файла (New Source File Wizard):

а – первое окно; б – второе окно

Очередное нажатие кнопки Далее (Next) приводит к окну (рис. 1.6, а), в котором задаются порты (ports) устройства.

После нажатия кнопки New в следующем окне (рис. 1.6, б) по очереди вводятся имена, указываются направления сигналов (входные – in, выходные – out, …) и типы портов (кнопка Type). Выбираем тип сигналов STD_LOGIC .

а б

Рис. 1.6. Окна Мастера нового исходного файла – Порты (New Source File Wizard - Ports):

а – первое окно; б – второе окно

После нажатия кнопки Готово (OK) в окне Редактора HDL получим шаблон VHDL-описания D-триггера в файле с именем REDFF_1.vhd:

library IEEE;

use IEEE.STD_LOGIC_1164.all; -- подключение пакета

entity REDFF_1 is -- имя устройства REDFF_1

port( -- далее следует список портов

D : in STD_LOGIC; -- D-триггера

C : in STD_LOGIC;

Q : out STD_LOGIC; - - Q соответствует прямому

- - выходу Q D-триггера

Qbar : out STD_LOGIC ); -- Qbar соответствует инверс-

end REDFF_1; -- ному выходу Q D-триггера

architecture REDFF_behavior_1 of REDFF_1 is

begin

-- это поле для описания

-- enter your statements here -- -- архитектуры D-триггера

end REDFF_behavior_1;

Дополним шаблон файла VHDL в окне Редактора HDL содержательным описанием архитектуры D-триггера. Приведем поведенческое описание работы D-триггера с использованием параллельного оператора process языка VHDL:

architecture REDFF_behavior_1 of REDFF_1 is -- описание

-- архитектуры REDFF_behavior_1 устройства REDFF_1

begin

process (C) begin

if (C'event and C = '1') then -- выделение переднего фронта

-- сигнала С

Q <= D after 5 ns; --назначение сигнала Q с задержкой 5 нс

Qbar <= not(D) after 5 ns; -- назначение сигнала Qbar с

end if; -- задержкой 5 нс

end process;

end REDFF_behavior_1;

Редактор HDL упрощает составление описания, позволяя:

  • автоматически завершать ключевые слова (например, Entity);
  • автоматически переносить шаблон оператора в окно Редактора HDL из Помощника по языку (Language Assistant). Для этого после ввода имени шаблона необходимо нажать Ctrl+Enter.

Правильность VHDL-описания проверяется в процессе его компиляции (compile). Для этого необходимо выбрать выпадающее меню Design, а затем пункт Compile (или нажать F11). Если ошибок нет, то в нижнем окне консоли (Console) системы Active-HDL появится сообщение – компиляция прошла успешно.

# Compile success 0 Errors 0 Warnings Analysis time : 1.0 [s]

При наличии ошибок в этом окне появится надпись красного цвета, поясняющая характер и место ошибки (номер строки). Одновременно в окне Просмотр каталогов проекта (Design Browser) перед именем файла появляются различные значки ( ? – файл не транслирован; – файл не содержит ошибок; ! – файл содержит ошибки ).

После исправления ошибок компиляцию необходимо повторить и затем сохранить файл проекта (File Save).

1.2. Испытательный стенд (VHDL Test Bench)

Испытательный стенд (Test Bench) – специальная программа на VHDL, образующая верхний иерархический уровень модели. Эта программа задает необходимую для проверки проектируемого устройства последовательность сигналов и подключает графическое окно логического анализатора временных диаграмм выходных сигналов (Waveform Viewer).

К созданию испытательного стенда необходимо приступать после написания и успешной компиляции текста VHDL-описания цифрового устройства. Для этого выбираем в выпадающем меню Инструменты (Tools) (рис. 1.4) опцию Мастер генерации тестов (Generate Test Bench). В результате появится первое окно Мастера генерации тестов (Test Bench Generator Wizard) (рис. 1.7, а).

а б

Рис. 1.7. Окна Мастера генерации тестов (Test Bench Generator Wizard):

а – первое окно; б – второе окно

В окошках Мастера генерации тестов появятся название тестируемого устройства (redff_1) и название архитектуры устройства (redff_bechavior_1). Нажав кнопку Далее (Next), получим следующее окно (рис. 1.7, б), в окошке которого можно указать имя ранее созданного файла с описанием сигналов теста. Если такого файла нет, то его нужно создать. Для этого необходимо нажать кнопку Далее (Next). Получим следующее окно Мастера (рис. 1.8, а), в окошках которого будут записаны имя файла теста с суффиксом _TB и имя папки Test Bench, в которую он помещен.

После нажатия кнопки Далее (Next) появится итоговое окно Мастера с перечислением созданных файлов (рис. 1.8, б).

а б

Рис. 1.8. Окна Мастера генерации тестов (Test Bench Generator Wizard):

а – первое окно; б – итоговое окно

Необходимо нажать кнопку Готово (OK). В результате получим папку TestBench, содержащую шаблон файла Испытательного стенда redff_1_TB.vhd. Этот файл нужно открыть в окне Редактора HDL (кликнув по нему два раза).

Содержательная часть шаблона VHDL - описания Испытательного стенда для D-триггера redff_1_tb имеет следующий вид (строки комментариев частично удалены):

Description : Automatically generated Test Bench for redff_1_tb

library ieee;

use ieee.std_logic_1164.all;

entity redff_1_tb is -- имя испытательного стенда

end redff_1_tb;

architecture TB_ARCHITECTURE of redff_1_tb is

component redff_1 -- объявление тестируемого

port ( D : in std_logic; -- компонента redff_1

C : in std_logic;

Q : out std_logic;

Qbar : out std_logic );

end component;

signal D : std_logic; -- объявление сигналов на входах и выходах

signal C : std_logic; -- тестируемого цифрового компонента

signal Q : std_logic;

signal Qbar : std_logic;

begin

UUT : redff_1 -- конкретизация тестируемого компонента

port map (

D => D,

C => C,

Q => Q,

Qbar => Qbar

);

-- Add your stimulus here .. .-- здесь необходимо добавить

end TB_ARCHITECTURE; -- конкретный программный код

configuration TESTBENCH_FOR_redff_1 of redff_1_tb is

for TB_ARCHITECTURE

for UUT : redff_1

use entity work.redff_1(behavior_1);

end for;

end for;

end TESTBENCH_FOR_redff_1;

Этот автоматически сгенерированный файл описания шаблона теста является обычным VHDL-описанием цифрового устройства с именем redff_1_tb и архитектурой с именем TB_ARCHITECTURE. В VHDL-описа-ние входит компонент UUT: redff_1, соответствующий D-триггеру redff_1 (UUT – Unit Under Test). Файл redff_1_tb необходимо откомпилировать и поместить на верхний уровень иерархии файлов проекта. Для этого необходимо войти в меню Design, выбрать пункт Setting и в открывшемся окне Design Setting (пункт General) (рис. 1.9, а) указать имя файла верхнего уровня.

а б

Рис. 1.9. Окна Установки проекта (Design Setting) (а) и Просмотра проекта (Design Browser) (б)

Файл верхнего уровня можно выбрать и в выпадающем меню окна Design Browser (режим Структура Stru ) (рис. 1.9, б).

1.3. Подготовка к моделированию и моделирование

До начала моделирования проводится инициализация модели проекта, выбрав опцию Initialize Simulation из выпадающего меню Simulation.

Очередным подготовительным этапом к моделированию является вызов и настройка графического редактора Временных диаграмм (Waveform Editor). Для этого необходимо выбрать иконку на верхней панели оболочки Active-HDL (рис. 1.10).

После этого нужно перетащить мышкой из окна Design Browser имя модуля redff_1_tb (tb_architecture) в окно Waveform Editor. В результате в этом окне автоматически будут указаны имена сигналов и сформированы оси для построения их временных диаграмм.

Указать необходимый набор сигналов в окне Waveform Editor можно также в выпадающем меню Waveform (пункт Add Signals). В появившемся графическом окне Add Signals необходимо выделить по очереди строки и добавить в диаграмму сигналы (нажать кнопку add).

Рис. 1.10. Окно Просмотра проекта (Design Browser) и окно Редактора временных диаграмм (Waveform Editor), подготовленные к моделированию

Теперь необходимо сформировать входные сигналы на входах D и C на моделируемое цифровое устройство. Для создания модели генератора тактового сигнала C с периодом 100 нс (частота 10 МГц) необходимо в окне Waveform Editor (рис. 1.10) выделить мышкой этот сигнал и нажать правую кнопку мышки. В появившемся меню выбрать пункт Источники сигналов (Stimulators), а в нем (рис. 1.11) выбирать тип тактового сигнала Clock.

В окошках следующего графического окна (рис. 1.12) необходимо выбрать параметры тактового сигнала, например: частота 10 МГц, длительности импульса и паузы по 50 нс (скважность импульсов – единица).

Рис. 1.11. Графическое окно Источники сигналов (Stimulators)

Процесс создания описания сигнала C завершается после нажатия кнопки Применить (Apply).

Рис. 1.12. Выбор параметров последовательности сигналов Clock

Для создания описания источника сигнала D выберем второй тип сигнала Formula (рис. 1.13).

Рис. 1.13. Выбор параметров сигнала Formula

Сигнал типа Formula в окошках задается логическим уровнем (value) и сдвигом времени (time offset) по следующему правилу. В нашем примере логический уровень сигнала (value) "1", время начала действия сигнала (time offset) – 0 нс, логический уровень сигнала (value) "0", сдвиг времени сигнала (time offset) – 1000 нс, логический уровень сигнала (value) "1", сдвиг времени сигнала (time offset) – 2000 нс и т.д. Таким образом, сигнал "1" действует на интервале 0 – 1000 нс, затем на интервале 1000 – 2000 нс действует сигнал "0" и т.д.

Форму сигнала можно прямо записать в нижнем текстовом окошке Enter formula этого окна. Для подключения сигнала к модели необходимо нажать кнопку Применить (Apply).

Сигналы типа Formula удобно использовать и для задания входных сигналов приоритетного сброса (Reset) и приоритетной установки (Preset) (в нашем примере D-триггера они отсутствуют). Время начала действия сигналов целесообразно выбирать 0 нс. Иначе появится интервал времени, когда уровень сигналов на входе будет неопределенным. Теперь готовый проект необходимо сохранить (File Save).

Перед запуском модели необходимо установить время моделирования в окошке на верхней панели Waveform Editor (например, 4000 ns) и нажать кнопку Run . В результате получим временные диаграммы сигналов на входах и выходах модели D-триггера (рис. 1.14).

Рис. 1.14. Временные диаграммы сигналов D-триггера

Временная диаграмма позволяет убедиться в правильности работы триггера и измерить его динамические параметры. Для удобства измерения можно изменить масштаб оси времени (окно view) или использовать кнопки "+" и "–" на правой панели клавиатуры (режим Num Lock). Измерение параметров сигналов удобно проводить в режиме Measurement Mode Редактора временных диаграмм (Waveform Editor). При работе в редакторе Waveform Editor (рис. 1.14) всем этим функциям соответствуют кнопки в верхней части графического окна.

1.4. Выполнение лабораторной работы

Индивидуальные задания на моделирование цифрового узла заблаговременно выдаются преподавателем. В процессе домашней подготовки к лабораторной работе необходимо на основе материалов лекций и учебных пособий [1 – 6] подготовить VHDL-описание заданного варианта цифрового узла, продумать программу его испытаний и изучить порядок работы с программой Active-HDL по данному пособию в классе или на домашнем компьютере. В процессе выполнения лабораторной работы в компьютерном классе необходимо выполнить следующие основные этапы:

  • ввести и откомпилировать VHDL-описание цифрового узла;
  • создать испытательный стенд Test Bench;
  • провести инициализацию проекта;
  • подключить редактор временных диаграмм Waveform Editor и задать входные тестовые сигналы;
  • провести моделирование цифрового узла, провести анализ результатов и отобразить результаты моделирования в отчете.

Отчет по выполнению лабораторной работы должен содержать:

  • результаты домашней подготовки, включающие условно-графическое изображение цифрового узла, алгоритм его работы (таблицу логических значений входных и выходных сигналов), временные параметры входных и выходных сигналов;
    • проверенный в результате моделирования текст VHDL-описа-ния цифрового узла и испытательного стенда;
    • зарисовку с экрана компьютера временной диаграммы работы цифрового узла.


2. МОДЕЛИРОВАНИЕ ЦИФРОВЫХ УЗЛОВ В Micro-Cap

Программа схемотехнического моделирования Micro-Cap [7 – 9] предназначена для анализа аналоговых, цифровых и смешанных аналогоцифровых устройств. При выполнении лабораторной работы мы будем использовать лишь небольшую часть возможностей программы по моделированию чисто цифровых устройств. Реальные цифровые микросхемы средней степени интеграции представлены в программе Micro-Cap в форме логических моделей, совместимых с моделями стандарта SPICE.

В текст модели цифровой микросхемы стандарта SPICE входят следующие основные блоки:

  • описание интерфейса микросхемы (портов), определяющих связи с внешними цепями;
  • логические выражения, описывающие функционирование микросхемы;
  • правила вычисления задержек распространения сигналов в микросхеме;
  • правила контроля временных соотношений, возникающих в процессе моделирования.

В программу моделирования Micro-Cap включена богатая библиотека моделей, включающая модели практически всех цифровых микросхем, выпущенных западными производителями.

Графический редактор схем с помощью набора простых команд и выпадающих меню позволяет создавать и редактировать электрическую принципиальную схему цифрового узла, а затем проводить моделирование его работы. Результаты моделирования представляются в графическом виде и выводятся в текстовый файл.

2.1. Графический редактор схем

Создание схемы цифрового узла начинается с запуска программы Micro-Cap. В верхней части экрана в стиле Windows расположены настраиваемые панели инструментов, включающие систему выпадающих меню.

Основное поле экрана занимает окно графического редактора, предназначенное для создания принципиальной схемы. В качестве примера проведем моделирование счетчика на D-триггерах типа ТМ2 с модулем счета К = 6 (рис. 2.1) [10, 12].

В нашем примере модуль счета К не является степенью числа 2. Поэтому за основу счетчика возьмем двоичный счетчик с наименьшим возможным числом разрядов (три) так, чтобы К = 6 8 = 23. На рис. 2.1 это триггеры DD4 – DD6.

Тактовые импульсы С поступают на вход счетчика через открытый логический элемент "И-НЕ" DD2. К выходам триггеров DD4 – DD6 подключен логический элемент "Е-НЕ" DD7, который реагирует на двоичный код числа

а

б

Рис. 2.1. Счетчик на D-триггерах ТМ2 с модулем счета К = 6:

а – схема по ГОСТ; б – схема по ANSI

C – вход тактовых импульсов; R – вход импульса приоритетного сброса;

DD1, DD4 – DD6 – триггеры КР1533ТМ2 (SN74ALS74);

DD2, DD7 – КР1533ЛА3 (SN74ALS00);

DD3 – КР1533ЛЛ1 (SN74ALS32)

q, на единицу меньшего модуля счета К (q = K – 1 = 510 = 1012). В результате сигнал "1" на выходе логического элемента DD7 изменяется на сигнал "0". Этот сигнал закрывает логический элемент "И-НЕ" DD2 и поступает на вход D-триггера DD1. В результате тактовые импульсы С перестают поступать на вход счетчика. Вспомогательный триггер DD1 переключается фронтом следующего тактового импульса С с номером К, в результате сигнал с его выхода открывает логический элемент "ИЛИ" DD3. Поэтому этот же тактовый импульс через элемент DD3 поступает на входы приоритетного сброса R триггеров DD4 – DD6 и сбрасывает счетчик в нулевое состояние.

Создание модели счетчика начинается с выбора из библиотек программы Micro-Cap моделей цифровых компонентов, входящих в перечень элементов к принципиальной схеме счетчика. Для этого в выпадающем меню Компоненты (Component) найдем пункт Библиотека цифровых компонентов (Digital Library) и далее выберем и перетащим мышкой на экран условно-графические обозначения (УГО) необходимых микросхем (рис. 2.2). Условно-графические обозначения микросхем выпол-нены в стандарте ANSI, отличном от принятого в России ГОСТа. Связь между этими обозначениями приведена в конце описания лабораторной работы.

Для получения подробной информации о модели микросхемы необходимо переключить редактор программы Micro-Cap в режим Выбор (Select Mode) (кнопка ) и два раза кликнуть мышкой по условно-графическому изображению микросхемы.

Рис. 2.2. Набор моделей микросхем для модели счетчика

В результате появится графическое окно с атрибутами и информацией о модели микросхемы (рис. 2.3).

В рамках лабораторной работы необходимо редактировать только первую строку окна Part, где указывается обозначение микросхемы на схеме. Редактирование проводится в окошке Значение (Value). При необходимости можно проанализировать и отредактировать текст модели микросхемы, находящийся в нижнем окошке графического окна.

Рис. 2.3. Графическое окно с информацией о микросхеме

2.1.1. Модели источников цифровых сигналов. В рамках лабораторной работы используются только три источника: источники постоянных логических сигналов уровней "1" и "0" и одноразрядный генератор цифровых сигналов [7, 8, 9].

Модели источников находятся в пункте Цифровые примитивы (Digital Primitives) меню Компоненты (Component).

  • Источники постоянных логических сигналов. В программе Micro-Cap имеется два источника постоянных логических сигналов:

PULLUP – источник логической "1" и

PULLDOWN – источник логического "0", т.е.:

Эти источники формируют соответствующие логические уровни на подключаемых к ним входах моделей микросхем.

  • Генератор цифровых сигналов. Стандартные иконки генераторов цифровых сигналов находятся в подпункте Генераторы сигналов (Stimulus Generators) пункта Digital Primitives меню Component. Выберем одноразрядный генератор с именем Stim1.

CLK

Stim1

Проведем программирование генератора цифровых сигналов. Для этого кликнем два раза кнопкой мышки на иконке Stim1 и вызовем графическое окно генератора Stim1 (рис. 2.4). Генератор цифровых сигналов может быть запрограммирован как для создания периодического сигнала, так и для получения одиночных импульсов.

В графическом окне необходимо заполнить первую строку Part, записав в нее произвольное имя генератора. Например: PART = CLK.

Во второй строке указывается число выходов генератора. В нашем случае число выходов равно 1 (FORMAT = 1).

В третьей строке записывается имя программы, создающей цифровой сигнал. В нашем примере COMMAND = P1.

В нижней части графического окна открывается окошко для ввода текста программы. Программа пишется на специальном языке в стандарте SPICE.

Приведем пример программы генератора бесконечной последовательности тактовых импульсов с периодом Т = 50 нс.

Рис. 2.4. Графическое окно генератора цифровых сигналов

.define P1 -определить имя программы (P1)

+0NS 0; -в начальный момент логический уровень равен "0"

+LABEL = M; -имя метки в операторе цикла (М)

+150NS 1; -время, когда логический уровень изменяется на "1"

+175NS 0; -время, когда логический уровень изменяется на "0"

+200NS GOTO M –1 TIMES; -время перехода на метку М

Символ –1 в последнем операторе означает, что цикл бесконечен.

Символ + в строках означает, что переменная t (время) задается приращением относительно начального значения, равного 0 нс. Значения переменной t должны быть монотонно возрастающими.

В результате генератор цифровых сигналов с именем Stim1 выработает следующую последовательность тактовых импульсов (рис. 2.5).

T = 50 ns

150 ns 200ns

175 ns

0 100 ns 200 ns 300 ns 400 ns 500 ns

Рис. 2.5. Временная диаграмма цифрового сигнала, созданного генератором Stim1

2.1.2. Создание электрической принципиальной схемы узла начинается с размещения УГО микросхем в графическом окне в соответствии с заранее нарисованной в ходе домашней подготовке схемой.

Далее выводы микросхем необходимым образом соединяем проводниками. Для этого выбираем режим рисования проводников (Wire Mode) (кнопка ). Затем курсор подводим к выводу микросхемы, нажимаем левую кнопку мышки и проводим проводник. Точки на линиях при соединении проводников возникают автоматически при остановке курсора.

Далее на проводниках электрической принципиальной схемы необходимо проставить контрольные точки с именами сигналов, предназначенные для вывода информации о работе схемы на экран виртуального осциллографа. Необходимо перейти в текстовый режим (Text Mode) (кнопка ), указать стрелкой на проводник и нажать левую кнопку мышки. В результате появится текстовое окно, в котором необходимо латинскими буквами написать имя контрольной точки. После закрытия текстового окна контрольная точка появится на схеме.

Подготовленная схема модели счетчика представлена на рис. 2.6.

Рис. 2.6. Электрическая принципиальная схема модели счетчика, подготовленная к моделированию

На этой схеме генератор тактовых импульсов Stim 1 имеет имя CLK, а источники сигналов лог. "1" имеют имя "1". Контрольные точки на схеме обозначены CLK, C, D, Q, R, A, B, C, D и OUT. Сигналы в этих точках можно вывести на экран виртуального осциллографа.

2.2. Моделирование в Micro-Cap

2.2.1. Настройка параметров моделирования. Моделирование, а точнее построение временных диаграмм цифровых сигналов в контрольных точках, отмеченных на схеме, проводится в режиме анализа переходных процессов (Transient Analysis). (Меню Анализ (Analysis) пункт Transient Analysis ).

Программа Micro-Cap в первую очередь проверяет ошибки, возможные при создании схемы модели счетчика. Если ошибки обнаружены, появляются сообщения о них. Для продолжения моделирования ошибки необходимо устранить.

Если ошибки отсутствуют, проводится подготовка схемы модели счетчика для расчета переходных процессов, и открывается окно Параметры анализа переходных процессов (Transient Analysis Limits) (рис. 2.7).

В окошках этого диалогового окна устанавливается время моделирования (Time Range = 1us = 1мкс) и режим автоматического выбора масштабов на графиках (Auto Scale Ranges). Далее, нажимая кнопку добавить (Add), заполняют таблицу для вывода результатов в форме графиков.

В этой таблице в столбце P указывается номер графика. В данном случае все графики будут построены на одном поле. В столбце XExpression указывается переменная на оси Х (Время T). В столбце YExpression указываются переменные по оси Y. Символ d обозначает, что при выводе графика по оси Y будут откладываться логические уровни сигналов ("0", "1" или "Х") в контрольных точках, указанных на схеме. Имена контрольных точек помещаются в скобки.

В последней строке записано выражение DEC(OUT,B,A), означающее, что на графике будет показано текущее значение числа в счетчике в контрольных точках OUT, B и A в десятичной системе. Другие возможные здесь операторы: HEX – число в шестнадцатиричной системе, OCT – число в восьмиричной системе, BIN – число в двоичной системе.

Для запуска процесса моделирования необходимо нажать кнопку Выполнить (RUN). В результате на экране виртуального осциллографа будут построены временные диаграммы сигналов в контрольных точках схемы.

Для возврата к окну схема необходимо нажать F3, для возврата к окну настройки параметров моделирования (рис. 2.7) – F9.

Рис. 2.7. Окно параметров анализа переходных процессов

2.2.2. Анализ временной диаграммы. Временные диаграммы работы счетчика представлены на рис. 2.8.

Из анализа последнего графика DEC(OUT,B,A) видно, что на выходах счетчика OUT, B, A формируется возрастающая последовательность состояний счетчика "0", "1", "2", "3", "4", "5". На этом же графике видно, что в промежутках между состояниями "1", "2" и "3", "4" возникают промежуточные состояния, связанные с гонками в счетчике с непосредственными связями [10, 11, 12].

Анализ строк d(C), d(A), d(B) и d(OUT) показывает, что переключение счетчика происходит по переднему фронту инвертированной последовательности тактовых импульсов. Например, импульсы С запаздывают относительно фронта импульсов последовательности CLK на время задержки в логическом элементе DD2.

Процесс перехода счетчика из состояния "5" в состояние "0" показан на графиках d(D), d(Q), d(R) и d(C). В состоянии "5" (К – 1) изменяется сигнал на выходе логического элемента DD7. В результате на графике d(D) появляется импульс отрицательной полярности. Это изменяет состояние входа D триггера DD1 c "1" на "0", и, кроме того, сигнал низкого уровня закрывает логический элемент DD2 (график d(C)). В результате по переднему фронту шестого тактового импульса последовательности CLK этот триггер переключается и на его выходе Q возникает состояние лог. "0" (график d(Q)). Это открывает логический элемент DD3, в результате чего он


Рис. 2.8. Временные диаграммы сигналов в контрольных точках схемы счетчика с модулем счета К = 6


пропускает импульс отрицательной полярности на выход R (график d(R)). Поэтому на входах приоритетного сброса R триггеров DD4, DD5 и DD6 появляется сигнал низкого уровня, что приводит к сбросу счетчика в состояние "0".

По переднему фронту седьмого импульса CLK триггер DD1 возвращается в исходное состояние, а затем по заднему фронту этого импульса (переднему фронту соответствующего импульса последовательности С) начинается следующий цикл работы счетчика.

  1. Средства анализа временной диаграммы. В программе Micro-Cap имеются средства, позволяющие проводить измерения на временной диаграмме. Это кнопка Время в точке (Point Tag) ( ), при выборе которой на график можно нанести отметку времени t и логическое состояние этой точки. Кнопка Время по горизонтали (Horizontal Tag) ( ) включает режим измерения времени между выбранными точками на графиках. Удобен режим увеличения масштаба части графика, заключенного в рамку (Scale). Рамка создается курсором при нажатой левой кнопке мышки. Режим масштаб (Scale) включается кнопкой F7.

Эти средства позволяют провести детальный анализ всех особенностей работы счетчика [7, 8, 9].

2.2.4. Определение максимального быстродействия. Для определения максимального быстродействия необходимо провести ряд испытаний модели цифрового узла с постепенным уменьшением периода следования тактовых импульсов CLK. Для этого для каждого испытания необходимо редактировать программу генератора цифровых сигналов. В процессе моделирования программа Micro-Cap проверяет временные соотношения, которые должны выполняться для каждой микросхемы. Они включают минимально допустимую длительность импульса, время предустановки и удержания и т.д.

Если хотя бы одно из этих ограничений не выполняется, программа выдает окно "Цифровая ошибка" с краткой информацией о ее причине. Одновременно эта информация в режиме Анализ переходных процессов (Transient Analysis) выводится в текстовый файл Numeric output ( ) с результатами моделирования. Появление первого предупреждения об ошибке можно считать верхней границей быстродействия схемы.


2.3. Модели цифровых компонентов

Каждая модель микросхемы содержит подробную информацию о ее динамических параметрах. Математические модели в формате SPICE публикуют изготовители микросхем и поэтому они являются официальной информацией. Текст модели появляется в графическом окне, показанном на рис. 2.3.

Приведем в качестве примера текст модели триггера SN74ALS74A, который является аналогом отечественного триггера КР1533ТМ2. Текст модели написан в формате программы схемотехнического моделирования SPICE, совместимой с программой Micro-Cap [7, 8, 9].

.SUBCKT 74ALS74A 1PREBAR 1CLRBAR 1CLK 1D 1Q 1QBAR

+ optional: DPWR=$G_DPWR DGND=$G_DGND

+ params: MNTYMXDLY=0 IO_LEVEL=0

U1 DFF(1) DPWR DGND