Описание работы автоматов на языке AHDL
Использование языка AHDL для описания алгоритма работы автоматов позволяет автоматизировать процедуру синтеза, включая выбор числа разрядов памяти и кодирование состояний автомата. В языке AHDL конечный автомат – это переменная. При описании работы автомата на языке AHDL необходимо входные и выходные порты автомата а затем ввести вышеупомянутую следующую переменную с помощью оператора следующего типа:
<имя автомата>: MACHINE OF BITS(<список имён бит>) WITH STATES (<список состояний>)
Этот оператор определяет: · имя переменной – символическое имя автомата; · число разрядов памяти и символическое имя каждого разряда; · символические имена состояний автомата.
Указывать число разрядов памяти и их символические имена, а также коды состояний автомата необязательно. Поэтому в простейшем случае для задания конечного автомата используется следующая конструкция:
<имя автомата>: MACHINE WITH STATES (<список состояний>)
В этом случае компилятор, оптимизируя структуру автомата самостоятельно выбирает как разрядность блока памяти, так и коды состояний автомата. В рамках языка AHDL конечный автомат, а следовательно и переменная, его обозначающая имеет три управляющих входа: · CLK - вход тактового сигнала; · Reset – вход асинхронного сброса; · ENA – вход разрешения работы. Обязательно использование только входа CLK. Если входы Reset и ENA не используются, то на них автоматически подаются сигналы не препятствующие работе автомата.
Описание работы автомата на языкеAHDL обычно осуществляется с помощью таблицы истинности. Причём в таблице описывается и функция выходов и функция переходов.
Рассмотрим пример абстрактного автомата Мура. Автомат содержит:
Входы: START, ABAR, CLK. Выходы: WORK, END_WORK. Автомат имеет следующие состояния.
Init, Working, Waiting, Resuming, Ending. Таблица переходов автомата имеет следующий вид:
Выходные сигналы автомата выглядят следующим образом.
С учётом вышесказанного, описание работы автомата на языке AHDL имеет следующий вид: SUBDESIGN Moor1 (Start,ABAP,clk: INPUT; Work,End_work: OUTPUT;) VARIABLE FSM: MACHINE WITH STATES (INIT,WORKING,WAITING,RUMING,ENDING); BEGIN FSM.clk=CLK; FSM.RESET=ABAP; TABLE FSM, START => WORK, END_WORK, FSM; INIT, 0 => 0, 0, INIT; INIT, 1 => 0, 0, WORKING; WORKING, 0 => 1, 0, WAITING; WORKING, 1 => 1, 0, WORKING; WAITING, 0 => 1, 1, ENDING; WAITING, 1 => 1, 1, RUMING; RUMING, 0 => 0, 0, WAITING; RUMING, 1 => 0, 0, WORKING; ENDING, B"X" => 0, 1, INIT; END TABLE; END;
В приведённом описании задана внутренняя переменная FSM, являющаяся символическим именем конечного автомата, имеющего пять состояний.: INIT, WORKING, WAITING, RUMING, ENDING. Отметим, что при её задании указаны только состояния автомата. Уравнение FSM.clk=CLK; определяет соединение тактового сигнала с тактовым входом конечного автомата. Вход ABAP соединяется с входом асинхронного сброса автомата, что определяется уравнением FSM.RESET=ABAP; Поскольку вход разрешения работы FSM.ENA не используется, то на него автоматически подаётся логический уровень не препятствующий нормальной работе автомата (логическая единица). В левой части таблицы истинности (слева от знака =>) указываются текущее состояние и набор входных сигналов. В правой части – состояние в которое автомат перейдёт при появлении на входе CLK перепада из «0» в «1», т.е. состояние перехода. И кроме того в в правой части перечисляются выходные сигналы автомата.
Отметим, что описание представленного автомата может быть сделано с помощью операторов CASE и IF THEN. Пример такого описания приведен ниже.
SUBDESIGN Moor2 (Start,ABAP,clk: INPUT; Work,End_work: OUTPUT;) VARIABLE FSM: MACHINE WITH STATES (INIT,WORKING,WAITING,RUMING,ENDING); BEGIN FSM.(clk,RESET)=(CLK,ABAP); CASE FSM IS WHEN INIT=> IF START==0 THEN FSM=INIT; ELSE FSM=WORKING; END IF; WHEN WORKING=> Work=VCC; IF START==0 THEN FSM=WAITING; ELSE FSM=WORKING; END IF; WHEN WAITING=> Work=VCC; End_work=VCC; IF START==0 THEN FSM=ENDING; ELSE FSM=RUMING; END IF; WHEN RUMING=> IF START==0 THEN FSM=WAITING; ELSE FSM=WORKING; END IF; WHEN ENDING => End_work=VCC; FSM=WAITING; END CASE; END;
В результате моделирования автомата МУРА получается временная диаграмма работы автомата, представленная на рис 3.2.1.
Рис 3.2.1. Временная диаграмма работы автомата МУРА.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|