Использование подсхем

Теперь предположим, что мы хотим построить мультиплексор 4-в-1, используя экземпляры нашего мультиплексора 2-в-1. Конечно, сначала мы создадим новую схему, которую мы назовём "4:1 MUX". Чтобы добавить мультиплексоры 2-в-1 в нашу схему, мы нажмём один раз на схему 2:1 MUX в панели проводника, чтобы выбрать её в качестве инструмента, и затем мы можем добавлять её копии, представляемые в виде коробок, щёлкая на холсте.

Если вы щёлкнули два раза на схеме 2:1 MUX в панели проводника, то вместо этого окно переключится на редактирование схемы 2:1 MUX.

После создания схемы мы получим следующее.

Наша схема для мультиплексора 4-в-1 использует три копии мультиплексора 2-в-1, каждая из которых отрисована в виде коробки с контактами вдоль краёв. Контакты на этой коробке соответствую входным и выходным контактам в схеме 2:1 MUX. Два контакта на западном крае коробки соответствуют двум контактам, направленным на восток в схеме 2:1 MUX; контакт на восточной стороне коробки соответствует контакту схемы 2:1 MUX, направленному на запад (который является выходным контактом); а контакт на южной стороне коробки соответствует контакту схемы 2:1 MUX, направленному на север. Порядок контактов на западной стороне коробки соответствует их порядку сверху вниз на чертеже подсхемы. (Если бы было несколько контактов на северной или южной стороне коробки, то их порядок соответствовал бы порядку слева направо в подсхеме.)

Если контакты на чертеже подсхемы имеют метки, связанные с ними, то Logisim будет показывать эти метки в подсказке (то есть во временном текстовом поле), когда пользователь наведёт мышь на соответствующее место компонента подсхемы. (Если вы находите эти подсказки раздражающими, вы можете отключить их через вкладку Холст окна Параметры Проекта.)

Некоторые другие компоненты тоже будут показывать эти подсказки: для некоторых контактов встроенных триггеров, например, проведение мышью над ними объясняет, что делает этот контакт.

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

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

Теперь у нас есть объявленный мультиплексор 4-в-1, и мы можем использовать его в других схемах. Logisim не имеет ограничения на то, насколько глубоко вложенными могут быть схемы - хотя он будет возражать против вложения схем внутрь себя.

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

Далее: Отладка подсхем.