Популярное

Мифы о звукоизоляции



Как построить дом из пеноблоков



Как построить лестницы на садовом участке



Подбираем краску для ремонта



Каркасные дома из дерева


Главная » Некоторые процедуры

Некоторые процедуры над логическими схемами и их реализация на языке ALEX.

Бозоян Ш.Е., Егиазарян В.С. (vladimir@ysu.am) Российско-Армянский (Славянский) Государственный Университет

Введение

При проектировании больших интегральных схем (БИС) используются разные элементарные процедуры (соединение (в определенном смысле) двух схем, выделение некоторой части схемы или её удаление, замена некоторой подсхемы на другую, ей эквивалентной, схемой и т.п.), для осуществления которых создаются специальные программные инструменты. Эффективность проектирования главным образом зависит от качества комплекса этих инструментов. Созданием таких инструментов, в частности, занимаются такие крупные фирмы, как Cadens, Filips, Tetra Max и др.

В настоящее время в качестве языка описания аппаратур широко распространены Verilog HDL [1] и VHDL [2]. Главным достоинством этих языков является их простота и удобность для применения в автоматизации проектирования БИС. Однако они построены не дедуктивным принципом, поэтому практически не допускают создание алгебры преобразований схем, к тому же схему описывают неэкономно (примерно в два раза хуже оптимального). По статистическим данным через каждые 18 месяцев объем (число элементов) больших схем удваивается (закон Мура). В этих условиях сжатость описания схем и быстрота её моделирования становятся факторами первостепенной важности. Поэтому эти языки уже начинают не удовлетворять современным требованиям. В наших исследованиях в качестве языка описания схем используется другой, вполне удовлетворяющий современным требованиям язык - язык Alex [3,4,5].

1. Краткое неформальное описание языка Alex.

Идейным предшественником языка Alex является язык бесскобочной записи формул ( польская запись ), обобщением которого является он сам. В отличие от польской записи , которая описывает только формулы (на языке графов - входящее (направленное) дерево), Alex позволяет описать любую схему (начиная с вентильного уровня и выше), или на языке графов -любой направленный псевдограф. Описание ( в дальнейшем - запись) схемы на этом языке



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

где символ f (n) соответствует функциональному (логическому) элементу с n входами,

x0)- входу схемы, Mk(1) и Mk (0) - точкам ветвления в схеме, тt (1)- запоминающему

элементу, задерживающего сигнал на один такт времени. Каждому символу s из A приписывается некоторое целое число co(s), называемое весом этого символа. Для приведенного конкретного случая принимается

Определяется также понятие веса последовательности символов из A следующим образом:

Приведем наглядный пример схемы (рис.1) и её записи на языке Alex. Запись осуществляется по маршруту , указанному тонкой линией со стрелками. Проходя по этому маршруту записываются все попутные элементы, если обход элемента выполняется по направлению выход-вход , а при направлении вход-выход ничего не записывается. При первой встрече с точкой ветвления записывается символ типа M(), а при не первой

A = f (n),xj(0),Mk(1),Mk(0), тt(1)} , i,j,k,t =1,2,...,m,...,

(fi (n)) = n -1, ro(xj(0)) = ro(Mk (0)) = -1, c(Mk (1)) = ш(тt (1)) = 0


встрече - символ типа M(0). Входы схемы записываются символами типа xl






Рис. 1

Записью приведенной схемы является

M1 (1)V(2)& (2)x1 (0)x2 (0)& (2)x3 (0) (0)M2 (1)v(2)M1 (0)11 (1)& (2)ц (0)M2 (0). Символы типа M(1) и M(0) называются метками. Очевидно, они введены с целью избежания от повторной записи той части схемы, выход которой разветвляется.

Вводится понятие описания метки Mk(1) в данной последовательности s1s2...sN (оно

обозначается через Оп Mk (1)). Это минимальный отрезок в s1s2...sN, с весом -1, непосредственно следующий за Mk (1). Определяется также понятие области действия символа т(1) в s1s2...sN как минимальный отрезок с весом -1, непосредственно следующий за тt (1). Через эти два понятия определяется также понятие зависимости метки Mi (1) от Mj (1) в s1s2...sN, содержательный смысл которого является функциональная зависимость точки ветвления Mi от Mj в схеме в данный момент времени. Доказывается следующая основная: Теорема (о записи). Последовательность символов

является записью некоторой схемы с m (m = 1,2,...) выходами вентильного уровня тогда и только тогда, когда выполняются следующие условия: а) ©(s.n ) = -m;



2. Основные процедуры и их осуществление на языке Alex.

Рассмотрим схемы S1 и S2 с соответсвующими записями h(S1) и h(S 2) на языке Alex. Пусть каждая из этих схем имеет несколько входов и несколько выходов. Пусть элементы этих схем пронумерованы натуральными числами таким образом, что для каждой схемы разным элементам приписаны разные номера. Точки ветвления выходов элементов также пронумерованы, но таким образом, что номер точки ветвления выхода данного элемента совпадает с номером этого элемента. Будем говорить, что схемы S1 и S2 не пересекаются или являются независимыми, если номер любого элемента из S1 не совпадает с номером любого элемента из S2 . Например, если элементы S1 пронумерованы числами 1,2,...,n1 , а элементы S2 - числами n1 +1, n1 + 2,..., n1 + n 2, то S1 и S 2 не пересекаются.

б) ro(s1s2...sk )> 1 - m для любого k < N;

в) из того, что Mi (0) содержится в (1), следует, что Mi (1) также содержится в (1) (причем точно один раз);

г) для любого i Mi (1) не зависит от Mi (1).

Укажем некоторые особенности языка Alex.

Alex построен дедуктивным принципом, что позволяет создать алгебру эквивалентных и иных преобразований схем с помощью их записей. Он является оптимальным: длина (число символов) записи совпадает с числом рёбер графа схемы (если элементы трактовать как вершины, а связи между ними - рёбра). Далее, любая подсхема с одним выходом в общей записи схемы изображается как некоторый сплошной отрезок символов с весом -1 ( подзапись записи схемы). Это, в частности, позволяет любую подсхему легко заменить на ей эквивалентной (в определенном смысле) подсхемой, тем самым осуществить любые эквивалентные преобразования схем на языке Alex. Далее, функциональное моделирование осуществляется одним просмотром записи схемы, что исключает затрату времени на поисках, тем самым обеспечивается большая скорость моделирования. А это автоматически означает и увеличение скорости верификации, и тестирования и т.п. Наконец, теорема о записи позволяет проверкой условий теоремы (причем одним просмотром) осуществить эффективный синтаксический контроль правильности построения записи.

Настоящая работа претендует на создание начальных предпосылок для построения алгебры преобразования записей схем на языке Alex.



xm xm+1

xm+1 xn

T * - * , lU) I I

а

Рис. 2

2.2. Частичное последовательное соединение двух схем. Пусть схемы S1 и S2 имеют соответственно m выходов и n входов (рис.3.а). Пусть выходы с номерами 1,2,...,k (k < m, k < n) схемы S1 соединяются соответственно со входами x1,...,xk (рис.3.б). Здесь также сдедует заметить, что фиксация номеров выходов и входов схем на конкретные значения не нарушает общность постановки задачи, она сделана с целью упрощения обозначений. Очевидно, полученная конструкция S также является схемой, записью которой является

h(S) = [h(S2)]xx(0)1) .;;;xsk1(,<k)) hfo,k +1)h(S1,k + 2)...h(S1,m)

X1 Xk Xk +1 Xr

б

Ниже рассматриваются процедуры над схемами на языке Alex. Рассмотренные в этих процедурах схемы S1 и S 2 всюду считаются независимыми.

2.1. Последовательное соединение двух схем. Рассмотрим схемы S1 и S2, где S1 имеет m выходов, а S2 - n входов x1,...,xn (n > m) (рис.2.а). Пусть все выходы S1 требуется соединить с определенными m входами схемы S 2. С целью не усложнения обозначений допустим, что эти m выходы соединяются с первыми x1,...,xm входами схемы S2 (рис.2.б). Разумеется, такое допущение не снижает общность постановки задачи. Очевидно, полученная конструкция S является схемой с записью

h(S )=[h(S 2)] x((0to(S),m), где h(S1,i) (i = 1,2,...m) является записью схемы S1 относительно её i-ого выхода (т.е. слева i-ый минимальный отрезок записи h(S1) с весом -1), а обозначение [в]у означает результат подстановки y вместо x в B , а если B не содержит x , то этим результатом считается B



(1) (k) k +1 ... m

k +1

(X1) (Xk)

а б

Рис. 3

2.3. Параллельное соединение двух схем. Пусть S1 и S 2 являются схемами (рис.4.а). Тогда объединение этих схем в определенном порядке назовем параллельным соединением этих схем (рис.4.б).

1

а

б

Рис. 4

Очевидно, h(S ) = h (S1 )h (S 2).

2.4. Выделение максимальной подсхемы. Подсхема схемы S называется максимальной,

если её входы являются входами S. На рис.5.а показана максимальная подсхема S{e1 ek} схемы

S , выходами которой являются выходы элементов e1,... , ek .


а

h (S)

h ( S {e1,...,ek }}

Рис. 5

В записи h(S) выделим минимальные отрезки с весом -1, началами которых являются символы, соответствующие элементам e1,...,ek (рис.5.б). Состыкуем эти отрезки в том порядке, в каком они расподожены в h(S). Полученный отрезок будет записью подсхемы S {e1 ek} в так

б

в




г

а


б

Рис. 6

z1 А 2

Обратная процедура - вставка AS в своё предыдущее место , осуществляется применением процедуры 2.1. последовательным соединением S{g1 gm} и AS, а затем

последовательным соединением S < e 1 и S \ S < e 1.

в

называемом, неактивизированном виде. Дело в том, что этот отрезок может содержать метку Mi (0) и не содержать Mi (1). В таком случае заменив одно из вхождений Mi (0) на Mi (1)Оп Mi (1), и эту процедуру производя относительно всех таких меток, очевидно, получим обычную запись подсхемы S {e1 ek}. Эту запись будем называть записью в активизированном виде.

2.5. Удаление максимальной подсхемы. Эта процедура тесно связана с процедурой выделения максимальной подсхемы (п. 2.4). При этом в записи h(S) отрезки с весом -1, началами которых являются символы, соответствующие элементам e1 ,...,ek, соответственно заменяются на z1 (0),...,zk(0) (zi(0) (i = 1,2,...,k) не входят в h(S)), а те отрезки Mi ()Оп Mi (1), которыми были заменены символы Mi (0) при осуществлении процедуры выделении максимальной подсхемы , заменяются на Mi (0).

2.6. Выделение подсхемы. Эта процедура предполагает выделение из схемы S подсхему AS (не объязательно максимальную), если указаны элементы e1,...,ek, выходы которых являются выходами подсхемы, и элементы g ...,gm, выходы которых являются входами подсхемы

(рис.6). Эта процедура осуществляется двумя этапами. На первом этапе из S выделяется максимальная подсхема S {e1 ek} (рис.6.б), а затем из S { ek} удаляется максимальная

подсхема S < 1, в результате чего получится искомая подсхема AS (рис.6. в).



Литература

1. S.Palnitkar. Verilog HDL: A Guide to Digital Design and Synthesis. SunSoftPress. Prentice Hall, 1996.

2. Маршнер Ф.Е. VHDL для моделирования, синтеза и формальной верификации аппаратуры. М., 1995, с. 1-13.

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

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

5. Бозоян Ш.Е. Алгебраическое описание направленных графов. ДАН Арм. ССР, т.76, 1, 1983.



© 2017 РубинГудс.
Копирование запрещено.