
shpora2010oct17_2011
.pdf
Рис. 5.59 Функціональна схема автомата Мура з двійковим кодуванням станів Примітка 1. Часова діаграма роботи автомата Мура з двійковим кодуванням
станів.
Рис. 5.60 Часова діаграма роботи автомата Мура з двійковим кодуванням станів Примітка 2. VHDL-опис автомата Мура з двійковим кодуванням станів (назва
цього автомата – 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;
41
attribute state_vector: string;
attribute state_vector of fsm1_arch: architecture is "State"; 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.3 Автомат Мура на елементах базису Буля і D-тригерах, що спрацьовують по фронту (сусіднє кодування станів)
Намалювати граф, таблиці переходів та виходів, написати скорочені ДНФ функцій переходів та виходів, та намалювати схему автомата Мура на основі елементів базису Буля і D-тригерів. Коди станів автомата у контурі станів 0, 1, 2, 3 -
двійкові. Якщо немає сигналу X, автомат послідовно проходить стани 0, 1, 2, 3, 0,
..., а при появі сигналу X послідовність переходів змінюється: автомат переходить із стану 2 до стану 0 (при цьому послідовність зміни інших станів не змінюється).
Вихідний сигнал Y формується у станах 1 та 3.
Відповідь:
42

ai /Q1Q0/
Рис. 5.61 Граф автомата Мура із сусіднім кодуванням станів та позначки у вершинах графа
Рис. 5.62 Структурна схема автомата Мура Таблиця 5.18 - Таблиця переходів автомата Мура із сусіднім кодуванням станів
43

Таблиця 5.19 - Таблиця виходів автомата Мура із сусіднім кодуванням станів
|
|
|
|
|
|
|
Попередній стан |
|
|
Вихідні |
|||||||
|
|
№ |
|
|
|
автомата |
|
|
сигнали |
||||||||
|
|
Позначення |
Код |
автомата |
|||||||||||||
|
|
|
|
|
|
|
|
ai |
Q1 |
|
Q0 |
|
y |
||||
|
|
0 |
|
|
|
a0 |
0 |
|
|
|
0 |
0 |
|
||||
|
|
1 |
|
|
|
a1 |
0 |
|
|
|
1- |
1 |
|
||||
|
|
2 |
|
|
|
a3 |
1 |
|
|
|
1 |
|
|||||
|
|
|
|
|
|
|
|
0 |
|
||||||||
|
|
3 |
|
|
|
a2 |
1 |
|
|
|
1 |
0 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D1 Q0 |
x |
Q1Q0 |
D0 Q1 |
y Q1Q0 Q1Q0 |
Рис. 5.63 Карти Карно та ДНФ для автомата Мура із сусіднім кодуванням станів
Рис. 5.64 Функціональна схема автомата Мура із сусіднім кодуванням станів Примітка 1. Часова діаграма роботи автомата Мура із сусіднім кодуванням
станів.
Рис. 5.65 Часова діаграма роботи автомата Мура із сусіднім кодуванням станів Примітка 2. VHDL-опис автомата Мура із сусіднім кодуванням станів (назва
цього автомата – fsm2).
44
library IEEE;
use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity fsm2 is
port (
c: in STD_LOGIC;
x:in STD_LOGIC;
y:out STD_LOGIC);
end fsm2;
architecture fsm2_arch of fsm2 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 |
"11 " & |
-- a2 |
"10" ; |
-- a3 |
signal State: State_type; attribute state_vector: string;
attribute state_vector of fsm2_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 fsm2_arch;
45

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

Таблиця 5.20 - Таблиця переходів автомата Мура із сусіднім кодуванням станів
Таблиця 5.21 - Таблиця виходів автомата Мура із сусіднім кодуванням станів
|
|
|
|
|
|
|
Попередній стан |
|
|
Вихідні |
|||||||
|
|
№ |
|
|
|
автомата |
|
|
сигнали |
||||||||
|
|
Позначення |
Код |
автомата |
|||||||||||||
|
|
|
|
|
|
|
|
ai |
Q1 |
|
Q0 |
|
y |
||||
|
|
0 |
|
|
|
a0 |
0 |
|
|
|
0 |
0 |
|
||||
|
|
1 |
|
|
|
a1 |
0 |
|
|
|
1- |
1 |
|
||||
|
|
2 |
|
|
|
a3 |
1 |
|
|
|
1 |
|
|||||
|
|
|
|
|
|
|
|
0 |
|
||||||||
|
|
3 |
|
|
|
a2 |
1 |
|
|
|
1 |
0 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D1 Q0 |
x |
Q1Q0 |
D0 Q1 |
y Q1Q0 Q1Q0 |
Рис. 5.68 Карти Карно та ДНФ для автомата Мура із сусіднім кодуванням станів
47

Рис. 5.69 Функціональна схема автомата Мура із сусіднім кодуванням станів Примітка 1. Часова діаграма роботи автомата Мура із сусіднім кодуванням
станів.
Рис. 5.70 Часова діаграма роботи автомата Мура із сусіднім кодуванням станів Примітка 2. VHDL-опис автомата Мура із сусіднім кодуванням станів (назва
цього автомата – fsm2).
library IEEE;
use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity fsm2 is
port (
c: in STD_LOGIC;
x:in STD_LOGIC;
y:out STD_LOGIC);
end fsm2;
architecture fsm2_arch of fsm2 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 |
"11 " & |
-- a2 |
"10" ; |
-- a3 |
signal State: State_type; attribute state_vector: string;
48
attribute state_vector of fsm2_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 fsm2_arch;
5.5 Автомат Мура на елементах базису Буля і D-тригерах, що спрацьовують по фронту (унітарне кодування станів)
Намалювати граф, таблиці переходів та виходів, написати скорочені ДНФ функцій переходів та виходів, та намалювати схему автомата Мура на основі елементів базису Буля і D-тригерів. Коди станів автомата у контурі станів 0, 1, 2, 3 -
унітарні. Якщо немає сигналу X, автомат послідовно проходить стани 0, 1, 2, 3, 0, ...,
а при появі сигналу X послідовність переходів змінюється: автомат переходить із стану 2 до стану 0 (при цьому послідовність зміни інших станів не змінюється).
Вихідний сигнал Y формується у станах 1 та 3.
Відповідь:
49

Рис. 5.71 Граф автомата Мура із унітарним кодуванням станів та позначки у вершинах графа
Рис. 5.72 Структурна схема автомата Мура Таблиця 5.22 - Таблиця переходів автомата Мура із унітарним кодуванням станів
50