Применение метода укрупнения элементов схемы для сокращения времени функционального моделирования схем с обратной связью
Григорян А. В. (asya1976@mail.ru)
Государственный Инженерный Университет Армении
Введение
Современные интегральные схемы содержат огромное количество элементов. По статистическим данным через каждые 18 месяцев объём (число элементов) больших схем удваивается (закон Мура). В этих условиях факторами первостепенной важности становятся сжатость описания схемы и быстрота её моделирования. В целях улучшения вышеупомянутых факторов нами были предприняты следующие мероприятия:
1) В исследованиях, в качестве языка описания схем использовался язык Alex [1-4]. В настоящее время в качестве языка описания аппаратуры широко распространены Veritog HDL [5] и VHDL [6]. Наряду с неоспоримыми достоинствами, а именно простотой и удобством в применении при проектировании схем, эти языки имеют ряд существенных недостатков, в частности - неэкономно описывают схему (примерно в два раза хуже оптимального). В отличие от вышеуказанных языков Alex является оптимальным: длина (число символов) в записи совпадают с числом рёбер графа схемы (если элементы трактовать как вершины, а связи между ними - как рёбра). Другим преимуществом языка Alex, по сравнению с Veritog HDL и VHDL, является то, что функциональное моделирование для схем на языке Alex, осуществляется одним «просмотром» записи схемы, практически без дополнительных поисковых работ, тем самым обеспечивая большую скорость моделирования.
2) В целях сокращения числа элементов схемы и увеличения скорости функционального моделирования последней был разработан метод укрупнения элементов схемы. Опыт показывает, что современные интегральные схемы содержат многократно встречающиеся подсхемы, отличающиеся друг от друга только входами. Замена таких подсхем одним элементом и является сутью метода укрупнения элементов схемы. Описание вышеуказанного метода и заложено в основу данной статьи.
1. Функциональное моделирование схемы
Пусть схема 8 имеет входы х1,...,хп и выходы у1,...,ут. Под функциональным моделированием понимается процедура нахождения значений на выходах схемы, если известны входные значения схемы а1,.,ап. Моделирование комбинационных схем осуществляется путём применения нижеследующих процедур (в любом порядке) на запись схемы:
1) ^п) а1. ап отрезок заменяется на значение функции Г(а1,. ,ап)
2) М;(1)а и М;(0) заменяются на а.
В результате получаются выходные значения.
Заметим, что вышеописанные процедуры моделирования комбинационных схем после небольшой модернизации применимы и в случае схем с обратной связью.
Последние собственно и являются объектами исследования данной статьи. В [4] изложен алгоритм приведения записи схемы с обратной связью к записи комбинационной схемы. Заметим лишь, что после применения данного алгоритма число входов, как и число выходов увеличивается на к, где к - число запоминающих элементов схемы.
2. Описание метода укрупнения элементов схемы
Опыт показывает, что время функционального моделирования схемы прямо пропорционально количеству символов в записи схемы. Следовательно, для сокращения данного времени целесообразным становится поиск путей уменьшения объёма записи схемы, без изменения её функционального смысла. Во многих случаях, эту проблему можно эффективно решить путём укрупнения элементов схемы. Осуществить это можно, последовательно применив следующие три процедуры:
1) Разложить запись схемы по уровням меток.
2) Найти структурно идентичные подсхемы, отличающиеся друг от друга только входами и заменить их одним новым элементом.
3) Подсчитать и сохранить в таблице выходные значения для всех 2П наборов (а^... ,ап) нового элемента, где п - число входов этого элемента.
Время моделирования схемы после применения метода укрупнения элементов сокращается за счёт следующих факторов. Во-первых, значения часто встречающихся фрагментов каждый раз не вычисляются, а берутся из таблиц, созданных заранее, т. е. сначала создаётся таблица для всех 2п наборов (а1,_,ап) укрупненного элемента, а при дальнейшем моделировании значения этих элементов заново не подсчитываются, а извлекаются из таблицы. Во-вторых, время моделирования сокращается за счёт сокращения объёма записи схемы.
Метод укрупнения элементов схемы был опробован на тестовых эталонных схемах с обратной связью 18СА889. Результаты этих экспериментов приведены в Таблице, где N -число элементов в записи схемы до применения данного метода, N - число элементов после применения метода, ^ - время моделирования схемы до применения метода (100 случайных наборов), 1;2 - время моделирования схемы после применения метода (100 случайных наборов):
Таблица - Анализ данных до и после применения метода укрупнения элементов
Название N1 N2 ti t2 N сокр.% t сокр.%
c349_bench 354 233 0,95 0,55 34,18 42,1
c400 bench 421 331 1,15 0,85 21,38 26,09
c444 bench 465 382 1,25 0,85 17,85 32
c526 bench 547 526 1,35 1,25 3,83 7,41
c641 bench 658 472 1,85 1,25 28,27 27,03
c713 bench 732 528 2,05 1,35 27,87 34,15
c832 bench 820 810 2,1 2,05 1,22 2,38
c1423 bench 1497 1005 4,9 2,5 32,87 48,98
Для большей наглядности работы метода укрупнения элементов приведём записи на языке Alex одной и той же схемы s349_bench до и после применения вышеуказанного метода. До применения метода запись схемы s349_bench имела следующий вид:
# 9 inputs
# 11 outputs
# 15 D-type flipflops
# 57 inverters
# 104 gates (44 ANDs + 19 NANDs + 10 ORs + 31 NORs)
NOR(2)NOT(1)M_CT2(1)Y_CT2(0)M_CNTVCON1(0)NAND(2)M_CT2(0)NOR(2)NOT(1)M_CT1(0)
M_CNTVCON0(0)M_READY(0)M_P0(1)NOT(1)Y_MRVQN0(0)M_P1(0)M_P2(0)M_P3(0)M_P4(0)M
_P5(0)M_P6(0)M_P7(0)Y_CT2(1)NOR(2)NAND(2)OR(2)M_CT2(0)M_CNTVG3VD1(1)NOR(2)M_R
EADY(1)NOT(1)M_READYN(1)NAND(3)M_CT0(1)Y_CT0(0)NOT(1)M_CT1(1)Y_CT1(0)M_CT2(0)
M_CNTVCON1(1)NAND(2)M_CT1(0)NOT(1)NOT(1)M_CT0(0)NAND(2)M_CT2(0)M_CNTVG3VD
1(0)X_START(0)Y_MRVQN0(1)NOR(2)AND(2)M_MRVSHLDN(1)NOT(1)M_ADSH(1)NOR(2)M_R
EADY(0)M_INIT(1)NOR(3)M_CT0(0)M_CT1(0)M_CT2(0)NOT(1)NOR(2)AND(2)NOT(1)M_BMVS0
N(1)NOT(1)M_READYN(0)X_B0(0)AND(2)M_BMVS0N(0)M_P0(0)AND(2)M_ADSH(0)M_P1(1)NO
T(1 )Y_MRVQN1 (0)Y_CT0(1)NOR(2)NAND(2)OR(2)M_CT0(0)M_CNTVG1VD1( 1 )NOT(1)M_READ
Y(0)NAND(2)M_CT0(0)M_CNTVG1VD1(0)X_START(0)Y_CT1(1)NOR(2)NAND(2)OR(2)'M_CT1(0)
M_CNTVG2VD1(1)NOR(2)M_READY(0)M_CNTVCON0(1)NOT(1)M_CT0(0)NAND(2)M_CT1 (0)M
_CNTVG2VD1(0)X_START(0)Y_MRVQN1(1)NOR(2)AND(2)M_MRVSHLDN(0)NOT(1)NOR(2)AN
D(2)NOT(1)M_BMVS0N(0)X_B1(0)AND(2)M_BMVS0N(0)M_P1(0)AND(2)M_ADSH(0)M_P2(1)NO
T(1)Y_MRVQN2(0)Y_MRVQN2(1)NOR(2)AND(2)M_MRVSHLDN(0)NOT(1)NOR(2)AND(2)NOT(1
)M_BMVS0N(0)X_B2(0)AND(2)M_BMVS0N(0)M_P2(0)AND(2)M_ADSH(0)M_P3(1)NOT(1)Y_MR
VQN3(0)Y_MRVQN3(1)NOR(2)AND(2)M_MRVSHLDN(0)NOT(1)NOR(2)AND(2)NOT(1)M_BMVS
0N(0)X_B3(0)AND(2)M_BMVS0N(0)M_P3(0)AND(2)M_ADSH(0)NOT(1)NAND(2)OR(2)M_AD0(1)
NOT(1)NAND(2)M_P0(0)M_AX0(1)Y_AX0(0)M_P4(1)NOT(1)Y_ACVQN0(0)M_ADDVG1VCN(0)Y
_AX0(1)NOT(1)NOR(2)AND(2)NOT(1)M_AMVS0N(1)NOT(1)M_INIT(0)X_A0(0)AND(2)M_AMVS
0N(0)M_AX0(0)Y_ACVQN0(1)NAND(2)M_ACVPCN(1)NOT(1)X_START(0)NOT(1)NOR(2)AND(2)
NOT(1)M_SMVS0N(1)NOT(1)M_ADSH(0)NOT(1)NOR(2)AND(3)M_ADDVC1(1)NOT(1)M_ADDV
G1VCN(1)NAND(2)M_AD0(0)M_P4(0)M_AD1(1)NOT(1)NAND(2)M_P0(0)M_AX1(1)Y_AX1(0)M_
P5(1)NOT(1)Y_ACVQN 1(0)AND(2)OR(3)M_ADDVC 1(0)M_AD 1(0)M_P5(0)M_ADDVG2VCN(0)A
ND(2)M_SMVS0N(0)M_P4(0)Y_AX1(1)NOT(1)NOR(2)AND(2)NOT(1)M_AMVS0N(0)X_A1(0)AND
(2)M_AMVS0N(0)M_AX1(0)Y_ACVQN1(1)NAND(2)M_ACVPCN(0)NOT(1)NOR(2)AND(2)NOT(1)
M_SMVS0N(0)NOT(1)NOR(2)AND(3)M_ADDVC2(1)NOT(1)M_ADDVG2VCN(1)NOR(2)AND(2)M
_ADDVC1(0)OR(2)M_AD1(0)M_P5(0)AND(2)M_AD1(0)M_P5(0)M_AD2(1)NOT(1)NAND(2)M_P0(
0)M_AX2(1)Y_AX2(0)M_P6(1)NOT(1)Y_ACVQN2(0)AND(2)OR(3)M_ADDVC2(0)M_AD2(0)M_P6
(0)M_ADDVG3VCN(0)AND(2)M_SMVS0N(0)M_P5(0)Y_AX2(1)NOT(1)NOR(2)AND(2)NOT(1 )M_ AMVS0N(0)X_A2(0)AND(2)M_AMVS0N(0)M_AX2(0)Y_ACVQN2(1)NAND(2)M_ACVPCN(0)NOT
(1)NOR(2)AND(2)NOT(1)M_SMVS0N(0)NOT(1)NOR(2)AND(3)M_ADDVC3(1)NOT(1)M_ADDVG3 VCN(1)NOR(2)AND(2)M_ADDVC2(0)OR(2)M_AD2(0)M_P6(0)AND(2)M_AD2(0)M_P6(0)M_AD3(
1)NOT(1)NAND(2)M_P0(0)M_AX3(1)Y_AX3(0)M_P7(1)NOT(1)Y_ACVQN3(0)AND(2)OR(3)M_AD DVC3(0)M_AD3(0)M_P7(0)M_ADDVG4VCN(0)AND(2)M_SMVS0N(0)M_P6(0)Y_AX3(1)NOT(1)N OR(2)AND(2)NOT(1)M_AMVS0N(0)X_A3(0)AND(2)M_AMVS0N(0)M_AX3(0)Y_ACVQN3(1)NAN D(2)M_ACVPCN(0)NOT(1)NOR(2)AND(2)NOT(1)M_SMVS0N(0)NOT(1)M_ADDVG4VCN(1)NOR(
2)AND(2)M_ADDVC3(0)OR(2)M_AD3(0)M_P7(0)AND(2)M_AD3(0)M_P7(0)AND(2)M_SMVS0N(0 )M_P7(0).
Далее, разложив схему s349_bench по уровням меток получим:
CNTVCO2=NOR(2)NOT(1)M_CT2(0)M_CNTVCON1(0) CNTVCON2=NAND(2)M_CT2(0)NOR(2)NOT(1)M_CT1(0)M_CNTVCON0(0)
ready=m_ready(0)
Р0=М_Р0(0) Р1=М_Р1(о) Р2=М_Р2(о) рз=м_рз(о) Р4=М_Р4(о) Р5=М_Р5(о) Р6=М_Р6(0) Р7=М_Р7(о)
У_СТ2=КОЯ(2)КЛКВ(2)ОЯ(2)М_СТ2(0)М_СЖУО3УВ1(0)КЛКВ(2)М_СТ2(0)М_СКТУО3УВ1( 0)Х_8ТЛЯТ(0)
У_МЯУ0Ш=КОЯ(2)ЛКВ(2)М_МКУ8НЬВК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_БМУ80К(0)Х_Б 0(0)ЛКВ(2)М_БМУ80К(0)М_Р0(0)ЛКВ(2)М_ЛВ8Н(0)М_Р1(0)
У_СТ0=КОЯ(2)КЛКВ(2)ОЯ(2)М_СТ0(0)М_СЖУ01УВ1(0)КЛКВ(2)М_СТ0(0)М_СЖУ01УВ1( 0)Х_8ТЛЯТ(0)
У_СТ 1=КОЯ(2)КЛКВ(2)ОЯ(2)М_СТ1(0)М_СЖУ02УВ1(0)КЛКВ(2)М_СТ1(0)М_СКТУ02УВ 1( 0)Х_8ТЛЯТ(0)
У_МЯУОК1=КОЯ(2)ЛКВ(2)М_МЯУ8ИЬВК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_БМУ80К(0)Х_Б 1(0)ЛКВ(2)М_БМУ80К(0)М_Р1(0)ЛКВ(2)М_ЛВ8Н(0)М_Р2(0)
У_МЯУОК2=КОЯ(2)ЛКВ(2)М_МЯУ8ИЬВК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_БМУ80К(0)Х_Б 2(0)ЛКВ(2)М_БМУ80К(0)М_Р2(0)ЛКВ(2)М_ЛВ8Н(0)М_Р3(0)
У_МЯУОК3=КОЯ(2)ЛКВ(2)М_МЯУ8ИЬВК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_БМУ80К(0)Х_Б
3(0)ЛКВ(2)М_БМУ80К(0)М_Р3(0)ЛКВ(2)М_ЛВ8Н(0)КОТ(1)КЛКВ(2)ОЯ(2)М_ЛВ0(0)М_Р4(0)М
_ЛВВУв1УСК(0)
У_ЛХ0= КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_ЛМУ80К(0)Х_Л0(0)ЛКВ(2)М_ЛМУ80К(0)М_ЛХ0(0) У_ЛСУОШ=КЛКВ(2)М_ЛСУРСК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_8МУ80К(0)КОТ(1)КОЯ(2) ЛКВ(3)М_ЛВВУС 1(о)М_ЛВ 1(0)М_Р5(0)ЛКВ(2)ОЯ(3)М_ЛВВУС1 (0)М_ЛВ1(0)М_Р5(0)М_ЛВВ У02УСК(0)ЛКВ(2)М_8МУ80К(0)М_Р4(0)
У_ЛХ1= КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_ЛМУ80К(0)Х_Л1(0)ЛКВ(2)М_ЛМУ80К(0)М_ЛХ1(0) У_ЛСУОШ=КЛКВ(2)М_ЛСУРСК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_8МУ80К(0)КОТ(1)КОЯ(2) ЛКВ(3)М_ЛВВУС2(0)М_ЛВ2(0)М_Р6(0)ЛКВ(2)ОЯ(3)М_ЛВВУС2(0)М_ЛВ2(0)М_Р6(0)М_ЛВВ УС3УСК(0)ЛКВ(2)М_8МУ80К(0)М_Р5(0)
У_ЛХ2=КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_ЛМУ80К(0)Х_Л2(0)ЛКВ(2)М_ЛМУ80К(0)М_ЛХ2(0) У_ЛСУ0Ш=КЛКВ(2)М_ЛСУРСК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_8МУ80К(0)КОТ(1)КОЯ(2) ЛКВ(3)М_ЛВВУС3(0)М_ЛВ3(0)М_Р7(0)ЛКВ(2)ОЯ(3)М_ЛВВУС3(0)М_ЛВ3(0)М_Р7(0)М_ЛВВ У04УСК(0)ЛКВ(2)М_8МУ80К(0)М_Р6(0)
У_ЛХ3=КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_ЛМУ80К(0)Х_Л3(0)ЛКВ(2)М_ЛМУ80К(0)М_ЛХ3(0)
У_ЛСУ0Ш=КЛКВ(2)М_ЛСУРСК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_8МУ80К(0)КОТ(1)М_ЛВ
ВУ04УСК(0)ЛКВ(2)М_8МУ80К(0)М_Р7(0)
//******* ЬБУБЬ 1 *********
М_СТ2=У_СТ2(0)
М_Р0=ШТ(1)У_МЯУОШ(0)
М_СЖУО3УВ1=КОЯ(2)М_ЯБЛВУ(0)М_СЖУСОШ(0)
М_МЯУ8НЬВК=КОТ(1)М_ЛВ8Н(0)
М_БМУ80К=КОТ(1)М_ЯБЛВУК(0)
М_Р1 =КОТ(1)У_МЯУ0К 1(0)
М_СЖУС1УВ1=КОТ(1)М_ЯБЛВУ(0)
М_СЖУ02УВ1=КОЯ(2)М_ЯБЛВУ(0)М_СЖУСОШ(0)
М_Р2=КОТ(1)У_МЯУОК2(0)
м_рз =шт(1)у_мяудш(о)
М_ЛВ0=ШТ(1)КЛКВ(2)М_Р0(0)М_ЛХ0(0) М_Р4=ШТ(1)У_ЛСУОШ(0) М_ЛМУ80К=КОТ(1)М_ШТ(0) М_ЛСУРСК=КОТ(1)Х_8ТЛЯТ(0)
M_SMVS0N=NOT(1)M_ADSH(0)
M_ADDVC1=NOT(1)M_ADDVG1VCN(0)
M_AD 1=NOT(1)NAND(2)M_P0(0)M_AX 1 (0)
M_P5=NOT(1)Y_ACVQN1(0)
M_ADDVC2=N0T(1)M_ADDVG2VCN(0)
M_AD2=NOT(1)NAND(2)M_P0(0)M_AX2(0)
M_P6=NOT(1)Y_ACVQN2(0)
M_ADDVC3=NOT(1)M_ADDVG3VCN(0)
M_AD3=NOT(1)NAND(2)M_P0(0)M_AX3(0)
M_P7=NOT(1)Y_ACVQN3(0)
M_ADDVG4VCN=NOR(2)AND(2)M_ADDVC3(0)OR(2)M_AD3(0)M_P7(0)AND(2)M_AD3(0)M_P7( 0)
//******* LEVEL 2 ********* M_READY=NOT(1)M_READYN(0)
M_CNTVCON1=NAND(2)M_CT1(0)NOT(1)NOT(1)M_CT0(0)
M_ADSH=NOR(2)M_READY(0)M_INIT(0)
M_CNTVCON0=NOT(1)M_CT0(0)
M_AX0=Y_AX0(0)
M_ADDVG1VCN=NAND(2)M_AD0(0)M_P4(0) M_AX 1=Y_AX 1(0)
M_ADDVG2VCN=NOR(2)AND(2)M_ADDVC1(0)OR(2)M_AD1(0)M_P5(0)AND(2)M_AD1(0)M_P5( 0)
M_AX2=Y_AX2(0)
M_ADDVG3VCN=NOR(2)AND(2)M_ADDVC2(0)OR(2)M_AD2(0)M_P6(0)AND(2)M_AD2(0)M_P6( 0)
M_AX3=Y_AX3(0) //******* LEVEL 3 *********
M_READYN=NAND(3)M_CT0(0)NOT(1)M_CT 1(0)M_CT2(0) M_INIT=NOR(3)M_CT0(0)M_CT1(0)M_CT2(0)
//******* LEVEL 4 *********
M_CT0=Y_CT0(0)
M_CT1=Y_CT1(0)
И наконец, после применения метода укрупнения элементов запись схемы 8349_ЬепеЬ примет вид:
NOR(2)NOT(1)M_CT2(1)Y_CT2(0)M_CNTVCON1(0)NAND(2)M_CT2(0)NOR(2)NOT(1)M_CT1(0)
M_CNTVCON0(0)M_READY(0)M_P0(1)NOT(1)Y_MRVQN0(0)M_P1(0)M_P2(0)M_P3(0)M_P4(0)M
_P5(0)M_P6(0)M_P7(0)Y_CT2(1)FI 1(3)M_CT2(0)M_CNTVG3VD 1 (1 )NOR(2)M_READY(1 )NOT(1)
M_READYN(1)NAND(3)M_CT0(1)Y_CT0(0)NOT(1)M_CT1(1)Y_CT1(0)M_CT2(0)M_CNTVCON1(
1)NAND(2)M_CT1(0)NOT(1)NOT(1)M_CT0(0)X_START(0)Y_MRVQN0(1)FI2(6)M_MRVSHLDN(1
)NOT(1)M_ADSH(1)NOR(2)M_READY(0)M_INIT(1)NOR(3)M_CT0(0)M_CT1(0)M_CT2(0)M_BMV
S0N(1)NOT(1)M_READYN(0)X_B0(0)M_P0(0)M_ADSH(0)M_P1(1)NOT(1)Y_MRVQN1(0)Y_CT0(1
)FI1(3)M_CT0(0)M_CNTVG1VD1(1)NOT(1)M_READY(0)X_START(0)Y_CT1(1)FI1(3)M_CT1(0)M
_CNTVG2VD1(1)NOR(2)M_READY(0)M_CNTVCON0(1)NOT(1)M_CT0(0)X_START(0)Y_MRVQ
N1(1)FI2(6)M_MRVSHLDN(0)M_BMVS0N(0)X_B1(0)M_P1(0)M_ADSH(0)M_P2(1)NOT(1)Y_MRV
QN2(0)Y_MRVQN2(1)FI2(6)M_MRVSHLDN(0)M_BMVS0N(0)X_B2(0)M_P2(0)M_ADSH(0)M_P3(
1)NOT(1)Y_MRVQN3(0)Y_MRVQN3(1)NOR(2)AND(2)M_MRVSHLDN(0)FI3(3)M_BMVS0N(0)X_
B3(0)M_P3(0)AND(2)M_ADSH(0)NOT(1)NAND(2)OR(2)M_AD0(1)NOT(1)NAND(2)M_P0(0)M_AX
0(1)Y_AXo(o)M_P4(1)NOT(1)Y_ACVQN0(0)M_ADDVG1VCN(0)Y_AX0(1)FI3(3)M_AMVS0N(1)N
ОТ(1)М_1К1Т(0)Х_Л0(0)М_ЛХ0(0)У_ЛСУ0К0(1)Р14(7)М_ЛСУРСК(1)КОТ(1)Х_8ТЛЯТ(0)М_8М
У80^1)ШТ(1)М_ЛВ8Н(0)М_ЛВВУС1(1)ШТ(1)М_ЛВВУ01УС^ЩЛЖ(2)М_ЛВ0(0)М_Р4(0
)М_ЛВ1(ЩОТ(ЩЛЖ(2)М_Р0(0)М_ЛХ1(1)У_ЛХ1(0)М_Р5(1)ШТ(1)У_ЛСУОШ(0)М_ЛВВУ
02УС^0)М_Р4(0)У_ЛХ1(1)Р13(3)М_ЛМУ80^0)Х_Л1(0)М_ЛХ1 (0)У_ЛСУОК 1(1)Р14(7)М_ЛСУ
РС^0)М_8МУ80^0)М_ЛВВУС2(1)ШТ(1)М_ЛВВУ02УС^1)Р15(3)М_ЛВВУС1(0)М_ЛВ1(0)
М_Р5(0)М_ЛВ2(1)ШТ(ЩЛЖ(2)М_Р0(0)М_ЛХ2(1)У_ЛХ2(0)М_Р6(1)ШТ(1)У_ЛСУ0Ш(0)М_
ЛВВУО3УС^0)М_Р5(0)У_ЛХ2(1)Р13(3)М_ЛМУ80^0)Х_Л2(0)М_ЛХ2(0)У_ЛСУОШ(1)Р14(7)М
_ЛСУРС^0)М_8МУ80^0)М_ЛВВУС3(1)ШТ(1)М_ЛВВУ03УС^1)Р15(3)М_ЛВВУС2(0)М_Л
В2(0)М_Р6(0)М_ЛВ3(1)ШТ(ЩЛЖ(2)М_Р0(0)М_ЛХ3(1)У_ЛХ3(0)М_Р7(1)ШТ(1)У_ЛСУ0Ш(
0)М_ЛВВУ04УС^0)М_Р6(0)У_ЛХ3(1)Р13(3)М_ЛМУ80^0)Х_Л3(0)М_ЛХ3(0)У_ЛСУОШ(Щ
ЛКВ(2)М_ЛСУРСК(0)КОТ(1)КОЯ(2)ЛКВ(2)КОТ(1)М_8МУ80К(0)КОТ(1)М_ЛВВУС4УСК(1)Р1
5(3)М_ЛВВУС3(0)М_ЛВ3(0)М_Р7(0)ЛКВ(2)М_8МУ80К(0)М_Р7(0).
В схеме использовались нижеследующие шаблоны, где через 2_ёе8е(0) обозначены входы:
#FI1(3)Z_1(0)Z_2(0)Z_3(0)=NOR(2)NЛND(2)OR(2)Z_2(0)Z_1(0)NЛND(2)Z_2(0)Z_1(0)Z_3(0) #FI2(6)Z_1(0)Z_2(0)Z_3(0)Z_4(0)Z_5(0)Z_6(0)=NOR(2)ЛND(2)Z_4(0)NOT(1)NOR(2)ЛND(2)NOT(1)Z_2(0)Z
_3(0)ЛND(2)Z_2(0)Z_0(0)ЛND(2)Z_5(0)Z_1(0) #FI3(3)Z_1(0)Z_2(0)Z_3(0)=NOT(1)NOR(2)ЛND(2)NOT(1)Z_1(0)Z_2(0)ЛND(2)Z_1(0)Z_3(0) #FI4(7)Z_1(0)Z_2(0)Z_3(0)Z_4(0)Z_5(0)Z_6(0)Z_7(0)=NЛND(2)Z_1(0)NOT(1)NOR(2)ЛND(2)NOT(1)Z_2(0)
NOT(1)NOR(2)ЛND(3)Z_3(0)Z_4(0)Z_5(0)ЛND(2)OR(3)Z_3(0)Z_4(0)Z_5(0)Z_6(0)ЛND(2)Z_2(0)Z_7(0) #FI5(3)Z_1(0)Z_2(0)Z_3(0)=NOR(2)ЛNВ(2)Z_1(0)OR(2)Z_2(0)Z_3(0)ЛND(2)Z_2(0)Z_3(0)
Не трудно заметить, что практически во всех шаблонах число аргументов ощутимо сократилось благодаря совпадению некоторых входов между собой.
В заключении отметим, что число символов в записи схемы 8349_ЬепеЬ сократилось с 354 до 233 .
Выводы
1. Метод укрупнения элементов схемы был опробован на тестовых эталонных схемах с обратной связью 18СЛ889. Результаты этих экспериментов, приведенные в Таблице, показали, что объём тестируемых схем после применения метода сократился в диапазоне 1,22% - 34,18%, а время функционального моделирования сократилось в диапазоне 2,38% - 48,98%.
2. Выявлено, что время, затраченное на исследовательские работы, окупается при моделировании уже «улучшенной» схемы, ведь вышеописанные преобразования производятся один раз, а моделирование - многократно.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Бозоян Ш. Е. Язык описания функциональных схем// Изв. АН СССР, Техническая Кибернетика 4, 1978.
2. Бозоян Ш. Е. Приспособление языка Лукасевича к описанию функциональных схем// ДАН Арм. ССР, т 63, 4, 1979.
3. Бозоян Ш. Е., Егиазарян В. С. Некоторые процедуры над логическими схемами и их реализация на языке А1ех.-Электронный журнал «ИССЛЕДОВАНО В РОССИИ», ЬПрУ^Ьurna1.ape.re1arn.ru/2003/073.pdf , стр.817-824.
4. Бозоян Ш. Е. Егиазарян В. С. Новый подход к модульно-ориентированному проектированию систем на чипах, - Электронный журнал «ИССЛЕДОВАНО В РОССИИ», http://zhurnaLape.relam.rU/2003/115.pdf , стр.1386-1395.
5. S.Palnitkar. Verilog HDL: A Guide to Digital Design and Synthesis. SunSoftPress. Prentice Hall, 1996.
6. Маршнер Ф.Е. VHDL для моделирования, синтеза и формальной верификации аппаратуры. М., 1995, с. 1-13