В. Соловьев Использование выходных макроячеек ПЛИС в качестве элементов памяти конечных автоматовВ статье рассматривается новый подход к проектированию конечных автоматов на ПЛИС, когда выходные макроячейки ПЛИС используются одновременно для реализации выходных функций и функций переходов. Конечные автоматы типа Мура, допускающие такую реализацию, получили название автоматов класса С, а конечные автоматы типа Мили - автоматов класса 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 (кодирования состояний автомата класса С ).
Дальнейший синтез автомата Мура класса С заключается в назначении для реализации функций возбуждения элементов памяти 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; Структурная таблица переходов автомата приведена в табл. 4. Логические уравнения функций возбуждения элементов памяти имеют вид: d1 = ¯e1·¯e3·¯e4·¯e6; Таблица 1. Таблица переходов исходного автомата Мура
Таблица 4. Структурная таблица переходов автомата класса С
Окончательная реализация автомата класса С показана на рисунке. Отметим, что для реализации автомата класса С потребовалось на две макроячейки ПЛИС меньше, чем при использовании традиционной модели автомата Мура класса В. Реализация автомата класса С Приведение конечных автоматов типа Мили к автоматам типа Мура Как было указано выше, конечный автомат класса С является автоматом типа Мура. Однако может оказаться, что исходный конечный автомат является автоматом типа Мили. Поэтому возникает необходимость приведения пут╦м эквивалентных преобразований автомата Мили к автомату типа Мура. Известно (например [3]) достаточно много способов перехода от автомата типа Мили к автомату типа Мура, и наоборот. В данной статье предлагается метод приведения автомата Мили к автомату Мура с помощью операции расщепления внутренних состояний конечного автомата. Пусть А(am) - множество состояний, в которых оканчиваются переходы из состояния am, am € A. Конечный автомат является автоматом типа Мура, если для всех am, am € A, выполняются условия: Y(am,ah) = Y(am,at), (1) Другими словами, для автомата типа Мура на всех переходах из одного и того же состояния должны формироваться одинаковые выходные наборы. Обозначим через P(am) - множество всех переходов из состояния am, am € A; Pk(am) - некоторое подмножество переходов из состояния am, Pk(am) P(am); Yk(am) - подмножество выходных переменных, принимающих единичные значения на каждом переходе подмножества Pk(am), Yk(am) Y, прич╦м никакая другая выходная переменная не принимает единичного значения на переходах подмножества Pk(am). Тогда алгоритм расщепления внутренних состояний конечного автомата Мили для приведения к эквивалентному автомату Мура можно описать следующим образом. Алгоритм 2
Метод синтеза автоматов класса D Автоматом класса D является конечный автомат Мили, каждый выходной набор которого определяет код следующего состояния (состояния перехода). При синтезе автоматов Мили класса D актуальны те же проблемы, что и при синтезе автоматов Мура класса С: не для каждого автомата выходные наборы определяют код состояний переходов, число выходных функций может быть меньше минимальной длины разряда кода, различным состояниям перехода соответствуют одинаковые выходные наборы, коды состояний должны быть ортогональны между собой. Пусть B(as) - множество состояний, переходы из которых оканчиваются в состоянии as, as € A. Основная идея метода синтеза автомата Мили класса D заключается в выполнении расщепления "плохих" состояний с тем, чтобы для каждого состояния as, as € A, выполнялись условия: Y(ah,as) = Y(at,as), (2) то есть чтобы для каждого состояния as, as € A, на всех переходах в данное состояние должны формироваться одинаковые наборы выходных переменных. Дальнейшие действия по синтезу автоматов класса D во многом совпадают с действиями при синтезе автоматов класса С. Обозначим через Сk(as) некоторое подмножество переходов, оканчивающихся в состоянии as, Сk(as) С(as); Zk(as) - подмножество выходных переменных, принимающих единичные значения на каждом переходе подмножества Ck(as), Zk(as) Y, прич╦м никакая другая выходная переменная не принимает единичного значения на переходах подмножества Ck(as). Тогда алгоритм расщепления состояний для приведения любого автомата класса A к автомату класса D, то есть для выполнения условий (2), можно описать следующим образом. Алгоритм 3
Аналогично автомату класса С, синтез автомата класса D сводится к специальному кодированию внутренних состояний конечного автомата. Для кодирования внутренних состояний автомата класса D может использоваться следующий алгоритм. Алгоритм 4
Пример использования алгоритмов 3 и 4 при синтезе автоматов класса D приводится в [4]. Программная реализация методов синтеза автоматов классов С и D Рассмотренные методы синтеза конечных автоматов классов С и D реализованы программно в пакете ZUBR, при этом производится следующая последовательность действий:
Программа 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. Результаты экспериментальных исследований метода синтеза автоматов класса С
Анализ табл. 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
Анализ табл. 6 показывает, что для привед╦нных примеров применение метода синтеза автоматов класса D позволяет снизить число используемых макроячеек ПЛИС для семейства MAX 9000, в среднем, в 2,04 раза (для отдельных примеров - в 5 раз), а для семейства FLEX 10K, в среднем, в 7,5 раз (для отдельных примеров - в 23 раза). Отметим, что методы синтеза конечных автоматов классов С и D позволяют строить в 2√3 раза более быстродействующие конечные автоматы, чем традиционные методы синтеза конечных автоматов типа Мили и Мура. Выводы
Заключение Отметим некоторые возможные пути совершенствования предложенного подхода к синтезу на ПЛИС конечных автоматов классов С и D. Поскольку эффективность кодирования внутренних состояний (а следовательно, и методов синтеза автоматов классов С и D в целом) во многом определяется качеством выполнения пункта 3 алгоритма 1, то следует разработать эффективный алгоритм решения задачи ортогонализации строк троичной матрицы пут╦м доопределения безразличных значений. Для цифровых систем с инверсной логикой необходимо разработать методы синтеза автоматов классов С и D в случае, когда ПЛИС не допускают программирование логического уровня выходных сигналов. Можно также модифицировать предложенные алгоритмы для ПЛИС, допускающих программирование логического уровня выходных сигналов, таким образом, что для реализации выбирается одна из функций yi или ¯yi, в зависимости от того, что меньше - Q(yi) или Q(¯yi), где Q(yi) - число промежуточных шин ПЛИС, необходимое для реализации функции yi, yi € Y. Дальнейшее совершенствование предлагаемого подхода может также выполняться пут╦м совмещения конечных автоматов различных классов в рамках одной модели конечного автомата. Литература
|
Ваш комментарий к статье | ||||