
3.3. Моде лирование при помощи изменяемых данных
261
Inverter And-gate Or-gate
(инвертор) (И-элемент) (ИЛИ-элемент)
Рис. 3.24. Элементарные функциональные элементы в имитаторе цифровых схем.
простых элементов. Хотя поведение этих составляющих элементов примитивно, сети,
из них собранн ые, могут обладать весьма сложным поведением. Компьютерная имита-
ция проек тируемых электронных схем служит важным инструментом для инженеров-
специалистов по цифровым системам. В этом разделе мы спроектируем систему для
имитационного моделирования цифровых схем. Система эта будет служить примером
программ особого вида, называемых имитация, управляемая событиями (event-driven
simulation), в которых действия («события») вызывают другие события, которые про-
исходят спустя некоторое время и при этом в свою очередь вызывают события, и так
далее.
Наша вычислительная модель цифровой схемы будет состоять из объектов, соответ-
ствующих элементарным компонентам, из которых строится схема. Имеются провода
(wires), несущие цифровые сигналы (digital signals). В каждый данный момент циф-
ровой сигнал может иметь только одно из двух возможных значений, 0 или 1. Кроме
того, имеются различные виды функциональных элементов (function boxes), которые
соединяют пр овода, несущие входные сигналы, с выходными проводами. Такие элементы
порождают выходные сигналы, выч исляя и х на основе входных сигналов. Выходной сиг-
нал задерживается на время, зависящее от типа функционального элемента. Например,
инвертор (inverter) — элементарный функциональный элемент, который обращает свой
входной сигнал. Если входной сигнал инвертора становится 0, то на одну инверторную
задержку позже сигнал на выходе станет равен 1. Если входной сигнал станет 1, то на
инверторную задержку позже на выходе появится 0. Инвертор символически изображен
на рис. 3.24. И-элемент (and-gate), также показан ный на рис. 3.24, имеет два входа и
один выход. Он обеспечивает на выходе сигнал, равный логическому И (logical and) от
входов. Это означает, что если оба входных сигнала становятся равными 1, то одну И-
задержку спустя И-элемент заставит свой выходной сигнал стать 1; в противном случае
на выходе буде т 0.
ИЛИ-элемент (or-gate) представляет собой подобн ый же элементарный функцио-
нальный элемент, который обеспечивает на выходе сигнал, равный логическому ИЛИ
(logical or) своих входов. А именно, выходной сигнал станет равен 1, если хотя бы один
из входных сигналов окажется 1; в противном случае на выходе буде т 0.
Соединяя элементарные функции, можно получать более сложные. Для этого на-
до подсоединять выходы одних функциональных элементов ко входам других. Напри-
мер, схема полусумматора (half-adder) на рис. 3.25 состоит из ИЛИ-элемента, двух
И-элементов и инвертора. Полусумматор получает два входа, A и B, и имеет два выхода,
S и C. S становится 1, когда ровно один из сигналов A и B равен 1, а C тогда, когда и A,
и B равны 1. Из схемы можно видеть, что по причине задержек выходные сигналы могут
генерироваться в разное время. Отсюда происходят многие сложности в проектировании
цифровых схем.