Научная статья на тему 'Описание способов нахождения структурно идентичных подсхем для укрупнения элементов схемы '

Описание способов нахождения структурно идентичных подсхем для укрупнения элементов схемы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
63
15
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Григорян А. В.

Описывается способ нахождения структурно идентичных подсхем, который применяется в целях укрупнения элементов схемы. Укрупнение элементов схемы, в свою очередь, производится для сокращения времени функционального моделирования схем. Данный метод демонстрируется на примере тестовых эталонных схем ISCAS85.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Applying the method on enlargement of schema elements for reducing the functional simulation time

It is described the method on enlargement of schema elements that is used with a view to reduce the functional simulation time. The enlargement of schemas elements is made for reducing the duration of functional simulation of schemas. This method is performed by pattern of ISCAS85 testing logic schemas.

Текст научной работы на тему «Описание способов нахождения структурно идентичных подсхем для укрупнения элементов схемы »

Описание способов нахождения структурно идентичных подсхем в схемах для укрупнения элементов схемы

Григорян А.В. fasya1976@mail.ru)

Армянский Государственный Инженерный Университет

Введение

Современные интегральные схемы содержат огромное количество элементов, что приводит к затратам больших временных ресурсов при их моделировании. В связи с этим, актуальной становится проблема уменьшения числа элементов схемы, при условии сохранения функционального смысла схемы. Одним из решений этой проблемы является метод укрупнения элементов схемы. Опыт показывает, что современные интегральные схемы содержат многократно встречающиеся подсхемы, отличающиеся друг от друга только входами. Замена таких подсхем одним элементом и является сутью метода укрупнения элементов схемы. Вышеуказанный метод реализован на схемах, описанных на языке построчной записи схем Alex, разработанным Бозояном Ш.Е. [1-2], и получившим дальнейшее развитие в работах [3-5]. Важную роль в методе укрупнения элементов играет проблема поиска структурно идентичных подсхем с целью их дальнейшей замены. Описание некоторых способов решений этой проблемы и заложено в основу данной статьи.

1. Описание метода укрупнения элементов схемы

Время функционального моделирования схемы прямо пропорционально количеству символов в записи схемы. Следовательно, для сокращения данного времени целесообразным становиться поиск путей уменьшения объёма записи схемы, без изменения её функционального смысла. Во многих случаях, эту проблему можно эффективно решить путём укрупнения элементов схемы. Осуществить это можно, последовательно применив следующие три процедуры:

1) Разложить запись схемы по уровням меток.

2) Найти структурно идентичные подсхемы, отличающиеся друг от друга только входами и заменить их одним новым элементом.

3) Подсчитать и сохранить в таблице выходные значения для всех 2n наборов (a^.. ,,an) нового элемента, где n - число входов нового элемента.

В качестве примера, иллюстрирующего вышесказанное, рассмотрим запись схемы (1) с пятью входами x1(0), x2(0), x3(0), x6(0), x7(0) и двумя выходами:

Nand(2)Nand(2)x1(0)M3(1)x3(0)M1(1)Nand(2)x2(0)M2(1)Nand(2)M3(0)x6(0) Nand(2)Nand(2)M2(0)xy(0)M1(0) (1)

Применив процедуру 1), будем иметь:

yi=Nand(2)Nand(2)xi(0)M 3(0)Mi(0)

y2=Nand(2)Nand(2)M2(0)x7(0)Mi(0) (2)

Mi(1)=Nand(2)x2(0)M2(0) M2(l)=Nand(2)M з(0)хб(0) M 3(i)=x3(0),

где yi и y2 - соответствующие входы схемы.

Нетрудно заметить, что yi и y2 имеют одинаковую структуру и отличаются друг от друга лишь входами, а именно, xi(0)M3(0)Mi(0) - в случае yi и M2(0)x7(0)Mi(0) - в случае y2. Заменим в записи (i) все фрагменты Nand(2)Nand(2)zi(0)z2(0)z3(0) на f(3)zi(0)z2(0)z3(0), где zi(0), z2(0) и z3(0) - соответствующие входы, а f - имя нового элемента, получившегося после укрупнения. Так же подсчетам и сохраним в таблице выходные значения для всех 23 наборов (ai,a2,a3) данного фрагмента. После вышеописанных действий (2) примет следующий вид:

yi=f(3) xi(0)M 3(0)Mi(0)

y2= f(3) M2(0)x7(0)Mi(0) (3)

Mi(i)=Nand(2)x2(0)M2(0)

M2(i)= Nand(2)M3(0)x6(0)

M3(i)=x3(0)

Переведя (3) на язык Alex, будем иметь: f(3)xi(0)M3(i)x3(0)Mi(i)Nand(2)x2(0)M2(i)Nand(2)M3(0)x6(0)f(3)Mi(0)x7(0)M2(0).

Время моделирования схемы после применения метода укрупнения элементов сокращается за счёт следующих факторов. Во-первых, значения часто встречающихся фрагментов каждый раз не вычисляются, а берутся из таблиц, созданных заранее. Во-вторых, сокращается объём записи схемы.

2. Описание способов нахождения структурно идентичных подсхем в схемах

Как уже отмечалось выше, проблема нахождения структурно идентичных подсхем играет значимую роль в методе укрупнения элементов. Далее, в данной статье представлено несколько различных способов поиска структурно идентичных подсхем в схемах. Однако, опыт показывает, чтоб зачастую, многократно встречающиеся подсхемы некой схемы, также часто встречаются и в других схемах. Следовательно, целесообразно создание неких библиотек с часто встречающимися «шаблонами» (подсхемами). Заметим лишь, что такой подход допускает большое количество вариаций, в зависимости от типа исследуемых функций и фантазии создателя.

В качестве примера, рассмотрим библиотеку, которая получилась после реализации метода укрупнения элементов на схемах c499_bench, ci355_bench, d90B_bench, c2670_bench, c3540_bench, c53i5_bench и c7552_bench из группы тестовых эталонных схем ISCAS85. В Таблице i приведены результаты исследований, где число на пересечении строки и столбца -это число появлений «шаблона» (строка) в данной схеме (столбец).

Таблица 1 - Библиотека шаблонов для группы тестовых эталонных схем 18СА885

Шаблон c499 c1355 c1908 c2670 c3540 c5315 c7552

F2(4) 2 2 - - - - -

F4(2) - - 107 80 77 148 332

F6(4) - - - 41 - 29 79

F17(8) - - - 18 - 41 -

F19(6) - - - 6 - 6 -

F21(3) - - - - 3 14 2

В Таблице 1 использовались нижеследующие шаблоны (здесь и далее в шаблонах все входы имеют вид Z_desc(0), где desc - это описание (необязательное) входов):

F2(4)Z_1(0)Z_2(0)Z_3(0)Z_4(0)=OR(4)AND(4)NOT(1)Z_1(0)NOT(1)Z_2(0)NOT(1)Z_3(0)Z_4(0)AND(4 )NOT(1)Z_1(0)NOT(1)Z_2(0)Z_3(0)NOT(1)Z_4(0)AND(4)NOT( 1)Z_1(0)Z_2(0)NOT(1)Z_3(0)NOT(1)Z_ 4(0)AND(4)Z_1(0)NOT(1)Z_2(0)NOT(1)Z_3(0)NOT(1)Z_4(0)

F4(2)Z_1(0)Z_2(0)=NAND(2)NAND(2)Z_1(0)NOT(1)Z_2(0)NAND(2)Z_2(0)NOT(1)Z_1(0) F6(4)Z_(0)Z_(0)Z_(0)Z_(0)=OR(2)AND(2)Z_(0)Z_(0)AND(2)Z_(0)Z_(0)

F17(8)Z_1(0)Z_2(0)Z_3(0)Z_4(0)Z_5(0)Z_7(0)Z_8(0)=OR(4)AND(3)Z_1(0)Z_2(0)Z_3(0)AND(3)Z_4(0)

Z_5(0)Z_3(0)AND(3)Z_6(0)Z_2(0)Z_7(0)AND(3)Z_8(0)Z_5(0)Z_7(0)

F19(6)Z_1(0)Z_2(0)Z_3(0)Z_4(0)Z_5(0)Z_6(0)=NAND(2)NOR(2)AND(3)Z_1(0)Z_2(0)NOT(1)Z_3(0)AN

D(3)Z_2(0)Z_4(0)Z_3(0)NOR(2)AND(3)Z_4(0)Z_5(0)NOT(1)Z_690)AND(3)Z_5(0)Z_1(0)Z_6(0)

F21(3)Z_(0)Z_(0)Z_(0)=OR(2)AND(2)Z_(0)Z_(0)Z_(0).

Отметим, что мы разработали три способа поиска шаблонов: простой поиск (F6(4)), поиск шаблонов с фиксированным порядком аргументов (F2(4), F4(2), F17(8) и F19(6)) и поиск подсхем, «коммутативно-идентичных» шаблону (F21(3)). Первый способ используется для нахождения структурно идентичных подсхем, второй используется для поиска по шаблону, у которого некоторые аргументы совпадают между собой, что позволяет иногда довольно существенно сократить список аргументов, а третий способ используется, когда две или более структурно различные подсхемы, благодаря коммутативности своих элементов, реализуют одну и ту же функцию.

Поисковые алгоритмы, используемые в первых двух случаях довольно тривиальны и здесь приводиться не будут, а вот организация поиска «коммутативно-идентичных» подсхем заслуживает более детального рассмотрения. Алгоритм последнего состоит из следующих компонент:

o Схема. Начальная схема, в которой производится поиск. o Шаблон. Подсхема по которой производится поиск в схеме.

o Набор процедур для промежуточных работ по нахождению «коммутативно-идентичных» подсхем.

В данном алгоритме используется следующий набор процедур: Sort - процедура сортировки аргументов функции, subSchema - процедура выделения подсхемы из схемы и isEqual - процедура проверки идентичности шаблона и подсхемы. Рассмотрим каждый из процедур поподробнее:

o Sort - осуществляет сортировку аргументов функции на всех уровнях с учётом введённого приоритета следования аргументов. Приоритет устанавливается следующим образом: «аргументы - функции» приоритетнее «аргументов -входов». Среди «аргументов - функций» приоритет устанавливается в алфавитном порядке. Продемонстрируем работу процедуры Sort на примере некой подсхемы y1:

yi= And(2)Mi(0)Nand(2)Or(2)M3(0)x2(0)And(2)Not(1)M3(0)x2(0) (4)

В (4) у функции And(2) два аргумента M1(0) и Nand(2)Or(2)M3(0)x2(0)And(2)Not(1)M3(0)x2(0). Переставив аргументы по принятым приоритетам получим:

У1= And(2) Nand(2)Or(2)M3(0)x2(0)And(2)Not(1)M3(0)x2(0)M1(0) В свою очередь «аргумент - функция» Nand(2) имеет два аргумента: 0r(2)M3(0)x2(0) и And(2)Not(1)M3(0)x2(0). Их также переставим по принятым приоритетам и для y1 получим следующий конечный вид:

У1= And(2) Nand(2)And(2)Not(1)M3(0)x2(0)0r(2)M3(0)x2(0)M1(0^ Процедура Sort возвращает исходную функцию, отсортированную по аргументам.

o subschema - выделяет в схеме, с заранее заданной позиции, подсхему (отрезок с весом [1-2,5] равным -1). Если удаётся выделить подсхему процедура возвращает последнюю, в противоположном случае возвращается пустая строка.

o isEqual - проверяет на идентичность шаблон и заданную подсхему. Возвращаемое значение будет «истинным» если шаблон и подсхема структурно идентичны и отличаются друг от друга лишь входами. В противном случае, возвращаемое значение будет «ложным». Заметим, что в случае шаблона, как уже отмечалось ранее, входами являются элементы вида Z_desc(0), а в случае подсхем входами являются входы схемы и / или нулевые метки. К примеру, шаблон And(2)Z_(0)Not(1)Z_(0) и подсхема And(2)M2(0)Not(1)x1(0) -идентичны.

Ниже приведён алгоритм подсчёта числа «коммутативно-идентичных» данному шаблону подсхем в схеме:

/*************** поиск «коммутативно-идентичных» подсхем **************/

НАЧАЛО 1

/* проверка является шаблон схемой или нет */ ЕСЛИ вес шаблона != -1 ТО КОНЕЦ 1 Применить Sort к шаблону /* переменной first, по которой будет происходить поиск в дальнейшем, присваивается первый элемент шаблона */ first= первый элемент шаблона

/* присвоить переменной count, где храниться число «коммутативно-идентичных» подсхем, начальное значение 0 */ count = 0

Найти first в схеме ПОКА НЕ конец схемы ВЫПОЛНЯТЬ НАЧАЛО 2

/* сохранить значение найденной позиции в переменной pos */ pos = найденная позиция first Применить subSchema с позиции pos

ЕСЛИ ((результат subSchema = ="") || (конец схемы)) ТО КОНЕЦ 1 /* в переменной newSchema сохранить подсхему, которая в дальнейшем будет проверяться на идентичность с шаблоном */ newSchema = результат subSchema Применить Sort к newSchema

/* проверка на идентичность шаблона и найденной подсхемы */ Применить isEqual к шаблону и newSchema ЕСЛИ результат = = true НАЧАЛО 3 /* увеличить значение count на 1 */ count++

Найти first в схеме с позиции (pos+ длина newSchema + 1) КОНЕЦ 3

ИНАЧЕ Найти вхождение first в схему с позиции (pos + 1) КОНЕЦ 2

КОНЕЦ 1

Заметим, что данный алгоритм без труда можно адаптировать к замене идентичных подсхем одним и тем же элементом.

Для большей наглядности продемонстрируем всё вышесказанное на примере схемы c499_bench. Для этого представим данную схему по уровням меток:

God0=XOR(2)X_Gid0(0)AND(2)M_Gs0(0)M_Gwa(0)

God1=XOR(2)X_Gid1(0)AND(2)M_Gs1(0)M_Gwa(0)

God10=X0R(2)X_Gid10(0)AND(2)M_Gs2(0)M_Gwc(0)

God11=X0R(2)X_Gid11(0)AND(2)M_Gs3(0)M_Gwc(0)

God12=X0R(2)X_Gid12(0)AND(2)M_Gs0(0)M_Gwd(0)

God13=X0R(2)X_Gid13(0)AND(2)M_Gs1(0)M_Gwd(0)

God14=X0R(2)X_Gid14(0)AND(2)M_Gs2(0)M_Gwd(0)

God15=X0R(2)X_Gid15(0)AND(2)M_Gs3(0)M_Gwd(0)

God16=X0R(2)X_Gid16(0)AND(2)M_Gs4(0)M_Gwe(0)

God17=X0R(2)X_Gid17(0)AND(2)M_Gs5(0)M_Gwe(0)

God18=X0R(2)X_Gid18(0)AND(2)M_Gs6(0)M_Gwe(0)

God19=X0R(2)X_Gid19(0)AND(2)M_Gs7(0)M_Gwe(0)

God2=X0R(2)X_Gid2(0)AND(2)M_Gs2(0)M_Gwa(0)

God20=X0R(2)X_Gid20(0)AND(2)M_Gs4(0)M_Gwf(0)

God21=X0R(2)X_Gid21(0)AND(2)M_Gs5(0)M_Gwf(0)

God22=X0R(2)X_Gid22(0)AND(2)M_Gs6(0)M_Gwf(0)

God23=X0R(2)X_Gid23(0)AND(2)M_Gs7(0)M_Gwf(0)

God24=X0R(2)X_Gid24(0)AND(2)M_Gs4(0)M_Gwg(0)

God25=X0R(2)X_Gid25(0)AND(2)M_Gs5(0)M_Gwg(0)

God26=X0R(2)X_Gid26(0)AND(2)M_Gs6(0)M_Gwg(0)

God27=X0R(2)X_Gid27(0)AND(2)M_Gs7(0)M_Gwg(0)

God28=X0R(2)X_Gid28(0)AND(2)M_Gs4(0)M_Gwh(0)

God29=X0R(2)X_Gid29(0)AND(2)M_Gs5(0)M_Gwh(0)

God3=X0R(2)X_Gid3(0)AND(2)M_Gs3(0)M_Gwa(0)

аоаз0=хоя(2)х_а1аз0(0)Акв(2)м_а8б(0)м_а^'Ь(0)

аоаз1=хоя(2)х_а1аз1(0)Акв(2)м_а87(0)м_а^'Ь(0)

God4=XOR(2)X_Gid4(0)AND(2)M_Gs0(0)M_Gwb(0)

God5=XOR(2)X_Gid5(0)AND(2)M_Gs1(0)M_Gwb(0)

God6=XOR(2)X_Gid6(0)AND(2)M_Gs2(0)M_Gwb(0)

God7=XOR(2)X_Gid7(0)AND(2)M_Gs3(0)M_Gwb(0)

God8=XOR(2)X_Gid8(0)AND(2)M_Gs0(0)M_Gwc(0)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

God9=XOR(2)X_Gid9(0)AND(2)M_Gs1(0)M_Gwc(0)

M_Gs0=XOR(2)XOR(2)XOR(2)X_Gid0(0)X_Gid4(0)XOR(2)X_Gid8(0)X_Gid12(0)XOR(2)AND(2)X_Gic

0(0)X_Gr(0)XOR(2)M_Gf4(0)M_Gf5(0) M_Gwa=AND(5)M_Gs4(0)NOT(1)M_Gs5(0)M_Gs6(0)NOT(1)M_Gs7(0)M_Gu0(0) M_Gwc=AND(5)NOT(1)M_Gs4(0)M_Gs5(0)M_Gs6(0)NOT(1)M_Gs7(0)M_Gu0(0) M_Gwd=AND(5)NOT(1)M_Gs4(0)M_Gs5(0)NOT(1)M_Gs6(0)M_Gs7(0)M_Gu0(0) M_Gwe=AND(5)M_Gs0(0)NOT(1)M_Gs1(0)M_Gs2(0)NOT(1)M_Gs3(0)M_Gu1(0) M_Gwf=AND(5)M_Gs0(0)NOT(1)M_Gs1(0)NOT( 1 )M_Gs2(0)M_Gs3(0)M_Gu1(0) M_Gwg=AND(5)NOT(1)M_Gs0(0)M_Gs1(0)M_Gs2(0)NOT(1)M_Gs3(0)M_Gu1(0) M_Gwh=AND(5)NOT(1)M_Gs0(0)M_Gs1(0)NOT(1)M_Gs2(0)M_Gs3(0)M_Gu1(0) M_Gwb=AND(5)M_Gs4(0)NOT(1)M_Gs5(0)NOT(1)M_Gs6(0)M_Gs7(0)M_Gu0(0) M_Gf4=XOR(2)XOR(2)X_Gid16(0)X_Gid17(0)XOR(2)X_Gid18(0)X_Gid 19(0) M_Gf5=XOR(2)XOR(2)X_Gid20(0)X_Gid21(0)XOR(2)X_Gid22(0)X_Gid23(0)

M_Gs4=XOR(2)XOR(2)XOR(2)X_Gid16(0)X_Gid20(0)XOR(2)X_Gid24(0)X_Gid28(0)XOR(2)AND(2)X

_Gic4(0)X_Gr(0)XOR(2)M_Gf0(0)M_Gf1(0) M_Gs5=XOR(2)XOR(2)XOR(2)X_Gid17(0)X_Gid21(0)XOR(2)X_Gid25(0)X_Gid29(0)XOR(2)AND(2)X

_Gic5(0)X_Gr(0)XOR(2)M_Gf2(0)M_Gf3(0) M_Gs6=XOR(2)XOR(2)XOR(2)X_Gid18(0)X_Gid22(0)XOR(2)X_Gid26(0)X_Gid30(0)XOR(2)AND(2)X

_Gic6(0)X_Gr(0)XOR(2)M_Gf0(0)M_Gf2(0) M_Gs7=XOR(2)XOR(2)XOR(2)X_Gid19(0)X_Gid23(0)XOR(2)X_Gid27(0)X_Gid31(0)XOR(2)AND(2)X

_Gic7(0)X_Gr(0)XOR(2)M_Gf1(0)M_Gf3(0) M_Gu0=OR(4)AND(4)NOT(1)M_Gs0(0)NOT(1)M_Gs1(0)NOT(1)M_Gs2(0)M_Gs3(0)AND(4)NOT(1)M_ Gs0(0)NOT(1)M_Gs1(0)M_Gs2(0)NOT(1)M_Gs3(0)AND(4)NOT(1)M_Gs0(0)M_Gs1(0)NOT(1) M_Gs2(0)NOT(1)M_Gs3(0)AND(4)M_Gs0(0)NOT(1)M_Gs1(0)NOT(1)M_Gs2(0)NOT(1)M_Gs 3(0)

M_Gu1=OR(4)AND(4)NOT(1)M_Gs4(0)NOT(1)M_Gs5(0)NOT(1)M_Gs6(0)M_Gs7(0)AND(4)NOT(1)M_ Gs4(0)NOT(1)M_Gs5(0)M_Gs6(0)NOT(1)M_Gs7(0)AND(4)NOT(1)M_Gs4(0)M_Gs5(0)NOT(1) M_Gs6(0)NOT(1)M_Gs7(0)AND(4)M_Gs4(0)NOT(1)M_Gs5(0)NOT(1)M_Gs6(0)NOT(1)M_Gs 7(0)

M_Gf0=XOR(2)XOR(2)X_Gid0(0)X_Gid1(0)XOR(2)X_Gid2(0)X_Gid3(0) M_Gf1=XOR(2)XOR(2)X_Gid4(0)X_Gid5(0)XOR(2)X_Gid6(0)X_Gid7(0) M_Gf2=XOR(2)XOR(2)X_Gid8(0)X_Gid9(0)XOR(2)X_Gid10(0)X_Gid11(0) M_Gf3=XOR(2)XOR(2)X_Gid12(0)X_Gid13(0)XOR(2)X_Gid14(0)X_Gid 15(0)

M_Gs1=XOR(2)XOR(2)XOR(2)X_Gid1(0)X_Gid5(0)XOR(2)X_Gid9(0)X_Gid13(0)XOR(2)AND(2)X_Gic

1(0)X_Gr(0)XOR(2)M_Gf6(0)M_Gf7(0) M_Gs2=XOR(2)XOR(2)XOR(2)X_Gid2(0)X_Gid6(0)XOR(2)X_Gid10(0)X_Gid14(0)XOR(2)AND(2)X_G

ic2(0)X_Gr(0)XOR(2)M_Gf4(0)M_Gf6(0) M_Gs3=XOR(2)XOR(2)XOR(2)X_Gid3(0)X_Gid7(0)XOR(2)X_Gid11(0)X_Gid15(0)XOR(2)AND(2)X_G

ic3(0)X_Gr(0)XOR(2)M_Gf5(0)M_Gf7(0) M_Gf6=XOR(2)XOR(2)X_Gid24(0)X_Gid25(0)XOR(2)X_Gid26(0)X_Gid27(0) M_Gf7=XOR(2)XOR(2)X_Gid28(0)X_Gid29(0)XOR(2)X_Gid30(0)X_Gid31(0)

После поисковых работ, описанных выше, разложение по уровням меток схемы c499_bench примет вид:

аоа0=Р1(з)х_а1а0(0)м_а80(0)м_а^'а(0)

аоа1=Р1(з)х_а1а1(0)м_а81(0)м_а^'а(0)

аоаю=Р1(3)х_а1а10(0)м_а82(0)м_а^'с(0)

аоШ=Р1(3)х_а1Ш(0)м_а83(0)м_а^'с(0)

God12=F1(3)X_Gid12(0)M_Gs0(0)M_Gwd(0)

God13=F1(3)X_Gid13(0)M_Gs1(0)M_Gwd(0)

God14=F1(3)X_Gid14(0)M_Gs2(0)M_Gwd(0)

God15=F1(3)X_Gid15(0)M_Gs3(0)M_Gwd(0)

God16=F1(3)X_Gid16(0)M_Gs4(0)M_Gwe(0)

God17=F1(3)X_Gid17(0)M_Gs5(0)M_Gwe(0)

God18=F1(3)X_Gid18(0)M_Gs6(0)M_Gwe(0)

God19=F1(3)X_Gid19(0)M_Gs7(0)M_Gwe(0)

God2=F1(3)X_Gid2(0)M_Gs2(0)M_Gwa(0)

God20=F1(3)X_Gid20(0)M_Gs4(0)M_Gwf(0)

God21=F1(3)X_Gid21(0)M_Gs5(0)M_Gwf(0)

God22=F1(3)X_Gid22(0)M_Gs6(0)M_Gwf(0)

God23=F1(3)X_Gid23(0)M_Gs7(0)M_Gwf(0)

God24=F1(3)X_Gid24(0)M_Gs4(0)M_Gwg(0)

God25=F1(3)X_Gid25(0)M_Gs5(0)M_Gwg(0)

God26=F1(3)X_Gid26(0)M_Gs6(0)M_Gwg(0)

God27=F1(3)X_Gid27(0)M_Gs7(0)M_Gwg(0)

God28=F1(3)X_Gid28(0)M_Gs4(0)M_Gwh(0)

God29=F1(3)X_Gid29(0)M_Gs5(0)M_Gwh(0)

God3=F1(3)X_Gid3(0)M_Gs3(0)M_Gwa(0)

God30=F1(3)X_Gid30(0)M_Gs6(0)M_Gwh(0)

God31=F1(3)X_Gid31(0)M_Gs7(0)M_Gwh(0)

God4=F1(3)X_Gid4(0)M_Gs0(0)M_Gwb(0)

God5=F1(3)X_Gid5(0)M_Gs1(0)M_Gwb(0)

God6=F1(3)X_Gid6(0)M_Gs2(0)M_Gwb(0)

God7=F1(3)X_Gid7(0)M_Gs3(0)M_Gwb(0)

God8=F1(3)X_Gid8(0)M_Gs0(0)M_Gwc(0)

God9=F1(3)X_Gid9(0)M_Gs1(0)M_Gwc(0)

M_Gs0=F4(8)X_Gid0(0)X_Gid4(0)X_Gid8(0)X_Gid12(0)X_Gic0(0)X_Gr(0)M_Gf4(0)M_Gf5(0)

M_Gwa=F5(5)M_Gs5(0)M_Gs7(0)M_Gs4(0)M_Gs6(0)M_Gu0(0)

M_Gwc=F5(5)M_Gs4(0)M_Gs7(0)M_Gs5(0)M_Gs6(0)M_Gu0(0)

M_Gwd=F5(5)M_Gs4(0)M_Gs6(0)M_Gs5(0)M_Gs7(0)M_Gu0(0)

M_Gwe=F5(5)M_Gs1(0)M_Gs3(0)M_Gs0(0)M_Gs2(0)M_Gu1(0)

M_Gwf=F5(5)M_Gs1(0)M_Gs2(0)M_Gs0(0)M_Gs3(0)M_Gu1(0)

M_Gwg=F5(5)M_Gs0(0)M_Gs3(0)M_Gs1(0)M_Gs2(0)M_Gu1(0)

M_Gwh=F5(5)M_Gs0(0)M_Gs2(0)M_Gs1(0)M_Gs3(0)M_Gu1(0)

M_Gwb=F5(5)M_Gs5(0)M_Gs6(0)M_Gs4(0)M_Gs7(0)M_Gu0(0)

M_Gf4=F3(4)X_Gid16(0)X_Gid17(0)X_Gid18(0)X_Gid19(0)

M_Gf5=F3(4)X_Gid20(0)X_Gid21(0)X_Gid22(0)X_Gid23(0)

M_Gs4=F4(8)X_Gid16(0)X_Gid20(0)X_Gid24(0)X_Gid28(0)X_Gic4(0)X_Gr(0)M_Gf0(0)M_Gf1(0)

M_Gs5=F4(8)X_Gid17(0)X_Gid21(0)X_Gid25(0)X_Gid29(0)X_Gic5(0)X_Gr(0)M_Gf2(0)M_Gf3(0)

M_Gs6=F4(8)X_Gid18(0)X_Gid22(0)X_Gid26(0)X_Gid30(0)X_Gic6(0)X_Gr(0)M_Gf0(0)M_Gf2(0)

M_Gs7=F4(8)X_Gid19(0)X_Gid23(0)X_Gid27(0)X_Gid31(0)X_Gic7(0)X_Gr(0)M_Gf1(0)M_Gf3(0)

M_Gu0=F2(4)M_Gs0(0)M_Gs1(0)M_Gs2(0)M_Gs3(0)

M_Gu1=F2(4)M_Gs4(0)M_Gs5(0)M_Gs6(0)M_Gs7(0)

M_Gf0=F3(4)X_Gid0(0)X_Gid1(0)X_Gid2(0)X_Gid3(0)

M_Gf1=F3(4)X_Gid4(0)X_Gid5(0)X_Gid6(0)X_Gid7(0)

M_Gf2=F3(4)X_Gid8(0)X_Gid9(0)X_Gid10(0)X_Gid11(0)

M_Gf3=F3(4)X_Gid12(0)X_Gid13(0)X_Gid14(0)X_Gid15(0)

M_Gs1=F4(8)X_Gid1(0)X_Gid5(0)X_Gid9(0)X_Gid13(0)X_Gic1(0)X_Gr(0)M_Gf6(0)M_Gf7(0)

M_Gs2=F4(8)X_Gid2(0)X_Gid6(0)X_Gid10(0)X_Gid14(0)X_Gic2(0)X_Gr(0)M_Gf4(0)M_Gf6(0)

M_Gs3=F4(8)X_Gid3(0)X_Gid7(0)X_Gid11(0)X_Gid15(0)X_Gic3(0)X_Gr(0)M_Gf5(0)M_Gf7(0)

M_Gf6=F3(4)X_Gid24(0)X_Gid25(0)X_Gid26(0)X_Gid27(0)

M_Gf7=F3(4)X_Gid28(0)X_Gid29(0)X_Gid30(0)X_Gid31(0)

В поисковых работах использовались нижеследующие шаблоны:

#F1(3)Z_(0)Z_(0)Z_(0)=XOR(2)Z_(0)AND(2)Z_(0)Z_(0)

#F2(4)Z_1(0)Z_2(0)Z_3(0)Z_4(0)=OR(4)AND(4)NOT(1)Z_1(0)NOT(1)Z_2(0)NOT(1)Z_3(0)Z_4(0)AND( 4)NOT(1)Z_1(0)NOT(1)Z_2(0)Z_3(0)NOT(1)Z_4(0)AND(4)NOT(1)Z_1(0)Z_2(0)NOT(1)Z_3(0)NO T(1)Z_4(0)AND(4)Z_1(0)NOT(1)Z_2(0)NOT(1)Z_3(0)NOT(1)Z_4(0) #F3(4)Z_(0)Z_(0)Z_(0)Z_(0)=XOR(2)XOR(2)Z_(0)Z_(0)XOR(2)Z_(0)Z_(0)

#F4(8)Z_(0)Z_(0)Z_(0)Z_(0)Z_(0)Z_(0)Z_(0)Z_(0)=XOR(2)F3(4)Z_(0)Z_(0)Z_(0)Z_(0)XOR(2)AND(2)Z

_(0)Z_(0)XOR(2)Z_(0)Z_(0) #F5(5)Z_(0)Z_(0)Z_(0)Z_(0)Z_(0)=AND(5)NOT(1)Z_(0)NOT(1)Z_(0)Z_(0)Z_(0)Z_(0)

Отметим, что в поисках по шаблонам F1(3), F3(4) и F4(8) использовался первый (простой) способ, в поиске по шаблону F2(4) - второй способ (с фиксированным порядком аргументов), а по шаблону F5(5) - третий (для поиска «коммутативно-идентичных» подсхем). Заметим также, что в случае шаблона F2(4), благодаря совпадению некоторых аргументов между собой, число аргументов сократилось с 16 до 4.

Выводы

1. Метод укрупнения элементов схемы был опробован на тестовых эталонных схемах ISCAS85. Результаты этих экспериментов приведены в Таблице 2, где NN1 - начальное число элементов в записи схем, N2 - число элементов после применения метода, ^ - время моделирования схемы до преобразования (100 случайных наборов), 12 - время моделирования схемы после преобразования (100 случайных наборов).

Таблица 2 - Анализ данных до и после применения метода укрупнения элементов

Название N1 N2 ti t2 N сокращ % t сокращ. %

c432 bench 396 327 0,85 0,75 17 12

c499 bench 466 298 1,00 0,65 36 35

c1355 bench 1322 938 4,06 2,00 29 51

c1908 bench 1875 1221 6,15 2,66 35 57

C2670 bench 2615 1765 10,46 4,80 33 54

c3540 bench 3494 2563 22,38 9,65 27 56

C5315 bench 5192 3236 113,31 13,42 38 88

C6288 bench 6256 4816 224,18 71,45 23 68

C7552 bench 7475 4604 284,46 47,02 38 83

2. Выявлено, что время, затраченное на исследовательские работы, окупается при

моделировании уже «улучшенной» схемы, ведь вышеописанные преобразования

производятся один раз, а моделирование - многократно.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Бозоян Ш. Е. Язык описания функциональных схем// Изв. АН ССР, Техническая Кибернетика 4, 1978.

2. Бозоян Ш. Е. Приспособление языка Лукасевича к описанию функциональных схем// ДАН Арм. ССР, т 63, 4, 1979.

3. Бозоян А. Ш., Бозоян Ш. Е. О приближении логических схем минимальными ее подсхемами//ГИУА, Моделирование, оптимизация, управление (сборник научных трудов) вып. 2,1999, стр. 25-30.

4. Бозоян Ш. Е., Егиазарян В. С. Некоторые процедуры над логическими схемами и их реализация на языке Акх.-Электронный журнал «ИССЛЕДОВАНО В РОССИИ», http://zhurnal.ape.relarn.ru/2003/073.pdf , стр.817-824.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5. Бозоян Ш. Е. Егиазарян В. С. Новый подход к модульно-ориентированному проектированию систем на чипах, - Электронный журнал «ИССЛЕДОВАНО В РОССИИ», http://zhurnal.ape.relarn.ru/2003/115.pdf , стр.1386-1395.

i Надоели баннеры? Вы всегда можете отключить рекламу.