Материал: 3963

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

16

Таблица 1

Исх.

Вход

Сост.

Вы-

 

 

рех.

ход

 

 

 

 

s1

WD

s2

CTD

 

WD-ПУСК

s1

-

 

WD-ПУСК-

s1

-

 

WD-ПУСК-

s3

CTM1

 

CT0

 

 

s2

WD

s2

-

 

WD

s1

-

 

 

 

 

 

 

s3

CT0

s3

CTM1

 

CT0

s1

-

 

 

 

 

При реализации регистров состояний и выходов на D-триггерах после до-

определения функций комбинационной части автомата Мили получим:

z1 = WDQ ■ Q2,

 

z2 = WD ■ PUSK ■ CTO ■ Q2 + CTO ■ Q1,

 

d1 = WD ■ PUSK ■ CT0 ■ Q2 + CTO ■ Q .

d2 = WD ■ Q,

В уравнениях ф и d2 - входы регистра состояний, ъх и z2 регистра выхо-

дов.

1.1. Модель УА Мили

Опишем функции комбинационной части УА на VHDL. --{entity {fgpi} architecture {fgpi}} library IEEE; use IEEE.STD_LOGIC_1164.all; entity fgpi is --

port( wd, pusk, ctO, q1, q2 : in STD_LOGIC; -- d1, d2, z1, z2 : out STD_LOGIC);

-end fgpi;

architecture fgpi of fgpi is –begin -- функции комбинационной части

17

автомата

z1<=wd and (not q1) and (not q2);

z2<=((not wd) and pusk and(not ctO) and (not q2)) or ((not ctO) and q1); d1<=((not wd) and pusk and (not ct0) and (not q2))or ((not ct0) and q1); d2<=wd and (not q1); end fgpi;

Память автомата реализуем на микросхеме ТМ8 - четыре D - триггера с общими входами начальной установки - r и записи по фронту импульса с (Рис.

-- File : TM8.vhd

 

 

 

 

 

— 2

 

 

 

 

 

 

 

 

 

 

 

--{entity {TM8} architecture {TM8}}

d1

 

T

q1

о- 3

d2

 

 

q2

— 7

 

 

 

 

library IEEE;

12

d3

 

 

 

о- 6

 

13

d_

 

 

q3

— 1

 

9

 

 

 

 

0 o-

 

'c

 

 

 

 

 

 

 

11

 

 

 

 

 

q4

 

 

 

 

 

—15

 

 

 

r

 

 

 

 

 

 

 

о- 14

 

 

 

 

 

 

 

Рис. 22. Микросхема TM8

22). Она так же описана на VHDL.

 

 

 

 

 

use IEEE.STD_LOGIC_1164.all;

 

 

 

 

 

--

Объект ТМ8

 

 

 

 

 

entity TM8 is

 

 

 

 

 

 

port( d1, d2, d3, d4, c, r : in STD_LOGIC;

 

 

 

 

 

q1, nq1, q2, nq2, q3, nq3, q4, nq4 : out STD_LOGIC);

 

 

 

 

 

end TM8;

 

 

 

 

 

 

--

Описание архитектуры (функционирование ТМ8)

architecture TM8 of TM8 is begin

process (d1, d2, d3, d4, c, r) -- Вычисление процесса только при изменении

-- переменных, перечислены в скобках begin

18

-- Начальная установка при r=1 (RESET) if (r =

'1') then q1<='0'; nq1<='1'; q2<='0'; nq2<='1';

q3<='0'; nq3<='1'; q4<='0'; nq4<='1';

elsif (c'event and c='1' and r='0') -- Так выделяется фронт им-

пульса

-- запись данных по фронту тактового импульса then q1<=d1; nq1<= not d1; q2<=d2; nq2<= not d2; q3<=d3; nq3<= not d3; q4<=d4; nq4<= not d4;

end if; end process; end TM8;

Объединим полученные модели в схему УА, которая в обозначениях AC- TIVE-HDL приведена на рис. Инверсные выходы триггеров не используются

19

Нажав кнопку ^ преобразуем схему в VHDL-текст. Затем выполним

п

реобразуем схему в VH компиляцию полученного VHDL текста (Compile ^ ) и

моделирование авто-

_п_г

мата (Waveform ™ ).

В таблице приведены результаты моделирования управляющего автомата.

Вертикальными линиями помечены моменты формирования выходных сигна-

лов.

Результаты моделирования управляющего автомата Мили

N

 

S

i . 5 . i Jp i . 15 i 2.0 i 25 i 3.0 i 35 i +.0 i

г

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

C

 

оля_алшялялги

^ЛЯЛЯЛЯЛЛП

 

 

 

 

 

 

 

 

 

w

 

W

г

 

г

 

 

 

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

ct

 

T

 

 

 

 

 

ct

 

 

 

п

 

п

 

 

 

 

 

 

 

 

 

 

 

ct

 

 

 

 

 

 

 

 

м

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

м

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.2. Операционная часть устройства

Для завершения проекта нам нужна модель счетчика, который может ра-

ботать в режиме параллельной записи данных и вычитания и логика для фор-

мирования сигналов. Используем счетчик ИЕ7, УГО которого приведено на рис.

25. Его функционирование также опишем на языке VHDL и выполним мо-

делирование для проверки правильности описания.

-- File : ie7.vhd --{entity {ie7}

D

CT16

Q

 

 

15 - 1 1

1

3

architecture {ie7}}

 

- 10 - 2

 

2

2

 

 

— Подключение необходимых библиотек

9 - 3

 

3

6

library IEEE;

4

 

4

7

11 -cl dw

 

 

 

-- библиотека логических переменных и операций

 

 

 

5 4

 

 

 

 

~7 cu

 

wpu t>- 12

use IEEE.STD_LOGIC_1164.all;

14 -I

 

u ucd

 

wpd

Ё>-

-- библиотеки двоичной арифметики use

urs

 

 

 

 

 

 

13

 

 

 

 

 

IEEE.STD_LOGIC_ARITH.all; use

Рис. 25. УГО микросхемы ИЕ7

 

 

 

 

IEEE.STD_LOGIC_UNSIGNED.all;

-- описание портов (входов-выходов) объекта entity ie7 is port(

d1, d2, d3, d4, dw, ucu, ucd,urs: in STD_LOGIC; q1, q2, q3, q4, wpu, wpd : out STD_LOGIC); end ie7;

-- Описание функционирования счетчика architecture ie7 of ie7 is

signal z : STD_LOGIC_VECTOR(0 to 3); -- внутреннее состояние счетчика begin

N: process (d1, d2, d3, d4, dw, ucu, ucd,urs) begin

--Начальная установка сигналов при urs=1 if (urs=T) then z<=(others=>'0') ; wpu<='0'; wpd<='0';

--параллельная запись данных с входов D elsif (urs='0' and dw='0') then z(0)<=d1; z(1)<=d2; z(2)<=d3; z(3)<=d4;

--Режим суммирования

elsif (urs='0' and dw='1' and ucd-1' and ucu'event and ucu='1')

then if(z(0)='1' and z(1)='1' and z(2)='1' and z(3)='1') then wpu<='1'; end if; z <= z + 1 ;

-- Режим вычитания

Источник: https://studfile.net/preview/16413995/