shpora2010oct17_2011
.pdf
Таблиця 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
