Главная
Новости рынка
Рубрикатор



Архив новостей -->



 



   

В. Соловьев

Использование выходных макроячеек ПЛИС в качестве элементов памяти конечных автоматов

В статье рассматривается новый подход к проектированию конечных автоматов на ПЛИС, когда выходные макроячейки ПЛИС используются одновременно для реализации выходных функций и функций переходов. Конечные автоматы типа Мура, допускающие такую реализацию, получили название автоматов класса С, а конечные автоматы типа Мили - автоматов класса D. Описываются формальные методы синтеза автоматов классов С и D. Результаты экспериментальных исследований предложенных методов в сравнении с традиционным подходом, реализованном в пакете MAX+PLUSII, показали высокую эффективность новых методов синтеза, которые позволяют уменьшить число используемых макроячеек ПЛИС, в среднем, в 2–3 раза, а для отдельных примеров - в 10–20 раз.

Введение

В [1] рассмотрено 50 структурных моделей конечных автоматов на ПЛИС, среди которых 9 моделей (C, D, CI, DI, DO, DIO, CI’, DI’, DIO’) используют триггеры выходных макроячеек ПЛИС в качестве элементов памяти конечных автоматов. Для реализации этих моделей достаточно располагать только двумя методами синтеза: автоматов класса С и D. Другие модели строятся на основании автоматов классов С и D путём установки регистров на входе (CI, DI), регистров на выходе (DO), регистров одновременно на входе и выходе (DIO), защёлок на входе (CI’, DI’), а также защёлок на входе и регистров на выходе (DIO’).

В данной статье более подробно рассматривается метод синтеза автоматов класса С, а затем поясняются основные моменты синтеза автоматов класса D. Повышенное внимание к автоматам класса С связано с тем, что конечные автоматы данного класса реализуются на всех современных ПЛИС, в то время как построение автоматов класса D возможно только на ПЛИС, допускающих конфигурацию выходных макроячеек с триггерами в цепях обратных связей.

Описывается также программная реализация предложенных методов синтеза и приводятся результаты экспериментальных исследований методов синтеза автоматов классов С и D в сравнении с традиционными моделями конечных автоматов типа Мили (автомат класса А) и Мура (автомат класса В). Приводимые в конце выводы значительно облегчают понимание преимущества нового подхода к синтезу конечных автоматов на ПЛИС. В заключении показаны возможные пути совершенствования предлагаемых алгоритмов.

Метод синтеза автоматов класса С

Автоматом класса С является автомат Мура, каждый выходной набор которого совпадает с кодом внутреннего состояния. На практике далеко не всякий конечный автомат Мура является автоматом класса С, поскольку не всегда формируемые выходные наборы могут выступать в качестве кодов внутренних состояний автомата. Например, если число N выходных функций меньше значения intlog2M, где M - число состояний автомата, или когда в различных состояниях автомата формируются одни и те же выходные наборы. С другой стороны, не всякая совокупность выходных наборов пригодна для кодирования внутренних состояний автомата: из условия детерминированности поведения конечного автомата коды различных состояний должны быть ортогональны между собой (по крайней мере, в одном разряде должны иметь различные значащие значения). В предлагаемом подходе для различия кодов внутренних состояний вводятся дополнительные элементы памяти.

Конечный автомат будем характеризовать числом L входных переменных множества X = {x1,...,xL}, числом N выходных функций множества Y = {y1,...,yN}, числом M внутренних состояний множества A = {a1,...,aM}, а также числом R функций возбуждения элементов памяти (функций переходов) множества D = {d1,...,dR} и переменных обратной связи E = {e1,...,eR}.

Пусть для возможности синтеза автомата класса С введено R дополнительных элементов памяти, управляемых функциями возбуждения dN+1,...,dN+R, причём на выходах элементов памяти формируются значения переменных обратной связи eN+1,...,eN+R. Фактически, синтез автомата класса С сводится к специальному кодированию внутренних состояний конечного автомата. Отметим, что в автомате класса С в качестве кода состояния выступает не конституента единицы (полная конъюнкция [2]) переменных обратных связей, как при традиционном подходе, а элементарная конъюнкция [2] переменных множества E = {e1,...,eN+R}.

Алгоритм 1

(кодирования состояний автомата класса С ).

  1. Для каждого внутреннего состояния автомата ai, ai € A, определяется выходной набор, который может быть кодом или частью кода данного состояния. Для этого строится булева матрица W. Строки матрицы соответствуют состояниям автомата, а столбцы - выходным функциям. Вначале полагается, что все клетки матрицы W имеют неопределённые значения. На пересечении строки i и столбца j ставится единица, если выходная функция yj € Y(ai), где Y(ai) - подмножество выходных функций, принимающих единичное значение в состоянии ai, ai € A. Строку матрицы W, соответствующую состоянию ai, будем обозначать W(ai), ai € A.
  2. Вводятся дополнительные разряды кода для различия кодов состояний между собой.

    2.1. В матрице W находятся подмножества строк W1,...,WH, имеющих одинаковое содержимое, то есть если W(ai) € Wh и W(aj) € Wh, то W(ai) = W(aj), h = ¯1,H.

    2.2. Вводится R дополнительных внутренних переменных автомата dN+1,...,dN+R, где R = intlog2 (max(|W1|,...,|WH|)). В матрицу W дописывается R столбцов.

    2.3. В строки каждого подмножества Wh, h = ¯1,H дописываются двоичные коды длины R, разряды которых соответствуют переменным dN+1,...,dN+R. При этом коды с наименьшим числом единиц необходимо в первую очередь приписывать строкам W(ai), для которых |C(ai)| = max, где C(ai) - множество переходов, оканчивающихся в состоянии ai, ai “ A.

  3. Выполняется доопределение кодов состояний для удовлетворения условию ортогональности путём дописывания в клетки матрицы W с неопределёнными значениями нулей для столбцов, соответствующих выходным функциям y1,...,yN, и нулей или единиц для столбцов, соответствующих функциям возбуждения элементов памяти dN+1,...,dN+R. При этом необходимо минимизировать число значащих значений. Тривиальное решение заключается в дописывании нулей во все клетки матрицы W с неопределёнными значениями.

    Поскольку в большинстве ПЛИС при включении питания триггеры переходят в нулевые состояния, то строку W(a1), соответствующую начальному состоянию, можно доопределять только нулевыми значениями.

  4. Определяются коды состояний автомата. Каждому состоянию ai, ai € A, ставится в соответствие элементарная конъюнкция переменных множества Е следующим образом. Если в столбце j строки W(ai) записана единица, то переменная ei входит в конъюнкцию в своём прямом значении, если ноль, то - в инверсном, если неопределённое значение, то переменная ei в конъюнкцию не входит.
  5. Конец.

Дальнейший синтез автомата Мура класса С заключается в назначении для реализации функций возбуждения элементов памяти d1,...,dN+R макроячейкам ПЛИС, причём функции d1,...,dN назначаются выходным макроячейкам ПЛИС, а функции dN+1,...,dN+R могут назначаться как выходным, так и скрытым (не связанным с внешними выводами) макроячейкам ПЛИС. На выходах триггеров, управляемых функциями d1,...,dN, будут формироваться значения как переменных обратных связей e1,...,eN, так и выходных функций y1,...,yN. Последнее возможно всегда, поскольку все регистровые выходы ПЛИС имеют цепи обратных связей. На выходах триггеров, управляемых функциями dN+1,...,dN+R, будут формироваться значения только переменных обратных связей eN+1,...,eN+R.

Пример 1. Рассмотрим работу алгоритма 1 при синтезе автомата Мура, таблица переходов которого представлена в табл. 1. Построенная по таблице переходов булева матрица W приведена в табл. 2 (безразличные значения в матрице W обозначены символом "–"). В матрице W имеется три пары одинаковых строк, поэтому W1 = {W(a1), W(a6)}, W2 = {W(a3), W(a5)} и W3 = {W(a4), W(a7)}. Поскольку максимальная мощность множеств W1,...,W3 равна двум, достаточно одной переменной d6 для кодирования строк каждого из подмножеств W1,...,W3. Отметим, что нулевой код приписывается строкам W(a3) и W(a7), поскольку |C(a3)| > |C(a5)| и |C(a7)| > |C(a4)|. При выполнении пункта 3 в отдельные клетки матрицы W вместо безразличных значений дописываются нули. Матрица W после ортогонализации строк представлена в табл. 3. Таким образом, коды внутренних состояний определяются элементарными конъюнкциями шести переменных e1,...,e6. На основании доопределённой матрицы W можно записать следующие коды внутренних состояний автомата:

K(a1) = ¯e1·¯e3·¯e4·¯e6;
K(a2) = e1·e2;
K(a3) = ¯e1·e2·e3·¯e4·¯e6;
K(a4) = ¯e1·¯e2·e4·e5·e6;
K(a5) = ¯e1·e2·e3·¯e4·e6;
K(a6) = ¯e1·¯e3·¯e4·e6;
K(a7) = ¯e1·e4·e5·¯e6;
K(a8) = ¯e1·e4·¯e5.

Структурная таблица переходов автомата приведена в табл. 4. Логические уравнения функций возбуждения элементов памяти имеют вид:

d1 = ¯e1·¯e3·¯e4·¯e6;
d2 = ¯e1·¯e3·¯e4·¯e6 + e1·e2·¯x1 + ¯e1·¯e3·e4·e5·e6 + ¯e1·e4·e5·¯e6·¯x5;
d3 = ¯e1·e2·¯x1 + ¯e1·¯e2·e4·e5·e6 + ¯e1·e4·e5·¯e6·¯x5;
d4 = ¯e1·e2·e3·¯e4·¯e6 + ¯e1·¯e3·¯e4·e6·x4 + ¯e1·e4·e5·¯e6·x5;
d5 = ¯e1·e2·e3·¯e4·¯e6 + ¯e1·¯e3·¯e4·e6·x4;
d6 = e1·e2·x1 + ¯e1·e2·e3·¯e4·¯e6·x2 + + ¯e1·¯e2·e4·e5·e6·x3 + ¯e1·¯e3·¯e4·e6·¯x4 + + ¯e1·e4·e5·¯e6·¯x5·x3.

Таблица 1. Таблица переходов исходного автомата Мура

am X(am, as) as Y(am)
a1 1 a2  
a2 x1
¯x1
a6
a3
y1, y2
a3 x2
¯x2
a4
a7
y2, y3
a4 x3
¯x3
a5
a3
y4, y5
a5 1 a1 y2, y3
a6 x4
¯x4
a7
a6
 
a7 x5
¯x5 x3
¯x5 ¯x3
a8
a5
a3
y4, y5
a8 1 a1 y4

Таблица 2. Матрица W для кодирования внутренних состояний автомата

ai / yj y1 y2 y3 y4 y5
a1 - - - - -
a2 1 1 - - -
a3 - 1 1 - -
a4 - - - 1 1
a5 - 1 1 - -
a6 - - - - -
a7 - - - 1 1
a8 - - - 1 -

Таблица 3. Матрица W после ортогонализации строк


ai / yj y1 y2 y3 y4 y5 d6
a1 0 - 0 0   0
a2 1 1 - - - -
a3 0 1 1 0 - 0
a4 0 0 - 1 1 1
a5 0 1 1 0 - 1
a6 0 - 0 0 - 1
a7 0 - - 1 1 0
a8 0 - - 1 0 -

Таблица 4. Структурная таблица переходов автомата класса С

am K(am) X(am, as) as K(as) Y(am) D(am, as)
a1 ¯e1·¯e3·¯e4·¯e6 1 a2 e1·e2 - d1,d2
a2 e1·e2 x1
¯x1
a6
a3
¯e1·¯e3·¯e4·e6
¯e1·e2·e3·¯e4·¯e 6
y1, y2 d6
d2,d3
a3 ¯e1·e2·e3·¯e4·¯e6 x2
¯x2
a4
a7
¯e1·¯e2·e4·e5·e6
¯e1·e4·e5·¯e6
y2, y3 d4,d5,d6
d4,d5
a4 ¯e1·¯e2·e4·e5·e6 x3
¯x3
a5
a3
¯e1·e2·e3·¯e4·e6
¯e1·e2·e3·¯e4·¯e6
y4, y5 d2,d3,d6
d2,d3
a5 ¯e1·e2·e3·¯e4·e6 1 a1 ¯e1·¯e3·¯e4·¯e6 y2, y3 -
a6 ¯e1·¯e3·¯e4·e6 x4
¯x4
a7
a6
¯e1·e4·e5·¯e6
¯e1·¯e3·¯e4·e6
- d4,d5
d6
a7 ¯e1·e4·e5·¯e6 x5
¯x5 x3
¯x5 ¯x3
a8
a5
a3
¯e1·e4·¯e5
¯e1·e2·e3·¯e4·e6
¯e1·e2·e3·¯e4·¯e6
y4, y5 d4
d2,d3,d6
d2,d3
a8 ¯e1·e4·¯e5 1 a1 ¯e1·¯e3·¯e4·¯e6 y4 -

Окончательная реализация автомата класса С показана на рисунке. Отметим, что для реализации автомата класса С потребовалось на две макроячейки ПЛИС меньше, чем при использовании традиционной модели автомата Мура класса В.

Реализация автомата класса С
Реализация автомата класса С

Приведение конечных автоматов типа Мили к автоматам типа Мура

Как было указано выше, конечный автомат класса С является автоматом типа Мура. Однако может оказаться, что исходный конечный автомат является автоматом типа Мили. Поэтому возникает необходимость приведения путём эквивалентных преобразований автомата Мили к автомату типа Мура. Известно (например [3]) достаточно много способов перехода от автомата типа Мили к автомату типа Мура, и наоборот. В данной статье предлагается метод приведения автомата Мили к автомату Мура с помощью операции расщепления внутренних состояний конечного автомата.

Пусть А(am) - множество состояний, в которых оканчиваются переходы из состояния am, am € A. Конечный автомат является автоматом типа Мура, если для всех am, am € A, выполняются условия:

Y(am,ah) = Y(am,at), (1)
для всех ah,at € A(am), h t, где Y(am,as) - множество выходных переменных, принимающих единичные значения на переходе из состояния am в состояние as, Y(am,as) Y, am,as € A.

Другими словами, для автомата типа Мура на всех переходах из одного и того же состояния должны формироваться одинаковые выходные наборы.

Обозначим через P(am) - множество всех переходов из состояния am, am € A; Pk(am) - некоторое подмножество переходов из состояния am, Pk(am) P(am); Yk(am) - подмножество выходных переменных, принимающих единичные значения на каждом переходе подмножества Pk(am), Yk(am) Y, причём никакая другая выходная переменная не принимает единичного значения на переходах подмножества Pk(am). Тогда алгоритм расщепления внутренних состояний конечного автомата Мили для приведения к эквивалентному автомату Мура можно описать следующим образом.

Алгоритм 2

  1. Если для всех состояний am, am € A, справедливы условия (1), то выполняется переход к пункту 5.
  2. Находится состояние am, am € A, для которого нарушены условия (1). Определяются подмножества переходов P1(am),...,PK(am) из состояния am, на которых формируются различные выходные наборы Y1(am),...,YK(am), соответственно, Yk(am) Yh(am) при k h, k,h = ¯1,K.
  3. Выполняется расщепление состояния am, выбранного в пункте 3.

    3.1. Вводится K новых состояний aM+1,...,aM+K.

    3.2. Определяются подмножества P(aM+1),...,P(aM+K) переходов из состояний aM+1,...,aM+K, для этого полагается P(aM+k) := Pk(am), k = ¯1,K.

    3.3. Определяются подмножества C(aM+1),...,C(aM+K) переходов в состояния aM+1,...,aM+K, для этого полагается С(aM+k):= С(am), k = ¯1,K.

    3.4. Полагается A := A\{am} и A := A {aM+1,...,aM+K}.

    3.5. Выполняется соответствующая корректировка таблицы переходов.

  4. Выполняется переход к пункту 1.
  5. Конец.

Метод синтеза автоматов класса D

Автоматом класса D является конечный автомат Мили, каждый выходной набор которого определяет код следующего состояния (состояния перехода). При синтезе автоматов Мили класса D актуальны те же проблемы, что и при синтезе автоматов Мура класса С: не для каждого автомата выходные наборы определяют код состояний переходов, число выходных функций может быть меньше минимальной длины разряда кода, различным состояниям перехода соответствуют одинаковые выходные наборы, коды состояний должны быть ортогональны между собой.

Пусть B(as) - множество состояний, переходы из которых оканчиваются в состоянии as, as € A. Основная идея метода синтеза автомата Мили класса D заключается в выполнении расщепления "плохих" состояний с тем, чтобы для каждого состояния as, as € A, выполнялись условия:

Y(ah,as) = Y(at,as), (2)
для всех ah,at € B(as), h t

то есть чтобы для каждого состояния as, as € A, на всех переходах в данное состояние должны формироваться одинаковые наборы выходных переменных. Дальнейшие действия по синтезу автоматов класса D во многом совпадают с действиями при синтезе автоматов класса С.

Обозначим через Сk(as) некоторое подмножество переходов, оканчивающихся в состоянии as, Сk(as) С(as); Zk(as) - подмножество выходных переменных, принимающих единичные значения на каждом переходе подмножества Ck(as), Zk(as) Y, причём никакая другая выходная переменная не принимает единичного значения на переходах подмножества Ck(as). Тогда алгоритм расщепления состояний для приведения любого автомата класса A к автомату класса D, то есть для выполнения условий (2), можно описать следующим образом.

Алгоритм 3

  1. Если для всех состояний множества A выполняются условия (2), то осуществляется переход к пункту 5.
  2. Находится состояние as, as € A, для которого нарушены условия (2). Определяются подмножества переходов C1(as),...,CK(as) в состояние as, на которых формируются различные выходные наборы Z1(as),...,ZK(as), соответственно, Zk(as) Zh(as) при k h, k,h = ¯1,K.
  3. Выполняется расщепление состояния as, найденного в пункте 2.

    3.1. Вводится K новых состояний aM+1,...,aM+K.

    3.2. Определяются подмножества P(aM+1),...,P(aM+K) переходов из состояний aM+1,...,aM+K, для этого полагается P(aM+K) := P(as), k = ¯1,K.

    3.3. Определяются подмножества C(aM+1),...,C(aM+K) переходов в состояния aM+1,...,aM+K, для этого полагается C(aM+K) := := Сk(as), k = ¯1,K.

    3.4. Полагается A := A\{as} и A := A {aM+1,...,aM+K}.

    3.5. Выполняется соответствующая корректировка таблицы переходов.

  4. 4. Выполняется переход к пункту 1.
  5. 5. Конец.

Аналогично автомату класса С, синтез автомата класса D сводится к специальному кодированию внутренних состояний конечного автомата. Для кодирования внутренних состояний автомата класса D может использоваться следующий алгоритм.

Алгоритм 4

  1. Для каждого внутреннего состояния автомата ai, ai € A, определяется выходной набор, который может быть кодом или частью кода данного состояния. Для этого строится булева матрица W. Строки матрицы соответствуют состояниям автомата, а столбцы - выходным функциям. Вначале полагается, что все клетки матрицы W имеют неопределённые значения. На пересечении строки i и столбца j матрицы W ставится единица, если am € B(ai), а yj € Y(am,ai).
  2. Выполняются пункты 2–4 алгоритма 1.
  3. Конец.

Пример использования алгоритмов 3 и 4 при синтезе автоматов класса D приводится в [4].

Программная реализация методов синтеза автоматов классов С и D

Рассмотренные методы синтеза конечных автоматов классов С и D реализованы программно в пакете ZUBR, при этом производится следующая последовательность действий:

  1. Выполняется минимизация внутренних состояний исходного конечного автомата одним из известных методов.
  2. Если при синтезе автомата класса С нарушены условия (1), то выполняется алгоритм 1; если при синтезе автомата класса D нарушены условия (2), то выполняется алгоритм 3.
  3. Выполняется кодирование внутренних состояний конечного автомата: для автомата класса С с помощью алгоритма 1, а для автомата класса D с помощью алгоритма 4.
  4. Строится система булевых функций, соответствующая комбинационной части конечного автомата.
  5. Построенная в пункте 4 система булевых функций реализуется на выбранной ПЛИС одним из методов синтеза комбинационных схем.

Программа ZUBR позволяет пользователю задавать следующие режимы и параметры синтеза:

  • разрешать/запрещать минимизацию внутренних состояний исходного конечного автомата;
  • задавать параметры ПЛИС или указывать семейство ПЛИС из имеющегося списка;
  • выбирать метод синтеза комбинационной схемы (одноуровневой, двухуровневой или многоуровневой);
  • задавать параметры метода синтеза комбинационной схемы.

Дальнейшее проектирование конечного автомата может выполняется с помощью индустриального пакета. Для этого программа ZUBR позволяет представлять результаты синтеза на следующих языках проектирования: VHDL, Verilog, AHDL, Abel и других.

Результаты экспериментальных исследований методов синтеза автоматов классов С и D

Для проверки эффективности предложенных методов в качестве исходных данных использовались эталонные примеры конечных автоматов, разработанные в центре MCNC (Microelectronics Center of North Carolina) [5]. Рассматриваемые методы синтеза сравнивались с методами синтеза конечных автоматов пакета MAX+PLUSII фирмы Altera.

Метод синтеза конечных автоматов класса С сравнивался с методом синтеза пакета MAX+PLUSII для ПЛИС семейств CLASSIC (q = 8, где q - число промежуточных шин, подсоединяемых к одной макроячейке) и MAX 5000 (q = 4). Результаты сравнения приведены в табл. 5, где Name - имя файла эталонного примера; L и N - числа входов и выходов конечного автомата, соответственно; CA1 и CA2 - числа используемых макроячеек ПЛИС при синтезе конечного автомата с помощью метода синтеза пакета MAX+PLUSII для семейства CLASSIC и для семейства MAX 5000, соответственно; CC1 и CC2 - числа используемых макроячеек ПЛИС при синтезе конечного автомата с помощью предложенного метода синтеза автоматов класса С для q = 8 и q = 4, соответственно; Type - тип конечного автомата.

Таблица 5. Результаты экспериментальных исследований метода синтеза автоматов класса С

Name L N CAL CCL CAL/CCL CA2 CC2 CA2/CC2 Type
bbsse 7 7 41 19 2,16 22 19 1,16 A
beecount 3 4 8 6 1,33 8 6 1,33 A
dk16 2 3 - - - 33 14 2,36 A
dk17 2 3 11 9 1,22 12 6 2 A
donfile 2 1 - - - 17 1 17 C
ex4 6 9 15 12 1,25 14 12 1,17 ~B
mark1 5 16 35 20 1,75 - - - A
mc 3 5 8 5 1,6 8 5 1,6 C
s386 7 7 49 20 2,45 22 20 1,1 A
s8 4 1 - - - 4 1 4 C
shiftreg 1 1 4 3 1,33 4 2 2 B
  13,09   31,23  
mid   1,64   3,12  

Анализ табл. 5 показывает, что для приведённых примеров применение метода синтеза автоматов класса С позволяет снизить число используемых макроячеек ПЛИС для семейства CLASSIC, в среднем, в 1,64 раза (для отдельных примеров - в 2,45 раза), а для семейства MAX 5000, в среднем, в 3,12 раза (для отдельных примеров - в 17 раз).

Аналогично, метод синтеза конечных автоматов класса D сравнивался с методом синтеза пакета MAX+PLUSII для ПЛИС семейств MAX 9000 (q = 4) и FLEX 10K (q = 5). Отметим, что семейства MAX 9000 и FLEX 10K позволяют конфигурировать макроячейки (логические элементы) с триггерами в цепях обратных связей. Результаты сравнения приведены в табл. 6, где CA3 и CA4 - числа используемых макроячеек ПЛИС при синтезе конечного автомата с помощью метода синтеза пакета MAX+PLUSII для семейства MAX 9000 и для семейства FLEX 10K, соответственно; CC1 и CC2 - числа используемых макроячеек ПЛИС при синтезе конечного автомата с помощью предложенного метода синтеза автоматов класса D для q = 4 и q = 5, соответственно.

Таблица 6. Результаты экспериментальных исследований метода синтеза автоматов класса D

Name L N CA3 CDI CA3/CDI CA4 CD2 CA4/CD2 Type
beecount 3 4 9 6 1,5 36 10 3,6 A
ex4 6 9 13 13 1 29 14 2,07 ~B
keyb 7 2 31 16 1,94 103 20 5,15 ~D
lion9 2 1 6 4 1,5 24 4 6 A
opus 5 6 10 7 1,43 27 8 3,38 ~D
s1 8 6 52 14 3,71 141 15 9,8 D
s27 4 1 4 4 1 43 4 10,75 D
s386 7 7 16 16 1 59 20 2,95 A
s8 4 1 5 1 5 23 1 23 C
train11 2 1 7 3 2,33 25 3 8,33 A
  20,41   75,03  
mid   2,04   7,50  

Анализ табл. 6 показывает, что для приведённых примеров применение метода синтеза автоматов класса D позволяет снизить число используемых макроячеек ПЛИС для семейства MAX 9000, в среднем, в 2,04 раза (для отдельных примеров - в 5 раз), а для семейства FLEX 10K, в среднем, в 7,5 раз (для отдельных примеров - в 23 раза).

Отметим, что методы синтеза конечных автоматов классов С и D позволяют строить в 2–3 раза более быстродействующие конечные автоматы, чем традиционные методы синтеза конечных автоматов типа Мили и Мура.

Выводы

  1. Методы синтеза конечных автоматов классов С и D позволяют значительно снизить стоимость реализации и одновременно повысить быстродействие реализуемого конечного автомата.
  2. Снижение стоимости реализации автоматов классов C и D, по сравнению с традиционными автоматами классов A и B, осуществляется за счёт упрощения комбинационной части автомата, поскольку отпадает необходимость в реализации функций возбуждения элементов памяти, а также уменьшения числа используемых выходных макроячеек ПЛИС, так как память автомата и выходные функции реализуются на одних и тех же макроячейках ПЛИС.
  3. Снижению стоимости реализации автоматов классов С и D также способствует то, что в качестве кодов внутренних состояний для этих автоматов выступают элементарные конъюнкции, а не полные конъюнкции, как в традиционных моделях автоматов классов A и B.
  4. Повышение быстродействия автоматов классов C и D, по сравнению с традиционными автоматами классов A и B, обусловлено тем, что для этих автоматов реализуются преимущественно выходные функции, которые, как правило, значительно проще функций возбуждения элементов памяти.
  5. Методы синтеза, реализованные в индустриальных пакетах автоматизированного проектирования на ПЛИС (например, MAX+PLUSII фирмы Altera), различны для различных семейств ПЛИС, это подтверждается проведёнными экспериментальными исследованиями.
  6. Для реализации автоматов класса С не требуется никаких дополнительных архитектурных свойств ПЛИС, однако для построения автоматов класса D ПЛИС должны допускать конфигурацию макроячеек с триггерами в цепях обратных связей.
  7. Выходы автоматов класса С всегда регистровые, а автоматов класса D - комбинационные.
  8. Автомат класса С является автоматом типа Мура, а автомат класса D - Мили, поэтому при синтезе автоматов класса С иногда приходится приводить исходный автомат Мили к эквивалентному автомату Мура, что в некоторых случаях может заметно увеличить число внутренних состояний и число переходов конечного автомата.
  9. Наибольшая эффективность методов синтеза автоматов классов С или D достигается тогда, когда исходный конечный автомат является автоматом класса С (выполняются условия (1)) или D (выполняются условия (2)).
  10. Для автоматов класса С также эффективны методы синтеза автоматов класса D (подтверждением служит пример s8 из табл. 6).
  11. Методы синтеза автоматов классов С и D могут эффективно применяться как при синтезе конечных автоматов на ПЛИС со структурой двух программируемых матриц, так и со структурой типа FPGA (это подтверждается экспериментальными исследованиями семейства FLEX 10K).
  12. Эффективность метода синтеза автомата класса D позволяет рекомендовать разработчикам архитектур ПЛИС предусматривать возможность конфигурирования выходных макроячеек ПЛИС с триггерами в цепях обратных связей.

Заключение

Отметим некоторые возможные пути совершенствования предложенного подхода к синтезу на ПЛИС конечных автоматов классов С и D.

Поскольку эффективность кодирования внутренних состояний (а следовательно, и методов синтеза автоматов классов С и D в целом) во многом определяется качеством выполнения пункта 3 алгоритма 1, то следует разработать эффективный алгоритм решения задачи ортогонализации строк троичной матрицы путём доопределения безразличных значений.

Для цифровых систем с инверсной логикой необходимо разработать методы синтеза автоматов классов С и D в случае, когда ПЛИС не допускают программирование логического уровня выходных сигналов.

Можно также модифицировать предложенные алгоритмы для ПЛИС, допускающих программирование логического уровня выходных сигналов, таким образом, что для реализации выбирается одна из функций yi или ¯yi, в зависимости от того, что меньше - Q(yi) или Q(¯yi), где Q(yi) - число промежуточных шин ПЛИС, необходимое для реализации функции yi, yi € Y.

Дальнейшее совершенствование предлагаемого подхода может также выполняться путём совмещения конечных автоматов различных классов в рамках одной модели конечного автомата.

Литература

  1. Соловьев В.В. Структурные модели конечных автоматов при их реализации на ПЛИС // Chip News. № 9. С. 4–14.
  2. Закревский А.Д. Логический синтез каскадных схем. М.: Наука, 1981. 416 с.
  3. Глушков В.М. Синтез цифровых автоматов. М.: Физматгиз, 1962. 476 с.
  4. Соловьев В.В. Проектирование цифровых систем на основе программируемых логических интегральных схем. М.: Горячая линия - Телеком, 2001. 636 с.
  5. Yang S. Logic synthesis and optimization benchmarks user guide. Version 3.0. Technical Report, Microelectronics Centre of North Carolina, 1991. 43 p.






Реклама на сайте
тел.: +7 (495) 514 4110. e-mail:admin@eust.ru
1998-2014 ООО Рынок микроэлектроники