Файл: Ландау И.Я. Применение ЦВМ для проектирования ЦВМ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.06.2024

Просмотров: 68

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

2-2. ПРОГРАММЫ МОДЕЛИРОВАНИЯ ЛОГИЧЕСКИХ СХЕМ

Рассмотрим теперь способы практической реализации моделирующих программ. На рис. 2-2 показана блок-

схема моделирующей программы.

Предполагается, что

Вход

описывающие схему урав­

нения (2-1) уже находят­

 

 

ся в оперативной памяти.

 

Для

 

этого

они

должны

 

быть

предварительно пе­

 

реведены

отдельной

про­

 

граммой — транслятором

 

из

обычной

алгебраиче­

 

ской формы записи на не­

 

который внутренний язык,

 

удобный для работы про­

 

граммы

модел ирования.

 

Кроме того, в оператив­

 

ной памяти

размещаются

 

специальные

рабочие по­

 

ля

 

(«Логические

шка­

 

лы»),

в которых записы­

 

ваются состояния элемен­

Рис. 2-2. Блок-схема программы

тов

 

схемы

и

значения

входных

сигналов.

По­

моделирования.

 

скольку любой сигнал мо­

жет принимать только два значения

(0

и 1), для записи

его достаточно одного разряда; таким образом, в одном машинном слове может быть записано состояние п эле­ ментов (п — разрядность слова).

Имеется две группы логических шкал — ЛШО и ЛШ1. В ЛШО хранится исходное (т. е. вычисленное на предыдущей итерации) состояние схемы, а в ЛШ1 — новое (вычисленное на данной итерации) состояние,

26


Блок 1 программы производит установку начального состояния элементов. В простейшем случае это гашение всех элементов (засылка 0 в ЛШО).

Блок 2 производит переход к следующему такту ра­ боты схемы. Этот переход состоит в увеличении на еди­ ницу счетчика тактов, .переносе содержимого ЛШ1 в ЛШО и получении нового состояния линий задержки. Для за­ писи состояний линий задержки отводится также область оперативной памяти — поле ЛЗ. На поле ЛЗ отводится

по одному разряду для каждой компоненты К каждой

из ЛЗ, причем каждая ЛЗ занимает целое число машин­ ных слов. В блоке 2 содержимое ячеек поля ЛЗ сдвига­ ется на один разряд влево, в младший разряд каждой

ал 001 конт oiimiiiiiiiimiiiiiiiiniiiiiniiiiiiiiimiiiiii

ЭЛ 002 КОНТ 1000010000000000000000000000000000000000000000000000 ЭЛ 003 КОНТ 1001100000000000000000000000000000000000000000000000 ЭЛ 004 КОНТ 10111011111111111111111111111J1111111111111111111111

Рис. 2-3. Временная диаграмма, рассчитанная моделированием.

из ЛЗ заносится Pi. Значение сигнала на любом из вы­ ходов ЛЗ, очевидно, определяется значением соответст­ вующего разряда той ячейки поля ЛЗ, где хранится данная ЛЗ. Таким образом, блок 2 подготавливает вы­ числение состояния схемы на следующем такте. Кроме того, в этом блоке обычно производится печать времен­ ной диаграммы. Каждый такт временной диаграммы представляется строкой на печатающем устройстве той ЦВМ, на которой выполняется моделирование (обычно для вывода временной диаграммы используется устрой­ ство алфавитно-цифровой печати АЦП). В каждой .пози­ ции строки отмечается (1 или 0) состояние одного эле­ мента схемы в данном такте; название этого элемента печатается в соответствующей строке перед началом временной диаграммы. Пример такой печати показан на рис. 2-3i. Окончание моделирования определяется по счетчику тактов.

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

1 Поскольку воспроизведение полученных на АЦП .распечаток оказалось неудобным длятипографии, образцы машинных докумен­ тов не приводятся.

27

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

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

подпрограмм для вычисления значений этих

сигна­

вхо'а

лов.

При этом моделиро­

вание

работы

соответ­

 

 

ствующих схем заменяет­

 

ся

прямым вычислением

 

значений

их

выходных

 

сигналов

по

значениям

 

входных сигналов (напри­

 

мер, вместо моделирова­

 

ния выполнения операции

 

сложения

производится

 

сложение

операндов).

 

Имитация работы не во­

 

шедших в модель частей

 

устройства позволяет зна­

 

чительно

сократить

объ­

 

ем

входной информации.

стоп

Блок 6 выполняет об­

работку

 

полученных при

Рис. 2-4. Блок-схема вычисле­

моделировании

результа­

ния нового состояния схемы.

тов,

т.

е.

функции

этого

 

блока зависят от цели мо­

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

Блок 5 выполняет собственно моделирование, т. е. решение уравнений (2-1). Различия между разными программами моделирования заключаются главным об­ разом в этом блоке, поэтому его следует рассмотреть подробнее. Блок-схема вычисления нового состояния

28


схемы изображена на рис. 2-4, функции отдельных бло­ ков ясны из предыдущего. Блок 4 на рис. 2-4 сравнивает количество выполненных итераций (счет) с заранее за­ данным эталоном. Если итерации не сошлись (счет^ ^эталон), значит, схема на данном такте не имеет устойчивого состояния (в ней есть генератор) и даль­ нейшее моделирование прекращается.

От способа выполнения итерации (т. е. реализации блока 2) зависят основные характеристики программы— скорость моделирования, объем оперативной памяти и универсальность программы, т.' е. возможность модели­ ровать с ее помощью схемы, построенные на элементах разных типов. Известны два метода выполнения итера­ ции-интерпретация и компиляция.

Интерпретирующая программа последовательно про­ сматривает правую часть каждого из уравнений (2-1) и подставляет в них значения Л,-. и Ri из ЛШ1. Получен­ ное новое значение RP также заносится в ЛШ1. Очевид­ но, что иитепретирующая программа годится для моде­ лирования схем любого типа, поскольку любой элемент может быть описан уравнением типа (2-1). Однако она сравнительно медленная, так как для вычисления RP требуется выполнить много вспомогательных операций: выборку и засылку в ЛШ1, подстановку в уравнение. Описанная в [Л. 4] программа такого типа затрачивает около 30 с на моделирование одного такта работы схе­ мы, состоящей из 200 триггеров с четырехступенчатой входной логикой (на трехадресной ЦВМ с быстродейст­

вием 2 000

операций/с).

 

При использовании метода компиляции блок 2 пред­

ставляет

собой программу решения уравнений

(2-1)

в командах той ЦВМ, на которой производится

моде­

лирование. Эта программа составляется до начала моде­ лирования транслятором. Например, для схемы рис. 2-1

блок 2 (при моделировании на

трехадресной ЦВМ)

имеет вид:

 

Р , = Я , Л # 2;

 

Ri = At V pi!

(2-5)

#2 = 4 Л Л 3.

 

Здесь Rh R& At, А% А3— адреса в ЛШ1, в которых хранятся состояния соответствующих элементов; pi — адрес рабочей ячейки. Программа составлена в содер­ жательных обозначениях (Л. 7].

29



Скорость моделирования при использовании Метода компиляции в 15—20 раз выше, чем при интерпретации, однако этот метод имеет и ряд недостатков. Прежде всего выигрыш в скорости сильно зависит от системы команд той ЦВМ, на которой производится моделирова­ ние. Так, на одноадресной ЦВМ программа (2-5) вы­ глядит так:

S — я,

s = s л я а s = s v A

я, « - s

S ~ - A a

я 3— s.

Здесь 5 обозначает регистр сумматора; стрелка — операции засылки в сумматор и записи в память. Таким образом, число команд более чем удваивается (а ско­ рость соответственно падает).

Далее, необходим гораздо больший объем памяти для ЛШО и ЛШ1, поскольку в каждом слове хранится состояние только одного элемента. Возрастает (в 1,5— 2 раза) и длина описания схемы (особенно на одноадрес­ ных ЦВМ). Транслятор, составляющий программу мо­ делирования, становится сложнее (мы не рассматри­ вали здесь устройства трансляторов и программы вы­ числения правых частей; с этим можно ознакомиться как в цитированных уже работах, так и в литературе, посвященной реализации алгоритмических языков, на­ пример [Л. 11]).

Уменьшить общее машинное время моделирования можно путем «многопрограммного моделирования», ког­

да одновременно рассчитываются

п режимов данной

схемы (п— разрядность машинного

слова). При этом

совокупность первых разрядов всех слов ЛШО и ЛШ1 представляет состояние моделируемой схемы на первом

наборе

входных сигналов, вторых разрядов — на втором

и т. д.

[Л. 6]. Так можно поступать, поскольку логиче­

ские операции — поразрядные. Можно считать, что при этом скорость моделирования повышается в п раз. Одна­ ко использование этого метода в ряде применений не-

30

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

Как при интерпретирующем, так и при компилирую­ щем способе выполнения итерации скорость моделирова­ ния можно увеличить за счет предварительного распо­ ложения уравнений (2-1) в порядке возрастания рангов элементов. При этом, как уже говорилось, для получе­ ния нового состояния схемы достаточно одной итерации. Ранжирование проводится транслятором до начала мо­ делирования. Однако сделать это можно лишь в том случае, когда схема ранжируема. Если схема неранжируема (содержит кольца), используется метод «условно­ го ранжирования» [Л. 8]. При условном ранжировании выявляются все имеющиеся в схеме кольца и в каждом кольце обрывается одна связь, после чего схема стано­ вится ранжируемой. Поскольку в устойчивой схеме каж­ дое кольцо должно содержать триггеры, условное ран­ жирование можно выполнить следующим образом: про­ слеживаются все связи каждого триггера схемы; если некоторый триггер входит в кольцо, то это кольцо раз­ рывается на его входе.

На рис. 2-5 приведена схема кольцевого сдвигающего регистра со сдвигом вправо и влево; крестиками отмече­ ны связи, разрываемые для условного ранжирования. После разрыва колец схема ранжируется, однако для получения нового состояния схемы потребуется уже три итерации: на первой итерации вычисляются значения входных сигналов триггеров, на которых были оборваны кольца при условном ранжировании, на второй — новые состояния элементов, входящих в кольца. Третья итера­ ция нужна для проверки устойчивости.

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

описании схемы — уравнениях

(2-1) —.запоминающие

элементы явно не указываются.

В этом случае произве-

Л