книги из ГПНТБ / Ландау И.Я. Применение ЦВМ для проектирования ЦВМ
.pdfнацией между программами решения отдельных задач проектирования, т. е. архив является скелетом АС'П, связывающим эти программы в единую систему. Блоксхема такой системы показана на рис. 1-4. В этой систе ме машина используется главным образом для решения задач конструкторского проектирования; разработка конструкции, элементной базы и основные работы логи ческого проектирования выполняются человеком.
При логическом проектировании и выборе элементно конструктивной базы ЦВМ используется для анализа и оптимизации полученных результатов путем моделиро вания.
Объем данной книги не позволяет подробно рассмот реть алгоритмы и программы решения всех задач проек тирования ЦВМ; это привело к различной детальности изложения отдельных вопросов: моделирование на ЦВМ работы логических схем рассмотрено значительно под робнее, чем задачи автоматизации конструкторского проектирования. Это сделано потому, что алгоритмы и и программы решения задач конструкторского проекти рования не универсальны; они (в отличие от моделиро вания) сильно зависят от конструктивно-элементной базы проектируемого устройства. Большое разнообразие конструкций ЦВМ породило большое количество раз личных алгоритмов решения этих задач; попытка изложения всех алгоритмов превратила бы книгу в обзор, причем сложность таких задач, как, например, проекти рование печатного монтажа, все равно не позволила бы детально рассмотреть соответствующие программы. Бо
лее подробные |
описания программ конструкторского |
проектирования |
можно найти в цитированной литера |
туре. |
|
Г л а в а в т о р а я |
|
ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ
2-1. МОДЕЛИРОВАНИЕ РАБОТЫ ЦИФРОВЫХ УСТРОЙСТВ
При рассмотрении выполняемых в процессе проекти рования ЦВМ работ мы говорили, что разработчики со временных ЦВМ практически не имеют возможности строить предварительно макет машины; нельзя также слишком затягивать доводку первых образцов. Следова тельно, логика машины должна быть безошибочна. Но сделать это на бумаге почти невозможно, ибо человеку
20
свойственно ошибаться. Для устранения ошибок разра ботчиков используется моделирование работы логиче ских схем на ЦВМ. С помощью моделирования можно контролировать правильность схем, сравнивать различ ные варианты структурных решений устройства, отраба тывать систему команд, составлять тесты. Таким обра зом, моделирование является универсальным инструмен том разработчика на этапе логического проектирования. В данной главе мы рассмотрим применение моделирова ния для решения различных задач логического проекти рования и существующие методы построения моделиру ющих программ.
Изложим вначале основные -принципы моделирова ния работы цифровых устройств. Логическая схема лю бого узла ЦВМ состоит из запоминающих элементов (триггеров), комбинационных схем (осуществляющих преобразование информации) и, в некоторых случаях, элементов задержки (линии задержки). Таким образом, логическую схему можно описать системой булевых урав нений
Ri = fi(Ai, Аг, ■• ■, Ak, Ri, Rz, ■■., Rn) (£= 1, 2 , . . . , n), |
(2-'l) |
где Ri — значение выходного сигнала i-го элемента |
схе |
мы1, Aj — значение входного сигнала схемы и f i — логи ческая функция, реализуемая г-м элементом.
Линию задержки (ЛЗ) можно рассматривать как /г-мер- ный двоичный вектор L/ = {pi, l2, ..., /"}, где (3* — зна
чение входного, а 1п— выходного сигналов ЛЗ в момент |
|
г |
задержки, а /' , |
времени £; /г определяет длительность |
|
I2, .... /”- 1 — значения входных сигналов |
линии задержки |
в моменты t — 1,£ — 2,...,£— ( п — 1) соответственно. Зная состояние каждого элемента схемы (т. е. значе
ние его выходного сигнала) в некоторый момент време ни и значения входных сигналов, можно вычислить но вое состояние любого элемента; определив таким обра зом новое состояние каждого элемента, получим новое состояние схемы.. Повторяя расчет до тех пор, пока ‘со стояние каждого элемента не перестанет изменяться, получим новое устойчивое состояние схемы, отвечающее заданным значениям входных сигналов (если оно су
1 Для удобства изложения в дальнейшем R { будем -использовать для обозначения не только выходного сигнала элемента i, но и этого элемента
21
ществует). Этот итерационный процесс и есть модели рование работы логической схемы: зная начальное со стояние схемы и последовательность значений входных сигналов (временную диаграмму входа), можно опреде лить состояние схемы в любой момент времени, решая систему уравнений (2-1) вновь после каждого измене ния значений входных сигналов. При этом выходные сигналы линий задержки обычно рассматриваются как подмножество множества входных сигналов схемы.
Уравнения (2-1) не учитывают времени срабатыва ния элементов и задержки распространения сигналов, тогда как в реальных схемах все элементы имеют ко нечные (и притом разные) времена срабатывания. Та ким образом, состояние элемента Ri в момент t равно значению fi(Au А2, ..., Ak, Ru R2y ..., Rn) в момент t—т, где т —-время срабатывания элемента. Учесть все ха рактеристики реальных элементов при моделировании практически невозможно, ибо это привело бы к слиш ком большим затратам машинного времени и чрезвы чайно усложнило описание схемы. Более того, этого и не следует делать, поскольку работа устройства не дол жна нарушаться при замене элементов, т. е. при из менении (в некоторых пределах) времен срабатывания элементов.
Можно показать, что результаты моделирования совпадают с результатами работы реальной схемы, если в ней выполняются некоторые условия. Для удобства дальнейшего изложения введем понятия такта схемы и ранга1 элемента.
Назовем входные сигналы схемы и выхочиые сигна лы линий задержки элементами ранга 0. Будем гово рить, что элемент имеет ранг п > 0, если он не является элементом ранга ниже п, а его состояние определяется выходными сигналами элементов ранга ниже п. Назо вем схему ранжируемой, если каждый ее элемент имеет ранг.
Тактом схемы Тс будем называть время установле ния самой длинной цепочки последовательно соединен ных элементов:
Гс= тах (7’), Т2, ..., Тр),*
* Вводимое здесь понятие ранга относится к порядку -срабаты вания элементов в логической е>-°мо. F.ro не следует путать с поня тием конструктивного ранга (гл, I, з 4),
22
i1 |
|
|
|
|
Г-де T j = £ |
Ti — время срабатывания элемента |
Ri, г И |
||
l=r |
|
|
элементов |
в цепоч |
s — наименьший и наибольший ранги |
||||
ке /. |
Значения входных сигналов схемы не дол |
|||
Условие 1. |
||||
жны меняться |
внутри |
такта схемы. |
Иными словами, |
|
должно быть |
Т с ^ Т , |
где Т — наибольшая общая мера |
||
длительности входных сигналов и линий задержки. |
||||
Условие 2. |
Внутри любого такта схемы значения всех |
изменяющихся на этом такте входных сигналов любого элемента должны меняться в одном направлении (если воздействие этих сигналов на состояние элемента не за блокировано другими его входными сигналами, не меняющимися в данном такте).
Смысл условия 1 очевиден: входные сигналы не долны изменяться, пока схема не установится — в. против ном случае состояние некоторых элементов может ока заться неопределенным. В синхронных схемах выпол нение этого условия обеспечивается синхронизацией от тактового генератора, в асинхронных для этого необхо димо предпринимать специальные меры. Смысл условия
2будет выяснен ниже.
Вописанном выше методе моделирования для вы числения новых состояний элементов на каждой итера ции используется формула
Я'+1= М Л ,.4 , A , |
/?')(/ = 1,2 п ) , |
( 2- 2)
где t — номер итерации. Таким образом, каждая итера ция отвечает срабатыванию очередной группы элемен тов, т. е. соответствует времени т в реальной схеме. Если в схеме выполняется условие 1, то счет по формуле (2-2) полностью соответствует процессу установления схемы, и если схема не содержит генераторов, итерации всегда сходятся.
Однако этот метод требует много машинного време ни, поскольку число итераций равно числу 'последова тельно соединенных элементов в самой длинной цепоч ке. Для ускорения счета можно воспользоваться мето-
23
дом Зейделя:
(2-3)
при вычислении нового состояния элемента Ri на каж дой итерации используются уже вычисленные на этой итерации состояния элементов R it R2, .... Ri-1 . Нетрудно
видеть, что количество итераций тут может оказаться гораздо меньше, чем в методе простой итерации; если
Рис. 2-1.
схема ранжируема и формулы (2-3) расположены в по рядке возрастания рангов элементов, то установившееся состояние схемы будет получено в одну итерацию.
При использовании метода Зейделя уже нет столь простого соответствия между работой модели и процес сом установления в , реальной схеме, как при простой итерации, однако это не страшно, поскольку при моде лировании обычно интересны только установившиеся состояния схемы, а не сам процесс установления. Хуже то, что результаты моделирования могут зависеть от по рядка нумерации формул (2-3) (будем называть его в дальнейшем порядком обхода схемы); то, что это весь ма существенно, видно уже на примере простейшей схе мы (рис. 2-1), состоящей из триггера Ri и комбинацион ной схемы Ri. Схема рис. 2-1 описывается следующими уравнениями:
А = |
А V (А Л А); |
(2-4) |
|
R2 = |
А2 / \ А3. |
||
|
24
Пусть начальное состояние схемы будет R i = l , |
R2=0 , |
и значения входных сигналов Л( = 0, А2= А 3 = 1. |
Легко |
убедиться, что при счете методом простой итерации по лучим новое состояние схемы Ri = 0, R2= \ , тогда как при счете методом Зейделя новое состояние Ri будет зависеть от порядка обхода. При указанном в (2-4) порядке обхода получим новое состояние /?i = 0, а при порядке обхода R2, R 1 получим R i = \ .
Можно показать, что результаты моделирования по методу Зейделя совпадают с результатами работы ре альной схемы, если в ней выполняется условие 2. Ин туитивно это ясно: поскольку логические операции монотонны, то порядок изменения значений входных сигна лов любого элемента несуществен, если все они меняют ся в одном направлении. Однако строгое доказательст во этого утверждения довольно громоздко (с ним мож но ознакомиться в [Л. 2]); там же показано, что схема, в которой выполняется условие 2, свободна от риска и критических гонок*.
Заметим, что изображенная на рис. 2-1 схема непра вильно спроектирована — в ней возможны критические гонки и состояние соответствующей реальной схемы бу дет зависеть от фронтов сигналов А\, Аъ А3, R2 и времен срабатывания элементов Ri и R2. Поскольку в реальной схеме времена срабатывания элементов точно неизвест ны (и могут меняться во время эксплуатации — от заме ны элементов, их старения и т. д.), для обеспечения на дежности желательно выполнение условия 2. Провер ка этого может быть произведена при моделировании схемы.
Мы не доказали здесь сходимости итерационного процесса и единственности получаемого при моделиро
вании |
решения. Кроме |
того, мы |
не рассматривали не-1 |
1 Гонками называется ситуация, возникающая в многотактной |
|||
схеме, |
когда одновременно |
изменяются |
состояния двух или более |
ее элементов. Из-за различия времен срабатывания и задержек рас пространения сигналов одни элементы могут сработать раньше других. Элемент, сработавший первым, может изменить входные сигналы еще не сработавшего запоминающего элемента, что может привести к нарушению работы схемы. В этом случае гонки назы ваются критическими. Проблема риска возникает в том случае, когда среди входных сигналов запоминающего элемента R имеются неко торая переменная X и ее отрицание X. При изменении ее значения X и X могут (из-за различия времени срабатывания элементов) какоето время иметь одинаковые значения, что в свою очередь может вызвать неверное срабатывание R.
25
ранжируемые схемы, т. е. схемы, содержащие кольца— замкнутые цепочки последовательно соединенных эле ментов (например, кольцевой сдвигающий регистр, коль цевой счетчик и т. д.). Подробное рассмотрение этих вопросов проведено в [Л. 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