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

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

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

нацией между программами решения отдельных задач проектирования, т. е. архив является скелетом АС'П, связывающим эти программы в единую систему. Блоксхема такой системы показана на рис. 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

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