Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по теории автоматов (ТА).doc
Скачиваний:
204
Добавлен:
11.04.2014
Размер:
864.77 Кб
Скачать

Вопрос 29. Назначение и краткая характеристика vhdl.

Язык описания оборудования. Паралл. язык высокого уровня.

Описание всех устройств состоят из 2-х основных частей:

  1. описание интерфейса (entity) – описываются входы и выходы объекта как черного ящика

  2. описания архитектуры (architecture) – описывается реализация объекта на высоком/низком уровне. Сигнал можно сравнить физически с проводом или набором проводников.

Сигналы используются для задания входных/выходных элементов и передачи данных между процессами.

Комментарий к программе выделяется с помощью -- .

Используется обычное соглашение по названию переменных и констант.

Многоразрядные двоичные коды указываются с помощью строк b”0101”.

Описание интерфейса объекта начинается с ключевого слова

entity Id is

port (A: in bit_vector (0 to 3), Y: out bit_vector (0 to 9)); end Id

Пример дешифратора 4x10

С помощью архитектур описывается содержимое объекта. Описание может быть поведенческим (что делает) или структурным, где указывается из чего объект состоит – компоненты и как они соединены. Как правило они дополняют друг друга.

architecture DC of Id is

begin

process (A)

begin

Y=<1111111111>

Case A(0 to 3) is

when “0000”=> Y<=”0111111111”;

when “1000”=> Y<=”1011111111”;

……………………………..

End case; End process;End DC;

Комментарий: A<=B – присвоение сигналов

Переменные присваиваются a:=b

В заголовка процесса в скобках указывается список чувствительности процесса, т.е. те сигналы, изменение которых приводит к запуску процесса.

Рассмотрим описание архитектуры дешифратора, в котором явно задаются логические функции для формирования выводов (ближе к структурному описанию).

architecture DC1 of Id is

begin

Y(0)<= not A(0) and not A(1) and not (A2) and ….

Y(1)<= A(0) and not A(1) and not A(2) and…

…………………………….

End DC1;

Вопрос 30. Реализация уа на vhdl.

Рассмотрим пример описания КА-преобразователя Мили на VHDL

A1

A2

A3

A4

X1

A2/y1

A3/y2

-/-

A1/-

X2

A3/-

A4/y3

A4/y1

A2/y2

ENTITY FSM IS

PORT(clk : IN BIT; x1 : IN BIT; x2 : IN BIT; reset: IN BIT; y1 : OUT BIT; y2 : OUT BIT; y3 : OUT BIT);END FSM;

ARCHITECTURE a OF FSM IS TYPE STATE_TYPE IS (a1, a2, a3, a4); SIGNAL state : STATE_TYPE;

BEGIN PROCESS (clk) BEGIN IF reset = '1' THEN state <= a1; ELSIF (clk'EVENT AND clk = '1') THEN y1 <= '0'; y2 <= '0'; y3 <= '0';

CASE state IS

WHEN a1=> IF x1 = '1' THEN state <= a2; y1 <= '1';

ELSIF x2 = '1' THEN state <= a3;

END IF; WHEN a2=>

IF x1 = '1' THEN state <= a3; y2 <= '1';

... END CASE;

END IF; END PROCESS;END a;

Можно перейти к более структурному описанию, если выделить отдельный процесс для памяти состояний.

architecture arc of FSM_D is

type T_STATE is (a1, a2, a3, a4);

signal NEXT_state, state : T_STATE;

begin

NS : process (state, z) Begin N-state<=a z; end process NS; REG: process (clk, rst) begin

if (rst=’1’) then statea1; elsif clk'event and clk=’1’ then state <= NEXT_state;

end if; end process REG; end a;

А для автомата мура можно выделить отдельный процесс выдачи выходных сигналов при изменении состояния.

Для автоматов Мили и Мура можно постепенно перейти к структурному описанию с помощью функций.

Мура:

entity FSM is port (clock: Boolean; a: in user_in_type; d: out user_out_type); end FSM;

architecture moor of FSM is signal c: some_type;

begin process (c) begin dF2 (c);

end process;

process (clock) begin cF1 (a, c); end process; end moor;

Мили:

architecture mealy of FSM is

signal c: some_type;

begin

process (a, c)

begin

dF2 (a, c);

end process; process(clock) begin c F1 (a, c); end process;

end mealy;