ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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) —.запоминающие |
элементы явно не указываются. |
В этом случае произве- |
Л