Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

shpora2010oct17_2011

.pdf
Скачиваний:
48
Добавлен:
12.02.2016
Размер:
4.09 Mб
Скачать

Таблиця 5.23 - Таблиця виходів автомата Мура із унітарним кодуванням станів

D3 Q2x

D2 Q1

D1 Q0

D0 Q3 Q2x y Q3 Q1

Рис. 5.73 ДНФ для автомата Мура із унітарним кодуванням станів

Рис. 5.74 Функціональна схема автомата Мура із унітарним кодуванням станів Примітка 1. Часова діаграма роботи автомата Мура із унітарним кодуванням

станів.

51

Рис. 5.75 Часова діаграма роботи автомата Мура із унітарним кодуванням станів Примітка 2. VHDL-опис автомата Мура із унітарним кодуванням станів (назва

цього автомата – fsm3).

library IEEE;

use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity fsm3 is

port (

c: in STD_LOGIC;

x:in STD_LOGIC;

y:out STD_LOGIC);

end fsm3;

architecture fsm3_arch of fsm3 is attribute enum_encoding: string; type State_type is ( a0, a1, a2, a3);

attribute enum_encoding of State_type: type is

"0001 " &

-- a0

"0010 " &

-- a1

"0100 " &

-- a2

"1000" ;

-- a3

signal State: State_type; attribute state_vector: string;

attribute state_vector of fsm3_arch: architecture is "State"; begin

State_machine: process (c) begin

if rising_edge(c) then case State is

when a0 =>

State <= a1; when a1 =>

State <= a2; when a2 =>

if x='1' then

State <= a0; elsif x='0' then

State <= a3;

end if; when a3 =>

52

State <= a0; when others =>

null;

end case;

end if; end process; y_assignment:

y <= '1' when (State = a1) else '1' when (State = a3) else '0';

end fsm3_arch;

5.6 Автомат Мура на елементах монобазису І-НЕ і D-тригерах, що спрацьовують по фронту (унітарне кодування станів)

Намалювати граф, таблиці переходів та виходів, написати скорочені ДНФ функцій переходів та виходів, та намалювати схему автомата Мура на основі елементів монобазису І-НЕ і D-тригерів. Коди станів автомата у контурі станів 0, 1, 2, 3 - унітарні. Якщо немає сигналу X, автомат послідовно проходить стани 0, 1, 2, 3, 0, ..., а при появі сигналу X послідовність переходів змінюється: автомат переходить із стану 2 до стану 0 (при цьому послідовність зміни інших станів не змінюється). Вихідний сигнал Y формується у станах 1 та 3.

Відповідь:

Рис. 5.76 Граф автомата Мура із унітарним кодуванням станів та позначки у вершинах графа

53

Рис. 5.77 Структурна схема автомата Мура Таблиця 5.24 - Таблиця переходів автомата Мура із унітарним кодуванням станів

Таблиця 5.25 - Таблиця виходів автомата Мура із унітарним кодуванням станів

D3 Q2x

D2 Q1

D1 Q0

D0 Q3 Q2x y Q3 Q1

Рис. 5.78 ДНФ для автомата Мура із унітарним кодуванням станів

54

Рис. 5.79 Функціональна схема автомата Мура із унітарним кодуванням станів Примітка 1. Часова діаграма роботи автомата Мура із унітарним кодуванням

станів.

Рис. 5.80 Часова діаграма роботи автомата Мура із унітарним кодуванням станів Примітка 2. VHDL-опис автомата Мура із унітарним кодуванням станів (назва

цього автомата – fsm3).

library IEEE;

use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity fsm3 is

port (

c: in STD_LOGIC;

x:in STD_LOGIC;

y:out STD_LOGIC);

end fsm3;

architecture fsm3_arch of fsm3 is

55

attribute enum_encoding: string; type State_type is ( a0, a1, a2, a3);

attribute enum_encoding of State_type: type is

"0001 " &

-- a0

"0010 " &

-- a1

"0100 " &

-- a2

"1000" ;

-- a3

signal State: State_type; attribute state_vector: string;

attribute state_vector of fsm3_arch: architecture is "State"; begin

State_machine: process (c) begin

if rising_edge(c) then case State is

when a0 =>

State <= a1; when a1 =>

State <= a2; when a2 =>

if x='1' then

State <= a0; elsif x='0' then

State <= a3;

end if; when a3 =>

State <= a0; when others =>

null;

end case;

end if; end process; y_assignment:

y <= '1' when (State = a1) else '1' when (State = a3) else '0';

end fsm3_arch;

5.7 Автомат Мура на елементах базису Буля і T-тригерах з входом дозволу роботи

CE (двійкове кодування станів)

Намалювати граф, таблиці переходів та виходів, написати скорочені ДНФ функцій переходів та виходів, та намалювати схему автомата Мура на основі елементів базису Буля і Т-тригерів з входом дозволу роботи CE. Коди станів автомата у контурі станів 0, 1, 2, 3 - двійкові. Якщо немає сигналу X, автомат послідовно проходить стани 0, 1, 2, 3, 0, ..., а при появі сигналу X послідовність переходів змінюється: автомат переходить із стану 0 до стану 0 (при цьому

56

послідовність зміни інших станів не змінюється). Вихідний сигнал Y формується у станах 0 та 1.

Відповідь:

ai /Q1Q0/

Рис. 5.81 Граф автомата Мура та позначки у вершинах графа

Рис. 5.82 Структурна схема автомата Мура

57

Таблиця 5.26 - Таблиця переходів автомата Мура на T-тригерах та сигнали збудження його тригерів

Таблиця 5.27 - Таблиця виходів автомата Мура на T-тригерах

CE0 Q1 Q0

x

CE1 Q0

 

 

 

y Q1

Рис. 5.83 Карти Карно та ДНФ для автомата Мура на T-тригерах

58

Рис. 5.84 Функціональна схема автомата Мура на T-тригерах Примітка 1. Часова діаграма роботи автомата Мура на T-тригерах.

Рис. 5.85 Часова діаграма роботи автомата Мура на T-тригерах Примітка 2. VHDL-опис автомата Мура на T-тригерах (назва цього автомата –

fsm1).

library IEEE;

use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity fsm1 is

port (

c: in STD_LOGIC;

x:in STD_LOGIC;

y:out STD_LOGIC);

end fsm1;

architecture fsm1_arch of fsm1 is attribute enum_encoding: string; type State_type is ( a0, a1, a2, a3);

attribute enum_encoding of State_type: type is

"00 " &

-- a0

"01 " &

-- a1

"10 " &

-- a2

"11" ;

-- a3

signal State: State_type; attribute state_vector: string;

attribute state_vector of fsm1_arch: architecture is "State";

59

begin

State_machine: process (c) begin

if rising_edge(c) then case State is

when a0 =>

if x='1' then

State <= a0; elsif x='0' then

State <= a1;

end if; when a1 =>

State <= a2; when a2 =>

State <= a3; when a3 =>

State <= a0; when others =>

null;

end case;

end if; end process; y_assignment:

y <= '1' when (State = a0) else '1' when (State = a1) else '0';

end fsm1_arch;

5.8 Автомат Мура на елементах базису Буля і JK-тригерах (двійкове кодування станів)

Намалювати граф, таблиці переходів та виходів, написати скорочені ДНФ функцій переходів та виходів, та намалювати схему автомата Мура на основі елементів базису Буля і JK-тригерів. Коди станів автомата у контурі станів 0, 1, 2, 3 - двійкові. Якщо немає сигналу X, автомат послідовно проходить стани 0, 1, 2, 3, 0,

..., а при появі сигналу X послідовність переходів змінюється: автомат переходить із стану 0 до стану 0 (при цьому послідовність зміни інших станів не змінюється).

Вихідний сигнал Y формується у станах 0 та 1.

Відповідь:

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]