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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.09.2013
Размер файла 831,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • 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-модели автомата.

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

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

Размещено на http://www.allbest.ru/

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

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

C - тактирующий сигнал (по срезу).

DL - число, «вдвигаемое» при работе в режиме регистра сдвига влево.

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

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

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

Число входных импульсов

m

Текущее cостояние (t)

СледующееСостояние (t+1)

0

0

0

0

0

0

0

DL

1

0

0

0

1

0

1

DL

2

0

0

1

0

1

0

DL

3

0

0

1

1

1

1

DL

4

0

1

0

0

0

0

DL

5

0

1

0

1

0

1

DL

6

0

1

1

0

1

0

DL

7

0

1

1

1

1

1

DL

8

1

1

0

1

1

0

0

9

1

1

0

0

0

1

1

10

1

0

1

1

0

1

0

11

1

0

1

0

0

0

1

12

1

0

0

1

0

0

0

13

1

0

0

0

1

0

1

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

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

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

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

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

Q2t

Q1t

Q0t

Q2t+1

Q1t+1

Q0t+1

J2

K2

J1

K1

J0

K0

1

0

1

1

0

0

*

0

0

*

*

1

1

0

0

0

1

1

*

1

1

*

1

*

0

1

1

0

1

0

0

*

*

0

*

1

0

1

0

0

0

1

0

*

*

1

1

*

0

0

1

0

0

0

0

*

0

*

*

1

0

0

0

1

0

1

1

*

0

*

1

*

Запрещенные состояния:

1

1

0

1

0

1

*

0

*

1

1

*

1

1

1

1

0

0

*

0

*

1

*

1

Из таблицы видно, что сигналы возбуждения для триггера Т0 следующие:

J0A=K0A=1

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

J1A

Q2Q1Q0

01

11

10

00

0

*

*

1

*

*

1

K1A

Q2Q1Q0

01

11

10

00

0

*

1

*

1

*

1

1

*

J2A

Q2Q1Q0

01

11

10

00

0

*

*

1

1

*

*

K2A

Q2Q1Q0

01

11

10

00

0

*

*

*

*

1

1

При М=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;

USE ieee.std_logic_1164.all;

ENTITY AND3 IS PORT(

A : IN std_logic;

B : IN std_logic;

C : IN std_logic;

Y : OUT std_logic);

END AND3;

ARCHITECTURE model OF AND3 IS

BEGIN

Y <= ( A AND B AND C ) AFTER 13 ns;

END model;

НЕ

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY INV IS PORT(

A : IN std_logic;

Y : OUT std_logic);

END INV;

ARCHITECTURE model OF INV IS

BEGIN

Y <= NOT ( A ) AFTER 10 ns;

END model;

2И-НЕ

IBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY NAND2 IS PORT(

A : IN std_logic;

B : IN std_logic;

Y : OUT std_logic);

END NAND2;

ARCHITECTURE model OF NAND2 IS

BEGIN

Y <= NOT ( A AND B) AFTER 10 ns;

END model;

2И

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY AND2 IS PORT(

A : IN std_logic;

B : IN std_logic;

Y : OUT std_logic);

END AND2;

ARCHITECTURE model OF AND2 IS

BEGIN

Y <= ( A AND B ) AFTER 13 ns;

END model;

2ИЛИ

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY OR2 IS PORT(

A : IN std_logic;

B : IN std_logic;

Y : OUT std_logic);

END OR2;

ARCHITECTURE model OF OR2 IS

BEGIN

Y <= ( A OR B ) AFTER 13 ns;

END model;

JK-триггер

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY JK IS PORT(

J : IN std_logic;

C : IN std_logic;

K : IN std_logic;

S : IN std_logic;

R : IN std_logic;

Q : OUT std_logic;

nQ : OUT std_logic);

END JK;

ARCHITECTURE model OF JK IS

signal Qint : std_logic;

BEGIN

process (C, R, S)

begin

if (R='0' and S='0') then

Qint<= 'X';

elsif R='0' then--asynchronous RESET

Qint <= '0';

elsif S='0' then

Qint <= '1';

elsif (C'event and C='0') then --CLK

if (J='1' and K='1') then

Qint<=not(Qint);

elsif (J='1') then

Qint<='1';

elsif (K='1') then

Qint<='0';

end if;

end if;

end process;

Q<=Qint after 15ns;

nQ<= not(Qint);

END 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;

use IEEE.STD_LOGIC_1164.all;

ntity \03\ is

port(

M : in STD_LOGIC;

C : in STD_LOGIC;

DL : in STD_LOGIC;

R : in STD_LOGIC;

Q : out STD_LOGIC_VECTOR(2 downto 0)

);

end \03\;

--}} End of automatically maintained section

library IEEE;

use IEEE.std_logic_unsigned.all;

architecture \03\ of \03\ is

signal intQ: STD_LOGIC_VECTOR(2 downto 0);

begin

process (C, R)

begin

if R='1' then

if M='1' then

intQ<="101";

else

intQ<="000";

end if;

elsif C'event and C='0' then

if M='1' then

if (intQ="110") or (intQ="000") then

intQ<="101";

elsif intQ="111" then

intQ<="100";

else

intQ<=intQ-1;

end if;

else

intQ<= intQ(1 downto 0) & DL;

end if;

end if;

end process;

Q<=intQ;

-- enter your statements here --

end \03\;

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

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

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

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

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

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

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity \02\ is

port(

M : in STD_LOGIC;

C : in STD_LOGIC;

DL : in STD_LOGIC;

R : in STD_LOGIC;

Q2 : out STD_LOGIC;

Q1 : out STD_LOGIC;

Q0 : out STD_LOGIC

);

end \02\;

--}} End of automatically maintained section

architecture \02\ of \02\ is

signal intQ0: STD_LOGIC;

signal intQ1: STD_LOGIC;

signal intQ2: STD_LOGIC;

signal nM : STD_LOGIC;

signal nDL : STD_LOGIC;

signal J0 : STD_LOGIC;

signal J1 : STD_LOGIC;

signal J2 : STD_LOGIC;

signal K0 : STD_LOGIC;

signal K1 : STD_LOGIC;

signal K2 : STD_LOGIC;

signal J1ta : STD_LOGIC;

signal J2ta : STD_LOGIC;

signal K1ta : STD_LOGIC;

signal KJ2ta : STD_LOGIC;

signal J0tb : STD_LOGIC;

signal K0tb : STD_LOGIC;

signal J1tb : STD_LOGIC;

signal J2tb : STD_LOGIC;

signal K1tb : STD_LOGIC;

signal K2tb : STD_LOGIC;

begin

-- enter your statements here --

nM<= not(M) after 10ns;

nDL<= not(DL) after 10ns;

J1ta<=intQ2 and not(intQ0) and M after 13ns;

K1ta<=(intQ2 or not(intQ0)) and M after 26ns;

KJ2ta<=not(intQ1) and not(intQ0) and M after 13ns;

J0tb<=DL and nMafter 13 ns;

K0tb<=nDL and nM after 13 ns;

J1tb<=intQ0 and nM after 13 ns;

K1tb<=not(intQ0) and nM after 13 ns;

J2tb<=intQ1 and nMafter 13 ns;

K2tb<=not(intQ1) and nM after 13 ns;

J0<= M or J0tb after 13ns;

K0<= M or K0tb after 13ns;

J1<=J1ta or J1tb after 13ns;

K1<=K1ta or K1tb after 13ns;

J2<=KJ2ta or J2tb after 13ns;

K2<=KJ2ta or K2tb after 13ns;

process (C, R)

begin

if M='0' and R='1' then

intQ2 <= '0' after 10ns;

intQ1 <= '0' after 10ns;

intQ0 <= '0' after 10ns;

elsif M='1' and R='1' then

intQ2 <= '1' after 10ns;

intQ1 <= '0' after 10ns;

intQ0 <= '1' after 10ns;

elsif C'event and C = '0' then

if (J0='1' and K0='1') then

intQ0<=not(intQ0);

elsif (J0='1') then

intQ0<='1';

elsif (K0='1') then

intQ0<='0';

end if;

if (J1='1' and K1='1') then

intQ1<=not(intQ1);

elsif (J1='1') then

intQ1<='1';

elsif (K1='1') then

intQ1<='0';

end if;

if (J2='1' and K0='1') then

intQ2<=not(intQ2);

elsif (J2='1') then

intQ2<='1';

elsif (K2='1') then

intQ2<='0';

end if;

end if;

end process;

Q0<=intQ0 after 15ns;

Q1<=intQ1 after 15ns;

Q2<=intQ2 after 15ns;

end \02\;

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

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

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

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [506,9 K], добавлен 26.12.2012

  • Синтез автомата для преобразования двоично-десятичного кода. Кодировка алфавитов и состояний. Построение булевых функций, минимизация. Разметка вход-выходных слов для автомата Мили и автомата Мура. Реализация на элементах малой степени интеграции.

    контрольная работа [141,5 K], добавлен 14.10.2012

  • Изучение принципа работы цифрового автомата для сложения двоичных чисел, представленных в форме с фиксированной запятой, на базисе алгебры Буля. Правила построения операционных и функциональных схем отдельных устройств, логических систем и функций.

    курсовая работа [1,2 M], добавлен 24.01.2014

  • Методика минимизации абстрактного автомата. Порядок построения графа полученного минимизированного автомата. Синтез на элементах ИЛИ-НЕ и Т-тригерах. Составление таблицы переходов. Разработка микропрограммного автомата, реализующего микропрограмму.

    курсовая работа [997,7 K], добавлен 28.03.2011

  • Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.

    курсовая работа [671,3 K], добавлен 04.11.2014

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

    методичка [258,6 K], добавлен 28.04.2009

  • Понятие, последовательность построения и схемная реализация цифрового автомата. Описание форм представления функций алгебры логики. Принципы минимизации функций выходов и переходов автомата, их перевода в базис. Сведенья о программе Electronics Workbench.

    курсовая работа [2,0 M], добавлен 27.10.2010

  • Общая схема D-триггера и цифрового автомата Мили. Построение входных и выходных преобразователей в соответствии с таблицами кодирования входных и выходных сигналов. Составление таблиц переходов и выхода состояния автомата Мили. Выбор серии микросхем.

    курсовая работа [525,4 K], добавлен 04.11.2012

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

    дипломная работа [1,8 M], добавлен 18.08.2013

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

    курсовая работа [3,4 M], добавлен 05.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.