ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.06.2024
Просмотров: 79
Скачиваний: 0
сти условное ранжирование очень трудно, а иногда и невозможно.
Таким образом, при ускорении моделирования за счет ранжирования снижается универсальность модели рующей программы. Здесь, однако, возможно компро миссное решение: расположить в порядке возрастания рангов уравнения тех элементов, для которых удалось
ПРИЕМ |
ГАШ2 |
СДВЛЕВ |
ГАШ1 |
|
Рис. 2-5. Кольцевой |
сдвигающий регистр. |
|||
1 на шине СДВПР (СДВЛЕВ) определяет |
направление сдвига. Триггеры Т1. |
|||
ТЗ, |
TS |
образуют основной регистр Р\\ Т2, |
Т4, Тб — вспомогательный регистр |
|
Р2. |
Цикл сдвига состоит нз последовательности сигналов гашения Р2 (ГАШ2), |
|||
передачи нз Р1 в Р2 (ПРИЕМ), гашения Pi |
(ГЛШ1) и передачи со сдвигом нз |
|||
Р2 в Р1 (СДВПР или СДВЛЕВ). |
|
32
определить ранг, оставив остальные неранжированными. При этом количество итераций может сократиться (во всяком случае не возрастет), хотя и не обязательно будет равно трем.
Еще один способ ускорения моделирования — так называемое «событийное моделирование» [Л. 10, 12] — использует то обстоятель ство, что в каждом такте, как правило, срабатывают лишь несколько процентов элементов схемы, поэтому можно на каждой итерации ре шать лишь те уравнения из (2-1), в которых изменилось значение уотя бы одной из переменных в правой части. Для этого перед мо делированием (при трансляции) строится специальная таблица опро сов вперед (ТОВ), в которой одна строка отведена для каждого
Рис. 2-6.
элемента и входных сигналов схемы. В строке некоторого элемента Ri указаны ссылки на уравнения тех элементов R ,• (адреса этих уравнений в списке), на входы которых попадает выходной сигнал элемента Ri. При моделировании по ТОВ определяются уравнения, которые надо решать на данной итерации. На первый взгляд может показаться, что событийное моделирование позволяет ускорить вы полнение итерации в п/р раз, где п — число элементов схемы, а р — число сработавших на данной итерации элементов. Однако на самом деле это не так, особенно если моделирование производится на уровне реальных физических элементов.
Рассмотрим, |
например, трехвходовые элементы |
ИЛИ — НЕ |
(рис. 2-6), нагрузочная способность которых равна 4. |
При этом |
|
решать придется |
не р уравнений, a k (p^.k^.'4p) и ускорение полу |
чится равным n/k. При использовании компилирующего метода ре шение одного уравнения займет 3 команды '(на ЦВМ типа БЭСМ-4):
Р \ =-л, V
Я = 1 ® Л .
Здесь символом |
ф обозначена операция сложения |
по модулю |
2, а 1 — константа, |
все разряды которой равны 1. При |
событийном |
моделировании для выборки из ТОВ и организации списка срабаты вающих элементов потребуется около 40 команд, т. е. в 14 раз боль ше. Таким образом, событийное моделирование в этом случае не только не ускоряет, но может даже замедлить программу.
Другим недостатком метода является большой объем опера тивной памяти, необходимый для размещения ТОВ. В нашем при мере каждая строка ТОВ потребует не менее 2 ячеек памяти, т. е. размер описания схемы увеличится почти в 2 раза. Событийное моделирование может оказаться эффективным при моделировании очень больших схем, которые не помещаются целиком в оператив-
3—504 |
33 |
мон памяти, а вызываются туда по частям с внешних накопителей-] (магнитных барабанов или дисков). Такой обмен очень замедлит* выполнение итерации, а п-ри событийном моделировании количество обращений к внешним «накопителям «может быть значительно уменьшено.
Мы рассмотрели различные способы организации мо делирующих программ. Самым простым является метод интерпретации; в этом случае для описания схемы тре буется наименьший объем оперативной памяти. Однако выполнение итерации при использовании интерпрети рующей программы занимает сравнительно много ма шинного времени. В ряде случаев значительное ускоре ние счета может быть получено при использовании ме тода компиляции, но при этом возрастает необходимый объем памяти (или приходится уменьшить максималь ный размер схемы). Оба метода универсальны, т. е. при годны для моделирования работы произвольных син хронных и асинхронных схем, построенных на любых физических элементах, реализующих логические функции И, ИЛИ, НЕ. В ряде случаев скорость моделирования может быть увеличена за счет предварительного ранжи рования уравнений (2-1); значительно сокращаются затраты машинного времени на моделирование при мно гопрограммном моделировании. Наконец, событийное моделирование позволяет ускорить выполнение итера ции для очень больших схем.
2-3. ПРИМЕНЕНИЕ МОДЕЛИРОВАНИЯ ДЛЯ ПРОВЕРКИ СХЕМ И ПОСТРОЕНИЯ ТЕСТОВ
Программы, о которых шла речь, предназначены для моделирования работы устройства на самом детальном уровне — уровне логических схем, составленных в базо вых элементах или в реальных физических элементах, выполняющих элементарные логические операции. Моде лирование на уровне логических схем необходимо преж де всего для проверки функционирования этих схем, по скольку разработка логических схем ЦВМ, как правило, выполняется вручную и, следовательно, эти схемы содер жат ошибки. Ошибки в логической схеме обнаружива ются только при наладке машины, причем устранение их может привести к переделке значительной части кон структорской и технологической документации.
Проверка функционирования логической схемы может состоять из ряда этапов;
34
проверки логических функций, реализуемых схемой; проверки временных соотношений; проверки надежности (отсутствие риска и гонок).
Проверка реализуемых схемой логических функций выполняется путем прогонки теста, т. е. моделирования работы схемы на некотором наборе значений входных сигналов. При этом в заданные моменты времени нужно сравнивать полученные при моделировании значения вы ходных сигналов с заранее вычисленными (блок 6 на рис. 2-2). Естественно, что так нельзя провести полную проверку схемы (при всех возможных начальных состоя ниях схемы и комбинациях входных сигналов).
Однако если моделируется работа устройства доста точно большого размера (типа логического блока ЦВМ), то этим методом можно проверить все выполняемые им команды, поскольку для каждого логического блока чис ло таких команд сравнительно невелико и для выполне
ния команды требуется |
80— 100 |
тактов моделирования. |
|||||
Задача |
облегчается еще и тем, |
что |
выполнение |
каж |
|||
дой команды |
обычно |
не |
зависит |
от остальных |
(во |
||
всяком |
случае, |
в правильно |
спроектированном устрой |
стве), т. е. все команды можно моделировать по от дельности.
Для проверки временных соотношений необходимо учесть времена срабатывания элементов и, может быть, задержки распространения сигналов. Это делается путем включения фиктивных линий задержки на выходе эле ментов схемы (эти линии задержки могут быть внесены в описание схемы при трансляции). Можно использовать
здесь |
метод |
простой итерации, при |
этом может быть |
|||
распечатана |
и |
последовательность |
работы |
элементов |
||
в каждом такте. |
|
|
|
|
||
Проверка |
надежности |
произвольной схемы значи |
||||
тельно |
труднее. |
Для этой |
цели может быть |
использо |
вано .условие 2: схема, в которой оно выполняется, сво бодна от риска и гонок. Выполнение условия 2 проверя ется в блоке подготовки итерации (рис. 2-4) сравнением значений входных сигналов каждого элемента до и после итерации (в ЛШО и ЛШ1). Однако условие 2 является достаточным, но не необходимым, т. е. схема, в которой оно не выполняется, может оказаться устойчивой и однозначной. Поэтому в случае невыполнения его окон чательное решение должен принимать разработчик схемы.
3* |
35 |
Другое применение моделирования на уровне логи ческих схем — автоматическая проверка полноты тестов устройств и составление диагностических таблиц [Л. 8, 13]. Тест представляет собой совокупность программ (под программой здесь понимается либо некоторая по следовательность выполняемых устройством команд, ли бо некоторый набор значений входных сигналов, если проверяемое устройство является отдельной ячейкой или блоком). Тест считается полным, если он обеспечивает фиксацию любой неисправности устройства (из рассма триваемого класса неисправностей), т. е. если результа ты выполнения теста на исправном и неисправном устройствах отличаются друг от друга. Класс про веряемых неисправностей зависит от назначения теста и элементов устройства. Например, триггер может иметь четыре типа неисправностей: находится постоянно в состоянии 1; в состоянии 0; значение обоих (прямого и инверсного) выходов равно 1; равно 0. Ди одная комбинационная схема с п входами может иметь 2п неисправностей, соответствующих обрыву и коротко му замыканию каждого из диодов. Могут рассматри ваться неисправности, заключающиеся в обрывах и за мыканиях соединительных проводов, отказах контактов разъемов и т. д. Любая неисправность приводит к изме нению логических функций каких-то элементов схемы и, следовательно, к изменению некоторых уравнений из (2-1). Таким образом, неисправность превращает исход ную схему С в некоторую новую Ci и при моделирова-
рии прохождения полного теста в схеме |
С и в схемах |
Сj (/= 1 , 2, ..., р — номер неисправности) |
должны быть |
получены разные результаты. Если при этом результат выполнения теста для каждой из схем С; отличен от результатов для всех остальных* Cj (/= 1 , 2, ..., t— 1, г'+1, ..., р), то тест позволяет локализовать любую оди ночную неисправность устройства.
Для удобства использования теста строятся специ альные диагностические таблицы. Диагностическая та блица представляет собой матрицу, у которой каждый столбец соответствует одной из проверяемых данным тестом неисправностей (т. е. одной из схем Cj), а каж дая строка — одной из программ теста. Элемент матрицы Щк показывает результат выполнения программы I схе мой Ch-ciih —1, если этот результат отличается от ре зультата выполнения программы I исправной схемой С
36
и й/л= 0 в противном случае. Тест полон, если в каждом столбце диагностической таблицы есть хотя бы одна единица, и позволяет локализовать любую одиночную
Рис. 2-7. Блок-схема программы по строения диагностических таблиц.
неисправность из заданного списка, если все столбцы попарно различимы.
На рис. 2-7 изображена блок-схема программы по строения диагностических таблиц.
Блок 1 подготавливает моделирование очередной программы теста (устанавливает начальное состояние схемы, задает значения входных сигналов). Если тест не кончился, производится моделирование (блок 3 явля ется программой моделирования) и формируется оче редной элемент аш диагностической таблицы (блок 4). После окончания теста в схему вносится очередная не исправность (блок 5) и, если список неисправностей не исчерпан, повторяется прогон теста. После моделирова ния всех Cj печатаются полученная диагностическая та блица (блок 7) и указания о полноте и избыточности
73
теста (если две пли более строк таблицы совпадают, тО соответствующие программы дублируют друг друга п следует оставить в тесте лишь одну из них).
От программы моделирования, применяемой для по строения диагностических таблиц, требуется, очевидно, максимальное быстродействие. Действительно, даже для очень маленькой схемы, состоящей всего из 100 элемен тов ИЛИ — НЕ типа изображенных на рис. 2-6, диагно стическая таблица содержит 800 столбцов (обрыв и за мыкание каждого входа, постоянный 0 и 1 на выходе
•каждого элемента), т. е. прогон теста на модели надо повторить 800 раз; сам тест может быть тоже достаточ но сложным. С другой стороны, максимальный размер моделируемой схемы в этом случае не очень важен, поскольку составление диагностических таблиц для схе мы большого размера потребовало бы слишком много машинного времени. Проверка функционирования схемы предъявляет иные требования к программе моделирова ния: моделирование схемы возможно большего размера на сравнительно простых (коротких) тестах. Поэтому для составления диагностических таблиц целесообразно использовать методы моделирования, дающие наиболь шее быстродействие: программу компилирующего типа и многопрограммное моделирование, тогда как для про верки функционирования больше подходит программа интерпретирующего типа, позволяющая увеличить раз мер моделируемой схемы.
Некоторые данные о возможностях программ моде лирования обоих типов приведены в табл. 2-1.
Т а б л и ц а 2-1
Тип программы |
Размер схемы |
Машинное время/такт |
||
моделирования |
||||
|
|
|
||
Компилирующая |
~ 1 500 |
элементов |
— 0,2 с |
|
Интерпретирующая |
~ 3 000 |
элементов |
с |
Предполагается, что моделируемая схема ранжируе ма и построена на элементах типа ИЛИ — НЕ, И — НЕ, и для моделирования используется ЦВМ БЭСМ-4 с 2 кубами памяти (8192 слова).
38
2-4. ЯЗЫКИ ФОРМАЛЬНОГО ОПИСАНИЯ ЦИФРОВЫХ УСТРОЙСТВ
Моделирование иа уровне детальной логической схе мы обладает ограниченными возможностями: так можно моделировать работу сравнительно небольших схем на довольно коротких (по числу тактов) входных последо вательностях. Составление тестов и особенно блоков ими тации довольно трудоемкая работа; это обстоятельство нередко тормозит практическое применение моделирова ния. Тем не менее для некоторых задач моделирование на уровне логической схемы необходимо: например, за дачу построения дигностических таблиц нельзя решать иначе, поскольку здесь требуется локализовать неис правности каждого элемента схемы.
Однако для таких задач логического проектирова ния, как выбор лучшего варианта структурной схемы, проверка блок-схемы машины, уровень этот оказывается слишком «мелкомасштабным». Кроме того, задачи та кого типа должны решаться до разработки детальной логической схемы. Таким образом, логическое проекти рование требует средств (язык и основанная на нем си стема моделирования) для описания и моделирования работы ЦВМ на различных уровнях — от структурной схемы вычислительного комплекса до детальной логиче ской схемы отдельного узла машины.
Описание логики машины во многом сходно с описа нием программы для ЦВМ, поэтому языки описания ло гических схем близки к универсальным языкам програм мирования (ФОРТРАН, АЛГОЛ); вообще говоря, эти языки могут использоваться и для описания схем. При этом описание схемы является программой на данном языке; триггеры, входные сигналы и выходные сигналы комбинационных схем описываются в программе как ло гические переменные; регистры—как одномерные логиче ские массивы (число элементов массива равно разрядно сти соответствующего регистра); запоминающие устрой
ства— как матрицы (число |
строк равно объему ЗУ, |
число столбцов — разрядности |
ячейки). Однако исполь |
зование для описания логических схем универсальных языков программирования имеет ряд существенных недо статков: отсутствие средств для описания динамических процессов (из-за этого нельзя моделировать временные соотношения и параллельную работу устройств ЦВМ) и
39