Источник: http://www.chipinfo.ru/literature/chipnews/200303/4.html В. Соловьев, А. Климович Синтез на ПЛИС совмещенных моделей конечных автоматовРассматривается новый подход к проектированию конечных автоматов на ПЛИС, когда в рамках одной структурной модели, названной совмещенной, объединяется несколько различных моделей конечных автоматов. Это позволяет наиболее полно использовать архитектурные возможности ПЛИС и положительные качества каждой модели для реализации конечных автоматов. Экспериментальные исследования показали, что применение метода синтеза совмещённых моделей, по сравнению с методами пакетов MAX+PLUSII фирмы Altera и WebPack фирмы Xilinx, позволяет снизить стоимость реализации, в среднем, в 2–3,5 раза, а для отдельных примеров — в 9 раз, а также повысить быстродействие, в среднем, в 2 раза, а для отдельных примеров — в 6 раз. Введение В предыдущих статьях данной серии были рассмотрены оригинальные структуры конечных автоматов, позволяющие использовать триггеры выходных макроячеек ПЛИС [1] (автоматы классов C и D) и входных буферов ПЛИС [2] (автоматы классов E и F) в качестве элементов памяти конечных автоматов. Автоматы классов C-F показали высокую эффективность как по стоимости реализации, так и по быстродействию. Однако на практике конечные автоматы классов C-F в "чистом" виде встречаются редко. Обычно синтезируемый конечный автомат частично обладает свойствами сразу нескольких классов автоматов C-F. Поэтому возникает необходимость совмещения в рамках одной модели нескольких классов автоматов с тем, чтобы максимально использовать положительные качества каждого класса C-F, а также архитектурные возможности ПЛИС для реализации конечных автоматов. Совмещать в одной структуре несколько моделей различных классов конечных автоматов можно только в случае совпадения временных параметров выходных сигналов каждой модели. В противном случае, может сложиться ситуация, когда значения выходных сигналов, формируемых в одном и том же состоянии конечного автомата, на выходе схемы будут появляться в различных тактах автоматного времени. Из анализа временного функционирования автоматов классов A-F [3] следует, что допустимы следующие четыре совмещённые модели конечных автоматов: ADE, AD, AE и BF. На основании этих четырёх совмещённых моделей путём установки регистров на входы и/или выходы, а также защёлок на входы, можно построить ещё 20 совмещённых моделей конечных автоматов, допускающих эффективную реализацию на ПЛИС. Структуры совмещенных моделей конечных автоматов Структуры совмещённых моделей показаны на рис. 1. Здесь комбинационная схема CL реализует выходные функции и функции возбуждения элементов памяти; регистр RGEF служит для хранения кодов состояний, определяемых входными наборами (автоматы классов E и F); регистр RGD - для хранения кодов состояний, определяемых выходными наборами (автомат класса D), и регистр RGAB - для хранения кодов состояний автоматов классов A и B. В совмещённых моделях содержимое входного регистра RGEF определяется значениями входных переменных множества X = {x1,...,xL}, содержимое выходного регистра RGD определяется значениями выходных переменных множества Y = {y1,...,yN} и содержимое внутреннего регистра RGAB определяется значениями функций переходов множества D = {d1,...,dR}. Коды внутренних состояний конечного автомата определяются значениями переменных множеств G = = {g1,...,gL}, Z = {z1,...,zN} и E = {e1,...,eR}, формируемых на выходах регистров RGEF, RGD и RGAB, соответственно. Рисунок 1. Структуры совмещенных моделей конечных автоматов: ADE (а), AD (б), AE и BF (в) Отметим, что в совмещённых моделях конечных автоматов регистр RGEF реализуется входными буферами, регистр RGD - выходными макроячейками, а регистр RGAB - скрытыми макроячейками ПЛИС. Кодирование внутренних состояний совмещенных моделей конечных автоматов Вначале рассмотрим кодирование внутренних состояний конечных автоматов для совмещённой модели ADE, а затем уточним этот метод для моделей AD, AE и BF. Суть кодирования заключается в том, чтобы сделать все внутренние состояния различимыми между собой, то есть все коды внутренних состояний конечного автомата должны быть взаимно ортогональны. Входные и выходные наборы конечного автомата, определяемые значениями переменных множеств G = {g1,...,gL} и Z = {z1,...,zN}, частично решают эту задачу. Дальнейшее решение заключается во введении минимального числа R дополнительных переменных e1,...,eR множества E и кодировании отдельных групп состояний двоичными кодами. Пусть, как и прежде [1,2], конечный автомат задан таблицей переходов, столбцы которой имеют обозначения am, aы, X(am,aы) и Y(am,aы). Для решения задачи кодирования внутренних состояний совмещённой модели ADE строится троичная матрица W. Строки матрицы соответствуют внутренним состояниям конечного автомата, а столбцы - переменным множеств G и Z. На пересечении строки, соответствующей некоторому состоянию ai, ai € A, и столбца, соответствующего переменной gj, gj € G, ставится единица, если входная переменная xj входит в условие X(ai) в прямом значении, ноль - в инверсном, и неопределённое значение (дефис), если переменная xj не входит в условие X(ai), где X(ai) - условие перехода в состояние ai. Значение X(ai) определяется следующим образом: если все переходы в состояние ai, ai € A, осуществляются под воздействием одного и того же входного набора X(am,ai), то полагается X(ai) := := X(am,ai), иначе полагается X(ai) := пустое множество. На пересечении строк, соответствующих состоянию ai, ai € A, и столбца, соответствующего переменной zj, zj € Z, ставится единица, если yj € Y(ai), и ноль в противном случае, где Y(ai) - подмножество выходных переменных, принимающих единичные значения на переходах в состояние ai. Значение Y(ai) определяется следующим образом: если на всех переходах в состояние ai, ai € A, формируется один и тот же выходной набор Y(am,ai), то полагается Y(ai) := Y(am,ai), иначе полагается Y(ai) := пустое множество. Теперь задачу кодирова ния внутренних состояний совмещенной модели конечного автомата можно сформулировать следующим образом. Задача 1. Ввести минимальное число R дополнительных переменных e1,...,eR и закодировать строки матрицы W таким образом, чтобы все строки матрицы W были взаимно ортогональны. Для решения задачи 1 строится граф H ортогональности строк матрицы W. Вершины графа H соответствуют строкам матрицы W (то есть внутренним состояниям конечного автомата). Две вершины i и j графа H соединяются ребром, если строки i и j матрицы W ортогональны между собой. Теперь задача 1 сводится к нахождению в графе H минимального числа T полных подграфов H1,...,HT, вершины которых не пересекаются, и приписывании этим подграфам двоичных кодов, определяемых значениями переменных e1,...,eR. На основании вышеизложенного для решения задачи 1 может быть предложен следующий алгоритм. Алгоритм 1
Рассмотренный метод без всяких изменений может быть применён при кодировании внутренних состояний конечных автоматов моделей AE и BF. При кодировании внутренних состояний конечных автоматов совмещённой модели AD троичная матрица W будет содержать столбцы, соответствующие только переменным множества Е. Метод синтеза совмещенных моделей конечных автоматов Метод синтеза совмещённых моделей конечных автоматов рассмотрим на примере модели ADE, а затем уточним этот метод для моделей AD, AE и BF. Использование совмещенной модели автоматов преследует две основные цели:
Обе цели достигаются путём широкого использования моделей автоматов классов D и E, а также операции расщепления состояний. В предлагаемом ниже алгоритме синтеза расщепление состояний прекращается, как только это приводит к увеличению значения R, а в качестве окончательного принимается решение, которое последний раз вызвало уменьшение R. Пусть A - множество всех внутренних состояний конечного автомата. Определим множество AE, AE Н A, состояний автомата класса E, то есть множество состояний, коды которых определяются входными наборами. Обозначим через U(ai) множество всех условий переходов в состояние ai, ai € A: U(ai) = {X(am,ai) | am € B(ai)}, (1) где B(ai) - множество состояний, переходы из которых оканчиваются в состоянии ai. Состояние ai, ai € A, является состоянием автомата класса E, то есть ai € AE, если выполняются условия: |U(ai)| = 1 и (2) Выполнение (2) обеспечивает, что все переходы в состояние ai осуществляются по одному и тому же условию перехода, а выполнение (3) обеспечивает, что условия переходов в состояние ai не вызывают переходов в другие состояния автомата. Удовлетворение условиям (2) выполняется путём расщепления состояний. Удовлетворение условиям (3) осуществляется путём введения дополнительных переменных обратных связей и соответствующих им элементов памяти для различия кодов внутренних состояний автомата. Пусть UE(ai) - множество условий переходов в состояние ai, ai € A, которые не встречаются на переходах в другие состояния, то есть для которых выполняется условие (3), UE(ai) U(ai). Обозначим через A*E множество состояний, для которых нарушено условие (2), то есть множество состояний, которые можно расщеплять с целью получения состояний автомата класса E. Пусть V(ai) - множество наборов выходных переменных, формируемых на переходах в состояние ai, ai € A: V(ai) = {Y(am,ai) | am € B(ai)}. (4) Состояние ai, ai € A, является состоянием автомата класса D, то есть ai € AD, если выполняются условия: |V(ai)| = 1 и (5) Выполнение условия (5) обеспечивает, что на всех переходах в состояние ai формируется один и тот же выходной набор, а выполнение (6) обеспечивает, что выходной набор V(ai) не встречается на переходах в другие состояния конечного автомата. Пусть VD(ai) - множество наборов выходных переменных, формируемых на переходах в состояние ai, ai € A, которые не встречаются на переходах в другие состояния, то есть VD(ai) - подмножество множества V(ai), VD(ai) V(ai), для которого выполняется условие (6). Пусть также A*D - множество состояний, для которых нарушено условие (5), то есть множество состояний, которые можно расщеплять с целью получения состояний автомата класса D. Определим стоимость S(ai) расщепления состояния ai как число строк, на которое увеличивается таблица переходов в результате расщепления состояния ai, ai € A*D A*E: S(ai) = |V(ai) – 1|·|P(ai)|, если ai € A*,D, (7) где P(ai) - множество переходов из состояния ai. В процессе синтеза конкретное значение S(ai) выбирается в зависимости от того, каким образом производится расщепление: по выходным (ai € A*D) или по входным (ai € A*E) наборам. На основании вышеизложенного, обобщённый алгоритм синтеза совмещенной модели конечных автоматов ADE можно представить следующим образом. Алгоритм 2
Отметим, что в начале выполнения алгоритма 2 значение R* принимается заведомо большим, чем необходимо, поэтому в пункте 3 по крайней мере один раз выполнится запоминание результатов синтеза. Пример. Рассмотрим работу алгоритма 2 на примере синтеза совмещённой модели конечного автомата Мили, таблица переходов которого приведена в табл. 1. Решение задачи 1 приводит к определению значения R* = 2. Множества V(ai), VD(ai), U(ai) и UE(ai) для данного примера приведены в табл. 2, на основании которых определяются следующие множества: AD = {a4}; A*D = {a3,a5}; AE = {a1,a2,a3} и A*E = {a4,a5}. Для расщепления выбирается состояние a5, поскольку |VD(a5)| = |UE(a5)| = max = 3. Результаты расщепления состояния a5 по выходным наборам множества V(a5) приведены в табл. 3. Матрица W, построенная для решения задачи 1, приведена в табл. 4 (первые восемь столбцов). Граф H ортогональности строк матрицы W показан на рис. 2. Таблица 1. Таблица переходов исходного конечного автомата
Таблица 2. Множества V(ai), VD(ai), U(ai) и UE(ai)
Таблица 3. Таблица переходов после расщепления состояния a5
Таблица 4. Матрица W для кодирования внутренних состояний
Рисунок 2. Граф H ортогональности строк матрицы W Вначале из графа H удаляется вершина a2, связанная со всеми остальными вершинами графа. Затем в графе H последовательно выделяются два полных подграфа H1 и H2, для которых A1 = {a1, a4, a5¹, a5², a5³} и A2 = {a3}. Поскольку два подграфа можно закодировать одной двоичной переменной, то имеем R = 1. Дальнейшее расщепление состояний не приводит к уменьшению R, поэтому полученное решение принимается за окончательное. В матрицу W добавляется один столбец, соответствующий дополнительной переменной e1. Строки таблицы W, соответствующие подграфу H1, кодируются нулевым значением переменной e1, а подграфу H2 - единичным. На основании содержимого строк матрицы W определяются следующие значения кодов внутренних состояний автомата: K(a1) = ¯g4·¯z1·¯z2·¯z3·¯z4·¯e1; Структурная таблица переходов представлена в табл. 5, на основании которой составляются следующие логические уравнения реализуемых функций: d1 = ¯g4·¯z1·¯z2·¯z3·¯z4·¯e1·¯x1 + g1·¯z1·¯z2·¯z3·z4·¯x1; Таблица 5. Структурная таблица переходов
Окончательная реализация совмещённой модели ADE показана на рис. 3. Рисунок 3. Реализация совмещённой модели ADE Если для всех ai, ai € A, положить U(ai) := пустое множество, то алгоритм 2 без всяких изменений может быть применён для синтеза конечных автоматов совмещенной модели AD. Если для всех ai, ai € A, положить V(ai) := пустое множество, то алгоритм 2 также без всяких изменений может быть применён для синтеза совмещённой модели AE. Для автоматов типа Мура возможно построение только одной совмещённой модели BF. Дело в том, что временные параметры выходных сигналов автомата класса C существенно отличаются от временных параметров выходных сигналов автоматов классов B и F [3]. Поэтому, в общем случае, автомат класса C нельзя совмещать в рамках одной модели с автоматами классов B и F. Метод синтеза совмещённой модели BF полностью совпадает с рассмотренным выше методом синтеза совмещённой модели AE. Отличие заключается только в том, что вместо исходного автомата типа Мили рассматривается автомат типа Мура. Переход от автомата типа Мили к автомату типа Мура можно выполнить с помощью алгоритма 2 работы [2]. Результаты экспериментальных исследований метода синтеза совмещенных моделей конечных автоматов Метод синтеза совмещённых моделей реализован программно в пакете ZUBR. Эффективность метода сравнивалась с методами синтеза пакета MAX+PLUSII фирмы Altera для семейств MAX 9000 и FLEX 10K, а также методами синтеза пакета WebPack фирмы Xilinx для семейств XC 9500 и VIRTEX2. В качестве исходных данных использовались эталонные примеры конечных автоматов, разработанные в центре MCNC (Microelectronics Center of North Carolina) [4]. Результаты сравнения стоимости реализации конечных автоматов, синтезированных с помощью метода синтеза совмещённых моделей и методов пакета MAX+PLUSII для семейств MAX 9000 и FLEX 10K представлены соответственно в табл. 6 и 7, где Name - имя эталонного примера; L, N, M и P - число входов, выходов, внутренних состояний и переходов конечного автомата, соответственно; C1 - число используемых макроячеек ПЛИС при синтезе конечного автомата с помощью метода синтеза пакета MAX+PLUSII для семейства MAX 9000; C2, C3 и C4 - число используемых макроячеек ПЛИС семейства MAX 9000 при синтезе конечного автомата с помощью метода синтеза совмещённой модели ADE, AD и AE, соответственно; C5, C6, C7 и C8 - то же, но для семейства FLEX 10K. Таблица 6. Сравнение метода синтеза совмещенных моделей конечных автоматов с методами пакета MAX+PULSII для семейства MAX 9000
Таблица 7. Сравнение метода синтеза совмещенных моделей конечных автоматов с методами пакета MAX+PULSII для семейства FLEX 10K
Анализ табл. 6 и 7 показывает, что использование совмещённых моделей конечных автоматов и соответствующих методов синтеза позволяет уменьшить число задействуемых макроячеек ПЛИС, в среднем, в 1,71–3,79 раза, а для отдельных примеров - в 8 раз. В табл. 8 приведены результаты сравнения быстродействия синтезированных конечных автоматов для моделей AD и AE, где D1 - максимальная задержка в наносекундах прохождения сигналов со входа на выход схемы при использовании пакета WebPack для семейства XC 9500; D2 и D3 - то же, но при использовании метода синтеза совмещённых моделей AD и AE, соответ ственно. Анализ табл. 8 показывает, что метод синтеза совмещённых моделей позволяет повысить быстродействие конечных автоматов, в среднем, в 2,14 раза, а для отдельных примеров - почти в 6 раз. Таблица 8. Сравнение быстродействия конечных автоматов для семейства XC 9500
Литература
|