Язык AHDL


Конечные автоматы с синхронными выходами


Если выходы конечного автомата зависят только от состояний автомата, Вы можете определить его выходы в предложении WITH STATES объявления конечного автомата.

Файл moore1.tdf, приведенный ниже, реализует автомат Мура на четыре состояния.

SUBDESIGN moore1

(

   clk   : INPUT;

   reset : INPUT;

   y     : INPUT;

   z     : OUTPUT;

)

VARIABLE

ss: MACHINE OF BITS (z)

            WITH STATES (s0    =   0,

                                     s1    =   1,



                                     s2    =   1,

                                     s3    =   0);

BEGIN

   ss.clk   = clk;

   ss.reset = reset;

   TABLE

   %  текущее      текущий     следующее  %

   %  состояние    вход           состояние %

      ss,                           y      =>   ss;

      s0,                           0      =>   s0;

      s0,                           1      =>   s2;

      s1,                           0      =>   s0;

      s1,                           1      =>   s2;

      s2,                           0      =>   s2;

      s2,                           1      =>   s3;

      s3,                          0      =>   s3;

      s3,                           1      =>   s1;

   END TABLE;

END;

Этот пример определяет состояния конечного автомата с помощью объявления конечного автомата. Переходы между состояниями определены в таблице переходов, которая реализована с помощью оператора Table. В этом примере автомат ss имеет 4 состояния, но только один бит состояния (z). Компилятор автоматически добавляет другой бит и создает соответствующие присваивания для синтезированной переменной для представления автомата на 4 состояния. Этот автомат требует не менее 2 битов.

Когда значения состояний используются в качестве выходов, как в файле moore1.tdf, проект может использовать несколько логических ячеек, но логические ячейки могут требовать дополнительной логики для управления входами их триггеров. В этом случае модуль логического синтеза компилятора не сможет полностью минимизировать конечный автомат.



Содержание раздела