Проектирование цифрового автомата в САПР OrCAD 9.1 и Active-HDL 7.1

 

Содержание


1. Постановка задачи

2. Краткое описание объекта проектирования (УГО, назначение выводов, логическая таблица, диаграмма состояний автомата)

3. Синтез цифрового автомата с комбинационной частью на логических элементах

4. Реализация спроектированного автомата в виде иерархического блока со схемой замещения на зарубежных библиотечных компонентах в режиме SPICE - проектов. Верификация схемы

5. Разработка абстрактных символов, используемых в проекте, в соответствии с требованиями ЕСКД

6. Написание VHDL - моделей для ранее созданных символов

7. Реализация спроектированного автомата в виде иерархического блока со схемой замещения на созданных в предыдущих пунктах «самодельных» символах. Моделирование схемы, сравнение с результатами, полученными в пункте 4

8. Разработка функциональной VHDL - модели цифрового автомата (без учета задержек)

9. Разработка потоковой VHDL - модели автомата

Постановка задачи


В работе необходимо синтезировать трехразрядный цифровой автомат на JK-триггерах с комбинационной частью на логических элементах с двумя режимами работы, управляемый входным сигналом m. При m = 0 цифровой автомат выполняет функцию регистра сдвига влево, а при m = 1 - вычитающий двоичный счетчик по модулю 6. Сброс осуществляется R=1 (высоким уровнем), автомат тактируется по срезу сигнала С. Также необходимо разработать абстрактные символы, поддерживаемые VHDL-моделями и используемые в проекте элементов, спроектировать иерархический блок со схемой замещения на зарубежных библиотечных компонентах в режиме SPICE - проектов, и на ранее созданных абстрактных символах, разработать функциональную и потоковую VHDL-модели автомата.


Краткое описание объекта проектирования (УГО, назначение выводов, логическая таблица, диаграмма состояний автомата)


Условное графическое обозначение (УГО) проектируемого цифрового автомата:


Назначение выводов:

M - управляющий сигнал (задающий режим работы: при m=0 - автомат работает как сдвигающий регистр влево , если m =1 - двоичный счетчик по модулю 6).

C - тактирующий сигнал (по срезу).- число, «вдвигаемое» при работе в режиме регистра сдвига влево.

R - сброс автомата (высоким уровнем).

Q2, Q1,Q0 - выходы, отображающие текущее состояние автомата.


Логическая таблица.

Число входных импульсовmТекущее cостояние (t)СледующееСостояние (t+1)0000000DL1000101DL2001010DL3001111DL4010000DL5010101DL6011010DL7011111DL8110110091100011101011010111010001121001000131000101

Диаграмма состояний автомата:

цифровой автомат абстрактный символ

Рис.0 Граф автомата.


Синтез цифрового автомата с комбинационной частью на логических элементах


Составим таблицу сигналов возбуждения триггеров, при M=1, т.е. для двоичного вычитающего счетчика по модулю 6. Выберем наиболее удобные выходы из запрещенных состояний.



Q2tQ1tQ0tQ2t+1Q1t+1Q0t+1J2K2J1K1J0K0101100*00**1100011*11*1*0110100**0*10100010**11*0010000*0**10001011*0*1*Запрещенные состояния:110101*0*11*111100*0*1*1Из таблицы видно, что сигналы возбуждения для триггера Т0 следующие:


J0A=K0A=1


Для триггеров Т1 и Т2 составим карты Карно и найдем сигналы возбуждения:


J1A

Q2Q1Q0011110000**1**1

A

Q2Q1Q0011110000*1*1*11*

A

Q2Q1Q0011110000**11**


K2A

Q2Q1Q0011110000****11


При М=0 автомат выполняет функцию регистра сдвига влево, сигналы возбуждения для триггеров в этом случае будут следующими:


Выбирать сигнал возбуждения будем по формуле:



Где SA - сигнал возбуждения для режима М=1 и SB - сигнал возбуждения для режима М=0. Тогда:



Сброс будет происходить в состояние 000 при М=0 и в состояние 101 при М=1. Синтез сигналов сброса прост и не требует описания реализации.


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


Соберем разработанную схему в OrCAD 9.1 в режиме SPISE на компонентах серии 74LS. Схема будет представлять собой 5 страниц, это три страницы для комбинационных схем сигналов возбуждения триггеров (рис. 1-3), одна страница - реализация комбинационной схемы для сигнала сброса (рис. 4) и последняя страница - триггеры, входные выходные порты, некоторые преобразования сигналов (рис. 5).

Рис.1 комбинационная схема для Т0


Рис.2 комбинационная схема для Т1


Рис.3 комбинационная схема для Т2


Рис.4 комбинационная схема для сигналов сброса


Рис.5 Основная схема.


Для верификации схемы схема была объединена в иерархический блок (рис. 6) и были проведены испытания схемы, временные диаграммы представлены ниже (рис. 7).


Рис.6 Иерархический блок.


Рис.7 Временные диаграммы.


На временной диаграмме продемонстрировано испытание спроектированного автомата, сначала он работает в режиме регистра сдвига, потом переходит в режим счетчика, причем в запрещенное состояние, сигналы сброса есть и в режиме регистра (инициализация автомата 25нс), так и в режиме счетчика (2800нс).

Рис.7.1 Задержки по сбросу.


Рис.7.2 Задержки по переключению.


Задержки составляют:

при сбросе 25нс (рис. 7.1);

при переключении 15нс (рис. 7.2).

Задержки по переключению это целиком задержка триггера - 15нс, задержка по сбросу, это задержка триггера (15нс) и задержка комбинационной схемы сброса (один элемент, 10нс). Комбинационная схема для триггеров успевает прийти в равновесие к следующему тактирующему сигналу, поэтому ее задержки не влияют.


Разработка абстрактных символов, используемых в проекте, в соответствии с требованиями ЕСКД


В проекте использовались элементы AND2, OR2, INV, NAND2, JK-триггер, тактируемые срезом, имеющий сигналы сброса и установки по сигналу '0'. Так же потребовался источник сигнала '1'. Абстрактные символы, находящиеся в разработанной библиотеке rgr_lib.olb представлены на рисунке 8.


Рис.8 Абстрактные символы.

Написание VHDL - моделей для ранее созданных символов


В моделях отражены задержки, характерные для реальных элементов, использованных в пункте 4.

Все разработанные модели находятся в библиотеке rgr_lib.vhd. Код библиотеки представлен в листинге 1.


Листинг 1. Библиотека rgr_lib.vhd

LIBRARY ieee;ieee.std_logic_1164.all;AND3 IS PORT(: IN std_logic;: IN std_logic;: IN std_logic;: OUT std_logic);AND3;model OF AND3 IS<= ( A AND B AND C ) AFTER 13 ns;model;

НЕ

LIBRARY ieee;ieee.std_logic_1164.all;INV IS PORT(: IN std_logic;: OUT std_logic);INV;model OF INV IS<= NOT ( A ) AFTER 10 ns;model;

2И-НЕ

IBRARY ieee;ieee.std_logic_1164.all;NAND2 IS PORT(: IN std_logic;: IN std_logic;: OUT std_logic);NAND2;model OF NAND2 IS<= NOT ( A AND B) AFTER 10 ns;model;

LIBRARY ieee;ieee.std_logic_1164.all;AND2 IS PORT(: IN std_logic;: IN std_logic;: OUT std_logic);AND2;model OF AND2 IS<= ( A AND B ) AFTER 13 ns;model;

2ИЛИ

LIBRARY ieee;ieee.std_logic_1164.all;OR2 IS PORT(: IN std_logic;: IN std_logic;: OUT std_logic);OR2;model OF OR2 IS<= ( A OR B ) AFTER 13 ns;model;

JK-триггер

LIBRARY ieee;ieee.std_logic_1164.all;JK IS PORT(: IN std_logic;: IN std_logic;: IN std_logic;: IN std_logic;: IN std_logic;: OUT std_logic;: OUT std_logic);JK;model OF JK ISQint : std_logic;(C, R, S)(R='0' and S='0') then<= 'X';R='0' then--asynchronous RESET<= '0';S='0' then<= '1';(C'event and C='0') then --CLK (J='1' and K='1') then <=not(Qint);(J='1') then<='1';(K='1') then<='0';if;if;process;<=Qint after 15ns;<= not(Qint);model;


Реализация спроектированного автомата в виде иерархического блока со схемой замещения на созданных в предыдущих пунктах «самодельных» символах. Моделирование схемы, сравнение с результатами, полученными в пункте 4


Реализация схемы замещения аналогична схеме замещения на стандартных элементах, она проиллюстрирована на рисунках 9-13.


Рис.9 комбинационная схема для Т0

Рис.10 комбинационная схема для Т1


Рис.11 комбинационная схема для Т2


Рис.12 комбинационная схема для сигналов сброса

Рис.13 Основная схема.


Автомат в виде иерархического блока представлен на рисунке 14. Временные диаграммы - на рисунке 15.


Рис.14 Иерархический блок.


Рис.15 Временные диаграммы автомата.


Схема испытания аналогична пункту 4. Временные диаграммы (рис. 15) совпали, это говорит о правильности спроектированных компонентов.


Рис.15.1 Задержки по сбросу.


Рис.15.2 Задержки по переключению.


Задержки по сбросу (рис. 15.1) и установке (рис. 15.2) совпали, (сброс 25нс, переключение 15нс). Это говорит об идентичности спроектированных компонентов библиотечным.


Разработка функциональной VHDL - модели цифрового автомата (без учета задержек)


Для разработки функциональной модели в среде Active-HDL написан VHDL-код (Листинг 2). Для удобства программирования Выходной сигнал объединен в шину (Рис. 16).

Листинг2. VHDL-код функциональной модели автомата.

library IEEE;IEEE.STD_LOGIC_1164.all;\03\ is

port(: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: out STD_LOGIC_VECTOR(2 downto 0)

);\03\;

-}} End of automatically maintained sectionIEEE;IEEE.std_logic_unsigned.all;\03\ of \03\ isintQ: STD_LOGIC_VECTOR(2 downto 0); (C, R)R='1' thenM='1' then<="101";<="000";if;C'event and C='0' thenM='1' then(intQ="110") or (intQ="000") then<="101";intQ="111" then<="100"; <=intQ-1;if;<= intQ(1 downto 0) & DL;if;if;process;<=intQ;

-- enter your statements here --\03\;


Рис.16 Испытание функциональной модели автомата.


Рис.17 Испытание функциональной модели. Временные диаграммы.


Временные диаграммы (рис. 17) функциональной VHDL-модели совпадают с временными диаграммами автоматов, спроектированных в пунктах 4 и 7, за исключением задержек.


Разработка потоковой VHDL - модели автомата


Потоковая модель была разработана вручную, задержки были померены в узлах и отражены в коде. VHDL-код представлен в листинге 3. Временные диаграммы (рис. 18) полностью совпали с временными диаграммами в пунктах 4 и 7, что говорит о правильно реализации потоковой модели.


Листинг 3. VHDL-код потоковой модели автомата.

library IEEE;IEEE.STD_LOGIC_1164.all;\02\ is(: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: out STD_LOGIC;: out STD_LOGIC;: out STD_LOGIC

);\02\;

-}} End of automatically maintained section\02\ of \02\ is intQ0: STD_LOGIC;intQ1: STD_LOGIC;intQ2: STD_LOGIC;nM : STD_LOGIC;nDL : STD_LOGIC;J0 : STD_LOGIC;J1 : STD_LOGIC;J2 : STD_LOGIC;K0 : STD_LOGIC;K1 : STD_LOGIC;K2 : STD_LOGIC;J1ta : STD_LOGIC;J2ta : STD_LOGIC;K1ta : STD_LOGIC; KJ2ta : STD_LOGIC;J0tb : STD_LOGIC;K0tb : STD_LOGIC;J1tb : STD_LOGIC;J2tb : STD_LOGIC;K1tb : STD_LOGIC;K2tb : STD_LOGIC;

- enter your statements here --<= not(M) after 10ns;<= not(DL) after 10ns;ta<=intQ2 and not(intQ0) and M after 13ns;ta<=(intQ2 or not(intQ0)) and M after 26ns;ta<=not(intQ1) and not(intQ0) and M after 13ns;tb<=DL and nMafter 13 ns;tb<=nDL and nM after 13 ns;tb<=intQ0 and nM after 13 ns;tb<=not(intQ0) and nM after 13 ns;tb<=intQ1 and nMafter 13 ns;tb<=not(intQ1) and nM after 13 ns;<= M or J0tb after 13ns;<= M or K0tb after 13ns;<=J1ta or J1tb after 13ns;<=K1ta or K1tb after 13ns;<=KJ2ta or J2tb after 13ns;<=KJ2ta or K2tb after 13ns;(C, R)

if M='0' and R='1' then<= '0' after 10ns;<= '0' after 10ns;<= '0' after 10ns;M='1' and R='1' then<= '1' after 10ns;<= '0' after 10ns;<= '1' after 10ns;C'event and C = '0' then(J0='1' and K0='1') then <=not(intQ0);(J0='1') then<='1';(K0='1') then<='0';if; (J1='1' and K1='1') then <=not(intQ1);(J1='1') then<='1';(K1='1') then<='0';if;(J2='1' and K0='1') then <=not(intQ2);(J2='1') then<='1';(K2='1') then<='0';if;if;process;<=intQ0 after 15ns;<=intQ1 after 15ns;<=intQ2 after 15ns;\02\;


Рис.17 Временные диаграммы.


Рис.17.1 Измерение задержек.

Временные диаграммы (рис. 17) совпали с предыдущими. Задержки (рис. 17.1) по сбросу(25нс) и по переключению (15нс) так же совпали, это говорит о том, что модель автомата спроектирована правильно.


Содержание 1. Постановка задачи 2. Краткое описание объекта проектирования (УГО, назначение выводов, логическая таблица, диаграмма состояний автомата)

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ