Для моделирования всех однотипных элементов используется одна и та же подпрограмма. В нашем примере модель AND2 для двухвходовой схемы 2И будет вызвана дважды, сначала для обработки элемента DD2, а затем - элемента DD3.
Метод обработки всех элементов схемы и в неизменном порядке нельзя назвать эффективным. Допустим, что в текущий момент времени переключается только вход INP1 мультиплексора (рис.5,а), а входы INP2 и ADR сохраняют свои старые значения. Это означает, что элементы DD1 и DD3 не изменят своих состояний. Спрашивается, зачем их моделировать, если в результате мы не получим ничего нового?
Отсюда следует вывод, что если находить и обрабатывать только те элементы, на входах которых обнаружены переключения (события), то можно существенно повысить эффективность моделирования. Тем более что таких элементов совсем не много (по различным оценкам менее 2…10% от общего объёма схемы).
Вот для этих целей и нужна левая часть таблицы цепей, а точнее её первый столбец. В нём задаются ссылки на таблицу элементов, по которым моделятор находит элементы-приёмники данного сигнала. Например, чтобы узнать, на какие элементы «работает» вход ADR, достаточно заглянуть в левый столбец и по ссылкам 1, 3 найти в таблице элементов имена приёмников DD1 и DD3.
Аналогичным образом для сигнала F2 по ссылке 4 находится его элемент-приёмник DD4. Но ведь сигнал F2 формируется выходом элемента DD2. Следовательно, указатель 4 описывает в действительности электрическое соединение между выходом DD2 и входом DD4.
Вернёмся к ранее рассмотренной ситуации, когда в текущем цикле работы моделятора переключается только сигнал INP1. В таблице цепей (столбец 1) сообщается, что этот сигнал воздействует только на один элемент.
Следовательно, моделятору надо найти и промоделировать один единственный элемент-приёмник (последователь) этого сигнала. По ссылке 2 в таблице элементов выясняется имя искомого элемента – DD2. А дальше всё происходит по уже известным нам правилам. Получив новое (будущее) значение выходного сигнала F2, моделятор сравнит его с текущим значением и выяснит, распространится ли переходной процесс на элемент DD4.
Выход элемента DD4 подключён к внешней цепи OUT1, то есть вообще не имеет последователей (значение указателя равно nil - никакой). Таким образом, переключения в схеме закончатся, как только будут достигнуты её внешние выходы. Более подробно рассмотренная технология моделирования обсуждается в лекции 11.
Мы рассмотрели один из простейших способов табличного описания моделируемой схемы. В действительности использование указателей гораздо шире, чем это показано на рис.6. Чтобы сделать работу со структурами данных более эффективной, в описание добавляют ещё две таблицы: таблицу входных и таблицу выходных соединений (рис.7). Для простых схем подобные нагромождения могут показаться «архитектурными излишествами», однако для сложных схем они вполне оправданы.
Иногда информация о самих элементах (выполняемая функция, задержки, имена контактов) представляется в виде отдельной таблицы, и на неё задаются соответствующие ссылки. Предлагаем Вам самостоятельно выполнить эту работу, несколько модифицировав описание, показанное на рис.7.
Понятно, что любой вид описания содержит фактически одну и ту же информацию о структуре объекта и может быть конвертирован из одной формы представления в другую без особых проблем. Например, по табличному описанию объекта Вы без труда сумеете восстановить его функциональную схему.
Заканчивая разговор о табличном представлении модели цифровой схемы, заметим, что такое описание имеет ещё одно достоинство – простоту внесения изменений в моделируемую схему. Изменяя ссылки, фактически отражающие пути прохождения сигналов, Вы без труда сможете отлаживать свою схему, пока она не заработает так, как Вам этого хочется.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.