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

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

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

отсутствие операций над отдельными двоичными разря­ дами (из-за этого возрастает нужный для модели объем оперативной памяти). Кроме того, поскольку каждый разряд регистра является элементом массива, а опера­ ций над массивами в этих языках нет, вычисление нового состояния регистра приходится производить в цикле, что резко замедляет моделирование. Это не позволяет ис­ пользовать универсальные языки программирования для задач логического проектирования.

Существует ряд систем программирования и языков для моделирования больших систем [Л. 22—24], однако они не приспособлены для моделирования вычислитель­ ных машин: терминология их неудобна для описания схем, а способы моделирования параллельных процессов довольно громоздки н не всегда соответствуют специфике параллельной работы устройств ЦВМ.

Сформируем основные требования, выдвигаемые раз­ личными задачами логического проектирования ЦВМ

кязыку описания схем и системе моделирования.

1.Язык должен допускать описание устройства с лю­ бой степенью детальности, поскольку задачи, решаемые

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

2. Для отображения поведения цифровых устройств необходимы средства описания и моделирования парал­ лельно протекающих во времени процессов, в том числе и асинхронных. Поскольку ЦВМ, на которой производит­ ся моделирование, работает последовательно, операции, выполняемые в реальном устройстве одновременно, в мо­ дели будут выполняться в какой-то последовательности, причем, вообще говоря, эта последовательность может быть заранее не известна автору модели (например, она может зависеть от входных сигналов). Если моделируе­ мые операции зависимы (т. е. выполнение одной из них зависит от результата другой), то для совпадения резуль­ татов моделирования с работой реального устройства язык должен предоставить средства для синхронизации параллельных процессов. Нетрудно видеть, что явного указания времени выполнения операций для этого недо­ статочно, хотя бы потому, что это время может быть за­

40

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

3. Язык должен использовать простую и понятную для разработчиков ЦВМ терминологию; набор операций язы­ ка не должен быть слишком велик. С первого взгляда может показаться, что чем больше операций, тем лучше для пользователя. Однако на самом деле это не так. Для того чтобы описание схемы было понятно, знаки действий должны быть «содержательны» и но возможности просты. Язык должен быть пригодным для описания широкого класса схем, построенных на различных физических эле­ ментах. Поэтому не следует расширять набор операций, включая сложные логические функции, реализуемые кон­ кретными элементами.

4. Разработчикам современных ЦВМ пришлось отка­ заться от макетирования устройств. Для того чтобы мо­ делирование полностью заменило работу с. макетом, надо дать разработчику возможность непосредственного кон­ такта с моделью, т. е. возможность вмешиваться в про­ цесс моделирования, изменять входные сигналы, время

ит. д. Язык должен предоставлять такие средства.

5.Не должны налагаться существенные ограничения на размер описываемых схем, разрядность регистров и другие параметры устройства.

Итак, язык описания схем должен:

обеспечивать возможность формального описания структуры и поведения цифровых устройств;

быть понятным для разработчиков ЦВМ; быть пригодным для описания схем на различных

уровнях детальности; иметь средства для моделирования параллельно про­

текающих во времени процессов (синхронных и асин­ хронных) ;

быть пригодным для описания широкого класса уст­ ройств; (

не ограничивать размеров схем; иметь средства для оперативного управления процес­

сами моделирования; допускатьописание сложных устройств по частям.

В настоящее время известен ряд языков такого типа [Л. 15—22]; для -многих из них имеются работающие

41

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

2-5. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ЯЗЫКА ФОРОС

Язык ФОРОС (язык формального описания схем) [Л. 15] по синтаксису близок к языку ФОРТРАН-4. Про­ стота, наглядность и легкость освоения языка ФОРТРАН, (обеспечившие его более широкое распространение по сравнению с другими языками программирования) осо­ бенно существенны для языка описания схем, который предназначен для инженеров, а не для профессиональ­ ных программистов. Отсутствие сложных синтаксических конструкций (характерных для АЛГОЛ-60) облегчает разработку транслятора, позволяет получить более эф­ фективные рабочие программы и снижает количество ошибок в программах.

Язык ФОРОС предназначен для формального описа­ ния и моделирования ЦВМ (и других устройств цифро­ вой автоматики) на различных уровнях — от структурной схемы вычислительного комплекса до детальных логиче­ ских схем отдельных устройств, причем отдельные узлы моделируемого устройства могут быть описаны с раз­ личной степенью детальности. Здесь приводится нефор­ мальное описание основных характеристик языка ФОРОС.

Основными символами языка являются имеющиеся в наборе знаков алфавитно-цифрового печатающего устройства (АЦПУ) буквы латинского и русского алфа­ витов, цифры, знаки действий п знаки препинания.

Буквы и цифры используются для образования иден­ тификаторов ('названий переменных), меток (названий операторов и блоков) и чисел. Идентификатор (метка) представляет собой последовательность букв и цифр, начинающуюся с буквы и содержащую не более шести символов. Числа могут быть десятичными, восьмеричны­

42

ми и двоичными. В языке используются только положи­ тельные числа. Числа записываются как целые без зна­ ка, причем после последней цифры восьмеричного числа ставится буква «В», а после последней цифры двоич­ ного числа буква «Д». Числа применяются для указания разрядности регистров, размера МОЗУ, величины вре­ менных интервалов и записи констант в арифметических выражениях.

Примеры записи чисел:

9271 1

десятичные

5 /

1746В

восьмеричные

367В

1001101д \

двоичные

щ I

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

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

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

Длй облегчения описания сложных систем, состоя­ щих из ряда автономных устройств, а также для того, чтобы можно было описывать их отдельные части с раз­

43

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

В операторах описания, расположенных в начале главной программы, каждому запоминающему элементу устройства ставятся в соответствие тип, название (иден­ тификатор) и длина (количество разрядов).

Имеется два основных оператора описания: РЕГИСТР, ПАМЯТЬ, соответствующие различным элементам ре­ альных схем.

С помощью оператора РЕГИСТР описываются от­ дельные триггеры и регистры устройства. Разрядность

регистра записывается как

пара десятичных чисел, разде­

ленных двоеточием и заключенных в скобки:

РК

(1 :45).

Первое число рассматривается как номер первого

разряда регистра,

второе — как номер последнего раз­

ряда. Для одноразрядных

регистров (триггеров) длина

не указывается.

Таким

образом,

оператор

РЕГИСТР

РА(1 : 12), РК(1 : 45), ТГ1, НАЧ,

PI (1 : 45)

описывает

два регистра длиной по 45 разрядов

(РК и Р 1),

один ре­

гистр в 12 разрядов (РА)

п два триггера (ТГ1

и НАЧ).

Оператор ПАМЯТЬ описывает запоминающие уст­ ройства. Каждое запоминающее устройство может иметь три параметра: количество кубов, количество слов в ку­ бе и количество разрядов в слове:

ПАМЯТЬ ОП (1:3, 0:4095, 1:45), МБ (0:4095, 1:45).

Здесь определены два запоминающих устройства: ОП состоит из трех кубов с номерами 1, 2, 3; каждый куб содержит 4096 45-разрядных слов; слова адресуются, начиная с адреса 0000; разряды слова нумеруются с 1 по 45. МБ содержит один такой же куб. В элементах списка оператора ПАМЯТЬ обязательно указание хотя бы двух параметров.

Ссылка на отдельные слова памяти в программе про­ изводится путем указания названия запоминающего устройства и порядкового номера (адреса) слова: МБ (572) определяет слово из МБ с адресом 572. Адрес может быть указан косвенно, через содержимое некото­ рого регистра: МБ (РА) определяет слово из МБ, адрес которого хранится в регистре РА.

Переменными языка являются содержимое регистров и ячеек памяти; эти величины рассматриваются кдр

двоичные числа. Действие может производиться как со "всеми разрядами переменной, так и с любой группой (или несколькими группами) разрядов. В первом случае

ввыражении указывается только название переменной,

адлина определяется по описанию: запись РК + РР

означает сложение чисел, хранящихся в регистрах РК и РР. Во втором случае вслед за названием указывают­

ся

участвующие

в операции разряды:

запись

РА +

+ РК (34:45)

означает

сложение

чисел,

 

хранящихся

в

регистре РА

и

34:45

разрядах

регистра

РК.

Если

указано несколько, групп, то предполагается, что соот­ ветствующие разряды сдвинуты вплотную и полученное

число юстировано вправо.

выражений

можно

Для

облегчения

записи

описать часто упоминаемые группы разрядов регистра как субрегистры: СУБРЕГИСТР КОП = РК (1 :9), А1 = = РК (10:21), ' А2 = РК (22:35), АЗ = РК (34 : 45), МАНТ = РК (10:45).

В этом примере определены переменные КОП, А1, А2, АЗ и МАНТ; при ссылке на них в выражениях будет подставляться содержимое соответствующих частей ре­ гистра РК.

Для совместного моделирования двух или более схем, описанных отдельными программами, используются опе­ раторы ВЫЗВАТЬ и СВЯЗИ, которые тоже относятся к операторам описания. Эти операторы будут рассмо­ трены ниже.

2-6. ОПЕРАТОРЫ ПРИСВАИВАНИЯ, ВЫРАЖЕНИЯ

Общий вид оператора присваивания:

R= <^выражение>;

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

В языке используются четыре класса выражений: логические, арифметические, отношения и смешанные. Структура выражений всея классов одинакова. Основное

45

различие между отдельными классами выражений со­ стоит в степени детальности описания соответствующей части реального устройства.

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

Таким образом, для полного описания моделируемой схемы достаточно одних логических выражений; выра­ жения арифметические, отношения и смешанные введе­ ны для упрощения записи в тех случаях, когда потеря

детализации несущественна.

относятся:

И(>|<), ИЛИ(/),

К логическим операциям

Н Е ( | ) и

сложение по модулю 2 (+ ,).

Все логические

операции,

кроме операции |

, двуместные, операция | —

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

К

арифметическим операциям относятся: сложение

( + ),

вычитание (—), умножение (X ) и деление (:)■

Все

арифметические операции — двуместные. Значения

операндов и результата в арифметических выражениях рассматриваются как двоичные числа. Результатом вы­ полнения деления является целая часть частного.

Если операнды (переменные и константы), участвую­ щие в выражении, имеют разную длину, они юстируют­ ся вправо, а слева дополняются нулями. Таким образом, результатом вычисления логического или арифметиче­ ского выражения является величина, длина которой равна длине самого длинного операнда данного выра­ жения. Если длина результата отличается от длины пе­ ременной, стоящей в левой части оператора присваива­ ния, то не вместившиеся левые (старшие) разряды ре­ зультата теряются (или слева к результату приписыва­ ется нужное количество нулей).

46

К операциям Отношения относятся: больше ( > ) ,

больше или равно '(> = ), равно ( = ), не равно ( ф ) , меньше или равно ( < = ), меньше' ( < ) . Общин вид вы­ ражения отношения: А от. В, где А, В — логические или арифметические выражения, а от. — некоторая операция отношения. Значением выражения отношения является 1, если значения А и В соответствуют указанной опера­ цией отношения связи, и 0 в противном случае. Значения А и В рассматриваются при этом как целые двоичные числа. Если А и В имеют разную длину, то .они юстиру­ ются вправо и более короткое дополняется слева ну­ лями. Если выражение отношения стоит в правой части оператора присваивания, то результат вычисления вы­ ражения отношения (1 или 0) заносится в самый младший разряд указанной в левой части оператора переменной, а остальные ее разряды заполняются нулями.

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

Для выравнивания переменных разной длины введе­ ны операторы сдвига, которые также следует отнести к операторам присваивания, хотя они и имеют другую форму записи. Имеются две операции сдвига: сдвиг впра­ во (СДВП) и сдвиг влево (СДВЛ).

Вид оператора сдвига:

СДВП (п) А, В;

СДВЛ (/?.) А, В;

содержимое А сдвигается вправо (влево) на п разрядов и заносится в В, причем п правых (левых) разрядов А теряются, а в левые (правые) п разрядов В заносятся нули. Перед началом сдвига А совмещается по крайне­ му правому разряду с В. Значение переменной А в ре­ зультате выполнения оператора не изменяется.

47

Рассмотрим пример:

■РЕГИСТР PI (1 : 10), Р2(1 : 12);

СДВ'П '(5), Р2, Р 1;

Пусть содержимое Р 2 в момент выполнения оператора было рав­ но 1401Г1010101. Тогда в результате выполнения сдвига в Р1 ока­ жется число 0001101110.

Для удобства записи программ в языке введен опе­

ратор группового присваивания:

...,

 

 

 

 

 

 

ЗАНОС (А[, А% ...,

Аи, — В\,

Въ‘

Вп)\

 

 

 

 

Здесь А и Аъ ..., Аи,

В ь Вг,

• ■

В „ — названия пере­

менных. Оператор работает следующим

образом:

пере­

PZ

 

менные,

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

левой

части

равенства

 

 

(Ai........ Ah), рассматри­

 

 

ваются как один регистр.

 

 

При этом старшим (ле­

 

 

вым) разрядом его явля­

 

 

ется

старший

разряд

А и

 

 

а

младшим — младший

 

 

разряд

Ah. Аналогичным

 

 

образом

склеиваются

Вi,

 

 

В2, ..., Вп. Два получен­

 

 

ных таким образом «сверх­

 

 

регистра»

а и р

юстиру­

 

 

ются

по младшим разря­

 

 

дам, после чего выполня­

 

 

ется

присваивание

а = р .

 

 

Среди Вi могут быть кон­

 

 

станты.

В этом

случае в

 

 

а для

записи

константы

 

 

отводится

нужное

число

 

 

разрядов в том месте, где

 

 

она находится.

 

 

 

 

 

Рассмотрим

пример:

 

 

 

 

ЗАНОС

 

(AI,

А2

 

 

(8: 10) = А З

(12: 13),

6В);

 

 

 

Пусть

А1 — 4-разряднын

 

 

регистр и содержимое 12 и 13

 

 

разрядов АЗ равно 10. После

 

 

выполнения

оператора

а =

 

 

=0010110

 

(т. е. А1 =0010,

А2

Рис. 2-8.

 

(8 : 10) =

110).

 

 

 

 

48

Для управления передачами информации между ре­ гистрами в ЦВМ обычно используются сигналы приема в регистр и установки пуля, которые одинаковым обра­ зом заходят на входные комбинационные схемы всех разрядов данного регистра. Сигналы эти являются одно­ разрядными и поэтому не могут быть непосредственно использованы в выражениях. Для пояснения рассмо­ трим схему рис. 2-8. В регистр Р1 производится передача из регистра Р2 по команде ПРИЕМ. Пусть содержимое Р2 равно 0111. Тогда в результате выполнения оператора Р1=Р2*ТП содержимое Р1 окажется равным 0001, а не 0111. Для описания таких схем в языке введена воз­ можность «размножения» одноразрядных переменных и двоичных констант в выражениях на заданное число разрядов. Это записывается следующим образом: ‘А (п), где А — название переменной (или одноразрядная дво­ ичная константа), а п — количество разрядов. Тогда рас­ сматриваемая схема описывается так: Р1 = Р 2*Т П (4)‘; в результате выполнения этого оператора в Р1 засыла­ ется значение 0111.

2-7. ОПЕРАТОРЫ УПРАВЛЕНИЯ

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

мы

(например, для функционального моделирования),

в

языке введены операторы управления. Кроме

того,

операторы управления

необходимы

для описания

ми­

кропрограмм.

что любой

оператор программы

 

Выше говорилось,

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

Оператор безусловной передачи управления

ИДИ А;

всегда передает управление оператору с меткой А (т. е. начинает выполняться последовательность операторов, начиная с оператора, имеющего метку А).

4— 504

49

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