ПЦУСБ/Лабораторная работа 3 — различия между версиями
ANA (обсуждение | вклад) м (→Вариант 1) |
ANA (обсуждение | вклад) м (→Вариант 18) |
||
Строка 762: | Строка 762: | ||
<!-- | <!-- | ||
− | |||
--> | --> | ||
+ | |||
+ | === Вариант 19 === | ||
+ | |||
+ | <!-- (20)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>11</sub>, a<sub>2</sub>, a<sub>3</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>1</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>2</sub>, z<sub>3, </sub> т.е. Z = {z<sub>1</sub> , z<sub>2</sub> , z<sub>3</sub>}. Выходной алфавит W образуют сигналы: W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>3</sub> ,w<sub>44</sub>, w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>11</sub> | ||
+ | | valign="TOP" | a<sub>2</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>3</sub>/w<sub>5</sub> | ||
+ | | a<sub>2</sub>/w<sub>1</sub> | ||
+ | | a<sub>2</sub>/w<sub>2</sub> | ||
+ | | a<sub>11</sub>/w<sub>5</sub> | ||
+ | |- | ||
+ | | z<sub>2</sub> | ||
+ | | a<sub>4</sub>/w<sub>5</sub> | ||
+ | | a<sub>2</sub>/w<sub>5</sub> | ||
+ | | a<sub>4</sub>/w<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>5</sub> | ||
+ | | a<sub>1</sub>/w<sub>44</sub> | ||
+ | | a<sub>1</sub>/w<sub>44</sub> | ||
+ | | a<sub>11</sub>/w<sub>5</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 20 === | ||
+ | |||
+ | <!-- (21)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>1</sub>, a<sub>22</sub>, a<sub>3</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>1</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>2</sub>, z<sub>3, </sub> т.е. Z = {z<sub>1</sub> , z<sub>2</sub> , z<sub>3</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>33</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>1</sub> | ||
+ | | valign="TOP" | a<sub>22</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>3</sub>/w<sub>4</sub> | ||
+ | | a<sub>22</sub>/w<sub>1</sub> | ||
+ | | a<sub>1</sub>/w<sub>2</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>2</sub> | ||
+ | | a<sub>4</sub>/w<sub>4</sub> | ||
+ | | a<sub>22</sub>/w<sub>33</sub> | ||
+ | | a<sub>4</sub>/w<sub>33</sub> | ||
+ | | a<sub>22</sub>/w<sub>33</sub> | ||
+ | |- | ||
+ | | z<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>5</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | | a<sub>3</sub>/w<sub>1</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 21 === | ||
+ | |||
+ | <!-- (22)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>1</sub>, a<sub>2</sub>, a<sub>3</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>1</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>2</sub>, z<sub>33, </sub> т.е. Z = {z<sub>1</sub> , z<sub>2</sub> , z<sub>33</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>22</sub> ,w<sub>3</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>1</sub> | ||
+ | | valign="TOP" | a<sub>2</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>3</sub>/w<sub>22</sub> | ||
+ | | a<sub>2</sub>/w<sub>1</sub> | ||
+ | | a<sub>1</sub>/w<sub>22</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>2</sub> | ||
+ | | a<sub>4</sub>/w<sub>5</sub> | ||
+ | | a<sub>2</sub>/w<sub>3</sub> | ||
+ | | a<sub>4</sub>/w<sub>22</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>33</sub> | ||
+ | | a<sub>3</sub>/w<sub>22</sub> | ||
+ | | a<sub>3</sub>/w<sub>4</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | | a<sub>3</sub>/w<sub>1</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 22 === | ||
+ | |||
+ | <!-- (25)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>1</sub>, a<sub>2</sub>, a<sub>3</sub>, a<sub>44</sub>}. Начальное состояние автомата - a<sub>1</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>2</sub>, z<sub>3, </sub> т.е. Z = {z<sub>1</sub> , z<sub>2</sub> , z<sub>3</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>3</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>1</sub> | ||
+ | | valign="TOP" | a<sub>2</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>44</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>3</sub>/w<sub>4</sub> | ||
+ | | a<sub>2</sub>/w<sub>1</sub> | ||
+ | | a<sub>2</sub>/w<sub>2</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>2</sub> | ||
+ | | a<sub>44</sub>/w<sub>1</sub> | ||
+ | | a<sub>2</sub>/w<sub>3</sub> | ||
+ | | a<sub>44</sub>/w<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>5</sub> | ||
+ | | a<sub>44</sub>/w<sub>1</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | | a<sub>44</sub>/w<sub>1</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 23 === | ||
+ | |||
+ | <!-- (26)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>1</sub>, a<sub>22</sub>, a<sub>3</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>1</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>22</sub>, z<sub>3, </sub> т.е. Z = {z<sub>1</sub> , z<sub>22</sub> , z<sub>3</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>3</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>1</sub> | ||
+ | | valign="TOP" | a<sub>22</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>22</sub>/w<sub>4</sub> | ||
+ | | a<sub>22</sub>/w<sub>1</sub> | ||
+ | | a<sub>1</sub>/w<sub>2</sub> | ||
+ | | a<sub>1</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>22</sub> | ||
+ | | a<sub>4</sub>/w<sub>5</sub> | ||
+ | | a<sub>22</sub>/w<sub>3</sub> | ||
+ | | a<sub>4</sub>/w<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>5</sub> | ||
+ | | a<sub>4</sub>/w<sub>4</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | | a<sub>22</sub>/w<sub>1</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 24 === | ||
+ | |||
+ | <!-- (27)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>11</sub>, a<sub>2</sub>, a<sub>33</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>11</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>2</sub>, z<sub>3, </sub> т.е. Z = {z<sub>1</sub> , z<sub>2</sub> , z<sub>3</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>3</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>11</sub> | ||
+ | | valign="TOP" | a<sub>2</sub> | ||
+ | | valign="TOP" | a<sub>33</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>33</sub>/w<sub>4</sub> | ||
+ | | a<sub>2</sub>/w<sub>1</sub> | ||
+ | | a<sub>11</sub>/w<sub>2</sub> | ||
+ | | a<sub>33</sub>/w<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>2</sub> | ||
+ | | a<sub>4</sub>/w<sub>5</sub> | ||
+ | | a<sub>33</sub>/w<sub>3</sub> | ||
+ | | a<sub>4</sub>/w<sub>4</sub> | ||
+ | | a<sub>33</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>3</sub> | ||
+ | | a<sub>11</sub>/w<sub>5</sub> | ||
+ | | a<sub>33</sub>/w<sub>2</sub> | ||
+ | | a<sub>11</sub>/w<sub>4</sub> | ||
+ | | a<sub>11</sub>/w<sub>1</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 25 === | ||
+ | |||
+ | <!-- (28)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>12</sub>, a<sub>20</sub>, a<sub>3</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>12</sub>. Входной алфавит Z образуют сигналы z<sub>11</sub>, z<sub>22</sub>, z<sub>33, </sub> т.е. Z = {z<sub>11</sub> , z<sub>22</sub> , z<sub>33</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>3</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>12</sub> | ||
+ | | valign="TOP" | a<sub>20</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>11</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | | a<sub>20</sub>/w<sub>1</sub> | ||
+ | | a<sub>12</sub>/w<sub>2</sub> | ||
+ | | a<sub>12</sub>/w<sub>1</sub> | ||
+ | |- | ||
+ | | z<sub>22</sub> | ||
+ | | a<sub>4</sub>/w<sub>5</sub> | ||
+ | | a<sub>20</sub>/w<sub>3</sub> | ||
+ | | a<sub>4</sub>/w<sub>1</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>33</sub> | ||
+ | | a<sub>12</sub>/w<sub>3</sub> | ||
+ | | a<sub>20</sub>/w<sub>4</sub> | ||
+ | | a<sub>12</sub>/w<sub>4</sub> | ||
+ | | a<sub>20</sub>/w<sub>2</sub> | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | |||
+ | === Вариант 26 === | ||
+ | |||
+ | <!-- (29)--> | ||
+ | Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов. | ||
+ | |||
+ | Алфавит состояний A = {a<sub>13</sub>, a<sub>23</sub>, a<sub>3</sub>, a<sub>4</sub>}. Начальное состояние автомата - a<sub>13</sub>. Входной алфавит Z образуют сигналы z<sub>1</sub>, z<sub>2</sub>, z<sub>3, </sub> т.е. Z = {z<sub>1</sub> , z<sub>2</sub> , z<sub>3</sub>}. Выходной алфавит W образуют сигналы w<sub>1</sub>, ..., w<sub>5</sub>, т.е. W = {w<sub>1</sub>, w<sub>2</sub> ,w<sub>3</sub> ,w<sub>4</sub>,w<sub>5</sub>}. На пересечении строки z<sub>n</sub> и столбца a<sub>q</sub> в таблице находится состояние a<sub>s</sub> , в которое должен перейти автомат из состояния a<sub>q</sub> под воздействием сигнала z<sub>n</sub>. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии a<sub>q</sub> при поступлении на его вход сигнала z<sub>n</sub> . | ||
+ | |||
+ | <center> | ||
+ | {| cellspacing="0" cellpadding="7" border="1" | ||
+ | |- | ||
+ | |+ Таблица задания функционирования конечного автомата | ||
+ | |- | ||
+ | | rowspan="2" | Входные сигналы | ||
+ | | valign="TOP" colspan="4" | Состояния | ||
+ | |- | ||
+ | | valign="TOP" | a<sub>13</sub> | ||
+ | | valign="TOP" | a<sub>23</sub> | ||
+ | | valign="TOP" | a<sub>3</sub> | ||
+ | | valign="TOP" | a<sub>4</sub> | ||
+ | |- | ||
+ | | z<sub>1</sub> | ||
+ | | a<sub>3</sub>/w<sub>4</sub> | ||
+ | | a<sub>2</sub>/w<sub>13</sub> | ||
+ | | a<sub>1</sub>/w<sub>23</sub> | ||
+ | | a<sub>23</sub>/w<sub>5</sub> | ||
+ | |- | ||
+ | | z<sub>2</sub> | ||
+ | | a<sub>4</sub>/w<sub>1</sub> | ||
+ | | a<sub>23</sub>/w<sub>1</sub> | ||
+ | | a<sub>4</sub>/w<sub>3</sub> | ||
+ | | a<sub>13</sub>/w<sub>3</sub> | ||
+ | |- | ||
+ | | z<sub>3</sub> | ||
+ | | a<sub>3</sub>/w<sub>5</sub> | ||
+ | | a<sub>3</sub>/w<sub>1</sub> | ||
+ | | a<sub>1</sub>/w<sub>4</sub> | ||
+ | | a<sub>3</sub>/w<sub>3</sub> | ||
+ | |} | ||
+ | </center> | ||
== Пример описания графа в Graphviz == | == Пример описания графа в Graphviz == |
Версия 22:51, 5 ноября 2013
- Лабораторная работа 1
- Лабораторная работа 2
- Лабораторная работа 3
- Лабораторная работа 4
Задание
Название работы: Описание и моделирование конечных автоматов
- По заданному табличному описанию автомата:
- Построить граф переходов (для этого удобно использовать Graphviz и on-line сервис)
- Определить бинарные значения (коды) для входных состояний, внутренних состояний и выходных состояний. Использовать для этого тип кода, заданный в задании.
- Описать два варианта VHDL-модели автомата:
- реализовать внутренние состояния через пользовательский перечислимый тип
- реализовать внутренние состояния через выбранный бинарный код
- при этом использовать для описания таблицы переходов в модели разные операторы (if, case, when..else).
- Реализовать тесбенч, проверяющий эквивалентность работы двух моделей. При этом тестбенч должен проверять все возможные состояния и переходы автомата. Проконтролировать это позволяют средства ModelSim.
- Подготовить отчет, включающий:
- Титульный лист
- Задание
- Графическую форму задания автомата (в виде графа)
- Таблицы с выбранными кодами для входных состояний, внутренних состояний и выходных состояний
- Исходные тексты двух VHDL моделей и тестбенча
- Отчет о покрытии кода и автомата
- Временные диаграммы, включающие входные воздействия, внутренние состояния обоих автоматов, выходы двух автоматов и сигнал Ok (результат сравнения выходов двух моделей).
Варианты заданий
Вариант 1
Конечный автомат Мили.
Алфавит внутренних состояний A = {a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a3/w4 | a2/w1 | a1/w2 | a1/w4 |
z2 | a4/w5 | a2/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a3/w4 | a1/w4 | a3/w1 |
Вариант 2
Конечный автомат Мура.
Алфавит состояний A = {a11, a2, a3}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z22, z3}. Выходной алфавит W = {w11, w22 ,w33}.
Входные сигналы | Состояния | | ||
a11 | a2 | a3 | ||
z1 | a3 | a2 | a11 | |
z22 | a11 | a2 | a3 | |
z3 | a3 | a11 | a3 | |
|
w33 | w11 | w22 | Выходные сигналы |
Вариант 3
Конечный автомат Мили.
Алфавит внутренних состояний A = {a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a4/w4 | a2/w1 | a1/w2 | a4/w4 |
z2 | a4/w5 | a1/w3 | a3/w4 | a3/w3 |
z3 | a1/w2 | a2/w4 | a1/w4 | a4/w1 |
Вариант 4
Конечный автомат Мура.
Алфавит состояний B = {b1, b22, b3}. Начальное состояние автомата b1. Входной алфавит Q = {q1, q22, q3}. Выходной алфавит Y = {y1, y2 ,y3}.
Входные сигналы | Состояния | | ||
b1 | b22 | b3 | ||
q1 | b22 | b1 | b1 | |
q22 | b3 | b22 | b22 | |
q3 | b1 | b3 | b3 | |
|
y2 | y3 | y1 | Выходные сигналы |
Вариант 5
Конечный автомат Мили.
Алфавит внутренних состояний A = {a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a1/w4 | a3/w1 | a1/w3 | a1/w4 |
z2 | a2/w5 | a1/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a4/w5 | a1/w4 | a4/w1 |
Вариант 6
Конечный автомат Мура.
Алфавит состояний C = {c1, c2, c33}. Начальное состояние автомата c1. Входной алфавит Q = {q1, q2, q3}. Выходной алфавит Y = {y11, y2 ,y3}.
Входные сигналы | Состояния | | ||
c1 | c2 | c33 | ||
q1 | c2 | c2 | c1 | |
q2 | c2 | c1 | c2 | |
q3 | c33 | c33 | c33 | |
|
y11 | y3 | y2 | Выходные сигналы |
Вариант 7
Конечный автомат Мили.
Алфавит внутренних состояний A = {a11, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w44, w5}.
Таблица функционирования конечного автомата Мили | ||||
Входные сигналы | Состояния | |||
a11 | a2 | a3 | a4 | |
z1 | a3/w5 | a2/w1 | a2/w2 | a11/w5 |
z2 | a4/w44 | a2/w5 | a4/w3 | a3/w3 |
z3 | a3/w5 | a11/w44 | a11/w44 | a11/w5 |
Вариант 8
Конечный автомат Мура.
Алфавит состояний R = {r1, r2, r3}. Начальное состояние автомата r1. Входной алфавит Q = {q1, q2, q3}. Выходной алфавит W = {w1, w2 ,w3}.
Входные сигналы | Состояния | | ||
r1 | r2 | r3 | ||
q1 | r1 | r3 | r1 | |
q2 | r3 | r2 | r3 | |
q3 | r2 | r2 | r2 | |
|
w3 | w1 | w2 | Выходные сигналы |
Вариант 9
Конечный автомат Мили.
Алфавит состояний A = {a1, a22, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1 , z2 , z3}. Выходной алфавит W = {w1, w2 ,w33 ,w4, w5}.
Входные сигналы | Состояния | |||
a1 | a22 | a3 | a4 | |
z1 | a3/w4 | a22/w1 | a1/w2 | a1/w4 |
z2 | a4/w4 | a22/w33 | a4/w33 | a22/w33 |
z3 | a3/w5 | a1/w4 | a1/w4 | a3/w1 |
Вариант 10
Конечный автомат Мура.
Алфавит состояний T = {t1, t22, t3}. Начальное состояние автомата t1. Входной алфавит Q = {q11, q2, q3}. Выходной алфавит Y = {y1, y2 ,y3}.
Входные сигналы | Состояния | | ||
t1 | t22 | t3 | ||
q11 | t3 | t22 | t1 | |
q2 | t22 | t1 | t22 | |
q3 | t1 | t22 | t3 | |
|
y3 | y2 | y1 | Выходные сигналы |
Вариант 11
Конечный автомат Мили.
Алфавит состояний A = {a1, a22, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z33}. Выходной алфавит W = {w1, w22 ,w3 ,w45, w5}.
Входные сигналы | Состояния | |||
a1 | a22 | a3 | a4 | |
z1 | a3/w22 | a22/w1 | a1/w1 | a1/w45 |
z2 | a4/w5 | a4/w3 | a4/w22 | a3/w3 |
z33 | a3/w22 | a3/w45 | a22/w45 | a3/w1 |
Вариант 12
Конечный автомат Мура.
Алфавит состояний C = {c1, c2, c33}. Начальное состояние автомата c1. Входной алфавит Q = {q1, q2, q3}. Выходной алфавит Y = {y11, y2 ,y3}.
Входные сигналы | Состояния | | ||
c1 | c2 | c33 | ||
q1 | c2 | c2 | c1 | |
q2 | c2 | c1 | c2 | |
q3 | c33 | c33 | c33 | |
|
y11 | y3 | y2 | Выходные сигналы |
Вариант 13
Конечный автомат Мили.
Алфавит состояний A = {a11, a2, a3, a44}. Начальное состояние автомата a1. Входной алфавит Z = {z1, z2, z3}. Выходной алфавит W = {w1, w2 ,w3 ,w44, w5}.
Входные сигналы | Состояния | |||
a11 | a2 | a3 | a44 | |
z1 | a3/w44 | a2/w1 | a11/w2 | a11/w44 |
z2 | a44/w5 | a2/w5 | a44/w3 | a3/w2 |
z3 | a3/w2 | a44/w3 | a11/w44 | a3/w1 |
Вариант 14
Конечный автомат Мура.
Алфавит состояний S = {s11, s22, s3}. Начальное состояние автомата s1. Входной алфавит Z = {q1, q2, q33}. Выходной алфавит Y = {y1, y2 ,y3}.
Входные сигналы | Состояния | | ||
s11 | s22 | s3 | ||
q1 | s11 | s11 | s22 | |
q2 | s3 | s11 | s22 | |
q33 | s22 | s22 | s3 | |
|
y2 | y3 | y1 | Выходные сигналы |
Вариант 15
Конечный автомат Мили.
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a2, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a2/w1 | a2/w1 | a1/w2 | a1/w4 |
z2 | a4/w5 | a3/w3 | a4/w4 | a3/w5 |
z3 | a3/w2 | a3/w3 | a1/w4 | a3/w5 |
Вариант 16
Конечный автомат Мили.
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a2, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a3/w4 | a2/w1 | a1/w2 | a1/w4 |
z2 | a4/w5 | a2/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a3/w4 | a1/w4 | a3/w1 |
Вариант 17
Конечный автомат Мили.
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a2, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a4/w4 | a2/w1 | a1/w2 | a4/w4 |
z2 | a4/w5 | a1/w3 | a3/w4 | a3/w3 |
z3 | a1/w2 | a2/w4 | a1/w4 | a4/w1 |
Вариант 18
Конечный автомат Мили.
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a2, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a1/w4 | a3/w1 | a1/w3 | a1/w4 |
z2 | a2/w5 | a1/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a4/w5 | a1/w4 | a4/w1 |
Вариант 19
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a11, a2, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы: W = {w1, w2 ,w3 ,w44, w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a11 | a2 | a3 | a4 | |
z1 | a3/w5 | a2/w1 | a2/w2 | a11/w5 |
z2 | a4/w5 | a2/w5 | a4/w3 | a3/w3 |
z3 | a3/w5 | a1/w44 | a1/w44 | a11/w5 |
Вариант 20
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a22, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w33 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a22 | a3 | a4 | |
z1 | a3/w4 | a22/w1 | a1/w2 | a1/w4 |
z2 | a4/w4 | a22/w33 | a4/w33 | a22/w33 |
z3 | a3/w5 | a1/w4 | a1/w4 | a3/w1 |
Вариант 21
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a2, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z33, т.е. Z = {z1 , z2 , z33}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w22 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a4 | |
z1 | a3/w22 | a2/w1 | a1/w22 | a1/w4 |
z2 | a4/w5 | a2/w3 | a4/w22 | a3/w3 |
z33 | a3/w22 | a3/w4 | a1/w4 | a3/w1 |
Вариант 22
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a2, a3, a44}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a2 | a3 | a44 | |
z1 | a3/w4 | a2/w1 | a2/w2 | a1/w4 |
z2 | a44/w1 | a2/w3 | a44/w3 | a3/w3 |
z3 | a3/w5 | a44/w1 | a1/w4 | a44/w1 |
Вариант 23
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a1, a22, a3, a4}. Начальное состояние автомата - a1. Входной алфавит Z образуют сигналы z1, z22, z3, т.е. Z = {z1 , z22 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a1 | a22 | a3 | a4 | |
z1 | a22/w4 | a22/w1 | a1/w2 | a1/w3 |
z22 | a4/w5 | a22/w3 | a4/w3 | a3/w3 |
z3 | a3/w5 | a4/w4 | a1/w4 | a22/w1 |
Вариант 24
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a11, a2, a33, a4}. Начальное состояние автомата - a11. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a11 | a2 | a33 | a4 | |
z1 | a33/w4 | a2/w1 | a11/w2 | a33/w4 |
z2 | a4/w5 | a33/w3 | a4/w4 | a33/w3 |
z3 | a11/w5 | a33/w2 | a11/w4 | a11/w1 |
Вариант 25
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a12, a20, a3, a4}. Начальное состояние автомата - a12. Входной алфавит Z образуют сигналы z11, z22, z33, т.е. Z = {z11 , z22 , z33}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a12 | a20 | a3 | a4 | |
z11 | a3/w3 | a20/w1 | a12/w2 | a12/w1 |
z22 | a4/w5 | a20/w3 | a4/w1 | a3/w3 |
z33 | a12/w3 | a20/w4 | a12/w4 | a20/w2 |
Вариант 26
Составить VHDL-описание конечного автомата Мили, заданного совмещенной таблицей переходов.
Алфавит состояний A = {a13, a23, a3, a4}. Начальное состояние автомата - a13. Входной алфавит Z образуют сигналы z1, z2, z3, т.е. Z = {z1 , z2 , z3}. Выходной алфавит W образуют сигналы w1, ..., w5, т.е. W = {w1, w2 ,w3 ,w4,w5}. На пересечении строки zn и столбца aq в таблице находится состояние as , в которое должен перейти автомат из состояния aq под воздействием сигнала zn. После косой черты в этой же графе таблицы указывается выходной сигнал, выдаваемый автоматом в состоянии aq при поступлении на его вход сигнала zn .
Входные сигналы | Состояния | |||
a13 | a23 | a3 | a4 | |
z1 | a3/w4 | a2/w13 | a1/w23 | a23/w5 |
z2 | a4/w1 | a23/w1 | a4/w3 | a13/w3 |
z3 | a3/w5 | a3/w1 | a1/w4 | a3/w3 |
Пример описания графа в Graphviz
digraph g { a1 -> a2 [label="X1"] a2 -> a3 [label="X2"] a3 -> a1 [label="X3"] a1 [label="a1",shape=box,fillcolor="palegreen",style="filled,rounded"]; }
Результат: