|
В. Соловьев, А. Климович
Синтез на ПЛИС одноуровневых комбинационных схем
Рассматриваются два метода синтеза одноуровневых комбинационных схем на ПЛИС: без использования монтажного соединения выходов (метод М1) и в случае использования монтажного соединения выходов для реализации функции "ИЛИ" (метод М2). Указываются отличия методов для трёх архитектурных моделей ПЛИС: "классических" PAL, универсальных PAL и CPLD. Проведённые экспериментальные исследования показали высокую эффективность метода М2, который, по сравнению с методами пакета MAX+PLUSII, позволяет для отдельных примеров снизить стоимость реализации более чем в 25 раз, а быстродействие повысить в 15 раз. Отмечаются положительные и отрицательные качества каждого из методов, а также области их наиболее эффективного использования.
Введение
Под одноуровневой комбинационной схемой на ПЛИС понимается комбинационная схема, в которой сигналы на пути со входов на выходы схемы не проходят через скрытые макроячейки и только один раз проходят через выходные макроячейки ПЛИС.
Одноуровневые комбинационные схемы заслуженно пользуются большой популярностью среди разработчиков цифровых систем благодаря своей простоте и высокому быстродействию. Кроме того, все выходные сигналы в одноуровневых схемах имеют одну и ту же временную задержку. В общем случае возможны два подхода к синтезу одноуровневых комбинационных схем на ПЛИС: когда допускается монтажное соединение выходов ПЛИС по ИЛИ и когда монтажное соединение выходов запрещено. В предлагаемых методах синтеза рассматриваются три архитектурные модели ПЛИС: "классические" PAL (Programmable Array Logic), универсальные PAL и CPLD (Complex Programmable Logic Device) [1].
"Классические" PAL характеризуются числом входов n, числом выходных макроячеек m и числом q промежуточных шин, подсоединяемых к каждой макроячейке. Универсальные PAL характеризуются числом входов n, числом выходных макроячеек с одной обратной связью m, числом выходных макроячеек с двумя обратными связями m2, а также множеством Q = {q1,...,qk}, где qs - число промежуточных шин, подсоединяемых к макроячейке MCs, qs € Q, s = ¯1,¯k, k = m + m2. Функциональный блок CPLD характеризуется числом входов n, выходных макроячеек m, суммарным числом промежуточных шин функционального блока qe и максимальным числом промежуточных шин qmax, которые могут быть подсоединены к одной макроячейке.
Пусть комбинационная схема задана системой булевых функций (СБФ), представленных в дизъюнктивной нормальной форме (ДНФ). СБФ будем характеризовать числом N выходных функций (выходных переменных) множества Y = {y1,...,yN} и числом L аргументов функций (входных переменных) множества X = {x1,...,xL}. Кроме того, каждая функция yi характеризуется числом Q(yi) слагаемых (элементарных конъюнкций) в ДНФ функции yi, yi € Y.
Предлагаемые методы синтеза одноуровневых комбинационных схем на ПЛИС включают два этапа: на первом этапе определяется множество Y* реализуемых функций, на втором этапе выполняется разбиение множества Y* на минимальное число T подмножеств Y1,...,YT таким образом, чтобы каждое подмножество Yt, t = ¯1,¯T, допускало реализацию на t-й PAL (функциональном блоке CPLD). При описании методов синтеза вначале приводится метод синтеза на универсальных PAL, а затем метод уточняется для "классических" PAL и CPLD.
Синтез одноуровневых комбинационных схем без использования монтажного соединения выходов ПЛИС по ИЛИ (метод М1)
При построении одноуровневых комбинационных схем на универсальных PAL главным препятствием является ограничение на число промежуточных шин, подсоединяемых к одной макроячейке. С другой стороны, поскольку универсальные PAL позволяют программировать уровень активности (высокий или низкий) логического сигнала каждого выхода, можно реализовать прямое или инверсное представление каждой функции yi, yi € Y, в зависимости от того, какое из значений меньше - Q(yi) или Q(¯yi). Синтез усложняется также тем, что с различными макроячейками универсальных PAL связано различное число промежуточных шин.
Необходимыми и достаточными условиями реализации СБФ Y одноуровневой схемой на универсальных PAL является выполнение неравенств:
|X(ýi)| n + k – 1, (1)
Q(ýi) qmax для всех i = ¯1,¯N,
где X(ýi) - число аргументов функции ýi; ýi - одна из функций yi или ¯yi; qmax - максимальный элемент множества Q.
На первом этапе синтеза в множество Y* из двух функций yi и ¯yi, i = ¯1,¯N, выбирается функция, для которой выполняются условия (1) и значение Q(ýi) для которой меньше.
На втором этапе синтеза решается следующая задача.
Задача 1
Разбить множество Y* на минимальное число T подмножеств Y1,...,YT таким образом, чтобы для каждого подмножества выполнялись условия:
|Yt| k;
|Xt| n + k – |Yt|, t = ¯1,T,
а также, чтобы для каждой функции yi, yi € Y, нашлось значение qs, qs € Q, такое, что
Q(ýi) qs, (2)
причём различным функциям ýi, ýi € Y*, должны соответствовать различные значения qs, qs О Q, где Xt - множество аргументов функций подмножества Yt, t = ¯1,¯T.
Алгоритм решения задачи 1 имеет вид.
Алгоритм 1
- Полагается t := 0.
- Полагается t := t + 1, Q* := Q. Начинается формирование подмножества Yt.
В качестве опорного элемента в подмножество Yt выбирается функция ýi, ýi € Y*, для которой |X(ýi)| = max; если таких функций несколько, то среди них выбирается функция, для которой Q(ýi) = max.
Для реализации функции yi в t-й PAL определяется макроячейка MCs, для которой выполняется условие (2), qs € Q*; если таких макроячеек несколько, то среди них выбирается макроячейка с минимальным значением qs.
Полагается: Yt := {ýi}; Xt := Xýyi); Q* := := Q*\{qs}; Y* := Y*\{ýi}; Qt := Q(ýi), где Qt - суммарное число промежуточных шин, необходимое для реализации функций множества Yt.
- Осуществляется добавление элементов в множество Yt. Для этого находится функция ýi, ýi € Y*, для которой выполняются условия
|Yt| + 1 k;
|Xt X(yi)| n + k – |Yt| – 1; (3)
Q(ýi) qs,
где qs - число промежуточных шин, подсоединённых к некоторой незадействованной макроячейке PAL, qs € Q.
qeсли таких функций несколько, то среди них выбирается функция, для которой |Xt X(ýi)| = max, а среди них функция, для которой |X(ýi)\Xt| = min. Функции yi назначается для реализации s-я макроячейка t-й PAL аналогично тому, как это выполнялось в пункте 2.
Полагается:
Yt:= Yt {ýi};
Xt := Xt X(ýi);
Q* := Q*\{qs};
Y* := Y*\{ýi};
Qt := Qt + Q(ýi).
Пункт 3 повторяется до тех пор, пока в множество Yt может быть включена хотя бы одна функция.
- qeсли Y , выполняется переход к пункту 2, иначе - к пункту 5.
- Конец.
Пример 1
Пусть универсальные PAL имеют следующие параметры: n = 3, m = 2, m2 = 1 и Q = {1,2,4}, а СБФ Y задана следующими логическими уравнениями:
y1 = ¯x1 + x5 + x6 + x8;
y2 = ¯x1·x¯6 + x1·x6 + ¯x5·x6·¯x8 + x5·¯x6·¯x8 +
+ x1·¯x5·x8 + x5·x6·x8;
y3 = ¯x2·¯x3 + x2·x3 + ¯x7·¯x9 + ¯x2·x7 + x2·x9;
y4 = ¯x7·¯x9 + ¯x2·¯x3·¯x7 + x2·¯x3·x9 + x3·x7 + ¯x2·x7·¯x9;
y5 = ¯x4 + x5 + x7;
y6 = x4·¯x5 + x¯4·x5 + ¯x7;
y7 = x4·¯x5 + ¯x4·x5 + x5·x7 + ¯x5·¯x7;
y8 = ¯x5·¯x6·¯x7 + ¯x7·¯x8·¯x9 + x5·x6·¯x7 + ¯x5·¯x7·x8 + x5·¯x7·x9 + x7·x8·¯x9 + ¯x5·x6·x7 + x5·¯x6·x7 + ¯x5·x7·x9 + x5·x7·¯x8.
Инверсии функций имеют следующий вид:
¯y1 = x1·¯x5·¯x6·¯x8;
¯y2 = x1·¯x5·¯x6·¯x8 + x1·x5·¯x6·x8 + ¯x1·¯x5·x6·x8 + ¯x1·x5·x6·¯x8;
¯y3 = ¯x2·x3·¯x7·x9 + x2·¯x3·x7·¯x9;
¯y4 = x3·¯x7·x9 + ¯x2·¯x3·x7·x9 + x2·¯x3·x7·¯x9;
¯y5 = x4·¯x5·¯x7;
¯y6 = ¯x4·¯x5·x7 + x4·x5·x7;
¯y7 = ¯x4·¯x5·¯x7 + x4·x5·¯x7;
¯y8 = ¯x5·x6·¯x7·¯x8·x9 + x5·¯x6·¯x7·x8·x9 + x5·x6·x7·x8·x9 + ¯x5·¯x6·x7·¯x8·¯x9.
Исходные данные для работы алгоритма 1 представлены в табл. 1. Поскольку для всех функций справедливо Q(¯yi) < Q(yi), то в множество Y* включаются только инверсные представления функций.
Таблица 1. Исходные данные для работы алгоритма 1
yi
|
X(ýi)
|
|X(ýi)|
|
Q(yi)
|
Q(¯yi)
|
y1
|
{x1,x5,x6,x8}
|
4
|
4
|
1
|
y2
|
{x1,x5,x6,x8}
|
4
|
6
|
4
|
y3
|
{x2,x3,x7,x9}
|
4
|
5
|
2
|
y4
|
{x2,x3,x7,x9}
|
4
|
5
|
3
|
y5
|
{x4,x5,x7}
|
3
|
3
|
1
|
y6
|
{x4,x5,x7}
|
3
|
3
|
2
|
y7
|
{x4,x5,x7}
|
3
|
4
|
2
|
y8
|
{x5,x6,x7,x8,x9}
|
5
|
10
|
4
|
В соответствии с пунктом 2 алгоритма 1, первым в множество Y1 включается функция ¯y8, так как только для этой функции |X(¯y8)| = 5 = max. На этом формирование множества Y1 заканчивается, поскольку нельзя добавить ни одной функции из-за нарушения условий (3).
В качестве опорного элемента множества Y2 выбирается функция ¯y2, затем в множество Y2 добавляется единственная функция ¯y1. Аналогично формируются множества Y3 и Y4. Окончательная реализация СБФ показана на рис. 1. Здесь возле каждого вывода записано число промежуточных шин, связанных с соответствующей макроячейкой.
Рисунок 1. Реализация СБФ из примера 1 одноуровневой схемой на универсальных PAL без использования монтажного объединения выходов по ИЛИ
Необходимые и достаточные условия реализации СБФ Y на "классических" PAL имеют вид:
|X(yi)| n + m – 1;
Q(yi) q, для всех i = ¯1,¯N.
qeсли принять k := m, qs := q и Y* := Y, то метод М1 для "классических" PAL полностью совпадает с методом М1 для универсальных PAL.
Необходимым и достаточным условием возможности реализации СБФ Y одноуровневой схемой на CPLD является выполнение неравенств:
|X(ýi)| n;
Q(ýi) qmax, для всех i = ¯1,¯N.
Реализация СБФ Y* одноуровневой комбинационной схемы на CPLD сводится к разбиению множество Y* на минимальное число T подмножеств Y1,...,YT таким образом, чтобы для каждого подмножества выполнялись условия:
|Yt| m;
|Xt| n;
Qt qe, для всех t = ¯1,¯T.
Некоторая функция yi, yi € Y*, может быть добавлена в подмножество Yt, t = ¯1,¯T, если выполняются условия:
|Yt|+ 1 m;
|Xt И X(yi)| n; (4)
Qt + Q(yi) qe.
Метод М1 синтеза одноуровневой комбинационной схемы на CPLD аналогичен методу М1 для универсальных PAL, только в пункте 3 алгоритма 1 вместо условий (3) учитываются условия (4), а также отпадает необходимость в выборе макроячейки для реализации конкретной функции, так как все выходные макроячейки CPLD равнозначны.
Синтез одноуровневых комбинационных схем с использованием монтажного соединения выходов ПЛИС по ИЛИ (метод М2)
Многие ПЛИС допускают монтажное объединение внешних выводов с целью реализации логической функции ИЛИ. Для возможности такого объединения выходные буферы ПЛИС должны быть изготовлены по технологии с открытым коллектором или обладать свойством программирования открытого стока (open-drain) для каждого выхода.
Необходимым и достаточным условием реализации СБФ Y на универсальных PAL с использованием монтажного объединения выходов по ИЛИ является выполнение неравенств:
r(yi) n + k – 1 для всех i = ¯1,¯N,
где r(¯yi) - максимальный ранг (число литералов) конъюнкций в представлении функции ¯yi, i = ¯1,¯N.
В качестве реализуемых функций принимается множество Y* = {¯y1,...,¯yN}, поскольку монтажное ИЛИ реализуется только в инверсной логике.
СБФ Y* представим в виде двух матриц: троичной А и булевой В. Матрицы А и В имеют одинаковое число строк, соответствующих элементарным конъюнкциям k1,...,kP. Столбцы матрицы А соответствуют аргументам, а матрицы В - функциям множества Y. На пересечении строки i и столбца j матрицы А ставится единица, если входная переменная xj, xj € X, входит в i-ю конъюнкцию в прямом значении, ноль - в инверсном значении и прочерк ("–"), если xj не входит в i-ю конъюнкцию. На пересечении строки i и столбца j матрицы В ставится единица, если i-я конъюнкция входит в ДНФ функции yj, yj € Y. Каждой строке матрицы B поставим в соответствие множество X(ki) аргументов, имеющих в строке i матрицы A значения, отличные от безразличных, i = ¯1,¯P. На втором этапе синтеза решается следующая задача.
Задача 2
Покрыть матрицу B минимальным числом T миноров B1,...,BT таким образом, чтобы для каждого минора выполнялись условия:
|Yt| k;
|Xt| n + k – |Yt|, t = ¯1,¯T,
а также для каждого столбца j минора BT нашлось значение qs, qs € Q, такое, что выполняется
Qjt qs,
причём различным столбцам минора BT должны соответствовать различные значения qs, qs € Q, где Yt - множество функций, соответствующих столбцам минора BT; Xt - множество аргументов, соответствующих строкам минора BT; Kt - множество конъюнкций, соответствующих строкам минора BT; Qjt - число единиц в столбце j минора BT, t = ¯1,¯T.
Решение задачи 2 выглядит следующим образом.
Алгоритм 2
- Полагается t := 0.
- Полагается
t := t + 1;
Q* := Q;
Qjt := 0 для всех j = ¯1,¯N.
Начинается формирование очередного минора BT. В качестве опорных в минор BT включается строка i и столбец j, имеющие общую единицу, такие, что для строки i выполняется
|X(ki)| = max,
а столбец j содержит максимальное число единиц. qeсли таких пар (i,j) строк и столбцов может быть выбрано несколько, то среди них выбирается строка i и столбец j с максимальным суммарным числом единиц.
Выбранные строка i и столбец j включаются в минор BT, полагается: Kt := {ki}; Xt := X(ki); Yt := {yj}; Qjt := 1; Qt := 1.
- Осуществляется покрытие единиц матрицы B минором BT. Для этого в матрице B находится единица на пересечении строки i и столбца j, для которой выполняются условия
|Yt {yj}| k;
|Xt X(ki)| n + k – |Yt {yj}|, (5)
а также, если среди свободных макроячеек t-й PAL найдётся макроячейка с числом промежуточных шин qs такая, что выполняется неравенство:
Qjt + 1 qs. (6)
При наличии альтернативы выбора предпочтение отдаётся единице, для которой
|Xt X(ki)| = max,
а среди них - единице, для которой
|X(ki)\Xt| = min.
В случае равных возможностей выбора предпосылка отдаётся единице, расположенной в столбцах минора BT.
Строка i и столбец j, на пересечении которых находится выбранная единица, включается в минор BT, полагается:
Kt := Kt {ki};
Yt := Yt {yj};
Xt := Xt X(ki);
Qt := Qt + 1.
Пункт 3 повторяется до тех пор, пока минором BT может быть покрыта хотя бы одна единица матрицы B.
- Выполняется назначение макроячеек PAL реализуемым функциям. Для каждой функции yj, yj € Yt, среди свободных макроячеек PAL с числом промежуточных шин, удовлетворяющих условию (6), выбирается макроячейка с минимальным значением qs. Функция yj, yj € Yt, назначается для реализации на s-ю макроячейку t-й PAL, полагается
Qjt := Qjt + 1;
Q* := Q*\{qs}.
В матрице В исключаются единицы, покрытые минором Bt. Если в матрице B остались непокрытые единицы, то выполняется переход к пункту 2; иначе выполняется переход к пункту 5.
- Конец.
Пример 2
Работу алгоритма 2 рассмотрим на примере синтеза комбинационной схемы, заданной СБФ из примера 1 на универсальной PAL со следующими параметрами: n = 3, m = 2, mБыгиЮ2 = 1 и Q = = {1,2,2}. Отметим, что реализация СБФ Y* на PAL с заданными параметрами с помощью метода М1 невозможна.
Матрицы A и B реализуемой СБФ Y* приведены в табл. 2. В соответствии с пунктом 2 алгоритма 2 в качестве опорных в минор B1 включаются строка 15 и столбец 8, то есть пара (15,8), так как |X(k15)| = 5 = max и столбец 8 содержит максимальное число единиц. Затем минором B1 покрывается единица, соответствующая паре (16,8). На этом формирование минора B1 заканчивается из-за нарушения условий (5). Аналогичным образом формируются миноры B2,...,B7. Результаты выполнения алгоритма и формируемые при этом значения приведены в табл. 3. Монтажными соединениями выходы PAL объединяются так, как показано на рис. 2.
Таблица 2. Реализуемая СБФ из примера 2
#
|
Троичная матрица А
|
Булева матрица В
|
x1
|
x2
|
x3
|
x4
|
x5
|
x6
|
x7
|
x8
|
x9
|
¯y1
|
¯u2
|
¯y3
|
¯y4
|
¯y5
|
¯y6
|
¯y7
|
¯y8
|
1
|
1
|
-
|
-
|
-
|
0
|
0
|
-
|
0
|
-
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
2
|
1
|
-
|
-
|
-
|
1
|
0
|
-
|
1
|
-
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
3
|
0
|
-
|
-
|
-
|
0
|
1
|
-
|
1
|
-
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
4
|
0
|
-
|
-
|
-
|
1
|
1
|
-
|
0
|
-
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
5
|
-
|
0
|
1
|
-
|
-
|
-
|
0
|
-
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
6
|
-
|
1
|
0
|
-
|
-
|
-
|
1
|
-
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
7
|
-
|
-
|
1
|
-
|
-
|
-
|
0
|
-
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
8
|
-
|
0
|
0
|
-
|
-
|
-
|
1
|
-
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
9
|
-
|
1
|
0
|
-
|
-
|
-
|
1
|
-
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
10
|
-
|
-
|
-
|
1
|
0
|
-
|
0
|
-
|
-
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
11
|
-
|
-
|
-
|
0
|
0
|
-
|
1
|
-
|
-
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
12
|
-
|
-
|
-
|
1
|
1
|
-
|
1
|
-
|
-
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
13
|
-
|
-
|
-
|
0
|
0
|
-
|
0
|
-
|
-
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
14
|
-
|
-
|
-
|
1
|
1
|
-
|
0
|
-
|
-
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
15
|
-
|
-
|
-
|
-
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
16
|
-
|
-
|
-
|
-
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
17
|
-
|
-
|
-
|
-
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
18
|
-
|
-
|
-
|
-
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
Таблица 3. Результаты выполнения алгоритма 2
Номер минора t
|
Выбираемые пары строк и столбцов
|
Xt
|
Yt
|
Kt
|
1
|
(15,8), (16,8)
|
{x5,x6,x7,x8,x9}
|
{y8}
|
{k15,k16}
|
2
|
(17,8), (18,8)
|
{x5,x6,x7,x8,x9}
|
{y8}
|
{k17,k18}
|
3
|
(1,2), (2,2), (3,2), (4,2)
|
{x1,x5,x6,x8}
|
{y2}
|
{k1,k2,k3,k4}
|
4
|
(8,4), (9,4), (5,3), (6,3)
|
{x2,x3,x7,x9}
|
{y4,y3}
|
{k5,k6,k8,k9}
|
5
|
(1,1)
|
{x1,x5,x6,x8}
|
{y1}
|
{k1}
|
6
|
(11,6), (12,6), (11,5), (13,7), (14,7)
|
{x4,x5,x7}
|
{y5,y6,y7}
|
{k11,k12,k13,k14}
|
7
|
(7,4)
|
{x3,x7,x9}
|
{y4}
|
{k7}
|
Рисунок 2. Реализация СБФ из примера 2 одноуровневой схемой на универсальных PAL с использованием монтажного объединения выходов по ИЛИ
Если принять k := m, а также qs := q для всех qs, qs € Q, то метод М2 на универсальных PAL может быть применён для синтеза комбинационных схем на "классических" PAL.
Необходимым и достаточным условием реализации СБФ Y на CPLD с использованием монтажного объединения выходов по ИЛИ является выполнение неравенств:
r(¯yi) n для всех i = ¯1,¯N,
где n - число входов функционального блока CPLD.
Задача синтеза комбинационных схем на CPLD с помощью метода М2 сводится к покрытию матрицы B минимальным числом T миноров B1,...,Bt таким образом, чтобы для каждого минора выполнялись условия:
|Yt| m;
|Xt| n;
Qt qs, t = ¯1,¯T,
а также для каждого столбца j минора Bt выполнялось
Qjt qmax.
При построении очередного минора Bt, t = ¯1,¯T, некоторая единица матрицы B на пересечении строки i и столбца j может быть покрыта минором Bt при выполнении неравенств:
|Yt {yj}| m;
|Xt X(ki)| n; (7)
Qt + 1 q,
а также, если выполняется неравенство:
Qjt + 1 qmax. (8)
Алгоритм синтеза комбинационных схем на CPLD с использованием монтажного соединения выходов по ИЛИ совпадает с алгоритмом 2, за исключением того, что в пункте 3 вместо условий (5) и (6) рассматриваются условия (7) и (8).
Результаты экспериментальных исследований
Методы М1 и М2 реализованы программно в пакете ZUBR. В качестве эталонных примеров для проверки предлагаемых методов синтеза использовались комбинационные схемы, разработанные в центре MCNC [2]. Предложенные методы М1 и М2 синтеза одноуровневых комбинационных схем сравнивались с методами синтеза, реализованными в пакете MAX+PLUSII версии 10.1 фирмы Altera. В качестве ПЛИС рассматривались универсальные PAL семейства CLASSIC, CPLD семейства MAX 7000, а также FPGA семейства FLEX 10K.
Результаты синтеза оценивались по двум параметрам: стоимости и быстродействию. В качестве стоимости было принято число макроячеек ПЛИС, затрачиваемых на реализацию комбинационной схемы, а в качестве быстродействия принята максимальная задержка прохождения сигналов со входа на выход синтезированной схемы.
Параметры логического синтеза пакета MAX+PLUSII были настроены на минимизацию стоимости (Global Project Synthesis Style: NORMAL; Optimize: Area), при этом допускалось использование всех архитектурных особенностей каждого семейства (Automatic Open-Drain Pins: ON; Minimization: Full; XOR Synthesis: ON; Parallel Expanders: ON; Automatic Implement in EAB: ON; Carry Chain: Auto; Cascade Chain: Auto; Advanced Options: все ON). Поскольку синтезировались одноуровневые схемы, параметр Multi-level Synthesis был установлен в OFF.
Проведённые экспериментальные исследования метода М1 показали, что данный метод имеет малую область использования (около 10% для всех эталонных примеров) из-за нарушения необходимых и достаточных условий применения, а для тех примеров, где метод М1 применим, результаты совпадают с результатами, полученными с помощью пакета MAX+PLUSII.
Результаты экспериментальных исследований метода М2, в сравнении с методами синтеза пакета MAX+PLUSII, приведены в табл. 4, 5 и 6 для ПЛИС семейств CLASSIC, MAX 7000 и FLEX 10K, соответственно, где CA - стоимость реализации СБФ с помощью метода пакета MAX+PLUSII; C2 - стоимость реализации СБФ с помощью метода М2; CA/C2 - отношение CA к C2; DA - максимальная задержка, измеряемая в наносекундах, прохождения сигналов со входа на выход комбинационной схемы, синтезированной с помощью метода пакета MAX+PLUSII; D2 - то же, но для комбинационной схемы, синтезированной с помощью метода М2; DA/D2 - отношение DA к D2.
Таблица 4. Результаты сравнения метода М2 с методом пакета MAX+PLUSII для семейства CLASSIC
Name
|
L
|
N
|
P
|
CA
|
C2
|
CA/C2
|
DA
|
D2
|
DA/D2
|
9sym
|
9
|
11
|
87
|
27
|
9
|
3,00
|
44
|
20
|
2,2
|
Alu4
|
14
|
8
|
1028
|
554
|
66
|
8,40
|
270
|
20
|
13,5
|
Apex1
|
45
|
45
|
206
|
(1)
|
196
|
-
|
(1)
|
22
|
-
|
Apex2
|
39
|
3
|
1035
|
(1)
|
57
|
-
|
(1)
|
22
|
-
|
Apex3
|
54
|
50
|
280
|
333
|
113
|
2,95
|
108
|
22
|
4,91
|
Apex4
|
9
|
19
|
438
|
564
|
141
|
4,00
|
106
|
20
|
5,3
|
B12
|
15
|
9
|
431
|
9
|
9
|
1,00
|
20
|
20
|
1,00
|
Cps
|
24
|
109
|
654
|
235
|
161
|
1,46
|
44
|
22
|
2,00
|
Ex1010
|
10
|
10
|
1024
|
770
|
117
|
6,58
|
304
|
20
|
15,2
|
Inc
|
7
|
9
|
34
|
14
|
11
|
1,27
|
32
|
20
|
1,6
|
Pdc
|
16
|
40
|
1280
|
(1)
|
48
|
-
|
(1)
|
20
|
-
|
Seq
|
41
|
35
|
1459
|
407
|
233
|
1,75
|
122
|
22
|
5,55
|
Table3
|
14
|
14
|
175
|
114
|
128
|
0,89
|
54
|
20
|
2,7
|
Table5
|
17
|
15
|
158
|
101
|
140
|
0,72
|
42
|
22
|
1,91
|
Z9sym
|
9
|
1
|
420
|
230
|
9
|
25,56
|
272
|
20
|
13,6
|
|
|
1438
|
57,58
|
|
312
|
69,47
|
mid
|
|
95,87
|
4,80
|
|
20,8
|
5,79
|
(1) - синтез невозможен.
Таблица 5. Результаты сравнения метода М2 с методом пакета MAX+PLUSII для семейства MAX 7000
Name
|
L
|
N
|
P
|
CA
|
C2
|
CA/C2
|
DA
|
D2
|
DA/D2
|
9sym
|
9
|
1
|
87
|
20
|
15
|
1,33
|
15,5
|
6
|
2,58
|
Alu4
|
14
|
8
|
1028
|
143
|
116
|
1,23
|
51,5
|
12,5
|
4,12
|
Apex1
|
45
|
45
|
206
|
228
|
325
|
0,70
|
50,7
|
20
|
2,54
|
Apex2
|
39
|
3
|
1035
|
(1)
|
96
|
-
|
(1)
|
12,5
|
-
|
Apex3
|
54
|
50
|
280
|
316
|
168
|
1,88
|
37,5
|
15
|
2,50
|
Apex4
|
9
|
19
|
438
|
252
|
220
|
1,15
|
79,9
|
12,5
|
6,39
|
B12
|
15
|
9
|
431
|
9
|
11
|
0,82
|
9,5
|
9,5
|
1,00
|
Cps
|
24
|
109
|
654
|
(1)
|
245
|
-
|
(1)
|
20
|
-
|
Ex1010
|
10
|
10
|
1024
|
239
|
182
|
1,31
|
102,3
|
7,5
|
13,64
|
Inc
|
7
|
9
|
34
|
15
|
15
|
1,00
|
9,5
|
9,5
|
1,00
|
Pdc
|
16
|
40
|
1280
|
(1)
|
6
|
-
|
(1)
|
12,5
|
-
|
Seq
|
41
|
35
|
1459
|
246
|
403
|
0,61
|
68,2
|
20
|
3,41
|
Table3
|
14
|
14
|
175
|
125
|
205
|
0,61
|
19,9
|
12,5
|
1,59
|
Table5
|
17
|
15
|
158
|
115
|
274
|
0,42
|
44,9
|
12,5
|
3,59
|
Z9sym
|
9
|
1
|
420
|
22
|
15
|
1,47
|
31,6
|
6
|
5,27
|
|
|
2356
|
12,53
|
|
188,5
|
47,63
|
mid
|
|
157,07
|
1,04
|
|
12,57
|
3,97
|
Таблица 6. Таблица 6. Результаты сравнения метода М2 с методом пакета MAX+PLUSII для семейства FLEX 10K
Name
|
L
|
N
|
P
|
CA
|
C2
|
CA/C2
|
DA
|
D2
|
DA/D2
|
9sym
|
9
|
1
|
87
|
87
|
59
|
1,48
|
33
|
20,2
|
1,63
|
Alu4
|
14
|
8
|
1028
|
535
|
540
|
0,99
|
46,2
|
33,1
|
1,40
|
Apex1
|
45
|
45
|
206
|
947
|
1378
|
0,69
|
49,6
|
76,9
|
0,64
|
Apex2
|
39
|
3
|
1035
|
141
|
335
|
0,42
|
40,6
|
37,1
|
1,09
|
Apex3
|
54
|
50
|
280
|
701
|
738
|
0,95
|
43,8
|
41,6
|
1,05
|
Apex4
|
9
|
19
|
438
|
1002
|
1141
|
0,88
|
52,8
|
42,9
|
1,23
|
B12
|
15
|
9
|
431
|
24
|
20
|
1,20
|
19,9
|
16,5
|
1,21
|
Cps
|
24
|
109
|
654
|
1484
|
751
|
1,98
|
57
|
59,3
|
0,96
|
Ex1010
|
10
|
10
|
1024
|
(1)
|
1126
|
-
|
(1)
|
45,4
|
-
|
Inc
|
7
|
9
|
34
|
40
|
36
|
1,11
|
22,8
|
19
|
1,20
|
Pdc
|
16
|
40
|
1280
|
534
|
164
|
3,26
|
48,4
|
25,5
|
1,90
|
Seq
|
41
|
35
|
1459
|
859
|
1612
|
0,53
|
51,9
|
101
|
0,51
|
Table3
|
14
|
14
|
175
|
744
|
963
|
0,77
|
52,7
|
40,2
|
1,31
|
Table5
|
17
|
15
|
158
|
636
|
1103
|
0,58
|
49,1
|
44,6
|
1,10
|
Z9sym
|
9
|
1
|
420
|
109
|
59
|
1,85
|
38,1
|
20,2
|
1,89
|
|
|
10025
|
16,69
|
|
623,5
|
17,12
|
mid
|
|
668,33
|
1,19
|
|
41,57
|
1,22
|
Анализ полученных результатов показывает, что применение метода М2, по сравнению с методом пакета MAX+PLUSII, при синтезе комбинационных схем на ПЛИС семейства CLASSIC (табл. 4) позволяет значительно снизить стоимость реализации (в среднем, в 4,8 раза, а для отдельных примеров - в 25,5 раза) и значительно повысить быстродействие (в среднем, в 5,79 раза, а для отдельных примеров - в 15,2 раза).
Для семейства MAX 7000 (табл. 5) метод М2, по сравнению с методом пакета MAX+PLUSII, обеспечивает примерно одинаковую стоимость реализации (снижение стоимости, в среднем, составляет 1,04 раза, а для отдельных примеров - в 1,88 раза), однако позволяет значительно повысить быстродействие (в среднем, в 3,97 раза, а для отдельных примеров - в 13,64 раза).
Применение метода М2 при синтезе комбинационных схем на ПЛИС семейства FLEX 10K (табл. 6) позволяет, по сравнению с методом пакета MAX+PLUSII, как снизить стоимость (в среднем, в 1,19 раза, а для отдельных примеров - в 3,26 раза), так и повысить быстродействие (в среднем, в 1,22 раза, а для отдельных примеров - в 1,9 раза).
Выводы
- Методу М1 присущи следующие положительные качества:
- строятся комбинационные схемы максимального быстродействия, ограничиваемого только временем прохождения сигналов со входов на выходы ПЛИС;
- все выходные сигналы имеют одинаковое время формирования;
- метод позволяет применять раздельную минимизацию системы булевых функций, качество которой выше, чем совместная минимизация;
- метод применим в цифровых системах как с прямой, так и с инверсной логикой;
- для реализации СБФ требуется минимальное число макроячеек ПЛИС, равное числу реализуемых функций.
- К недостаткам метода М1 можно отнести:
- метод применим только к достаточно простым СБФ;
- высокая общая стоимость реализации СБФ по числу используемых PAL или функциональных блоков CPLD.
- Метод М1 наиболее эффективен при синтезе относительно простых комбинационных схем для любых классов ПЛИС в цифровых системах как с прямой, так и с инверсной логикой.
- Положительными качествами метода М2 являются следующие:
- строятся комбинационные схемы высокого быстродействия, отличающегося от метода М1 только задержкой на монтажном соединении выходов;
- время формирования различных выходных сигналов отличается незначительно: на время задержки на монтажном соединении выходов;
- метод позволяет применять раздельную минимизацию СБФ;
- значительно более широкая область использования, по сравнению с методом М1.
- К недостаткам метода М2 относятся следующие:
- ПЛИС должны быть изготовлены по технологии с открытым коллектором или поддерживать программируемую опцию "открытый сток";
- метод применим, в основном, в системах с инверсной логикой;
- инверсное представление функций может быть значительно сложнее их прямого представления;
- метод предусматривает последующее монтажное соединение выходов и установку для каждого монтажного соединения "подтягивающего" (pull-up) резистора, что может значительно усложнить этап конструкторского проектирования.
- Метод М2 наиболее эффективен при синтезе достаточно сложных комбинационных схем в цифровых системах с инверсной логикой на ПЛИС, поддерживающих программируемые опции open-drain и pull-up.
- Экспериментальные исследования показали, что применение метода М1 не позволяет улучшать стоимость и быстродействие синтезируемых комбинационных схем, по сравнению с методами, реализованными в пакете MAX+PLUSII.
- Использование метода М2 позволяет значительно, по сравнению с методами, реализованными в пакете MAX+PLUSII, снизить стоимость реализации (до 25,5 раза) и повысить быстродействие (до 15,2 раза) синтезируемых комбинационных схем.
- Метод М2 эффективен не только для ПЛИС со структурой двух программируемых матриц, но и для ПЛИС со структурой FPGA, что доказывается экспериментальными исследованиями для семейства FLEX 10K.
Литература
- Соловьев В.В., Климович А. Введение в проектирование на ПЛИС комбинационных схем // Chip News. 2003. № 5. С. 16–22.
- Yang S. Logic synthesis and optimization benchmarks user guide. Version 3.0. Technical Report, Microelectronics Center of North Carolina, 1991. 43 p.
|