§ Про Логисим
Эта программа весьма удачно придумана для того, чтобы делать на ней различные интересные вещи, симулировать практически любые цифровые устройства и обучаться цифровому инженерному мастерству. Так много красивых слов написал, а теперь пора и своими словами рассказать. Логисим — довольная простая программа для достаточно большого круга задач, которые касаются симулятора цифровых схем. Да, она упрощенная, да, она иногда глючит, у нее нет такого понятия как "скорость распространения сигналов", но зато с помощью логисима можно набросать пару Hello World или весьма сложных процессоров и остаться довольным.Самое главное, что не только самые базовые электронные логические цепи вроде транзистора или резистора-подтяжки, но целые модули ввода-вывода, умножения, даже деления, а также клавиатура и терминал. Всё есть, только осталось творить процессоры и электронные устройства.
§ Секция "проводка"

Теперь более подробно опишу то, что делает каждый из них.
- Разветвитель разъединяет или, наоборот, объединяет провода в группы проводов. С его помощью можно собрать провода в пучок или разобрать из пучка по одному проводку или по разным пучкам. Весьма универсальная вещь, которая легко позволяет смешивать любые пучки проводов.
- Контакт — это входящий сигнал, который может принимать разные значения, 0, 1 или "не присоединен", но чтобы была такая возможность, необходимо пройти в свойства и выбрать "Три состояния: да". И как можно заметить, свойств у контакта довольно много. Его можно назначить как входом (по умолчанию так), так и выходом, а также выбрать направление метки и его шрифт.

- Датчик — аналог "щупа", с помощью которого можно визуально проверять провода, не выбирая их каждый раз. Это электронное табло, которое высвечивает состояние какого-то провода или пучка из проводов
- Тоннель — весьма полезная вещь для того чтобы не "тащить" сквозь всю схему большое количество проводов. Он работает как, так сказать, подземный туннель, скрывая лишние провода на схеме. Чтобы было понятно, какой тоннель используется, надо обязательно входной и выходной тоннель назвать одной меткой. На иллюстрации видно, как это правильно сделать.

- Согласующий резистор — в схемах, где используются транзисторы, не принадлежащих КМОП-логике, можно использовать согласующие транзисторы, которые занимаются тем, что "подтягивают" провод, который остался не подключенным ни к чему, к какому-то определенному логическому уровню (0 или 1). Это можно использовать не только для транзисторной, но и для диодной логики, создавая матрицы ПЗУ, например.
- Тактовый генератор — сердце любого процессора. Аналогия с сердцем тут даже не случайна. Тактовый генератор "бьется" с определенной частотой, выполняя определенное количество колебаний в секунду, например, 25 миллионов тактов в секунду, допустим. В логисиме такая скорость недостижима, тут частота берется поскромнее, например, 1 Гц, 1 кГц или 4.1 кГц от силы. Для простых схем и процессоров этого вполне достаточно.
- Константа — это некоторое заранее заданное число, причем число может быть задано как 1-битное, так и 32-х битное и любое количество бит от 1 до 32. Просто некоторое заданное число.
- Питание и Земля — это фактически тоже самое что и константа, но заданное только 1 битом (либо 0 — земля, либо 1 — питание)
- Транзистор — ясное дело, это транзистор, электронная кнопка, которая включается и выключается в зависимости от того, какой сигнал пришел на базу. Транзисторы здесь бывают двух типов, n-тип, это когда транзистор открывается, есть на базе подано 1, и p-тип, когда все наоборот, открывается если на базе подан 0. О транзисторах вообще поговорим в другой главе подробнее.
- Передаточный вентиль — весьма странная вещь, применение которой я до сих пор не придумал. Суть его в том, что это тоже самое, что и транзистор, но открывается и закрывается он двумя проводами на базе. Пример открытия и закрытия вентиля приведен ниже. Если же подать на обе базы либо по нулям, либо по единицам, то будет ошибка.


- Расширитель битов — полезная вещь при разработке процессоров, когда нужно например, из 8 битов сделать 16 бит, с различными вариациями расширения старших бит. Например, можно настроить компонент так, чтобы при расширении до 16 бит из 8 старшие биты становились либо все 0, либо 1, либо значение берется извне, либо в зависимости от старшего бита из 8-битного числа (знаковое расширение).