Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Ландау И.Я. Применение ЦВМ для проектирования ЦВМ

.pdf
Скачиваний:
7
Добавлен:
23.10.2023
Размер:
7.98 Mб
Скачать

Г л а в а т р е т ь я

КОНСТРУКТОРСКОЕ ПРОЕКТИРОВАНИЕ

3-1. ВХОДНОЙ ЯЗЫК ПРОГРАММ КОНСТРУКТОРСКОГО ПРОЕКТИРОВАНИЯ

Исходной информацией для программ конструктор­ ского проектирования служит детальная логическая схе­ ма устройства. В сложившейся практике проектирования , логическая схема представляется в виде чертежа, на ко­ тором указаны условные обозначения элементов и связи между их входными и выходными контактами. В таком виде логическая схема не может быть введена в машину, поэтому она должна быть предварительно описана на каком-то языке, пригодном для этой цели. В предыду­ щей главе для этого использовались язык булевых урав­ нений п язык ФОРОС, однако для решения задач кон­ структорского проектирования удобнее представлять ло­ гическую схему в виде списка соединений между ее эле­ ментами1. Поэтому в дальнейшем будем считать, что ре­ зультатом логического проектирования является список связей между базовыми элементами.

Форма представления этого списка (т. е. язык, кото­ рый применяется для описания соединений) может ока­ заться существенной как для удобства использования, так и для возможности машинной проверки исходных данных. Поскольку список связей между элементами имеет большой объем п составление его является наи­ более трудоемкой ручной работой в автоматизированной системе проектирования, язык описания связей должен иметь минимальное количество вспомогательных симво­ лов (служебных слов и знаков, разделителей и т. д.). Наличие таких символов приводит к увеличению трудо­ емкости работы, а также к дополнительным ошибкам при составлении и перфорации списка. Язык должен быть очень простым, так как составление списка выпол­ няется неквалифицированными работниками; желатель­ но, чтобы в описании была лишь та информация, которая уже есть на логической схеме.*

* Если разработка логической схемы выполняется машиной (на­ пример, используется система ALERT), то описание ее получается на языке булевых уравнений. Поскольку при этом каждое уравнение описывает один базовый элемент, то перевод такого описания на язык связей между элементами может быть произведен сравнительно простой программой.

70

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

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

ние подключенной к нему цепи (табл.

3-1

и 3-2).

 

Т а б л и ц а

3-1

 

 

 

 

 

 

Тип

р

Номер

р

Номер

р

Название

р

элемента

элемента

контакта

цепи

Т а б л и ц а

3-2

 

 

 

 

 

 

Тип элемента

 

 

 

 

 

Р

Номер элемента

 

 

 

 

'

Р

Номер контакта

 

Р

Название цепи

 

Р

В столбце «р» стоит разделитель (например, точка, точка с запятой). Наличие разделителя позволяет запол­ нять таблицу в свободном формате.

Использование формата табл. 3-1 имеет смысл в том случае, если описание делается на уровне базовых эле­ ментов, имеющих 3—4 вывода. При этом можно пере­ числять контакты в произвольном порядке, что иногда бывает удобно. Если же используются более сложные

71

базовые элементы или описание делается на более высо­ ком уровне (модули, ячейки), лучше использовать фор­ мат табл. 3-2, так как в этом случае элемент имеет мно-

6)

Рис. 3-1. Схемы элементов и реализуемые ими Булевы уравне­ ния (названия переменных заменены номерами контактов):

а —Триггер Т: 4=3, 3=1 V (2 ЛЗ); схема И: 3=1 Д 2; схема ИЛИ: 3=1 V 2; б—Мо­ дуль, реализующий один разряд регистра рис. 2-5: 11 =.100V (2 Д 11), 100=101 V 102, 101= 10Д9, 102=3д4, 8=103 V (0 Д 8), 103=11 Д 7, 1 — п 5—¥

го контактов и дублирование в каждой строке типа и номера элемента нежелательно.

В качестве примера опишем схему рис. 2-5 для двух случаев: на уровне базовых элементов '(ТРИГГЕР, И, ИЛИ, рис. 3-1,о); на уровне модулей, каждый из которых содержит один разряд

регистра (рис. 3-1,6), модули нумеруются слева направо.

Для первого случая описание составлено тю формату табл. 3-1 (табл. 3-3), для второго — по формату табл. 3-2 '(табл. 3-4).

Здесь для столбца «Номер контакта» принят стандартный фор­ мат — двузначное десятичное число.

Из примера видно, что в формате табл. 3-1 особенно удобно вносить исправления в схему: в табл. 3-3 неверно записана строка 10, для исправления достаточно в конце таблицы записать ее снова.

При использовании формата табл. 3-2 заранее заготавливаются стандартные бланки для элементов каждого типа. В них остается проставить только номер элемента и название цепей на задейство­ ванных контактах. Это намного облегчает работу по составлению описания схемы. Объем информации в этом случае также значитель­ но меньше: в табл 3-3 54 строки, а в табл. 3-4 только 31.

72

Т а б л и ц а 3-3

Тип э л е ­

Номер

Номер

ментов

элемента

контакта

т.

к

к

т.

1.

2.

т.

1.

3.

и л и .

7.

1.

и л и .

7.

3.

и л и .

7.

2.

и .

10.

3.

и .

10 .

1.

и .

10.

2.

и .

11.

Г.

и .

11.

2.

и .

11.

3.

и .

16.

1.

и .

1G.

3.

и.

16.

2.

т.

2.

1.

т.

9.

3.

т.

2.

2.

т.

3.

1.

и.

12.

1.

т.

4.

3.

т.

3.

2.

т.

3.

3.

или.

8.

3.

или.

8.

1.

или.

8.

2 .

и.

12.

2.

Название

Тип эл е ­

Номер

Номер

Название

цепи

ментов

элемента

контакта

цепи

1;

и .

13.

3.

7;

ГАШ1 ;

и .

12.

3.

6;

Т1;

и .

13.

2.

А;

4;

и .

13.

1 .

СДВЛВ;

1;

и.

17.

1.

ТЗ;

5;

и .

17.

2.

ПРИЕМ;

4;

и .

17.

3.

12;

СДВПР;

т .

4.

1 .

12;

А;

т.

4.

2 .

ГАШ2;

СДВПР;

и .

18.

1 .

Т5;

10;

и .

18.

2.

ПРИЕМ;

5;

и .

18.

3.

13;

Т1;

т.

6.

1.

13;

И;

т.

6.

2.

ГАШ2;

ПРИЕМ;

т.

6.

3.

А;

и ;

и.

14.

1.

Ю;

В;

и.

14.

2.

СДВПР;

ГАШ2;

и.

14.

3.

8;

2;

и.

15.

1.

В;

СДВПР;

и.

15.

2.

СДВЛВ;

Ю;

и л и .

9.

1.

8;

ГАШ1;

или.

9 .

2.

9;

ТЗ;

или.

9.

3.

3;

2;

т.

5.

1.

3;

6;

т.

5.

2.

ГАШ1;

7;

т.

5.

3.

Т5;

В;

и.

11.

1.

СДВЛВ;

Описание схемы на таком языке может служить входной ин­ формацией и для программ моделирования. В этом случае список соединений предварительно превращается специальным транслятором в систему булевых уравнений. Транслятор использует заранее сфор­ мированную библиотеку элементов, в которой каждый тип элемента описан соответствующей системой логических уравнений как пока­ зано на рис. 3-1; наименования переменных в них заменены номе­ рами контактов. Если в элементе имеются внутренние, не выходящие на контакты цепи (цепи 100, 101, 102, 103 «а рис. 3-1,6), то для по­ лучения уникальных названий при трансляции к номеру каждой из них приписывается номер элемента.

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

делить

на четыре группы:

1)

ошибки в самой логической схеме;"

73

Т а б л и ц а

3-4

 

 

 

 

Тип эле-

Ml

Тип эле-

Ml

Тнп эле-

Ml

мента

 

мента

 

мента

 

Номер

01

Номер

02

Номер

03

элемента

 

элемента

 

элемента

 

Номер

Название цепи

Номер

Название цепи

Номер

Название цепи

контакта

контакта

контакта

01

 

01

 

01

 

02

ГАШ1

02

Г АШ1

02

ГАШ1

03

10

03

А

03

В

04

с д в л в

04

СДВЛВ

04

СДВЛВ

05

ГАШ2

05

ГАШ2

05

ГАШ2

06

06

■ 06

07

ПРИЕМ

07

ПРИЕМ

07

ПРИЕМ

08

В

08

10

08

А

09

А

09

В .

09

10

10

СДВПР

10

СДВПР

10

СДВПР

11

TI

11

Т2

11

ТЗ

2)ошибки, возникшие при составлении списка свя­ зей по логической схеме;

3)ошибки при перфорации списка связей;

4)превышение нагрузочной способности элементов и другие нарушения правил соединения элементов.

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

Другой способ состоит в усложнении языка описания связей [Л. 8, 33]. При этом за счет избыточности языка можно выловить многие ошибки с помощью машинного контроля описания. Недостатки обоих способов очевид­ ны: первый увеличивает в два раза трудозатраты на составление и перфорацию списка связей; второй также увеличивает их (может быть еще в большей степени) и требует большей квалификации исполнителей. Кроме того, ни тот ни другой способы не позволяют обнару­ жить ошибок первой группы.

Наиболее эффективным методом проверки списка

связей является обратное преобразование

этого списка

в логическую схему и моделирование ее

работы. Про-

74

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

Однако в большинстве существующих АСП автома­ тизируются в основном работы конструкторского проек­ тирования, а моделирование используется для построе­ ния диагностических тестов и (иногда) для выборочной проверки логики на этапе логического проектирования. Проверка списка связей путем моделирования требует при этом большой дополнительной работы по созданию тестов, обработке результатов моделирования и коррек­ тировке исходных данных (в том числе и тестов) при обнаружении ошибок. Трудоемкость этой работы превы­ шает трудоемкость описания схемы «в две руки», а по­ лучаемая выгода (отсутствие ошибок) выявляется лишь при наладке машины. Поэтому не всегда удается прово­ дить проверку списка связей путем моделирования. Наи­ более целесообразно применение в этом случае метода дублирования описания, так как он обеспечивает, обна­ ружение ошибок второй и третьей группы, не требует специального обучения персонала и сложных программ синтаксического контроля. Использование избыточности языка описания, напротив, не обеспечивает обнаружения всех ошибок н требует обученного персонала. Мы не бу­ дем рассматривать возможные реализации этих методов (их можно найти в цитированных работах), поскольку при проектировании современных ЦВМ с использовани­ ем печатного монтажа в ячейках и шкафах примене­ ние моделирования для контроля списка связей стано­ вится необходимым — устранение логических ошибок на готовой конструкции здесь обходится слишком до­ рого.

К четвертой группе относятся все нарушения правил соединения элементов. Эти правила во многом различа­ ются для разных систем элементов, однако методы про­ верки всех правил соединения имеют много общего; мы их рассмотрим на примере проверки превышения нагру­ зочных способностей элементов.

Такую проверку можно производить отдельно для каждой электрической цепи, поэтому вначале список

связей упорядочивается

по наименованиям цепей. Для

этого используют стандартные

программы

сортировки

массивов.

Если список

связей

составлен

в формате

табл. 3-1,

то упорядочивать можно прямо строки исход­

75

ного списка; если же использовался формат табл. 3-2, то список должен быть предварительно перестроен — в каж­ дой строке надо указать тип и номер элемента. Затем из упорядоченного списка выделяются все контакты оче­ редной цепи. Для каждого элемента в библиотеке базо­ вых элементов выбирается описание элемента; по биб­ лиотечным описаниям и номерам контактов определя­ ются элемент, являющийся генератором сигнала в дан­ ной цепи, и его нагрузочная способность Р. Максималь­ ная нагрузка на генератор равна п—1, где п — число контактов в цепи1. Если Р < п —1, то печатается сообще­ ние об ошибке, указывающее разработчику на необходи­ мость корректировки схемы21.

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

3-2. КОМПОНОВКА ЭЛЕМЕНТОВ

После проверки и (если обнаружены ошибки) кор­ ректировки списка связей начинается выполнение задач собственно конструкторского проектирования. Первая из этих задач— задача компоновки — заключается в раз­ биении исходного множества базовых элементов на под­ множества в соответствии с принятой системой конст­ руктивных элементов и преобразовании списка связей между базовыми элементами в набор списков связей между элементами высших рангов. Для удобства будем в дальнейшем рассматривать конструкцию, содержащую

элементы четырех рангов: базовый

элемент — модуль —

ячейка — шкаф. Такая

конструктивная

схема является

типичной

для

многих

современных

ЦВМ 3.

Возможны

1 Предполагаем, что в применяемой "системе элементов мощность

потребляемая

по

входу любым

элементом,

одинакова.

Если это не

 

 

 

п —I

 

 

 

 

 

так, то

нагрузка

p t ,

где

p t — мощность,

потребляемая эле-

ментом

 

 

£=1

 

 

 

описанию элемента.

I, определяется также по библиотечному

2 Корректировка схемы в соответствии с нагрузочными способ­ ностями элементов может быть выполнена автоматически [Л. 4], од­

нако

такое решение

не всегда удовлетворяет разработчика, поэтому

в общем случае это

лучше оставлять на его усмотрение.

3

Ниже будет

показано, что компоновка элементов второго,

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

76

две принципиально различные постановки задачи ком­ поновки, зависящие от принятых конструктивных реше­ ний.

1. Устройство строится из стандартных ячеек. Типы ячеек .задаются заранее; количество типов ограничено (обычно не более нескольких десятков); на каждой ячейке размещаются 20—30 модулей. Поскольку число контактов разъема ячейки обычно значительно 'меньше суммарного числа выводов размещенных на ячейке мо­ дулей, многие связи между базовыми элементами долж­ ны быть выполнены внутри ячейки. Таким образом, ячейка каждого типа представляет собой довольно слож­ ную логическую схему.

Задача компоновки в этом случае ставится так: найти покрытие схемы заданным набором стандартных ячеек, требующее минимального количества ячеек. Точ­ ное решение этой задачи требует полного перебора всех вариантов покрытия; для реальных устройств (объем в 103—104 базовых элементов) это, очевидно, невозмож­ но. Приближенные решения занимают сотни часов машинного времени, что также практически неприемле­ мо. Поэтому при использовании заранее заданного набо­ ра стандартных ячеек компоновка ячеек выполняется вручную и исходной информацией для конструкторского проектирования являются списки соединений между ячейками и базовыми элементами внутри стандартных ячеек.

2.Количество типов ячеек заранее не ограничивается

изадачи компоновки модулей и ячеек решаются маши­ ной. Некоторые части устройства, легко реализуемые однотипными ячейками (например, разряд сумматора,

счетчика, регистра), могут компоноваться вручную.

Вдальнейшем будем рассматривать только этот случай. Если в принятой конструкции число рангов конструк­

тивных элементов равно 6, то задача компоновки долж­ на решаться k —2 раза (компоновка элементов второго ранга из элементов первого ранга, третьего ранга из второго и т. д.). В рассматриваемом случае 6 = 4 (базо­ вый элемент — модуль — ячейка — шкаф), и задача ком­ поновки должна решаться дважды. Возможны два под­ хода к решению: «снизу» (сначала компоновка модулей из базовых элементов и затем ячеек из модулей) и «свер­ ху» (сначала компонуются ячейки из базовых элементов, а затем для ’каждой ячейки компонуются модули). .

77

При решении задачи компоновки элементов ранга /г необходимо:

1)выполнять правила объединения элементов (п—1) ранга в элемент /г-го ранга;

2)выполнять указания разработчика по компо­

новке;

3)

получить

минимальное число внешних связей,

т. е. связей между элементами /г-го ранга;

4)

получить

минимальное количество элементов /г-го.

ранга.

 

 

Необходимость удовлетворения условиям 1,2 очевид­ на; условие 4 позволяет уменьшить количество оборудо­ вания; условие 3 приводит к сокращению длины связей

и числа

контактов разъемов

(что улучшает электриче­

ские

характеристики

схемы), а

также

в ряде случаев

облегчает трассировку элемента

(/г+1)

ранга.

Задача компоновки

может

быть

сформулирована

так:

задано

множество

элементов

Л —{ai, аг.. . . , a*}

ранга /г.

 

разбить

его на непересекаюшиеся псодмно-

Требуется

жества

L,, L, , ..., Lp (

(J

Тг ==- Л \

т.

е.

на р элементов

 

 

 

\

1 = 1

 

/

 

 

разбиение удов­

ранга п -f- 1 таким образом,

чтобы это

летворяло условиям 1 — 4.

 

 

 

 

Пусть некоторое количество элементов из множества А уже скомпоновано в множество Lt. Тогда в качестве очередного элемента для установки в Li выбираем неко­

торый элемент

который

имеет

максимальное число

связей с уже вошедшими в

элементами и удовлетво­

ряет условиям

1,2. Такой алгоритм,

естественно, не дает

точного решения задачи. Более того, он не обязательно приводит и к локальному минимуму по условиям 3, 4. Однако полученное таким образом разбиение удовлет­ воряет условиям 1 ,2 (т. е. дает работоспособную конст­ рукцию) и в большинстве случаев оказывается не хуже, чем сделанное вручную (получить точное решение, как уже говорилось, практически невозможно^).

Рассмотрим программу, реализующую этот алгоритм (блок-схема программы показана на рис. 3-2). Исходной информацией для программы служит список связей между компонуемыми элементами (ранга /г), конструк­ тивные особенности элемента ранга /г-f-l (число поса­ дочных мест и число внешних выводов) и указания раз­ работчика по компоновке.

78

79

Соседние файлы в папке книги из ГПНТБ