diff --git a/README.md b/README.md index 644f18e58..c80c9d2f9 100644 --- a/README.md +++ b/README.md @@ -78,13 +78,13 @@ All other tests, including the HDL tests, were executed without errors. ## Documentation ## The [documentation](https://github.com/hneemann/Digital/releases/latest) is available in English, -German, Spanish, Portuguese, French and simplified Chinese. +German, Spanish, Portuguese, French, simplified Chinese and Russian. It is still very incomplete but it contains a chapter "First Steps" which explains the basic usage of Digital. The documentation also contains a list of available 74xx chips and a list of available keyboard shortcuts. ## Translations ## -So far Digital is available in English, German, Spanish, Portuguese, French and simplified Chinese. +So far Digital is available in English, German, Spanish, Portuguese, French, simplified Chinese and Russian. If someone wants to add a new translation, please let me [know](mailto:digital-simulator@web.de). I can provide you with a special file for translation. This file is much easier to diff --git a/src/main/resources/lang/lang.xml b/src/main/resources/lang/lang.xml index e00b53145..7eb753b32 100644 --- a/src/main/resources/lang/lang.xml +++ b/src/main/resources/lang/lang.xml @@ -27,4 +27,5 @@ modified keys. + diff --git a/src/main/resources/lang/lang_ru.xml b/src/main/resources/lang/lang_ru.xml new file mode 100644 index 000000000..14867642b --- /dev/null +++ b/src/main/resources/lang/lang_ru.xml @@ -0,0 +1,2520 @@ + + + Адрес + Оглавление + Общие + Версия + Дата + максимум + Ниже описаны доступные настройки симулятора. + Атрибуты + Открытый контур + Включенная схема: + Открывает схему в новом окне. + Справка + Показывает краткое описание этого элемента. + Базовый + Расширенный + Отменить изменения + Изменить + Продолжить редактирование + Загрузить + Сохранить + Создать + Создать схему в отдельном окне + Изменить (отдельное окно) + Открывает диалог как немодальный диалог + Браузер + Открывает текст справки в браузере. Позволяет распечатать текст. + Очистить + Все значения обнулены! + Переходы + Все возможные переходы добавлены как тестовые примеры. Используется для создания тестовых примеров для тестирования самого симулятора. + Новое имя + Все равно сохранить + Перезаписать + Применить + Редактирует содержимое выбранного ПЗУ / EEPROM + Удаляет сохраненные данные для выбранного ПЗУ. Вместо этого используется контент, который хранится непосредственно в ПЗУ. + Шаблон + Создает шаблон SVG, который затем можно редактировать с помощью Inkscape. + Импорт + Импортируйте файл SVG. Чтобы создать подходящий файл SVG, проще всего сначала создать + шаблон SVG, а затем отредактируйте его. + Предупреждение + Отменить + Digital + Выражение + Входные данные + Выводы + Атрибуты + поиск + Ошибка при вставке данных! + + + + {0}. входное значение для логической операции. + Возвращает результат логической операции. + + И + Двоичный логический элемент И. Возвращает высокий уровень, только если все входы также установлены в высокий уровень. + Также можно использовать шины с несколькими битами в качестве входов и выходов. В этом случае выполняется поразрядное И. + Это означает, что младшие биты всех входов связаны логическим оператором И и выводятся как младшие биты на выходе. + То же самое происходит с битом 1, битом 2 и так далее. + + И-НЕ + Комбинация AND и NOT. + Возвращает 0, только если для всех входов установлено значение 1. Если для одного из входов установлено значение 0, для выхода устанавливается значение 1. + Также можно использовать шины с несколькими битами на вход. В этом случае операция применяется к каждому + бит входов. + + ИЛИ + Логический элемент логического ИЛИ. Возвращает 1, если для одного из входов установлено значение 1. + Если все входы установлены на 0, выход также устанавливается на 0. + Также можно использовать шины с несколькими битами в качестве входов и выходов. В этом случае выполняется поразрядное ИЛИ. + Это означает, что младшие биты всех входов связаны с помощью ИЛИ и выводятся как младшие биты на выходе. + То же самое происходит с битом 1, битом 2 и так далее. + + ИЛИ-НЕ + Комбинация ИЛИ и НЕ. + Возвращает 0, если для одного из входов установлено значение 1. Если все входы установлены на 0, выход также устанавливается на 1. + Также можно использовать шины с несколькими битами на вход. В этом случае операция применяется к каждому + бит входов. + + XOR + Если используются два входа, выход равен 0, если оба входных бита равны. + В противном случае на выходе будет установлено значение 1. + Если используется более двух входов, он ведет себя как каскадные вентили XOR (A XOR B XOR C = (A XOR B) XOR C). + Также можно использовать шины с несколькими битами на вход. В этом случае операция применяется к каждому + бит входов. + + XNOr + Комбинация XOR и NOT. Входы комбинируются с операцией XOR. + Результат этой операции инвертируется. + Также можно использовать шины с несколькими битами на вход. В этом случае операция применяется к каждому + бит входов. + + НЕ + Инвертирует входное значение. 1 становится 0, а 0 становится 1. + Также можно использовать шину с несколькими битами на вход. В этом случае операция применяется к каждому + бит входов. + + Вход элемента НЕ. + Инвертированное входное значение. + Таблица поиска + LUT + Получает выходное значение из сохраненной таблицы. + Таким образом, этот вентиль может имитировать любой комбинаторный вентиль. + + Ввод {0}. Этот вход в сочетании со всеми другими входами определяет + адрес возвращаемого сохраненного значения. + Возвращает сохраненное значение по адресу, заданному через входы. + Задержка + Задерживает сигнал на одно время задержки распространения. + Задерживает сигнал на регулируемое количество задержек гейта. + Все остальные компоненты в Digital имеют задержку затвора, равную одному времени задержки распространения. + Этот компонент может использоваться для реализации любой необходимой задержки распространения. + + Ввод сигнала для задержки. + Входной сигнал задерживается на время задержки в один строб. + + + + + Вывод + Может использоваться для отображения выходного сигнала в цепи. + Этот элемент также используется для подключения схемы к схеме внедрения. + В этом случае соединение будет двунаправленным. + Также используется для присвоения номера контакта, если генерируется код для CPLD или FPGA. + + Это значение используется для выходного соединения. + светодиод + Светодиод может использоваться для визуализации выходного значения. Принимает один бит. + Загорается, если вход установлен на 1. + Светодиодный вход. Светодиод загорается, если вход установлен на 1. + + RGB-светодиод + Светодиод RGB, цвет которого можно контролировать с помощью трех входов. + К каждому из трех входов подключен канал цвета. + Канал красного цвета. + Канал зеленого цвета. + Канал синего цвета. + + Светодиод с двумя подключениями. + Светодиод с подключениями для катода и анода. Светодиод загорается, + если анод подключен к высокому уровню, а катод подсоединен к низкому уровню. + Этот светодиод нельзя использовать в качестве понижающего резистора. Он действует исключительно как элемент отображения. + Показанный резистор предназначен только для обозначения необходимого последовательного резистора для ограничения тока. + Анодное соединение светодиода. + Катодное соединение светодиода. + + Ввод + Может использоваться для интерактивного управления входным сигналом в цепи с помощью + мышь. Этот элемент также используется для подключения схемы к схеме внедрения. + В этом случае соединение будет двунаправленным. + Также используется для присвоения номера контакта, если генерируется код для CPLD или FPGA. + + Дает значение, которое связано с этим входом. + + DIP-переключатель + Простой DIP-переключатель, который может выводить как высокий, так и низкий уровень. + Выходное значение переключателя. + + Вход часов + Тактовый сигнал. Его можно контролировать по часам реального времени. + В зависимости от сложности схемы достигнутая тактовая частота может быть меньше выбранного значения. + Если частота больше 50 Гц, графическое представление схемы больше не будет обновляться при + каждый такт, чтобы цвета проводов больше не обновлялись. + Если часы реального времени не активированы, ими можно управлять щелчком мыши. + Также используется для присвоения номера контакта, если генерируется код для CPLD или FPGA. + + Переключение между 0 и 1 с выбранной тактовой частотой. + Кнопка + Простая кнопка, которая возвращается в исходное состояние при отпускании. + Выходной сигнал кнопки. + Кнопка со светодиодом + Простая кнопка, которая возвращается в исходное состояние при отпускании. + На кнопке есть светодиод, который можно переключать с помощью входного сигнала. + Выходной сигнал кнопки. + Вход для управления светодиодом. + Текст + Показывает текст в цепи. + Не влияет на симуляцию. + Текст можно изменить в диалоговом окне атрибутов. + + Прямоугольник + Показывает прямоугольник в цепи. + Не влияет на симуляцию. Если в качестве заголовка используется знак минус, заголовок опускается. + + Зонд + Значение измерения, которое может отображаться на графике данных или в таблице измерений. + Этот компонент можно использовать для простого наблюдения за значениями встроенных схем. + Не влияет на симуляцию. + + Значение измерения. + + + + + Лампочка + Лампочка с двумя подключениями. Если ток течет, лампочка загорается! + Направление тока значения не имеет. Лампа загорается, когда входы имеют разные значения. + Лампочка ведет себя аналогично вентилю XOr. + + Подключение + Подключение + Семисегментный дисплей + Семисегментный дисплей, каждый сегмент имеет свой собственный вход управления. + Этот ввод управляет верхней горизонтальной линией. + Этот ввод управляет верхней, правой вертикальной линией. + Этот ввод управляет нижней правой вертикальной линией. + Этот ввод контролирует нижнюю горизонтальную линию. + Этот ввод управляет нижней левой вертикальной линией. + Этот ввод управляет верхней, левой вертикальной линией. + Этот ввод управляет средней горизонтальной линией. + Этот ввод управляет десятичной точкой. + Общий катод. Чтобы включить светодиоды, на этом входе должен быть низкий уровень. + Общий анод. Чтобы включить светодиоды, на этом входе должен быть высокий уровень. + Семисегментный шестнадцатеричный дисплей + Семисегментный дисплей с 4-битным шестнадцатеричным входом + Значение на этом входе отображается на дисплее. + Этот ввод управляет десятичной запятой. + + 16-сегментный дисплей + Вход светодиода имеет 16 бит, которые управляют сегментами. Второй вход управляет десятичной точкой. + 16-битная шина для управления светодиодами. + Этот ввод управляет десятичной точкой. + + Светодиодная матрица + Матрица светодиодов. Светодиоды отображаются в отдельном окне. + Светодиоды столбца дисплея управляются словом данных. На другом входе текущий столбец + выбрано. Так реализован мультиплексный дисплей. + Во время симуляции светодиоды могут гореть бесконечно, чтобы дисплей не мерцал. + + Состояние строки светодиодных индикаторов столбца. + Каждый бит в этом слове данных представляет состояние строки текущего столбца. + Номер текущего столбца, состояние которого в настоящее время видно на другом входе. + График данных + Показывает график данных внутри панели схемы. + Вы можете нанести на график полные тактовые циклы или отдельные изменения гейта. + Не влияет на симуляцию. + + График инициируемых данных + Область действия + Показывает график измеренных значений, при этом измеренные значения сохраняются только в том случае, если + входной сигнал изменится. Сохранение происходит, когда цепь стабилизируется. + Триггер не запускает измерения, как в реальном осциллографе, но каждое событие триггера сохраняет одно + значение измерения для каждого из показанных сигналов. + В качестве прямого входа используется только триггер. Входы и выходы схемы, триггеры, регистры и + компонент зонда можно использовать в качестве сигналов. Это можно активировать в соответствующих компонентах. + + Изменение на этом входе вызывает сохранение измеренных значений. + + Поворотный энкодер + Поворотная ручка с поворотным энкодером. Используется для обнаружения вращательных движений. + сигнал энкодера A + сигнал энкодера B + + Клавиатура + Клавиатура, которую можно использовать для ввода текста. + Этот компонент буферизует ввод, который затем может быть считан. + Для ввода текста открывается отдельное окно. + + Часы. По переднему фронту из буфера удаляется самый старый символ. + Если высокий, выход D активен и выводится один символ. + Он также включает вход часов. + + Последний набранный символ или ноль, если символ недоступен. + Вывод - это 16-битное значение символа Java. + + Этот вывод показывает, что символы доступны. + Его можно использовать для запуска прерывания. + + + Терминал + Вы можете записывать символы ASCII в этот терминал. + Терминал открывает собственное окно для визуализации вывода. + + Часы. Нарастающий фронт записывает значение на входе в окно терминала. + + Данные для записи в терминал + Высокий уровень на этом входе включает вход часов. + + Монитор VGA + Анализирует входящие видеосигналы и отображает соответствующую графику. + Поскольку моделирование не может выполняться в реальном времени, в дополнение к видеосигналам требуются пиксельные часы. + Компонент красного цвета + Компонент зеленого цвета + Компонент синего цвета + Сигнал горизонтальной синхронизации + Сигнал вертикальной синхронизации + Пиксельные часы + + MIDI + Использует систему MIDI для воспроизведения нот. + Примечание + Объем + Если установлено, это означает нажатие клавиши клавиатуры (событие нажатия клавиши), + если не установлен, это означает отпускание клавиши (событие нажатия клавиши). + + Включает компонент + Если высокий, значение N используется для изменения программы (инструмента). + Часы + + Шаговый двигатель, униполярный + Униполярный шаговый двигатель с двумя концевыми выключателями. + Поддерживаются полный шаговый привод, полушаговый привод и волновой привод. + + Переключатель конечного положения 0 становится равным 1, когда угол двигателя равен 0 °. + + Переключатель предельного положения 1 становится равным 1, когда угол двигателя составляет 180 °. + + Фаза 0 + Фаза 1 + Фаза 2 + Фаза 3 + Подключение катушки с общим центром + + Шаговый двигатель, биполярный + Биполярный шаговый двигатель с двумя концевыми выключателями. + Поддерживаются полный шаговый привод, полушаговый привод и волновой привод. + + Переключатель конечного положения 0, становится 1, когда угол двигателя равен 0 °. + + Переключатель предельного положения 1 становится равным 1, когда угол двигателя составляет 180 °. + + Катушка A, положительная + Катушка A, отрицательная + Катушка B, положительная + Катушка B, отрицательная + + + + Земля + Подключение к земле. Вывод всегда равен нулю. + Вывод всегда возвращает 0. + Напряжение питания + Подключение к источнику питания. Вывод всегда один. + Этот вывод всегда возвращает 1. + Не подключен + Этот компонент можно использовать для установки провода на High-Z. + Если вход логического элемента установлен на высокий Z, значение чтения не определено. + Обратите внимание, что на самом деле во многих случаях чрезмерное потребление тока и даже повреждение могут + возникает, если для цифрового входа не установлен высокий или низкий уровень, но он остается неподключенным. + Этот вывод всегда выводит High-Z. + Символ NotConnected здесь недопустим! + Постоянное значение + Компонент, который возвращает заданное значение как простое постоянное значение. Значение можно установить в диалоговом окне атрибута. + Возвращает заданное значение как константу. + Туннель + Соединяет компоненты без проводов. Все элементы туннеля, имеющие одно и то же сетевое имя, + связаны вместе. Работает только локально, поэтому невозможно подключить разные цепи. + Без названия туннели игнорируются. + Подключение к туннелю. + Разделитель / Слияние + Разделяет или создает пучок проводов или шину данных с более чем одним битом. + В автобусе это, например, возможно создание 16-битных соединений без необходимости прокладывать 16 отдельных проводов. + Все 16 соединений можно объединить в один провод. + Разветвитель имеет направление, то есть он может передавать сигналы только в одном направлении. + + Входные биты {0}. + Входной бит {0}. + Выходные биты {0}. + Выходной бит {0}. + + Двунаправленный разделитель + Может использоваться для шин данных и особенно упрощает создание + модули памяти в пакете DIL, так как реализация шины данных упрощается. + Если установлено, значение на клемме общих данных D выводится в бит + выводит D [i], в противном случае биты D [i] выводятся на общий вывод D. + Подключение к общим данным. + Бит данных {0} разделителя шины. + + Подтягивающий резистор + Если цепь находится в состоянии HighZ, этот резистор поднимает цепь до высокого уровня. + В любом другом случае этот компонент не действует. + + "слабый максимум". + Понижающий резистор + Если цепь находится в состоянии HighZ, этот резистор подтягивает цепь к земле. + В любом другом случае этот компонент не действует. + + "слабый минимум". + Драйвер + Драйвер можно использовать для подключения значения сигнала к другому проводу. + Драйвер управляется входом sel. + Если на входе sel низкий уровень, значит, на выходе высокий уровень z. + Если на входе sel высокий уровень, на выходе устанавливается входное значение. + + Входное значение драйвера. + Пин для управления драйвером. + Если его значение равно 1, вход устанавливается на выход. + Если значение равно 0, выход находится в состоянии высокого z. + + Если вход sel равен 1, вход передается этому выходу. + Если вход sel равен 0, этот выход находится в состоянии высокого z. + + Драйвер, инвертированный выбор + Для подключения слова данных к другой строке можно использовать драйвер. + Драйвер управляется входом sel. + Если на входе sel высокий уровень, значит, на выходе высокий уровень z. + Если на входе sel низкий уровень, на выходе устанавливается входное значение. + + Входное значение драйвера. + Пин-код для управления драйвером. + Если его значение равно 0, вход передается на выход. + Если значение равно 1, выход находится в состоянии высокого z. + + Если вход sel равен 0, вход передается этому выходу. + Если вход sel равен 1, этот выход находится в состоянии высокого z. + + + Пин-контроль + Управляющая логика для двунаправленного вывода. + Этот компонент необходим только в контексте генерации VHDL или Verilog, чтобы создать + двунаправленный порт HDL! + Если вы не хотите использовать двунаправленный порт ввода-вывода на ПЛИС, не используйте этот компонент! + Компонент PinControl нельзя использовать во встроенной схеме! Это разрешено только на трассе верхнего уровня! + + Данные для вывода. + Активирует вывод. + Данные для чтения. + Разъем для фактического контакта. Должен быть подключен только один выход + здесь. + + + + + Мультиплексор + Компонент, который использует значение пина sel, чтобы решить, какое входное значение является + установлен на выход. + + {0}. ввод данных мультиплексора. + Значение выбранного входа. + Этот ввод используется для выбора ввода данных, который выводится. + Демультиплексор + Компонент, который может выводить входное значение на один из выходов. + Для остальных выходов установлено значение по умолчанию. + Этот вывод выбирает используемый выход. + Значение этого входа передается выбранному выходу данных. + Вывод данных {0}. + Декодер + Один выбираемый выходной контакт - 1, все остальные выходы - 0. + Вывод {0}. Этот выход равен 1, если выбран входом sel. + Этот вход выбирает разрешенный выход. + Выбранный выход установлен на 1. Все остальные выходы установлены на 0. + Селектор бит + Выбирает один бит из шины данных. + Входная шина + Этот вход выбирает бит + Выбранный бит. + + Приоритетный шифратор + Шифратор + Если один из входов установлен, выводится его номер. + Если одновременно задано несколько входов, выводится наибольшее число. + Номер заданного ввода. + Если этот выход установлен, устанавливается по крайней мере один из входов. + {0}. ввод приоритетного шифратора. + + + + RS-триггер + RS + Компонент для хранения одного бита. + Предоставляет функции «установить» и «сбросить» для установки или сброса сохраненного бита. + Если оба входа переключены на один, оба выхода также выдают один. + Если оба входа возвращаются к нулю одновременно, конечное состояние будет случайным. + + Установленный ввод. + Вход сброса. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + + RS-триггер, синхронизированный + RS + Компонент для хранения одного бита. + Предоставляет функции «установить» и «сбросить» для установки или сброса сохраненного бита. + Если оба входа (S, R) установлены на переднем фронте тактового сигнала, конечное состояние будет случайным. + + Установленный ввод. + Вход часов. Нарастающий фронт инициирует переход состояния. + Вход сброса. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + JK-триггер + JK + Имеет возможность сохранять (J = K = 0), устанавливать (J = 1, K = 0), сбрасывать (J = 0, K = 1) или переключать (J = K = 1) ) сохраненное значение. + Изменение состояния происходит только при нарастающем фронте тактового входа C. + Установленный вход триггера. + Вход часов. Нарастающий фронт инициирует изменение состояния. + Вход сброса триггера. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + D-триггер + D + Компонент, используемый для хранения значения. + Значение на выводе D сохраняется на переднем фронте тактового вывода C. + Можно выбрать разрядность, что позволяет хранить несколько бит. + + Ввод бита для сохранения. + Вывод часов для хранения значения. + Значение на входе D сохраняется на переднем фронте этого вывода. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + Т-триггер + Т + Хранит один бит. Переключает состояние по нарастающему фронту на входе C. + Включает функцию переключения. + Вход часов. Нарастающий фронт переключает выход, если вход T установлен на 1. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + JK-триггер, асинхронный + JK-AS + Имеет возможность сохранять (J = K = 0), устанавливать (J = 1, K = 0), сбрасывать (J = 0, K = 1) или переключать (J = K = 1) ) сохраненное значение. + Изменение состояния происходит только при нарастающем фронте тактового входа C. + Есть два дополнительных входа, которые устанавливают или сбрасывают состояние немедленно без тактового сигнала. + + Установленный вход триггера. + Вход часов. Нарастающий фронт инициирует изменение состояния. + Вход сброса триггера. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + асинхронный набор. Высокое значение на этом входе устанавливает триггер. + асинхронная очистка. Высокое значение на этом входе очищает триггер. + D-триггер, асинхронный + D-AS + Компонент, используемый для хранения значения. + Значение на выводе D сохраняется на переднем фронте тактового вывода C. + Есть два дополнительных входа, которые устанавливают или сбрасывают состояние немедленно без тактового сигнала. + Можно выбрать разрядность, что позволяет хранить несколько бит. + + Ввод бита для сохранения. + Пин управления для хранения бита. Бит на входе D сохраняется на переднем фронте этого вывода. + Возвращает сохраненное значение. + Возвращает инвертированное сохраненное значение. + асинхронный набор. Если установлено в единицу, все сохраненные биты устанавливаются в единицу. + асинхронная очистка. Если установлено в единицу, все сохраненные биты устанавливаются в ноль. + + Монофлоп + Монохромный + Монофлоп устанавливается по переднему фронту на входе часов. + По истечении настраиваемого времени задержки монофлоп будет очищен автоматически. + Монофлоп перезапускается. Его можно использовать только в том случае, если в цепи присутствует ровно один тактовый компонент. + Этот компонент часов используется в качестве временной базы для измерения временной задержки. + + Сбросить ввод. Высокое значение очищает монофлоп. + Вход часов. Нарастающий фронт устанавливает монофлоп. + вывод + инвертированный вывод + + + + Регистр + Рег + Компонент для хранения значений. Можно выбрать разрядность слова данных. + В отличие от D-триггера, регистр обеспечивает вход, который включает часы. + Входной контакт слова данных для сохранения. + Вход часов. Нарастающий фронт сохраняет значение на выводе D. + Включить вывод. Сохранение значения работает, только если этот вывод установлен в высокий уровень. + Возвращает сохраненное значение. + + ПЗУ + Компонент энергонезависимой памяти. + Сохраненные данные можно редактировать в диалоговом окне атрибутов. + + Этот вывод определяет адрес слова данных для вывода. + Выбранное слово данных, если вход sel высокий. + Если вход высокий, выход активируется. Если он низкий, выходные данные находятся в состоянии высокого Z. + + Двухпортовое ПЗУ + ПЗУ + Компонент энергонезависимой памяти. + Сохраненные данные можно редактировать в диалоговом окне атрибутов. + + Этот вывод определяет адрес слова данных, которое будет выводиться на D1. + Выбранное слово данных, если на входе s1 высокий уровень. + Если на входе высокий уровень, активируется выход D1. Если он низкий, выходные данные находятся в состоянии высокого Z. + Этот вывод определяет адрес слова данных, которое будет выводиться на D2. + Выбранное слово данных, если на входе s2 высокий уровень. + Если на входе высокий уровень, активируется выход D2. Если он низкий, выходные данные находятся в состоянии высокого Z. + + ОЗУ, отдельные порты + ОЗУ + Модуль RAM с отдельными входами для хранения и выходом для чтения сохраненных данных. + Адрес для чтения или записи. + Вход часов + Данные, которые будут храниться в ОЗУ. + Вывод вывода данных + Если этот вход высокий, выход активируется, и данные видны на выходе. + Если этот вход высокий и когда часы становятся высокими, данные сохраняются. + + + ОЗУ блока, разделенные порты + ОЗУ + Модуль RAM с отдельными входами для хранения и выходом для чтения + сохраненные данные. Это ОЗУ обновляет свой вывод только по нарастающему фронту тактового сигнала. + Это позволяет использовать блочную ОЗУ на ПЛИС. + + Адрес для чтения или записи. + Вход часов + Данные, которые будут храниться в ОЗУ. + Вывод вывода данных + Если этот вход высокий и когда часы становятся высокими, данные + хранится. + + + EEPROM, разделенные порты + EEPROM + Модуль EEPROM с отдельными входами для хранения и выходом для чтения сохраненных данных. + Адрес для чтения или записи. + Вход часов + Данные, которые будут сохранены в EEPROM. + Вывод вывода данных + Если этот вход высокий, выход активируется, и данные видны на выходе. + Если этот вход высокий и когда часы становятся высокими, данные + хранится. + + + ОЗУ, двунаправленный порт + ОЗУ + Модуль RAM с двунаправленным выводом для чтения и записи данных. + Адрес для чтения и записи. + Часы + Двунаправленное соединение для передачи данных. + Если этот вход высокий, выход активируется, и данные видны на выходе. + Если этот вход высокий, когда часы становятся высокими, данные сохраняются. + + RAM, выбор микросхемы + ОЗУ + Модуль RAM с двунаправленным соединением для чтения и записи данных. + Если на входе CS низкий уровень, компонент отключен. + Это позволяет создать большую оперативную память из нескольких меньших ОЗУ и декодера адресов. + Цикл записи работает следующим образом: при установке CS на высокий уровень выбирается компонент. + Передний фронт в WE фиксирует адрес, а следующий за ним задний фронт в WE сохраняет данные. + + Адрес для чтения и записи. + Если установлено высокое значение, данные записываются в ОЗУ. + Двунаправленное соединение для передачи данных. + Если этот вход высокий, это ОЗУ включено. В противном случае выход всегда находится в состоянии высокого Z. + Если этот вход высокий, сохраненное значение выводится. + EEPROM + Модуль EEPROM с двунаправленным соединением для чтения и записи данных. + Если на входе CS низкий уровень, компонент отключен. + Содержимое данных хранится как в ПЗУ. Таким образом, он сохраняется при завершении и перезапуске моделирования. + Цикл записи работает следующим образом: при установке CS на высокий уровень выбирается компонент. + Передний фронт в WE фиксирует адрес, а следующий за ним задний фронт в WE сохраняет данные. + + Адрес для чтения и записи. + Если установлено высокое значение, данные записываются в EEPROM. + Двунаправленное соединение для передачи данных. + Если этот вход высокий, эта EEPROM включена. В противном случае выход всегда находится в состоянии высокого Z. + Если этот вход высокий, сохраненное значение выводится. + Графическая RAM + Gr-RAM + Используется для отображения растрового изображения. Этот элемент ведет себя как оперативная память. Вдобавок это + показывает его содержимое на графическом экране. Каждый пиксель представлен адресом памяти. Сохраненное значение определяет + цвет пикселя с использованием фиксированной цветовой палитры. Для поддержки страницы реализованы два экранных буфера. + листать. Вход B выбирает отображаемый буфер. Таким образом, общий объем памяти составляет dx * dy * 2 слова. + Используемая палитра структурирована следующим образом: индексы 0-9 соответствуют цветам: белый, черный, красный, зеленый, + синий, желтый, голубой, пурпурный, оранжевый и розовый. Индексы 32-63 отображают значения серого, а индексы 64-127 + представляют 64 значения цвета, каждое с двумя битами на канал цвета. + В результате получается простая палитра, к которой можно обращаться только с помощью 7-битного кода. + Если архитектура поддерживает 16-битный индекс, начиная с индекса 0x8000, режим высокого цвета с 5 битами на цветовой канал + может использоваться, что позволяет использовать 32768 цветов. + + Адрес для чтения и записи. + Если этот вход высокий, когда часы становятся высокими, данные сохраняются. + + Часы + Если этот вход высокий, выход активируется, и данные видны на выходе. + Выбирает экранный буфер для отображения. + Двунаправленное соединение для передачи данных. + + ОЗУ, двойной порт + ОЗУ + RAM с одним портом, который позволяет записывать и читать из RAM, а второй + порт только для чтения. + Этот второй порт можно использовать для предоставления некоторой графической логики доступа к содержимому памяти. Таким образом, процессор + может записывать в ОЗУ, а графическая логика может одновременно читать из ОЗУ. + Порт вывода 1 + Выходной порт 2 + Адрес, по которому выполняется чтение или запись в порт 1. + Адрес, используемый для чтения через порт 2. + Часы + Данные, которые будут храниться в ОЗУ. + Если этот вход высокий, выход активируется, и данные видны на выходе 1D. + Если этот вход высокий и когда часы становятся высокими, данные + хранится. + + + ОЗУ, асинхронно. + Пока мы настроены, он сохраняется. Соответствует очень простой RAM, где + линии адреса и данных напрямую подключены к декодерам ячеек памяти. + Адрес, по которому происходит чтение или запись. + Данные для сохранения. + Разрешение записи. Пока этот вход установлен на 1, значение, применяемое к D, равно + сохраняется по адресу, применяемому к A при изменении A или D. + Вывод сохраненных данных. + + Файл регистра + Регистр + Память с одним портом для записи и двумя портами для чтения из + память одновременно. Может использоваться для реализации регистров процессора. + Два регистра могут быть прочитаны одновременно, а третий может быть записан. + Порт вывода a + Выходной порт b + Регистр, который виден на порту а. + Регистр, который виден на порту b. + Регистр, в который записываются данные. + Если этот вход высокий и когда часы становятся высокими, данные сохраняются. + + Часы + Данные, которые будут сохранены в регистре Rw. + + Счетчик + Счетчик + Простой компонент счетчика. Вход часов увеличивает счетчик. + Может быть сброшен обратно в 0 с помощью входа clr. + Количество битов можно установить в диалоговом окне атрибута. + Вход часов. Нарастающий фронт увеличивает счетчик. + Синхронный сброс счетчика, если он установлен на 1. + Возвращает подсчитанное значение. + Вывод переполнения. Этот вывод устанавливается в 1, если счетчик находится на максимальном значении. + а вход en установлен на 1. + + Если установлено в 1, счетчик включен! + + Счетчик с предустановкой + Счетчик, значение которого можно установить. Кроме того, максимальное значение и подсчет + направление можно указать. + + Счетчик + Возвращает подсчитанное значение. + Вывод переполнения. Он установлен в 1, если вход 'en' установлен в 1 и если + счетчик достигает максимального значения при обратном отсчете или достиг 0 при обратном отсчете. + + Вход часов. Нарастающий фронт увеличивает или уменьшает счетчик. + Синхронный сброс счетчика, если установлено значение 1. + Если установлено в 1, счетчик включен! + Задает направление счета. 0 означает вверх. + Если установлено, значение на входе 'in' сохраняется в счетчике на следующих часах. + сигнал. + + Это слово данных сохраняется в счетчике, когда установлен ld. + + + + + Сумматор + Добавить + Компонент для простых вычислений сложения. + Складывает два целых числа из ввода a и ввода b (a + b). + Результат будет увеличен на единицу, если установлен ввод переноса. + Первый ввод для добавления. + Второй ввод для добавления. + Перенести ввод, если установлено, результат увеличивается на единицу. + Результат добавления + Перенести вывод. Если установлено, произошло переполнение. + Вычесть + Подписка + Компонент для простого вычитания. + Вычитает двоичные числа на входе a и входе b (a-b). + Если вход переноса установлен на 1, результат уменьшается на 1. + Перенести ввод, если установлено, результат уменьшается на единицу. + Введите a для вычитания. + Введите b для вычитания. + Вывод возвращает результат вычитания. + Вывод возвращает 1, если произошло переполнение. + Умножить + Мул + Компонент для умножения. + Умножает целые числа на входном контакте a и входном контакте b. + + Введите a для умножения. + Введите b для умножения. + Вывод результата умножения. + Деление + Div + Компонент для разделения. + Делит целое число, примененное к входу a, на целое число, примененное к входу b. + Если делитель равен нулю, вместо этого он делится на единицу. + В знаковом делении остаток всегда положительный. + + дивиденд + делитель + частное + остаток + Баррель-шифтер + Сдвиг + Компонент для сдвига битов. + Сдвигает входное значение на количество бит, заданное входом сдвига. + Ввод с битами, которые нужно сдвинуть. + Ввод с шириной сдвига. + Вывод со смещенным значением. + Компаратор + Компонент для сравнения битовых значений. + Сравнивает двоичные числа на входном контакте a и входном контакте b и устанавливает соответствующие выходы. + Введите a для сравнения. + Введите b для сравнения. + Вывод равен 1, если ввод a равен вводу b + На выходе будет 1, если вход a больше, чем вход b + На выходе будет 1, если на входе a меньше, чем на входе b + Отрицание + Отрицательный + Отрицание во 2-м дополнении + Ввод слова данных, которое должно быть инвертировано во 2-м дополнении + Возвращает результат отрицания во 2-м дополнении. + Расширитель знаков + SignEx + Увеличивает разрядность значения со знаком, сохраняя знак значения. + Если на входе один бит, этот бит будет выводиться на всех выходных битах. + + Входное значение. + Ширина входного бита должна быть меньше ширины выходного бита! + Расширенное входное значение. + Ширина входного бита должна быть меньше ширины выходного бита! + Битовый счетчик + Количество бит + Возвращает количество единиц во входном значении. + Вход, для которого подсчитываются 1-биты. + Выводит количество 1-битов. + + Генератор случайных чисел + Может использоваться для генерации случайных чисел. + Когда моделирование запускается, генератор повторно инициализируется, так что новое псевдослучайное число + последовательность генерируется при каждом запуске. + Генератор может быть инициализирован в текущем моделировании с определенным начальным значением для генерации + определенная последовательность псевдослучайных чисел. + + PRNG + Новое начальное значение генератора. + Если установлено, генератор случайных чисел повторно инициализируется новым начальным значением при следующем нарастающем фронте тактового сигнала. + Если установлено, новое случайное число выводится при следующем нарастающем фронте тактового сигнала. + Вход часов. + Вывод псевдослучайного числа. + + + + Диод к VDD + Упрощенный однонаправленный диод, используемый для подключения провода к VDD. + Он используется для реализации проводного ИЛИ. + Поэтому к выходу диодов необходимо подключить понижающий резистор. + В моделировании диод ведет себя как активный вентиль с трехвалентной таблицей истинности: + Если вход высокий, выход также высокий. Во всех остальных случаях (вход низкий или высокий z) выход имеет высокий z + государственный. + Таким образом, два антипараллельно соединенных диода могут поддерживать друг друга в высоком состоянии, что невозможно с настоящими диодами. + Это идеальный диод: на диоде с прямым смещением нет падения напряжения. + Если вход высокий, то и выход высокий. Во всех остальных случаях выход находится в состоянии высокого z. + Если вход высокий, то и выход высокий. Во всех остальных случаях выход находится в состоянии высокого z. + Диод - земля + Упрощенный однонаправленный диод, используемый для заземления провода. Он используется для + реализовать проводное И. + Поэтому к выходу диодов необходимо подключить подтягивающий резистор. + Если вход низкий, выход также низкий. В других случаях (вход высокий или высокий z) выход имеет высокий z + государственный. + Таким образом, два антипараллельно соединенных диода могут удерживать друг друга в низком состоянии, что невозможно с настоящими диодами. + Итак, это идеальный диод: на диоде с прямым смещением нет падения напряжения. + Если на входе низкий уровень, на выходе также низкий уровень. Во всех остальных случаях выход находится в состоянии высокого z. + Если на входе низкий уровень, на выходе также низкий уровень. Во всех остальных случаях выход находится в состоянии высокого z. + Переключить + Простой переключатель. + Нет задержки гейта: изменение сигнала распространяется немедленно. + Одно из соединений переключателя. + + Двойной переключатель + Переключатель двойного действия. + Нет задержки гейта: изменение сигнала распространяется немедленно. + + Предохранитель + Предохранитель, используемый для создания одноразовой программируемой памяти. + Одно из соединений предохранителя. + Одно из соединений предохранителя. + Реле + Реле - это переключатель, которым можно управлять с помощью катушки. + Если через катушку протекает ток, переключатель замыкается или размыкается. + Обратного диода нет, поэтому направление тока не имеет значения. + Переключатель срабатывает, если входы имеют разные значения. + Реле ведет себя аналогично воротам XOr. + + Один из входов для управления реле. + Один из входов для управления реле. + Реле двойного выброса + Реле - это переключатель, которым можно управлять с помощью катушки. + Если через катушку протекает ток, переключатель замыкается или размыкается. + Обратного диода нет, поэтому направление тока не имеет значения. + Переключатель срабатывает, если входы имеют разные значения. + Реле ведет себя аналогично воротам XOr. + + Один из входов для управления реле. + Один из входов для управления реле. + P-канальный полевой транзистор + P-канальный полевой транзистор. + Основная часть подключается к поз. Шина напряжения и транзистор моделируются без основного диода. + + Ворота + Источник + Слив + N-канальный полевой транзистор + N-канальный полевой транзистор. + Основная часть соединена с землей, и транзистор моделируется без внутреннего диода. + + Ворота + Источник + Слив + P-канальный полевой транзистор с плавающим затвором + P-канальный полевой транзистор с плавающим затвором. + Основная часть соединена с землей, и транзистор моделируется без внутреннего диода. + Если в плавающем затворе хранится заряд, он не проводит ток, даже если затвор низкий. + + Ворота + Источник + Слив + N-канальный полевой транзистор с плавающим затвором + N-канальный полевой транзистор с плавающим затвором. + Основная часть соединена с землей, и транзистор моделируется без внутреннего диода. + Если в плавающих затворах хранится заряд, то он не проводит ток, даже если затвор высокий. + Ворота + Источник + Слив + Шлюз передачи + Настоящий передаточный вентиль состоит всего из двух транзисторов. + Поэтому его часто используют для экономии транзисторов при реализации на кремнии. + введите A + вход B + управляющий ввод. + инвертированный управляющий вход + + + + + Тестовый пример + Описывает тестовый пример. + В тестовом примере вы можете описать, как должна себя вести схема. Затем можно автоматически проверить, + поведение схемы фактически соответствует этому описанию. Если это не так, + отображается сообщение об ошибке. + В справочном тексте редактора тестовых примеров подробно описано, как можно создать такой тестовый пример. + + Общая инициализация + Код, который выполняется для непосредственного запуска общей схемы. + Если общая схема должна быть запущена напрямую, такой компонент должен присутствовать. + + Код + Код, который выполняется при генерации общей схемы. + Может использоваться, например, для добавления компонентов или проводов в схему. + + + Асинхронное время + Позволяет настроить синхронизацию асинхронной последовательной схемы, такой как + Мюллер-трубопровод. Схема должна быть запущена в пошаговом режиме с одним затвором и должна быть в состоянии достичь стабильного состояния. + при запуске. Последовательная схема может быть запущена интерактивно или с помощью сброса. + В этом режиме нельзя использовать обычный часовой компонент. + + Питание + Не имеет функции. Убедитесь, что VDD и GND подключены. + Может использоваться в схемах 74xx для генерации контактов для источника напряжения, которые проверяются на правильность подключения. + + Должен быть подключен к VDD! + Должен быть подключен к GND! + Сброс + Сбросить вывод. + Выходной сигнал этого компонента удерживается на высоком уровне во время инициализации схемы. + После того, как цепь стабилизируется, на выходе будет низкий уровень. + Если выход инвертирован, он ведет себя противоположным образом. + + Разрыв + Останавливает быструю синхронизацию симуляции при обнаружении нарастающего фронта. + Если этот компонент используется в схеме, кнопка «Run To Break» между «Start» + и "Стоп" включен. Эта кнопка синхронизирует схему до тех пор, пока на входе этого компонента не появится нарастающий фронт. + обнаружен. Этот элемент можно использовать для отладки, синхронизируя схему до любой точки останова. + Также может быть реализована команда ассемблера BRK. Это позволяет выполнять программу до следующей команды BRK. + Эту функцию можно использовать только в том случае, если часы реального времени отключены! + + Остановить + Нарастающий фронт на входе останавливает симуляцию. + Имеет тот же эффект, что и нажатие кнопки «Стоп» на панели инструментов. + + Нарастающий фронт останавливает моделирование. + + Внешний + Компонент для выполнения внешнего процесса для вычисления логической функции. + Используется для определения поведения компонента с помощью VHDL или Verilog. + Фактическое моделирование поведения должно выполняться с помощью внешнего симулятора. + В настоящее время поддерживаются только симулятор VHDL ghdl и симулятор Verilog Icarus Verilog. + Метка компонента должна соответствовать имени объекта или модуля! + + Внешний файл + Компонент для выполнения внешнего процесса для вычисления логической функции. + Используется для определения поведения компонента с помощью VHDL или Verilog. + Фактическое моделирование поведения должно выполняться с помощью внешнего симулятора. + В настоящее время поддерживаются только симулятор VHDL ghdl и симулятор Verilog Icarus Verilog. + Метка компонента должна соответствовать имени объекта или модуля! + + + Диод + Упрощенный двунаправленный диод. Он используется для реализации проводного И или проводного ИЛИ. + Это идеальный диод: на диоде с прямым смещением нет падения напряжения. + + + + Ошибка + Контакт {0} в компоненте {1} не является входом или выходом + Необходим единственный компонент часов. Все триггеры должны использовать этот тактовый сигнал. + Схема не имеет помеченных входов + Схема не имеет маркированных выходов + Не обнаружено перерывов после {0} циклов в точке останова '' {1} ''. + Возможно, следует увеличить количество циклов тайм-аута в компоненте прерывания. + + Выражение {0} не поддерживается + Операция {0} не поддерживается + Ошибка при создании таблицы поиска. + На проводе активно более одного выхода, что вызывает короткое замыкание. + Запрещается подключать подтягивающий и понижающий резисторы к одной и той же цепи. + Невозможно проанализировать узел {0} + Содержит [var] и [not var] + Пин {0} в компоненте {1} существует дважды + Компонент {0} не найден + Требуются точные значения {0}, а не {1} + Триггер должен быть подключен к часам. + Неверный формат файла + Логика уже инициализирована + Туннель {0} не подключен! + Есть несколько часов + Компонент часов не используется! + Требуется {0} бит, но найдено {1} бит + Сеть контактов {0} не найдена + В логике не найдено часов + Нет доступных входов для установки + Не найдена фигура для компонента {0} + Ничего не связано с входом '' {0} '' в компоненте '' {1} ''. Открытые вводы не допускаются. + Не все подключенные выходы имеют одинаковое количество битов + Если несколько выходов соединены вместе, все они должны быть + выходы с тремя состояниями. + + Нет выхода, подключенного к проводу ({0}). Состояние провода не определено. + + Таблица слишком мала: требуется один результат! + Вывод {0} не определен + Нет метки для вывода {0} + Пин {0} назначен дважды! + Нет = найдено! + Пин {0} не является вводом! + Пин {0} не является выходом! + Использовано слишком много входных данных! + Использовано слишком много выходов! + Пин отсутствует + Найден значок без метки. + Нашли часы без метки. Если часы встроены, они также нуждаются в + метка. + + Контакт {0} не найден в компоненте {1} + Пин {0} не найден + Пользовательская форма не определяет булавку {0} + Пин {0} неизвестно + Логика колеблется. + Для анализа вы можете запустить схему в пошаговом режиме с одним вентилем. + + Удаленный порт уже используется! Есть ли другой запущенный экземпляр? + Количество входов не соответствует количеству битов селектора + Синтаксическая ошибка в определении разделителя {0} + Количество битов разделителя не совпадает + Не все входные биты определены! + Входные биты определяются несколько раз! + В разделителе разрешено только 64 бита! + Требуются два ввода! + Слишком много переменных (входы + триггеры), {0} разрешены, но {1} были + нашел. + + Слишком много переменных используется в {0}, + {1} - допустимые переменные, но найдено {2}. + + Переменная {0} не разрешена в источнике CUPL! + Переменная {0} не определена + Неожиданный токен {0} + Отсутствует закрытая скобка + Значение {0} в строке {1} не является числом! + Ожидается {0}, но найдено {1} значений в строке {2}! + + Неожиданный токен ({0}) в строке {1}. + Переменная {0} не найдена! + В тестовом векторе не определены входные сигналы! + В тестовом векторе не определены выходные сигналы! + Тестовых данных не найдено. + Запрещается подключать подтягивающий и понижающий резисторы к одному проводу. + Не удалось открыть браузер. + Не удалось создать папку "{0}"! + Запрещается подключать к коммутатору только входы. + Файл {0} существует несколько раз под {1}. + Не удалось найти файл {0}. + Ошибка при выполнении "{0}". + Процесс "{0}" не возвращается! + Процесс возвращает ненулевое значение {0}: {1} + Ошибка при запуске внешнего установщика! + Нет свернутых уравнений! + Уравнения рассчитываются! Пожалуйста, подождите! + Переменная {0} используется дважды! + Файл необходимо сохранить! + Схема {0} импортирует себя! + Результат минимизации неверен! + Имена переменных не могут быть уникальными. + Слишком много итераций в цикле. + Диоду требуется подтягивающий резистор на выходе! + Диоду нужен понижающий резистор на выходе! + Тестовый сигнал {0} не найден в цепи! + Разрешено только {1} бит, но найдено {0} бит! + Триггеры с более чем одним битом не допускаются! + Два управляющих входа затвора передачи должны быть инвертированы! + Сигнал {0} используется дважды! + Ошибка анализа тестовых данных. + Компонент модели {0} не может быть проанализирован. + Ошибка подключения источника питания к {0}. + Пин-номер {0} не является целым числом! + Ошибка при экспорте в VHDL. + Код VHDL для {0} недоступен! + Код Verilog для {0} недоступен! + Ошибка при создании тестового стенда! + Значения типа {0} недопустимы! + Имя отсутствует. Например, все пины набор меток? + Несколько выходов подключены друг к другу. + Этот тип соединения не поддерживается для экспорта HDL. ({0}, {1}, {2}). + Тестовые случаи с общей параметризацией не поддерживаются в HDL. + экспорт! + + безымянная сеть + Слишком много переменных! + Недействительное выражение! + Функция {0} не найдена в строке {1}! + Количество аргументов в функции {0} в строке {1} неверно (найдено {2}, ожидается {3})! + Недопустимое значение {0} в функции {1}! + Имя {0} не является элементом пути. + Ошибка при загрузке библиотеки. + Файл JAR не содержит манифеста! + Манифест не содержит записи основного класса! + Не удалось найти класс {0}! + Не удалось создать экземпляр класса {0}! + Входных битов должно быть больше, чем выходных! + Невозможно установить для физических выводов постоянные значения! + Строка {0} не является допустимым числом (поз. {1})! + Имя "{0}" недопустимо! + В имени файла TT2 нельзя использовать пробелы! + В таблице слишком много столбцов! + Ошибка записи ZIP-файла. + Разрешен только один тактовый компонент с высокой частотой. + Схема содержит циклы. Анализировать такую схему невозможно. + Циклы возникают, если выход элемента возвращается на один из входов того же элемента. + Использование переключателей, полевых транзисторов или реле также вызывает циклы. + Если используется монофлоп, должен быть ровно один компонент часов! + ПЗУ, определенные в настройках, не поддерживаются! + Не удалось создать компонент типа {0}! + + Не удалось записать значения во внешний процесс! + Не удалось прочитать значения из внешнего процесса! + Не удалось создать внешний процесс! + Тайм-аут чтения данных из внешнего процесса! + {0} + Получено недостаточно данных! + {0} + Полученный текст содержит недопустимый символ: {0}! + {1} + Процесс неожиданно завершился! + {0} + Не удалось завершить процесс! + Не удалось запустить процесс: {0} + Статус выхода приложения был не 0, а {0}: + {1} + Внешний код можно экспортировать, только если это VHDL! + Внешний код можно экспортировать, только если это Verilog! + Если внешний компонент используется несколько раз, код должен быть идентичным! Эффекты: {0} + Не удалось записать в stdOut: + {0} + + Симулятор VHDL ghdl, похоже, не установлен. Установите ghdl (http://ghdl.free.fr/) и попробуйте еще раз. + Если проблемы по-прежнему возникают, проверьте путь к исполняемому файлу ghdl в цифровых настройках. + + + Симулятор Verilog Icarus вроде не устанавливается. Установите IVerilog (http://iverilog.icarus.com/) и + попробуй еще раз. + Если проблемы по-прежнему возникают, проверьте путь к исполняемому файлу IVerilog в цифровых настройках. + + Ошибка при загрузке файла HDL {0} + Пустая метка недопустима! + + Ошибка при анализе схемы: {0} + Каждому ПЗУ требуется уникальная метка для экспорта! + Каждой LUT требуется уникальная метка для экспорта! + Счетчику требуется как минимум два бита. + Имя "{0}" не уникально! + Элементы часов нельзя использовать в асинхронном режиме. + Ошибка при экспорте в Verilog. + Память для программ не найдена! Программная память должна быть отмечена как таковая. + Обнаружено несколько программных ячеек! Допускается только одна программная память. + В модели не обнаружено памяти "{0}"! + В модели обнаружено несколько воспоминаний "{0}"! + Ошибка загрузки памяти программы. + Ошибка при чтении файла SVG. + Файл SVG содержит контакты, которых нет в цепи. + Все ячейки памяти, в которые должны быть загружены данные, требуют одинаковой разрядности. + Если программы должны быть загружены в несколько RAM, все RAM должны иметь + разные имена. Затем лексический порядок определяет порядок RAM. + MIDI-система недоступна. + MIDI-канал {0} недоступен. + MIDI-инструмент {0} недоступен. + MIDI-инструменты недоступны. + Во время выполнения тестов "{0}" произошла ошибка! + HDL неизвестен: {0} + Ошибка при запуске команды {0} + Имеется безымянный ввод или вывод! + Имя сигнала "{0}" недействительно или используется несколько раз! + Ошибка при замене компонентов для анализа. + Ошибка при оценке общего кода схемы. Код + {1} + в компоненте: {0} + + Ошибка при синтаксическом анализе кода универсальных шаблонов. + Нет кода инициализации для общих компонентов. + Для запуска в схему необходимо добавить соответствующий компонент. + + Несколько кодов инициализации для общих элементов. + Ошибка при анализе универсального кода инициализации. + Глобальные переменные могут быть записаны только в компонентах кода. + + Нет имени файла, доступного для автоматической перезагрузки! + Виртуальный сигнал {0} объявлен дважды в строке {1}! + + Заголовок не найден! + Выходных значений не найдено! + Недостаточно значений в одной строке! + Слишком много значений в одной строке! + Ошибка записи файла {0}. + Схема не содержит компонентов! + + Биты адреса + Количество используемых битов адреса. + Биты данных + Количество используемых битов данных. + Цвет + Цвет элемента. + Цвет фона + Цвет фона схемы, когда она встроена в другую схему. Не является + используется для пакетов DIL. + + Циклы тайм-аута + Если это количество циклов достигается без сигнала прерывания, создается ошибка. + + Данные + Значения, хранящиеся в этом элементе. + По умолчанию + Это значение устанавливается, если цепь запущена. + В демультиплексоре это значение устанавливается для невыбранных выходов. + По умолчанию + Это значение устанавливается, если цепь запущена. "Z" означает высокий уровень z. + Вход с тремя состояниями + Если установлено, вход может находиться в состоянии высокого z. На входном компоненте это + также разрешено, если в качестве значения по умолчанию установлено high-z ("Z"). + Нет нулевого вывода. + Избегает нулевого вывода. Это особенно полезно при настройке цепей реле. + Может быть активирован, только если разрешен вывод с высоким z. + Описание + Краткое описание этого элемента и его использования. + Частота/Гц + Частота реального времени, используемая для часов реального времени + Использовать графические обозначения IEEE 91-1984 + Использовать графические обозначения IEEE 91-1984 вместо прямоугольных IEC + Количество входов + Количество используемых входов. Каждый вход должен быть подключен. + Метка + Имя этого элемента. + Размер + Размер фигуры в цепи. + Язык + Язык графического интерфейса. Вступит в силу только после перезапуска. + Сетевое имя + Все сети с одинаковым именем соединяются вместе. + Разделение ввода + Если, например, четыре бита, два бита и два дополнительных бита должны использоваться в качестве входов, + это можно настроить с помощью «4,2,2». Число указывает количество бит. Для удобства звездочка + можно использовать: 16 бит можно настроить с помощью «[Биты] * [Число]» как «1 * 16». + Также возможно указать биты, которые будут использоваться напрямую и в любом порядке. + Например, «4-7,0-3» конфигурирует биты 4-7 и 0-3. Это обозначение допускает любое расположение битов. + Входные биты должны быть указаны полностью и однозначно. + Разделение вывода + Если, например, четыре бита, два бита и два дополнительных бита должны использоваться в качестве выходов, + это можно настроить с помощью «4,2,2». Число указывает количество бит. Для удобства звездочка + можно использовать: 16 бит можно настроить с помощью «[Биты] * [Число]» как «1 * 16». + Также возможно указать биты, которые будут использоваться напрямую и в любом порядке. + Например, «4-7,0-3» конфигурирует биты 4-7 и 0-3. Это обозначение допускает любое расположение битов. + Выходные биты также могут выводиться несколько раз: «0-7,1-6,4-7». + + Количество битов селектора + Количество битов, используемых для ввода селектора. + Подписанная операция + Если выбрано, операция выполняется со значениями со знаком (2-е дополнение). + Остаток всегда положительный + Если установлено, остаток от деления со знаком всегда положительный. + Закрыто + Устанавливает начальное состояние переключателя. + Значение + Значение константы. + Ширина + Ширина символа, если эта цепь используется в качестве компонента в другой цепи. + Высота + Высота символа, если эта цепь используется в качестве компонента в другой цепи. + Обновить при запуске модели + Перезагружает HEX-файл каждый раз при запуске модели. + Файл + Файл для загрузки в ПЗУ. + Отразить положение селектора + + Этот параметр позволяет переместить штифт селектора на противоположную сторону + плексер. + + Формат числа + Формат, используемый для отображения чисел. + ASCII + Корзина + Десятичный + Десятичное число со знаком + По умолчанию + Шестнадцатеричный + Восьмеричный + Фиксированная точка + Фиксированная точка со знаком + Плавающая точка + цифры с фиксированной запятой + Количество дробных двоичных цифр + ввод сдвига имеет знак + входные данные сдвига имеют два дополнительных формата + Режим + Режим сдвига ствола + Логический + Повернуть + Арифметика + Направление + Установить направление. + влево + вправо + Максимальное количество шагов для отображения + Максимальное количество сохраняемых значений. + Если достигается максимальное количество, самые старые значения отбрасываются. + Показать шаги одиночного шлюза + Показывает все пошаговые шаги на графике. + Вращение + Ориентация элемента в цепи. + Зеркало + Зеркально отображает компонент в цепи. + Запуск часов реального времени + Если включено, часы времени выполнения запускаются, когда цепь началось + Показать график измерений при запуске моделирования + При запуске моделирования отображается график с измеренными значениями. + Показывать график измерений в пошаговом режиме с одним гейтом при запуске моделирования + При запуске моделирования график с измеренными значениями в + Показан пошаговый режим гейта. Все изменения ворот отражены в графике. + Показать на графике измерений + Показывает значение на графике измерения. + Показывать значения измерений при запуске моделирования + При запуске моделирования отображается таблица с измеренными значениями. + Строки + Количество отображаемых строк. + Символов в строке + Количество символов, отображаемых в одной строке. + Использовать как значение измерения + Если установлено, значение является значением измерения и отображается на графике и в таблице данных. + Кроме того, должна быть указана метка, которая может служить идентификатором значения. + + Тестовые данные + Описание тестового примера. + Подробности синтаксиса можно найти в диалоговом окне справки редактора тестовых данных. + Ширина в пикселях + Ширина экрана в пикселях. + Высота в пикселях + Высота экрана в пикселях. + Программная память + Делает это ПЗУ в памяти программ. Таким образом, к нему можно получить доступ из внешней IDE. + Программный счетчик + Делает этот регистр программным счетчиком. Возвращается значение этого регистра + во внешнюю среду разработки ассемблера, чтобы пометить текущую строку кода во время отладки. + Запрограммированный + Если установлено, диод "перегорел" или "запрограммирован". + На полевом транзисторе с плавающим затвором заряжается плавающий затвор. + Вы можете изменить эту настройку с помощью клавиши [P]. + + Формат + Экранный формат выражений. + Реле нормально закрыто. + Если установлено, реле закрывается, если на входе низкий уровень. + Счетчик полюсов + Количество доступных полюсов. + Обычное соединение + Если этот параметр выбран, также моделируется общий ввод катода или анода. + Обычный + Тип обычного подключения. + Катод + Анод + + Избегать мерцания + Невозможно увеличить частоту настолько, чтобы мигание + исчезает. + Чтобы все же подавить мерцание, можно включить «послесвечение» для светодиодов с помощью этого + вариант. + Если этот параметр включен, светодиоды остаются включенными, даже если один из выводов переключается на высокий z. + Это имитирует частоту выше критической частоты слияния мерцания. + Установщик ATF15xx + Путь к установщику ATF15xx. + Войдите в каталог, содержащий файлы fit15xx.exe, предоставленные Microchip (ранее ATMEL). + Пин-код + Пустое поле означает, что этот сигнал не назначен контакту. + Строки + Задает количество строк, указав количество битов в слове-строке. + Адресные биты столбцов + Адреса отдельным столбцам. Три бита означают восемь столбцов. + Модификация заблокирована + Схема заблокирована. Возможна настройка диодов и FGF-FET. + Номер контакта + Номер этого пина. Используется для представления схемы в виде пакета DIL и + назначение контактов при программировании CPLD. + Если битов несколько, все номера контактов можно указать в виде списка, разделенного запятыми. + + Количество контактов DIL + Количество контактов. Ноль означает, что количество выводов определяется автоматически. + + Древовидное представление компонентов отображается при запуске. + Если установлено, представление дерева компонентов включается при запуске. + Инвертированные входы + + Вы можете выбрать входы, которые нужно инвертировать. + Размер шрифта меню [%] + Размер шрифтов, используемых в меню, в процентах от размера по умолчанию. + Включить ввод + Если установлено, доступен разрешающий вход (T). + Однонаправленный + Однонаправленные транзисторы распространяют сигнал только от истока к стоку. Они + находятся + намного быстрее моделировать, чем двунаправленные транзисторы. Поскольку нет обратной связи от стока к источнику, в этом + В режиме транзистор не может закоротить подключенные провода, когда он является проводящим. Таким образом, этот режим необходим для + имитировать определенные схемы CMOS. + + Активный минимум + Если выбрано, вывод будет низким, если компонент активен. + Библиотека + Папка, которая содержит библиотеку с предопределенными подсхемами. + Содержит, например, компоненты серии 74xx. Вы также можете добавить свои собственные схемы, сохранив + их в этом месте. + Необходимо убедиться, что имена всех файлов в этой папке и во всех подпапках уникальны. + + Показать сетку + Показывает сетку в главном окне. + Подсказки по инструментам для проводов + Если установлено, линии выделяются при наведении на них указателя мыши. + Сопоставить клавиатуре + Кнопка привязана к клавиатуре. + Чтобы использовать клавиши курсора, используйте кнопки ВВЕРХ, ВНИЗ, ВЛЕВО или ВПРАВО в качестве метки. + + Библиотека Java + Файл jar, содержащий дополнительные компоненты, реализованные на Java. + Показать количество проводов на шине. + ВНИМАНИЕ: значение обновляется только при запуске моделирования. + Входная разрядность + Количество выходных битов должно быть больше количества входных битов. + Разрядность вывода + Количество выходных битов должно быть больше количества входных битов. + Размер шрифта + Устанавливает размер шрифта для этого текста. + Продолжительность + Время задержки в единицах общей задержки распространения затвора. + Инвертированный вывод + Если выбрано, вывод инвертируется. + Ширина импульса + Ширина импульса измеряется в тактах. + Распространение + Настраивает разброс входов и выходов в схеме. + Содержимое ПЗУ + Содержимое всех используемых ПЗУ + + Приложение + Определяет, какое приложение использовать. + Общий + GHDL + IVerilog + Входы + Входные данные внешнего процесса. + Это список имен сигналов, разделенных запятыми. Для каждого имени сигнала количество битов, разделенных двоеточием. + можно указать. Таким образом, входы 8-битного сумматора можно описать как «a: 8, b: 8, c_in». + + Выводы + Выходные данные внешнего процесса. + Это список имен сигналов, разделенных запятыми. Для каждого имени сигнала количество битов, разделенных двоеточием. + можно указать. Таким образом, выходы 8-битного сумматора можно описать как «s: 8, c_out». + + Программный код + Программный код, выполняемый внешним приложением. + Программный код + Файл, содержащий программный код, который будет выполняться внешним приложением. + Параметры + GHDL + Путь к исполняемому файлу ghdl. Требуется только в том случае, если вы хотите использовать ghdl для моделирования + компоненты, определенные с помощью VHDL. + + Параметры GHDL + Параметры, которые используются GHDL для всех этапов обработки. + Параметры IVerilog + Параметры, которые используются IVerilog на всех этапах обработки. + + IVerilog + Путь к папке установки Icarus Verilog. Требуется только в том случае, если вы хотите использовать + iverilog для моделирования + компоненты, определенные с помощью Verilog. + + Максимальное значение + Если вводится ноль, используется максимально возможное значение (все биты равны единице). + + Высокий уровень вывода + Выходное значение DIP-переключателя по умолчанию при запуске моделирования. + + Используйте щелчки мышью в macOS. + Использует щелчок с нажатой клавишей CTRL вместо щелчка правой кнопкой мыши. + На главной панели нет подсказок для компонентов. + Если установлено, подсказки для компонентов на главной панели не отображаются. + Эти подсказки могут сильно раздражать, особенно в презентации. + Показать диалог для автоматического переименования туннелей. + Если установлено, диалоговое окно для автоматического переименования всех туннелей с тем же именем отображается после + туннель был переименован. + + ATMISP + Путь к исполняемому файлу ATMISP.exe. Если установлено, программное обеспечение ATMISP может запускаться автоматически! + + Пользовательская форма + Импорт файла SVG + + Предварительная загрузка памяти программы при запуске. + При моделировании процессора, который использует устройство RAM в качестве памяти программ, + этот процессор сложно запустить, потому что содержимое RAM всегда инициализируется нулями в начале + моделирования. Этот параметр позволяет загружать данные в память программы при запуске. + Программная память в моделировании должна быть отмечена как таковая. + + Программный файл + Файл, который должен быть загружен в память программы в начале + моделирование. + + + Ширина + Ширина в единицах сетки + Высота + Высота в единицах сетки + Текст внутри + Поместите текст внутри прямоугольника. + Текст внизу + Поместите текст внизу прямоугольника. + Текст справа + Поместите текст справа от прямоугольника. + + Широкая форма + Использует более широкую форму для визуализации ворот. + + Форма + Форма, которая будет использоваться для представления схемы в схеме внедрения. + В «Простом» режиме входные данные отображаются слева, а выходы - справа. + прямоугольник. + С помощью «Layout» положение входов и выходов и их ориентация в схеме определяет + положение штифтов. Здесь могут быть булавки вверху или внизу. + При выборе «DIL-Chip» для отображения схемы используется корпус DIL. Номера контактов входов и + выходы + в этом случае определите положение штифтов. + + По умолчанию + Простой + DIL-Chip + Макет + Определяется пользователем + + Ориентация + Положение координаты относительно текста. + слева внизу + по центру внизу + справа внизу + справа по центру + справа вверху + по центру вверху + слева вверху + левый центр + по центру + + MIDI-канал + Выбирает MIDI-канал для использования. + MIDI-инструмент + Используемый MIDI-инструмент. + Разрешить изменение программы + Добавляет новый входной ПК. Если этот вход установлен на высокий, + значение на входе N используется для изменения программы (инструмента). + + Включено + Включает или отключает этот компонент. + + Конфигурация цепочки инструментов + Используется для настройки интеграции цепочки инструментов. + Позволяет запускать внешние инструменты, например для программирования FPGA или подобного. + + Общая параметризация + Операторы, используемые для создания схемы. + + Схема является общей + Позволяет создать общую схему. + + Показывать учебник при запуске + Включает руководство. + + Переключатель ведет себя как вход + Если модель анализируется, переключатель ведет себя как вход, где «open» соответствует «0», а «closed» - «1». + + Настройки экспорта SVG + Текст в нотации LaTeX + Текст вставлен в нотации LaTeX. Для дальнейшей обработки требуется Inkscape. + Закрепить метки в математическом режиме + Для меток контактов используйте математический режим, даже если индексы отсутствуют. + Скрыть тестовые наборы + Тестовые наборы не экспортируются. + Фигуры не закрашены + Полигоны не заполнены. + Небольшие входы и выходы + Входы и выходы представлены в виде маленьких кружков. + Не указывать маркер вывода + Синие и красные маркеры булавки на символах опущены. + Высокая контрастность + Провода и текст контактов отображаются черным цветом. + Монохромный + Используются только серые цвета. + Тонкие линии + Если установлено, линии рисуются немного тоньше. + + Используйте Equals-Key + Используйте клавишу равенства вместо клавиши плюса. + Это всегда полезно, если знак плюса не является первичным ключом, а является вторым назначением ключа. + равно символ, например для американской или французской раскладки клавиатуры. + + + Привязка к сетке + Если установлено, компонент выравнивается по сетке. + + Разделитель контактов + Используется типом формы макета. Устанавливает расстояние до предыдущей булавки. + + + Триггер + Условие запуска для записи данных. + нарастающий фронт + спадающий край + оба края + + Цветовая схема + Нормальный + Темный + Красный / зеленый дальтоник + Определено пользователем + Цвета, определяемые пользователем + Предустановка + Фон + Передний план + Провод + ВЫСОКИЙ провод + НИЗКОЕ значение провода + Значение на проводе + Вывод + Провод HIGH-Z + Ошибка + ОК + Пины + Сетка + Тестовый пример + Отключено + Асинхронный + Выделено + + Вставленный провод. + Вставить из буфера обмена. + Значение '' {0} '' в компоненте '' {1} '' изменено. + Атрибуты компонента '' {0} '' изменены. + Провод удален. + Компонент '' {0} '' перемещен или повернут. + Провод перемещен. + Выделение удалено. + Компонент '' {0} '' вставлен. + Компонент '' {0} '' удален. + Провод вставлен. + Выделение перемещено. + Отменить: {0} + Повторить: {0} + Измененные атрибуты цепи. + Порядок измерений. + Измененные атрибуты выбранных компонентов. + Разделяет одиночный провод на два провода. + Изменения, внесенные в ходе моделирования. + + Логика + Арифметика + Триггеры + ввод-вывод + Память + Плексеры + Провода + Переключатели + Разное + подробнее + Индикаторы + Электромеханика + Периферийные устройства + ОЗУ + EEPROM + Украшение + Общий + VHDL/Verilog + + Интерфейс командной строки + Необязательный аргумент {0} отсутствует. + Значение {0} не является логическим. + Значение {0} не является числом. + Аргумент {0} не определен. + Недостаточно аргументов. + Слишком много аргументов. + Недействительный тип. + Команда {0} не имеет подкоманды {1}. + Параметры: + + Первое имя файла определяет схему, которую нужно протестировать. + Если указано второе имя файла, тестовые примеры выполняются из этого файла. + Если второе имя файла не указано, тесты выполняются из первого файла. + + Имя файла для тестирования. + Имя файла с тестовыми примерами. + Разрешает отсутствие входов в цепи, которые + определено в тестовом примере. Это может быть полезно, если есть несколько возможных решений, которые могут + зависят от разных входов. + + Тесты не прошли. + Произошла ошибка во время выполнения тестов. + + Может использоваться для создания файла SVG из схемы. + Имя файла схемы. + Имя записываемого файла SVG. + Используйте символы IEEE. + Ошибка при создании файла SVG! + + Создает файл CSV, содержащий статистику схемы. + Все используемые компоненты перечислены в файле CSV. + + Имя файла схемы. + Имя создаваемого файла CSV. + Если этот параметр отсутствует, таблица записывается в стандартный вывод. + + Ошибка при создании файла статистики! + + Windows + О программе + Анализ + Анализирует текущую схему + Вырезать + Копировать + Пользовательский + Библиотека + Удалить компоненты + Удалить выбранный отдельный компонент или группу компонентов. + Изменить + Настройки контура + Параметры конкретной схемы влияют на поведение + в настоящее время разомкнутая цепь. + Например, форма, которая представляет схему, когда она встроена в другие схемы. + Эти настройки сохраняются вместе со схемой. + Настройки + В глобальных настройках симулятора указываются, среди прочего, + вещи, язык, форма символа или пути внешних инструментов. + Остановить моделирование + Останавливает моделирование и позволяет редактировать схему. + Компоненты + Экспорт + Экспорт большого PNG + Экспорт маленького PNG + Экспорт SVG + Экспорт анимированного GIF + Бежать до конца + Запускает схему до тех пор, пока компонент BRK не обнаружит обрыв. + Файл + Справка + Обновить + Обновляет меню компонентов. + По размеру окна + Пошаговый режим с одним вентилем + Запускает схему в пошаговом режиме с одним вентилем + Новый + Создает новую пустую цепь. + Новая встроенная схема + Открывает новое окно для создания новой встроенной схемы, которую затем можно использовать в этом + схема. + + Открыть + Открыть недавние + Открыть последние в новом окне + Открыть в новом окне + Открывает схему в новом окне + Порядок ввода + Порядок выводов для использования в качестве встроенной схемы + Порядок измеренных значений + Порядок измеренных значений в графическом и табличном виде + Порядок выходов + Порядок выходов для использования в качестве встроенной схемы. + Вставить + Вставить в новом окне + Содержимое буфера обмена вставляется в новое окно. + Повернуть + Моделирование + Начало моделирования + Запускает симуляцию схемы. + Сохранить + Сохранить как + Сохранить данные + Сохранить данные как файл CSV + Тест скорости + Выполняет тест скорости, вычисляя макс. тактовая частота. + Шаг выхода + Вычисляет один шаг гейта + Выполнить до прерывания в режиме одного строба + Выполняет все шаги одиночного логического элемента, пока не будет обнаружен нарастающий фронт на компоненте прерывания. + Если компонент прерывания отсутствует, выполняются оставшиеся отдельные шаги логического элемента. + Синтез + Создает минимальные логические выражения, описываемые таблицей истинности. + Установить масштаб + + {0} переменные + Создать + Создает исходный файл CUPL, содержащий схему определения. + Создает файл, содержащий схему, аналогичную формату обмена логикой Беркли (BLIF). + После этого запускается установщик Atmel для создания файла JEDEC. + Схема + Создает схему, воспроизводящую таблицу истинности. + Схема с триггерами JK + Создает схему, которая воспроизводит таблицу истинности. Использует шлепанцы JK. + Схема с LUT + Создает схему, воспроизводящую таблицу истинности. Использует таблицы поиска для создания выражений. + Схема с N и воротами + Схема с NA и вентилями с двумя входами + Используйте только N и вентили с двумя входами. + Создает схему, которая воспроизводит таблицу истинности только с N и вентилями. + Схема с воротами NOr + Схема с воротами NOr с двумя входами + Используйте только ворота NOr с двумя входами. + Создает схему, которая воспроизводит таблицу истинности только с вентилями NOr. + Схема с двумя входными воротами + Создать схему, использовать только вентили с двумя входами + Схема с тремя входными воротами + Создать схему, использовать только вентили с максимум тремя входами + Устройство + Создает файл JEDEC для устройства + Экспорт LaTeX + Экспорт обычного текста + Экспорт тестового набора + Создает описание тестового примера, которое можно использовать в тесте. + дело. + + Тестовый пример работает, только если схема + чисто комбинаторно! + + + HEX + Вы можете загрузить HEX-файл в ПЗУ или LUT. + CSV + Файл CSV, содержащий полную таблицу истинности. + CSV, основные импликанты + Файл CSV, содержащий только основные импликанты. + Новый + Комбинаторный + Последовательный + Последовательный двунаправленный + Изменить порядок / удалить входные переменные + Добавить входную переменную + Добавляет новую входную переменную в таблицу. + Изменить порядок / удалить столбцы вывода + Добавить столбец вывода + Добавляет новый столбец результатов в таблицу. + Установить X равным 0 + Устанавливает для параметра Don't Cares значение 0. + Установить X равным 1 + Устанавливает для параметра Don't Cares значение 1. + Создать выражения J / K + Установить все в X + Установить все значения на "безразлично". + Установить все на 0 + Установить все значения на ноль. + Установить все на 1 + Установить все значения в один. + Инвертировать все биты + «1» становится «0» и наоборот. Пофиг остается без изменений. + Показать диалоговое окно результатов + Снова показывает диалоговое окно результатов, если оно было закрыто вручную. + Удалить + Удалить содержимое терминала. + Просмотр + Увеличить + Уменьшить + Выражение + Создать схему из выражения. + Выполнить тесты + Выполняет все тестовые случаи в схеме + Установить значения по умолчанию для ввода + Использовать текущие входные значения как новые значения по умолчанию. + Сбросить все диоды и FGFET + Сбрасывает все диоды (предохранители) и FGFET в состояние «не запрограммировано». В + текущая конфигурация предохранителя потеряна! + + Программный диод + Компоненты + Показывает список всех доступных компонентов. + Диалог справки + Показывает диалоговое окно справки, описывающее текущую схему. + Память + Показывает содержимое компонентов памяти. + Представление в виде дерева компонентов + Показывает древовидное представление доступных компонентов слева. + K-карта + Показывает K-карту представления таблицы! + + Специальные функции 74xx + Добавить префикс ввода-вывода + Префикс добавляется ко всем выбранным входам и выходам. + Используется для упрощения дублирования схем в схеме 74xx. + Удалить префикс ввода-вывода + Первый символ из меток входов и выходов удаляется. + Используется для упрощения дублирования схем в схеме 74xx. + Мастер закрепления + Мастер для присвоения номеров контактов входам и выходам. + Удалить номера контактов + Удалить все номера контактов в цепи + Выбрать контакт {0}: + + Отменить + Отменить последнее изменение + Повторить + Применить последнее отмененное изменение еще раз. + Показать график + Показать данные в виде графика. + Показать таблицу + Показывает значения в виде таблицы. + Добавить источник питания + Добавляет источник питания в схему. + Экспорт в VHDL + Экспортирует схему в VHDL + Экспорт в Verilog + Экспортирует схему в Verilog + Документация + Открыть {0} + Ошибка при открытии файла PDF! + + Показать график измерений + Показывает график с измеренными значениями в отдельном окне. + Показать таблицу значений измерения + Показать таблицу с измеренными значениями в отдельном окне. + Экспорт в ZIP-файл + Экспортирует схему как ZIP-файл. + Таким образом, ZIP-файл содержит все файлы, необходимые для работы схемы. + Метки входов и выходов + Установить метку для всех входов и выходов без метки. + + Начать обучение + Запускает руководство для начинающих. + + Статистика цепи + Показывает список используемых компонентов. + Число + Компонент + Входы + Биты + Адрес. Биты + + Имя для использования в общих схемах: {0} + Создать конкретную схему + Создать + Создает конкретную схему из этой общей схемы, используя + параметры, указанные в этом элементе. + + Ошибка при создании конкретной схемы! + + Digital +

Простой симулятор цифровых схем.

+

Автор: Х. Neemann в 2016-2021 гг.

+

Иконки взяты из Tango Desktop Project.

+

Посетите проект по адресу GitHub. + На Github вы также можете скачать + последний выпуск.

+

Здесь вы также можете написать вопросы +или предложить + улучшения.

]]> +
+{0} узлов +Ошибка при анализе схемы +Цвет +Ошибка при вычислении шага +Ошибка при создании схемы +Ошибка при упрощении +Ошибка при создании конфигурации оборудования. +Ошибка при редактировании значения атрибута +Ошибка при импорте схемы {0}! +Ошибка при обновлении библиотеки компонентов !! +Ошибка чтения файла +Ошибка записи файла +Максимальная частота: {0} кГц +Форма {0} отсутствует +Назначение пина +Пин {0}: {1} +Чтобы изменения вступили в силу, требуется перезапуск! +Команда {0} unknown! +Введите выражение: +Ошибка при запуске тестов: +Результат теста +{0} пройдено +{0} не удалось +E: {0} / F: {1} +Ошибка при создании справки! +Буфер обмена не содержит импортируемых данных! +Выберите пустую папку! +Сообщение от внешнего установщика +Выполнение внешнего установщика +Текущая цепь +Выбранное имя файла не может быть импортировано из текущего проекта! + Имя файла не уникально! +Все файлы в рабочем каталоге и во всех подкаталогах должны иметь уникальные имена. Это также относится к +папка библиотеки. Если в вашем рабочем каталоге есть файл 7400.dig, вы не можете использовать этот файл или файл 7400.dig из +библиотеки, потому что это имя файла больше не может быть однозначно присвоено. + + Есть несколько файлов с одинаковыми именами, которые не могут быть +однозначно назначено! Затронуты: + +и еще {0}. +Файл еще не импортирован. +Файл {0} уже существует! Хотите перезаписать файл? +(Слишком много записей!) + Все тестовые примеры выполняются, но отображаются не все результаты. +Тем не менее, оценка результата верна! + Редактирование схемы отключено. Вы можете снять блокировку на +"{0} -> {1} -> {2}". +Однако копирование компонентов и конфигурация диодов и полевых транзисторов FGFET с помощью клавиши [P] также возможно в +заблокированный режим. + +Ошибка во время теста скорости! +Закрепить {0} +Мастер нумерации +Написанные фреймы: {0} +Ошибка записи в файл GIF! +Готово +Файл GIF завершен и закрыт. +Экспорт GIF +вызвано +Входные данные для инвертирования +нет +Не удалось определить имена контактов. +Возникло в файле {0}. +Затронуто: {0}. +Сигнал {0} + Нет номеров контактов, назначенных контактам {0}! +Бесплатные пины назначаются автоматически. Поэтому в большинстве случаев схему нельзя использовать на реальном оборудовании! +Вы можете экспортировать схему только без ошибок! +Нет карты KV! +Данные больше не будут обновляться! +Изменить это значение +Одно из полей содержит недопустимое значение! +Создание файла CHN. + Таблица очень большая, экспорт может занять некоторое время. +Все равно начать экспорт? + Чтобы создать описание оборудования, сначала необходимо создать и проанализировать схему. +Автономную таблицу истинности нельзя использовать для создания описания оборудования. +Включенные ПЗУ +нет данных + +Не удалось закрыть внешний процесс! + +Результат проверки: +Проверить + Запускает приложение для проверки правильности введенного кода. +Если это не так, отображается сообщение об ошибке внешнего приложения. +Если возможно, определения ввода и вывода также адаптируются к текущему коду. + Определения ввода и вывода не могут быть созданы автоматически. +Пожалуйста, проверьте настройки! +Исполняемый файл "{0}" не найден! +Введите текст! + +Запустить ATMISP +Запускает внешнюю программу ATMISP. Он должен быть установлен ранее. + Ошибка при запуске ATMISP! +В настройках указан правильный путь к исполняемому файлу ATMISP.exe? + + ATMISP все еще работает! +Когда это диалоговое окно закрывается, ATMISP закрывается! +Перед закрытием этого диалогового окна убедитесь, что процесс прошивки завершен! + + +Запустить все тесты +Выполняет все тесты в текущей папке. +Пройдено {0} тестовых строк +Файл протестирован +Таблица истинности +Значения, разделенные запятыми, CSV +Ошибка при импорте файла SVG. +Ошибка при создании шаблона SVG. +Не удалось создать статистику. +Ошибка при чтении конфигурации цепочки инструментов {0} +Команда "{0}" запущена! Обработка может занять некоторое время! +Команда "{0}" выполнена! + +Переименовать сеть + Есть еще {0} туннелей с сетевым именем '' {1} ''. +Вы хотите переименовать все {0} в "{2}"? + + +Вы действительно хотите отменить изменения в поле "{0}"? + +Возможность экспорта в VHDL / Verilog. +Ошибка при установке строки тестового примера. + +Режим видео не обнаружен ({0}) + +Создать тестовый набор для исправления поведения + Создает поведенческий прибор из схемы. +Поведенческий прибор - это тестовый пример, который фиксирует текущее поведение. +Исправления: {0} +Создать приспособление +Создает новый прибор в тестовом примере. +Завершено +Создает компонент тестового примера +Ошибка при создании тестового примера. + +ОК +0 ° +180 ° +270 ° +90 ° +Разрыв после {0} полупериодов в точке останова '' {1} ''. +Удаляет выбранный элемент +Переместить элемент вниз +Переместить элемент вверх +Все возможные решения +Подтвердите выход! +Измерения +Измерения полного тактового шага +Измерение шага с одним гейтом +Сохранить изменения? +Состояние изменено! +Таблица +Экспорт +Выбрать +Тестовые данные {0} +Данные +Ввод {0} +Карта Карно + +Справка +Буфер обмена +Копирует текст в буфер обмена. + +Содержимое центрального ПЗУ + +

Мотивация

+ Когда схема, содержащая компонент ПЗУ, встраивается несколько раз, содержимое ПЗУ + обычно используется для каждого экземпляра этой цепи. При определенных обстоятельствах + однако может быть желательно, чтобы такая схема была встроена несколько раз, + но для каждого экземпляра используется разное содержимое ПЗУ.
+ Эта проблема возникает, например, если ПЗУ 74xx используется несколько раз, но с разными + содержимое памяти.
+

Функция

+ Таким образом, в этом месте можно определить содержимое для всех ПЗУ в схеме. + При создании имитационной модели каждое ПЗУ инициализируется сохраненным содержимым. + прямо в соответствующем ПЗУ. Затем проверяется, есть ли альтернативный контент. + определено здесь. В этом случае определенное здесь содержимое загружается в соответствующее ПЗУ. +

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

+ Следует отметить, что для каждого ПЗУ требуется уникальное имя, используемое для идентификации ПЗУ. + Для этого используйте звездочку ('*') в метке ПЗУ. Затем звездочка заменяется полным + путь, построенный из имен встроенных схем. + Если схема содержит только один компонент ПЗУ, достаточно использовать только звездочку в качестве метки для него. + Все встроенные схемы должны быть названы так, чтобы можно было сформировать уникальное имя для каждого компонента ПЗУ. + +]]> +
+ + +

Новая версия {0} доступна

+

Доступна новая версия симулятора.

+

В примечаниях к выпуску release notes + вы можете найти изменения и улучшения.

+

Здесь вы можете download новую версию.

+ +]]>
+ +Выражения + Для определения выражения вы можете использовать все наиболее распространенные обозначения:

+

+ И: «&», «&&», «*», «∧»
+ Или: «|», «||», «+», «∨», «#»
+ XOr: «^», «⊻»
+ Не: «!», «~», «¬» +

+

Как обычно, AND предшествует OR и XOr.

+

Несколько выражений можно разделить знаком «,» или «;». + Если вы хотите назвать выражения, вы можете использовать + Команда let: «пусть U = A + B, пусть V = A * B».

]]> +
+Тестовые векторы + + + +

Общие

+

Первая строка должна содержать названия входов и выходов. + Следующие строки содержат ожидаемые значения. + «X» обозначает безразличие, а «Z» - высокое значение Z. + Если используется 'C', сначала устанавливаются все другие значения, после этого выполняется тактовый цикл, а затем + значения сравниваются. Так проще проверить последовательную логику. + Строка, начинающаяся со знака числа ('#'), является комментарием.

+ +

Итак, проверка 2-битного счетчика может выглядеть так:

+ +
+            C Q1 Q0
+            0 0 0
+            C 0 1
+            C 1 0
+            C 1 1
+            C 0 0
+        
+ +

Тесты выполняются с помощью Run-> Run Tests.

+

+ Чтобы упростить создание большого количества тестовых векторов, есть инструкция 'repeat ([n])': + Если строка начинается с 'repeat ([n])', создается [n] тестовых строк. + Переменная n может использоваться для генерации тестовых данных. С помощью 'repeat (16)', + создается 16 строк, где n изменяется от 0 до 15. Если имеется несколько битовых входов, + и они должны быть установлены вместе в двоичное значение, это можно сделать с помощью + оператора "bits([биты], [значение])". Используется для создания [биты] битов значения [значение].

+ +

Ниже приведен пример проверки 4-битного сумматора:

+ +
+           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
+        repeat(256)  0    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15))
+        repeat(256)  1    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15)+1)
+        
+ +

Входными сигналами являются входной сигнал (C_i-1) и восемь входных битов A_3-A_0 и B_3-B_0. + 4 входных бита генерируются с помощью инструкции «биты». Результат (C_i, S_3-S_0) также генерируется + с помощью инструкции «биты». + Это происходит один раз с C_i-1 = 0 и в следующей строке с C_i-1 = 1. + Таким образом, создается 512 тестовых строк, охватывающих все возможные конфигурации ввода.

+

Если необходимо повторить несколько строк или если требуются вложенные циклы, цикл + заявление можно использовать. Приведенный выше пример также можно реализовать следующим образом:

+ +
+           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
+        loop(a,16)
+            loop(b,16)
+             0    bits(4,a)        bits(4,b)        bits(5,a+b)
+             1    bits(4,a)        bits(4,b)        bits(5,a+b+1)
+            end loop
+        end loop
+        
+ +

При определенных обстоятельствах может возникнуть необходимость отреагировать на первоначальный + состояние цепи. Следовательно, сигналы, представленные в схеме, могут использоваться в + тестовый пример. Например, если счетчик, который запускается в неопределенном состоянии, должен быть + протестировано, его можно синхронизировать до определенного состояния:

+ +
 C Q_3 Q_2 Q_1 Q_0
+
+            # счетчик часов до 1111
+            while(!(Q_3 & Q_2 & Q_1 & Q_0))
+            C x x x x
+            end while
+
+            # запускаем выполнение теста
+            repeat(16) C bits(4,n)
+        
+ +

В тестовых случаях может быть полезно генерировать случайные числа. + Их можно создать с помощью функции 'random ([n])'. Сгенерированное число больше + больше или равно нулю и меньше [n]. Рассматривая в качестве примера 16-битный умножитель, + полный тест не может быть выполнен, так как он будет иметь 2 ^ 32 входных комбинации. + Регрессионный тест, который умножает 100000 случайных чисел, может выглядеть так:

+ +
+            A    B      Y
+        loop(i,100000)
+            let a = random(1<<16);
+            let b = random(1<<16);
+            (a)  (b)   (a*b)
+        end loop
+        
+ +

Вход, допускающий высокое сопротивление в качестве значения, также можно использовать в качестве тестового выхода. + В этом случае имя сигнала можно использовать с завершающим «_out» для обратного чтения и проверки текущего значения. + Для этого на соответствующем входе должен быть установлен высокий импеданс («Z»).

+ +
 OE CLK D D_out
+            0 0 0 0
+            0 С 1 1
+            1 0 z 1
+            0 С 0 0
+            1 0 z 0
+        
+ +

Схема для этого теста имеет только один вход «D», но он может находиться в состоянии с высоким импедансом. + Следовательно, в этом случае также доступен сигнал «D_out» для проверки значения.

+ +

В особых случаях может быть желательно использовать сигналы, предоставляемые + схема, чтобы получить новый сигнал, который затем проверяется. Примером может быть автобус + сигнал с несколькими битами, где должен быть протестирован только один бит, при этом оставшиеся + биты не влияют на тест. В этом случае новый сигнал может быть сгенерирован в + test, который содержит этот бит, чтобы можно было определить тесты для этого бита.

+

Это делается с помощью оператора declare:

+
 A B Bit
+
+            declare Bit = (Bus>>3)&1;;
+
+            0 0  0
+            0 1  0
+            1 0  1
+            1 1  0
+        
+

В этом примере 3-й бит изолирован от сигнала шины и доступен как + битовый сигнал для теста. Сама схема не содержит выходного «Бита».

+

Функции

+

Доступные функции: +

+
signExt ([биты], [значение])
+
Расширяет значение [значение] с сохранением знака до [бит] бит.
+
случайный ([макс])
+
Возвращает целое случайное число. Максимальное значение указывается с помощью [max].
+
ite ([cond], [then], [else])
+
Если условие [cond] истинно, возвращается значение [then], в противном случае значение [else].
+
+

+ +

Процессоры

+

Если процессоры подлежат тестированию, обычно требуется инициализация процессора. + Эту инициализацию можно выполнить в тестовом примере. + Таким образом, несколько тестов могут быть размещены в одной цепи, и каждый тест может использовать свою собственную инициализацию. + Для выполнения этой инициализации есть три инструкции:

+
    +
  • Оператор 'program' может использоваться для перезаписи программной памяти процессора. + Инструкция
    program(0x8000,0x2d11,0x8000,0x2f21)
    записывает четыре слова в начало + программной памяти. Все остальные слова обнулены.
  • . +
  • Инструкцию memory можно использовать для записи в компонент RAM: +
    memory mem(3) = 7;
    + В этом примере 7 записывается в память с меткой «mem» по адресу 3.
  • +
  • Помеченный регистр можно перезаписать с помощью оператора init. +
    init R0=22;
    + Эта инструкция перезаписывает регистр меткой 'R0' со значением 22.
  • +
+

Следует отметить, что все использованные инициализации применяются только один раз перед + выполнение теста. Не имеет значения, в какой строке тестового примера находятся эти операторы. + Однако их нельзя использовать над строкой заголовка, в которой перечислены имена сигналов.

. +
+ +Конечный автомат +Нет движения +Переходы +Переходы + состояния +установить {0} +Конечный автомат +Открывает диалог для редактирования конечного автомата. +Создать +Таблица перехода состояний +Создать счетчик +{0} Состояния +Справка по работе с редактором FSM. +FSM не является детерминированным: {0} +Номер состояния {0} используется дважды. +Нет начального состояния (нулевой номер состояния). +Состояние '' {0} '' не найдено! +Неправильное назначение для вывода ('' {0} '')! +Ошибка в условии '' {0} ''! +Номер состояния +Число, которое представляет это состояние. +Начальное состояние +Если установлено, это состояние является начальным. +Выводы + Определяет выходные значения. +С помощью простых назначений, таких как «A = 1, B = 0», можно установить выходы. +С помощью таких инструкций, как «A = 101», можно установить многобитовые выходы. +Выходы, которые здесь не определены, в состояниях обнуляются. +Для переходов неуказанные выходы остаются неизменными. + +Условие +Логическое выражение. +Радиус +Радиус круга на диаграмме. +Невозможно создать таблицу перехода состояний. +Переход +Состояние +Новое состояние +Ошибка при загрузке файла! +Ошибка при сохранении файла! +Справка редактора FSM + +Оптимизатор FSM +Оптимизация номеров состояний + Оптимизирует номера состояний так, чтобы реализация имела +наименьшее возможное усилие. Время выполнения увеличивается очень быстро с увеличением сложности машины. (На!)) + +Ошибка при оптимизации! +Начальная сложность: +Лучшее на данный момент: + + + +

Работа с мышью

+
+
Создать состояние:
+
Щелкните правой кнопкой мыши свободную область.
+
Создание перехода:
+
Правая кнопка мыши нажатой в начальном состоянии и перетаскивание в конечное состояние.
+
Удалить состояние или переход:
+
Наведите указатель мыши на объект и нажмите кнопку [Del].
+
Перемещение состояния или перехода:
+
Левая кнопка мыши вниз и перетаскивание.
+
Редактирование состояния или перехода:
+
Щелкните правой кнопкой мыши состояние или переход.
+
+

Функция справки по макету

+
+
Нет движения:
+
Функция справки по макету отключена.
+
Переходы:
+
Функция справки по макету перемещает стрелки перехода, чтобы избежать перекрытия.
+
Переходы + состояния
+
Функция справки по макету перемещает и состояния, и переходы, чтобы помочь создать хорошо сбалансированный макет.
+
+

Интерпретация переходов

+ Для упрощения генерации детерминированных автоматов безусловные переходы обрабатываются особым образом: + безусловный переход выполняется только в том случае, если никакой другой переход не удовлетворяет условию перехода. + Таким образом, могут быть безусловный переход и условные переходы, которые начинаются в одном и том же состоянии. + Таким образом, безусловный переход определяет, в какое состояние переходит конечный автомат, если нет другого перехода. + условие выполнено. + Если нет безусловного перехода из состояния, конечный автомат останется в этом состоянии, если нет других + условие перехода выполнено. +
+ +График измерений + +

Что видно на графике?

+ В отличие от настоящего логического анализатора, ось X графика измерений не показывает время. + Вместо этого отображается счетчик, который подсчитывает изменения состояния в цепи. + Каждый раз, когда в цепи происходит изменение, счетчик увеличивается и отображается новое состояние.
+ Вы также можете рассматривать его как классический логический анализатор, который не сохраняет данные для оптимизации. + если в схеме ничего не изменилось. + Однако это также означает, что по графику невозможно определить, много или мало времени + прошло между двумя изменениями в схеме.
+ Такое поведение вызвано характером моделирования: моделирование схемы не знает + понятие времени. В схему вносятся изменения, и изменение состояния схемы рассчитывается до тех пор, пока + цепь снова стабилизировалась. Затем производится следующее изменение, эффект которого также рассчитывается. + и так далее. Эти изменения подсчитываются, и значение счетчика отображается на оси X графика.
+ Помимо прочего, это также означает, что схему нельзя разогнать, так как эффекты падения + фронты тактовых импульсов не вычисляются до тех пор, пока схема не стабилизируется после предыдущего нарастающего фронта. + +]]>
+ +Учебник + В следующем коротком руководстве вы познакомитесь с первой простой схемой: + +Сначала вставьте вход в схему. Вы найдете вход в меню Components▸IO. + + Теперь добавьте второй вход в схему. Вы также можете нажать на ввод +на панели инструментов. + +Лучше всего разместить второй вход немного ниже первого входа. +Вы можете перемещать схему, удерживая правую кнопку мыши. +Нажимая на компоненты, вы можете их перемещать. + Затем нужно вставить вентиль «Исключающее ИЛИ». +Вы можете найти эти ворота в меню Components▸Logic. +Поместите этот компонент на некотором расстоянии справа от входов. + Последний компонент, который нужно вставить, является выходным. +Поместите его на некотором расстоянии справа от ворот «Исключительное Или». + + Чтобы завершить схему, необходимо провести соединительные провода. + +Нажмите на красную точку на первом входе и подключите его к входу «Исключающее ИЛИ», +нажав затем на синюю точку ворот «Исключительное ИЛИ». +НЕ тащите кнопкой мыши вниз! + + Подключите красную точку второго входа ко второй синей точке +Строб «Исключающее ИЛИ» и красная точка гейта «Исключающее ИЛИ» к синей точке выхода. + +Во время рисования вы можете закрепить провод, щелкнув где-нибудь на холсте. +Щелкните правой кнопкой мыши, чтобы отменить прорисовку провода (щелкните, удерживая клавишу Control, в macOS). + + Теперь ваша первая схема работает. +Чтобы начать симуляцию, вы можете нажать кнопку «Воспроизвести» на панели инструментов. +Если вы наведете указатель мыши на панель инструментов, отобразятся подсказки. + + +Теперь симуляция активна. Переключайте входы, щелкая по ним. + + +Чтобы остановить симуляцию, нажмите кнопку «Стоп» на панели инструментов. + + +Для полноты входные и выходные данные должны быть помечены. + +Щелкните правой кнопкой мыши вход, чтобы открыть диалоговое окно. В macOS используется нажатие клавиши Control. +Здесь входу можно дать имя. + +Пометьте все входы и выходы. + + +Входы и выходы всегда должны иметь однозначные имена. + + +Пропустить учебник + +
diff --git a/src/main/resources/lang/lang_ru_ref.xml b/src/main/resources/lang/lang_ru_ref.xml new file mode 100644 index 000000000..fd25a5ba9 --- /dev/null +++ b/src/main/resources/lang/lang_ru_ref.xml @@ -0,0 +1,2519 @@ + + + Address + Table of Contents + General + Revision + Date + maximum + The following describes the available settings of the simulator. + Attributes + Open Circuit + Included circuit: + Opens the circuit in a new window. + Help + Shows a short description of this element. + Basic + Advanced + Discard Changes + Edit + Continue editing + Load + Save + Create + Create a circuit in a separate window + Edit detached + Opens the dialog as a non modal dialog + Browser + Opens help text in the browser. Allows to print the text. + Clear + All values are set to zero! + Transitions + All possible transitions are added as test cases. Is used to create test cases to test the simulator itself. + New Name + Save anyway + Overwrite + Apply + Edits the content of the selected ROM/EEPROM + Removes the stored data for the selected ROM. The content which is stored in the ROM directly is used instead. + Template + Creates an SVG template which can then be edited with Inkscape. + Import + Import an SVG file. To create a suitable SVG file, it is easiest to first create + a SVG template and then edit it. + Warning + Cancel + Digital + Expression + Inputs + Outputs + Attributes + search + Error at pasting data! + + + + The {0}. input value for the logic operation. + Returns the result of the logic operation. + + And + Binary AND gate. Returns high only if all inputs are also set high. + It is also possible to use buses with several bits as inputs and output. In this case, a bitwise AND is executed. + This means that the lowest bits of all inputs are connected with AND and is output as the lowest bit at the output. + The same happens with bit 1, bit 2 and so on. + + NAnd + A combination of AND and NOT. + Returns 0 only if all inputs are set to 1. If one of the inputs is set to 0 the output is set to 1. + It is also possible to use buses with several bits per input. In this case, the operation is applied to each + bit of the inputs. + + Or + Binary OR gate. Returns a 1 if one of the inputs is set to 1. + If all inputs are set to 0 the output is also set to 0. + It is also possible to use buses with several bits as inputs and output. In this case, a bitwise OR is executed. + This means that the lowest bits of all inputs are connected with OR and is output as the lowest bit at the output. + The same happens with bit 1, bit 2 and so on. + + NOr + A combination of OR and NOT. + Returns a 0 if one of the inputs is set to 1. If all inputs are set to 0 the output is also set to 1. + It is also possible to use buses with several bits per input. In this case, the operation is applied to each + bit of the inputs. + + XOr + If two inputs are used, the output is 0 if both input bits are equal. + Otherwise the output in set to 1. + If more than two inputs are used, it behaves like cascaded XOR gates ( A XOR B XOR C = (A XOR B) XOR C ). + It is also possible to use buses with several bits per input. In this case, the operation is applied to each + bit of the inputs. + + XNOr + A combination of XOR and NOT. The inputs are combined with the XOR operation. + The result of this operation than is inverted. + It is also possible to use buses with several bits per input. In this case, the operation is applied to each + bit of the inputs. + + Not + Inverts the input value. A 1 becomes a 0 and a 0 becomes 1. + It is also possible to use a bus with several bits per input. In this case, the operation is applied to each + bit of the inputs. + + The input of the NOT gate. + The inverted input value. + Lookup Table + LUT + Gets the output value from a stored table. + So this gate can emulate every combinatorial gate. + + Input {0}. This input in combination with all other inputs defines the + address of the stored value to be returned. + Returns the stored value at the address set via the inputs. + Delay + Delays the signal by one propagation delay time. + Delays a signal for an adjustable number of gate delays. + All other components in Digital have a gate delay of one propagation delay time. + This component can be used to realize any necessary propagation delay. + + Input of the signal to be delayed. + The input signal delayed by one gate delay time. + + + + + Output + Can be used to display an output signal in a circuit. + This element is also used to connect a circuit to an embedding circuit. + In this case the connection is bidirectional. + Is also used to assign an pin number, if code for a CPLD or FPGA is generated. + + This value is used for the output connection. + LED + A LED can be used to visualize an output value. Accepts a single bit. + Lights up if the input is set to 1. + LED Input. LED lights up if the input is set to 1. + + RGB-LED + An RGB LED whose color can be controlled via three inputs. + At each of the three inputs, a color channel is connected. + The red color channel. + The green color channel. + The blue color channel. + + LED with two connections. + LED with connections for the cathode and the anode. The LED lights up, + if the anode is connected to high and the cathode is connected to low. + This LED cannot be used as a pull-down resistor. It acts solely as a display element. + The shown resistor is only meant to symbolize the required series resistor to limit the current. + The anode connection of the LED. + The cathode connection of the LED. + + Input + Can be used to interactively manipulate an input signal in a circuit with the + mouse. This element is also used to connect a circuit to an embedding circuit. + In this case the connection is bidirectional. + Is also used to assign an pin number, if code for a CPLD or FPGA is generated. + + Gives the value which is connected to this input. + + DIP Switch + Simple DIP switch that can output either high or low. + The output value of the switch. + + Clock Input + A clock signal. Its possible to control it by a real-time clock. + Depending on the complexity of the circuit, the clock frequency achieved may be less than the selected value. + If the frequency is greater than 50Hz, the graphic representation of the circuit will no longer be updated at + every clock cycle so that the wire colors will no longer be updated. + If the real-time clock is not activated, the clock can be controlled by mouse clicks. + Is also used to assign an pin number, if code for a CPLD or FPGA is generated. + + Switches between 0 and 1 with the selected clock frequency. + Button + A simple push button which goes back to its original state when it is released. + The output signal of the button. + Button with LED + A simple push button which goes back to its original state when it is released. + The push button has an LED which can be switched via an input signal. + The output signal of the button. + Input for controlling the LED. + Text + Shows a text in the circuit. + Does not affect the simulation. + The text can be changed in the attribute dialog. + + Rectangle + Shows a rectangle in the circuit. + Does not affect the simulation. If a minus sign is used as the heading, the heading is omitted. + + Probe + A measurement value which can be shown in the data graph or measurement table. + This component can be used to easily observe values from embedded circuits. + Does not affect the simulation. + + The measurement value. + + + + + Light Bulb + Light bulb with two connections. If a current flows, the bulb lights up! + The direction of the current does not matter. The lamp lights when the inputs have different values. + The bulb behaves similar to an XOr gate. + + Connection + Connection + Seven-Segment Display + Seven Segment Display, every segment has its own control input. + This input controls the upper, horizontal line. + This input controls the upper, right, vertical line. + This input controls the lower, right, vertical line. + This input controls the lower horizontal line. + This input controls the lower, left, vertical line. + This input controls the upper, left, vertical line. + This input controls the middle, horizontal line. + This input controls the decimal point. + Common cathode. To turn on the LEDs, this input needs to be low. + Common anode. To turn on the LEDs, this input needs to be high. + Seven-Segment Hex Display + Seven Segment Display with a 4 bit hex input + The value at this input is visualized at the display. + This input controls the decimal point. + + 16-Segment Display + The LED input has 16 bits which control the segments. The second input controls the decimal point. + 16-bit bus for driving the LEDs. + This input controls the decimal point. + + LED-Matrix + A matrix of LEDs. The LEDs are shown in a separate window. + The LEDs of a column of the display are controlled by a data word. At another input, the current column is + selected. So a multiplexed display is realized. + The LEDs are able to light up indefinitely in the simulation to prevent the display from flickering. + + The row state of the LEDs of a column. + Each bit in this data word represents the state of a row of the current column. + The number of the current column whose state is currently visible at the other input. + Data Graph + Shows a data plot inside of the circuit panel. + You can plot complete clock cycles or single gate changes. + Does not affect the simulation. + + Triggered Data Graph + Scope + Shows a graph of measured values, whereby measured values are only stored if + the input signal changes. Storing takes place when the circuit has stabilized. + The trigger does not start the measurement like in a real scope, but each trigger event stores a single + measurement value for each of the shown signals. + As direct input there is only the trigger. The inputs and outputs of the circuit, flip-flops and registers and the + probe component can be used as signals. This can be activated in the respective components. + + A change at this input causes measured values to be stored. + + Rotary Encoder + Rotary knob with rotary encoder. Used to detect rotational movements. + encoder signal A + encoder signal B + + Keyboard + A keyboard that can be used to enter text. + This component buffers the input, which can then be read out. + A separate window is opened for the text input. + + Clock. A rising edge removes the oldest character from the buffer. + If high the output D is active and one character is output. + It also enables the clock input. + + The last typed character, or zero if no character is available. + Output is the 16 bit Java char value. + + This output indicates that characters are available. + It can be used to trigger an interrupt. + + + Terminal + You can write ASCII characters to this terminal. + The terminal opens its own window to visualize the output. + + Clock. A rising edge writes the value at the input to the terminal window. + + The data to write to the terminal + A high at this input enables the clock input. + + VGA Monitor + Analyzes the incoming video signals and displays the corresponding graphic. + Since the simulation cannot run in real time, the pixel clock is required in addition to the video signals. + The red color component + The green color component + The blue color component + The horizontal synchronization signal + The vertical synchronization signal + The pixel clock + + MIDI + Uses the MIDI system to play notes. + Note + Volume + If set, this translates to pressing a keyboard key (key down event), + if not set, this translates to releasing the key (key up event). + + Enables the component + If high, the value at N is used to change the program (instrument). + Clock + + Stepper Motor, unipolar + Unipolar stepper motor with two limit position switches. + Full step drive, half step drive and wave drive are supported. + + Limit position switch 0, becomes 1 when the motor angle is 0°. + + Limit position switch 1, becomes 1 when the motor angle is 180°. + + Phase 0 + Phase 1 + Phase 2 + Phase 3 + Common center coil connection + + Stepper Motor, bipolar + Bipolar stepper motor with two limit position switches. + Full step drive, half step drive and wave drive are supported. + + Limit position switch 0, becomes 1 when the motor angle is 0°. + + Limit position switch 1, becomes 1 when the motor angle is 180°. + + Coil A, positive + Coil A, negative + Coil B, positive + Coil B, negative + + + + Ground + A connection to ground. Output is always zero. + Output always returns 0. + Supply voltage + A connection to the supply voltage. Output is always one. + This output always returns 1. + Not Connected + This component can be used to set a wire to High-Z. + If an input of a logical gate is set to high-Z, the read value is undefined. + Note that in reality in many cases excessive current consumption and even damage can + occur if a digital input is not set to high or low but remains unconnected. + This output always outputs High-Z. + The NotConnected symbol is not allowed here! + Constant value + A component which returns a given value as a simple constant value. The value can be set in the attribute dialog. + Returns the given value as a constant. + Tunnel + Connects components without a wire. All tunnel elements, which have the same net name, + are connected together. Works only locally, so it is not possible to connect different circuits. + Unnamed tunnels are ignored silently. + The connection to the tunnel. + Splitter/Merger + Splits or creates a wire bundle or a data bus with more than one bit. + With a bus it is e.g. possible to generate 16-bit connections without having to route 16 individual wires. + All 16 connections can be merged into one wire. + The splitter has a direction, meaning it can only transmit signals in one direction. + + The input bits {0}. + The input bit {0}. + The output bits {0}. + The output bit {0}. + + Bidirectional Splitter + Can be used for data buses and simplifies especially the construction of + memory modules in a DIL package, as the implementation of the data bus is simplified. + When set, the value at the common data terminal D is output to the bit + outputs D[i], if not, the bits D[i] are output to the common output D. + The common data connection. + The data bit {0} of the bus splitter. + + Pull-Up Resistor + If a net is in a HighZ state, this resistor pulls the net to high. + In any other case this component has no effect. + + A "weak high". + Pull-Down Resistor + If the net is in a HighZ state, this resistor pulls the net to ground. + In any other case this component has no effect. + + A "weak low". + Driver + A driver can be used to connect a signal value to another wire. + The driver is controlled by the sel input. + If the sel input is low, the output is in high z state. + If the sel input is high, the output is set to the input value. + + The input value of the driver. + Pin to control the driver. + If its value is 1 the input is set to the output. + If the value is 0, the output is in high z state. + + If the sel input is 1 the input is given to this output. + If the sel input is 0, this output is in high z state. + + Driver, inverted select + A driver can be used to connect a data word to another line. + The driver is controlled by the sel input. + If the sel input is high, the output is in high z state. + If the sel input is low, the output is set to the input value. + + The input value of the driver. + Pin to control the driver. + If its value is 0 the input is given to the output. + If the value is 1, the output is in high z state. + + If the sel input is 0 the input is given to this output. + If the sel input is 1, this output is in high z state. + + + Pin Control + Control logic for a bidirectional pin. + This component is necessary only in the context of VHDL or Verilog generation, in order to create a + bidirectional HDL port! + If you don't want to use a bidirectional IO-port on an FPGA, don't use this component! + The PinControl component cannot be used in an embedded circuit! It is only allowed at the top level circuit! + + The data to be output. + Activates the output. + The data to be read. + The connector for the actual pin. Only a single output should be connected + here. + + + + + Multiplexer + A component which uses the value of the sel pin to decide which input value is + set to the output. + + The {0}. data input of the multiplexer. + The value of the selected input. + This input is used to select the data input which is output. + Demultiplexer + A component that can output the input value to one of the outputs. + The other outputs are set to the default value. + This pin selects the output to use. + The value of this input is given to the selected data output. + Data output {0}. + Decoder + One selectable output pin is 1, all other outputs are set to 0. + Output {0}. This output is 1 if selected by the sel input. + This input selects the enabled output. + The selected output is set to 1. All other outputs are set to 0. + Bit Selector + Selects a single bit from a data bus. + The input bus + This input selects the bit + The selected bit. + + Priority Encoder + Priority + If one of the inputs is set, its number is output. + If several inputs are set at the same time, the highest number is output. + Number of the set input. + If this output is set, at least one of the inputs is set. + The {0}. input of the priority encoder. + + + + RS-Flip-flop + RS + A component to store a single bit. + Provides the functions "set" and "reset" to set or reset the stored bit. + If both inputs are switched to one, both outputs also output a one. + If both inputs switch back to zero at the same time, the final state is random. + + The set input. + The reset input. + Returns the stored value. + Returns the inverted stored value. + + RS-Flip-flop, clocked + RS + A component to store a single bit. + Provides the functions "set" and "reset" to set or reset the stored bit. + If both inputs (S, R) are set at the rising edge of the clock, the final state is random. + + The set input. + The clock input. A rising edge initiates a state transition. + The reset input. + Returns the stored value. + Returns the inverted stored value. + JK-Flip-flop + JK + Has the possibility to store (J=K=0), set (J=1, K=0), reset (J=0, K=1) or toggle (J=K=1) the stored value. + A change of state takes place only at a rising edge at the clock input C. + The set input of the flip-flop. + The clock input. A rising edge initiates a state change. + The reset input of the flip-flop. + Returns the stored value. + Returns the inverted stored value. + D-Flip-flop + D + A component used to store a value. + The value on pin D is stored on a rising edge of the clock pin C. + The bit width can be selected, which allows to store multiple bits. + + Input of the bit to be stored. + Clock pin to store a value. + The value on input D is stored on a rising edge of this pin. + Returns the stored value. + Returns the inverted stored value. + T-Flip-Flop + T + Stores a single bit. Toggles the state on a rising edge at input C. + Enables the toggle function. + Clock input. A rising edge toggles the output, if input T is set to 1. + Returns the stored value. + Returns the inverted stored value. + JK-Flip-flop, asynchronous + JK-AS + Has the possibility to store (J=K=0), set (J=1, K=0), reset (J=0, K=1) or toggle (J=K=1) the stored value. + A change of state takes place only at a rising edge at the clock input C. + There are two additional inputs which set or reset the state immediately without a clock signal. + + The set input of the flip-flop. + The Clock input. A rising edge initiates a state change. + The reset input of the flip-flop. + Returns the stored value. + Returns the inverted stored value. + asynchronous set. A high value at this input sets the flip-flop. + asynchronous clear. A high value at this input clears the flip-flop. + D-Flip-flop, asynchronous + D-AS + A component used to store a value. + The value on pin D is stored on a rising edge of the clock pin C. + There are two additional inputs which set or reset the state immediately without a clock signal. + The bit width can be selected, which allows to store multiple bits. + + Input of the bit to be stored. + Control pin to store a bit. The bit on input D is stored on a rising edge of this pin. + Returns the stored value. + Returns the inverted stored value. + asynchronous set. If set to one, all stored bits are set to one. + asynchronous clear. If set to one, all stored bits are set to zero. + + Monoflop + Mono + The monoflop is set at a rising edge at the clock input. + After a configurable delay time, the monoflop will be cleared automatically. + The monoflop is retriggerable. It can only be used if there is exactly one clock component present in the circuit. + This clock component is used as time base to measure the time delay. + + Reset Input. A high value clears the monoflop. + The Clock input. A rising edge sets the monoflop. + output + inverted output + + + + Register + Reg + A component to store values. The bit width of the data word can be selected. + Unlike a D flip-flop, the register provides an input which enables the clock. + Input pin of the data word to be stored. + Clock input. A rising edge stores the value at the D pin. + Enable pin. Storing a value works only if this pin is set high. + Returns the stored value. + + ROM + A non-volatile memory component. + The stored data can be edited in the attributes dialog. + + This pin defines the address of data word to be output. + The selected data word if the sel input is high. + If the input is high, the output is activated. If it is low, the data output is in high Z state. + + ROM dual port + ROM + A non-volatile memory component. + The stored data can be edited in the attributes dialog. + + This pin defines the address of data word to be output on D1. + The selected data word if the s1 input is high. + If the input is high, the output D1 is activated. If it is low, the data output is in high Z state. + This pin defines the address of data word to be output on D2. + The selected data word if the s2 input is high. + If the input is high, the output D2 is activated. If it is low, the data output is in high Z state. + + RAM, separated Ports + RAM + A RAM module with separate inputs for storing and output for reading the stored data. + The address to read from or write to. + Clock input + The data to be stored in the RAM. + The data output pin + If this input is high the output is activated and the data is visible at the output. + If this input is high and when the clock becomes high, the data is stored. + + + Block-RAM, separated ports + RAM + A RAM module with separate inputs for storing and output for reading the + stored data. This RAM only updates its output on a rising edge of the clock input. + This allows the usage of Block RAM on an FPGA. + + The address to read from or write to. + Clock input + The data to be stored in the RAM. + The data output pin + If this input is high and when the clock becomes high, the data is + stored. + + + EEPROM, separated Ports + EEPROM + A EEPROM module with separate inputs for storing and output for reading the stored data. + The address to read from or write to. + Clock input + The data to be stored in the EEPROM. + The data output pin + If this input is high the output is activated and the data is visible at the output. + If this input is high and when the clock becomes high, the data is + stored. + + + RAM, bidirectional Port + RAM + A RAM module with a bidirectional pin for reading and writing the data. + The address to read and write. + Clock + The bidirectional data connection. + If this input is high the output is activated and the data is visible at the output. + If this input is high when the clock becomes high, the data is stored. + + RAM, Chip Select + RAM + A RAM module with a bidirectional connection for reading and writing the data. + If the CS input is low, the component is disabled. + This allows to build a larger RAM from some smaller RAMs and a address decoder. + The write cycle works as follows: By setting CS to high, the component is selected. + A rising edge at WE latches the address, and the following falling edge at WE stores the data. + + The address to read and write. + If set to high the data is written to the RAM. + The bidirectional data connection. + If this input is high, this RAM is enabled. Otherwise the output is always in high Z state. + If this input is high, the stored value is output. + EEPROM + A EEPROM module with a bidirectional connection for reading and writing the data. + If the CS input is low, the component is disabled. + The data content is stored like in a ROM. It is thus preserved when the simulation is terminated and restarted. + The write cycle works as follows: By setting CS to high, the component is selected. + A rising edge at WE latches the address, and the following falling edge at WE stores the data. + + The address to read and write. + If set to high the data is written to the EEPROM. + The bidirectional data connection. + If this input is high, this EEPROM is enabled. Otherwise the output is always in high Z state. + If this input is high, the stored value is output. + Graphic RAM + Gr-RAM + Used to show a bitmap graphic. This element behaves like a RAM. In addition it + shows its content on a graphic screen. Every pixel is represented by a memory address. The value stored defines + the color of the pixel, using a fixed color palette. There are two screen buffers implemented to support page + flipping. The input B selects which buffer is shown. Thus, the total memory size is dx * dy * 2 words. + The palette used is structured as follows: The indices 0-9 correspond to the colors white, black, red, green, + blue, yellow, cyan, magenta, orange and pink. The indices 32-63 map gray values and the indices 64-127 + represent 64 color values each with two bits per color channel. + This results in a simple palette that can be addressed with only 7-bit. + If the architecture supports a 16-bit index, from Index 0x8000, a high-color mode with 5 bits per color channel + can be used, which enables 32768 colors. + + The address to read and write. + If this input is high when the clock becomes high, the data is stored. + + Clock + If this input is high the output is activated and the data is visible at the output. + Selects the screen buffer to show. + The bidirectional data connection. + + RAM, Dual Port + RAM + RAM with one port that allows to write to and read from the RAM, and a second + read only port. + This second port can be used to give some graphic logic access to the memory contents. In this way, a processor + can write to the RAM, and a graphics logic can simultaneously read from the RAM. + Output Port 1 + Output Port 2 + The address at which port 1 is read or written. + The address used to read via port 2. + Clock + The data to be stored in the RAM. + If this input is high the output is activated and the data is visible at the output 1D. + If this input is high and when the clock becomes high, the data is + stored. + + + RAM, async. + As long as we is set, it is stored. Corresponds to a very simple RAM, where the + address and data lines are directly connected to the decoders of the memory cells. + The address at which reading or writing takes place. + The data to be stored. + Write enable. As long as this input is set to 1, the value applied to D is + stored at the address applied to A whenever A or D is changed. + Output of the stored data. + + Register File + Register + Memory with one port that allows to write and two ports that allow to read from + the memory simultaneously. Can be used to implement processor registers. + Two registers can be read simultaneously and a third can be written. + Output Port a + Output Port b + The register which is visible at port a. + The register which is visible at port b. + The register into which the data is written. + If this input is high and when the clock becomes high, the data is stored. + + Clock + The data to be stored in the register Rw. + + Counter + Counter + A simple counter component. The clock input increases the counter. + Can be reset back to 0 with the clr input. + The number of bits can be set in the attribute dialog. + The clock input. A rising edge increases the counter. + Synchronous reset of the counter if set to 1. + Returns the counted value. + Overflow output. This pin is set to 1 if the counter is on its maximal value + and the en input is set to 1. + + If set to 1 the counter is enabled! + + Counter with preset + A counter whose value can be set. In addition, a maximum value and a counting + direction can be specified. + + Counter + Returns the counted value. + Overflow output. It is set to 1 if the 'en' input is set to 1 and if the + counter reaches its maximum value when counting up, or has reached 0 when counting down. + + The clock input. A rising edge increases or decreases the counter. + Synchronous reset of the counter if set to 1. + If set to 1 the counter is enabled! + Specifies the counting direction. A 0 means upwards. + If set, the value at input 'in' is stored in the counter at the next clock + signal. + + This data word is stored in the counter when ld is set. + + + + + Adder + Add + A component for simple add calculations. + Adds the two integer values from input a and input b (a+b). + The result will be incremented by one if the carry input is set. + First input to add. + Second input to add. + Carry input, if set the result is incremented by one. + The result of the addition + Carry output. If set there was an overflow. + Subtract + Sub + A component for simple subtractions. + Subtracts binary numbers on input a and input b (a-b). + If the carry input is set to 1 the result is decremented by 1. + Carry input, if set the result is decremented by one. + Input a for subtraction. + Input b for subtraction. + Output returns the result of the subtraction. + Output returns 1 if an overflow occurred. + Multiply + Mul + A component for multiplication. + Multiplies the integer numbers on input pin a and input pin b. + + Input a for multiplication. + Input b for multiplication. + Output for the result of the multiplication. + Division + Div + A component for division. + Divides the integer applied to input a by the integer applied to input b. + If the divisor is zero, it is divided by one instead. + In signed division, the remainder is always positive. + + dividend + divisor + quotient + remainder + Barrel shifter + Shift + A component for bit shifting. + Shifts the input value by the number of bits given by the shift input. + Input with bits to be shifted. + Input with shift width. + Output with shifted value. + Comparator + A component for comparing bit values. + Compares the binary numbers on input pin a and input pin b and sets the corresponding outputs. + Input a to compare. + Input b to compare. + Output is 1 if input a equals input b + Output is 1 if input a is greater then input b + Output is 1 if input a is less then input b + Negation + Neg + Negation in the 2th complement + Input of the data word to be negated in 2th complement + Returns the result of the negation in 2th complement. + Sign extender + SignEx + Increases the bit width of a signed value keeping the values sign. + If the input is a single bit, this bit will be output on all output bits. + + Input value. + The input bit width must be smaller than the output bit width! + Extended input value. + The input bit width must be smaller than the output bit width! + Bit counter + Bit count + Returns the number of 1-bits in the input value. + The input which 1-bits are counted. + Outputs the number of 1-bits. + + Random Number Generator + Can be used to generate random numbers. + When the simulation is started, the generator is reinitialized so that a new pseudo-random number + sequence is generated at each start. + The generator can be initialized in the running simulation with a defined seed value to generate + a defined pseudo-random number sequence. + + PRNG + New seed value of the generator. + If set, the random number generator is reinitialized with the new seed value at the next rising clock edge. + If set, a new random number is output at the next rising clock edge. + The clock input. + Output of the pseudorandom number. + + + + Diode to VDD + A simplified unidirectional diode, used to pull a wire to VDD. + It is used to implement a wired OR. + So it is necessary to connect a pull down resistor to the diodes output. + In the simulation the diode behaves like an active gate with a trivalent truth table: + If the input high, the output is also high. In all other cases (input is low or high z) the output is in high z + state. + So two anti parallel connected diodes can keep each other in high state, which is not possible with real diodes. + This is an ideal diode: There is no voltage drop across a forward-biased diode. + If the input is high also the output is high. In all other cases the output is in high z state. + If the input is high also the output is high. In all other cases the output is in high z state. + Diode to Ground + A simplified unidirectional diode, used to pull a wire to ground. It is used to + implement a wired AND. + So it is necessary to connect a pull up resistor to the diodes output. + If the input low, the output is also low. In the other cases (input is high or high z) the output is in high z + state. + So two anti parallel connected diodes can keep each other in low state, which is not possible with real diodes. + So this is a ideal diode: There is no voltage drop across a forward-biased diode. + If the input is low also the output is low. In all other cases the output is in high z state. + If the input is low also the output is low. In all other cases the output is in high z state. + Switch + Simple switch. + There is no gate delay: A signal change is propagated immediately. + One of the connections of the switch. + + Double Throw Switch + Double Throw Switch. + There is no gate delay: A signal change is propagated immediately. + + Fuse + A fuse used to build a one time programmable memory. + One of the connections of the fuse. + One of the connections of the fuse. + Relay + A relay is a switch which can be controlled by a coil. + If a current flows through the coil, the switch is closed or opened. + There is no flyback diode so the current direction does not matter. + The switch is actuated if the inputs have different values. + The relay behaves similar to an XOr gate. + + One of the inputs to control the relay. + One of the inputs to control the relay. + Double Throw Relay + A relay is a switch which can be controlled by a coil. + If a current flows through the coil, the switch is closed or opened. + There is no flyback diode so the current direction does not matter. + The switch is actuated if the inputs have different values. + The relay behaves similar to an XOr gate. + + One of the inputs to control the relay. + One of the inputs to control the relay. + P-Channel FET + P-Channel Field Effect Transistor. + The bulk is connected to the pos. voltage rail and the transistor is simulated without a body diode. + + Gate + Source + Drain + N-Channel FET + N-Channel Field Effect Transistor. + The bulk is connected to ground and the transistor is simulated without a body diode. + + Gate + Source + Drain + P-Channel floating gate FET + P-Channel Floating Gate Field Effect Transistor. + The bulk is connected to ground and the transistor is simulated without a body diode. + If there is a charge stored in the floating gate, the fet isn't conducting even if the gate is low. + + Gate + Source + Drain + N-Channel floating gate FET + N-Channel Floating Gate Field Effect Transistor. + The bulk is connected to ground and the transistor is simulated without a body diode. + If there is a charge stored in the floating gate, the fet isn't conducting even if the gate is high. + Gate + Source + Drain + Transmission-Gate + A real transmission-gate is build from only two transistors. + Therefore, it is often used to save transistors during implementation on silicon. + input A + input B + control input. + inverted control input + + + + + Test case + Describes a test case. + In a test case you can describe how a circuit should behave. It can then be automatically checked whether the + behavior of the circuit actually corresponds to this description. If this is not the case, an + error message is shown. + The help text of the test case editor describes in detail how such a test case can be created. + + Generic Initialization + Code that is executed to start a generic circuit directly. + If a generic circuit is to be started directly, such a component must be present. + + Code + Code that is executed when a generic circuit is made concrete. + Can be used, for example, to add components or wires to a circuit. + + + Asynchronous Timing + Allows configuration of the timing of an asynchronous sequential circuit such as a + Muller-pipeline. The circuit must be started in single gate step mode and must be able to reach a stable state + at startup. The sequential circuit can then be started interactively or with a reset gate. + It is not allowed to use a regular clock component in this mode. + + Power + Has no function. Makes sure that VDD and GND are connected. + Can be used in 74xx circuits to generate the pins for the voltage supply, which are tested for correct wiring. + + Must be connected to VDD! + Must be connected to GND! + Reset + Reset Output. + The output of this component is held high during the initialisation of the circuit. + After the circuit has stabilized the output goes to low. + If the output is inverted it behaves the opposite way. + + Break + Stops the fast simulation clocking if a rising edge is detected. + If this component is used in the circuit, the "Run To Break" button between "Start" + and "Stop" is enabled. This button clocks the circuit until a rising edge on the input of this component is + detected. This element can be used for debugging by clocking the circuit to any breakpoint. + Also an assembler command BRK can be implemented. This allows to execute a program up to the next BRK command. + This function can only be used if the real-time clock is deactivated! + + Stop + A rising edge at the input stops the simulation. + Has the same effect as pressing the Stop button in the toolbar. + + A rising edge stops the simulation. + + External + Component to execute an external process to calculate the logic function. + Is used to specify the behaviour of a component by VHDL or Verilog. + The actual simulation of the behavior must be done with an external simulator. + At present only the VHDL simulator ghdl and the verilog simulator Icarus Verilog are supported. + The label of the component must match the name of the entity or module! + + External File + Component to execute an external process to calculate the logic function. + Is used to specify the behaviour of a component by VHDL or Verilog. + The actual simulation of the behavior must be done with an external simulator. + At present only the VHDL simulator ghdl and the verilog simulator Icarus Verilog are supported. + The label of the component must match the name of the entity or module! + + + Diode + Simplified bidirectional diode. It is used to implement a wired AND or a wired OR. + This is a ideal diode: There is no voltage drop across a forward-biased diode. + + + + Error + Pin {0} in component {1} is not a input or output + A single clock component is necessary. All flip-flops must use this clock signal. + The circuit has no labeled inputs + The circuit has no labeled outputs + No break detected after {0} cycles at break point ''{1}''. + Possibly the number of timeout cycles in the break component should be increased. + + Expression {0} not supported + Operation {0} not supported + Error creating the lookup table. + More than one output is active on a wire, causing a short circuit. + It is not allowed to connect a pull-up and pull-down resistor to the same net. + Cannot analyse Node {0} + Contains [var] and [not var] + Pin {0} in component {1} exists twice + Component {0} not found + Exact {0} values necessary, not {1} + Flip-flop needs to be connected to the clock. + Invalid file format + Logic is already initialized + A tunnel {0} is not connected! + There is more than one clock + The clock component is not used! + There are {0} bits needed, but {1} bits found + Net of pin {0} not found + No clock found in logic + No inputs available to set + No shape found for component {0} + Nothing connected to input ''{0}'' at component ''{1}''. Open inputs are not allowed. + Not all connected outputs have the same bit count + If multiple outputs are connected together, all of them have to be + three-state outputs. + + No output connected to a wire ({0}). The state of the wire is undefined. + + Table too small: One result is required! + Output {0} not defined + No label for pin {0} + Pin {0} assigned twice! + No = found! + Pin {0} is not an input! + Pin {0} is not an output! + Too many inputs used! + Too many outputs used! + Pin not present + Found a pin without a label. + Found a clock without a label. If a clock is embedded the clock also needs a + label. + + Pin {0} not found at component {1} + Pin {0} not found + The custom shape does not define a pin {0} + Pin {0} unknown + Logic seems to oscillate. + To analyse you can run the circuit in single gate step mode. + + The remote port is in use! Is there an other instance running? + Number of inputs does not match selector bit count + Syntax error in splitter definition {0} + Bit count of splitter is not matching + Not all input bits are defined! + Input bits are defined several times! + Only 64 bits allowed in splitter! + Two inputs are required! + Too many variables (inputs+flip-flops), {0} are allowed but {1} were + found. + + Too many variables used in {0}, + {1} are allowed variables but {2} were found. + + Variable {0} is not allowed in CUPL source! + Variable {0} not defined + Unexpected Token {0} + Missing closed parenthesis + Value {0} in line {1} is not a number! + Expected {0} but found {1} values in line {2}! + + Unexpected token ({0}) in line {1}. + Variable {0} not found! + No input signals defined in test vector! + No output signals defined in test vector! + No test data found. + It's not allowed to connect a pull up and a pull down resistor to a single wire. + Could not open the browser. + Could not create folder "{0}"! + It is not allowed to connect only inputs to a switch. + The file {0} exists multiple times under {1}. + Could not find the file {0}. + Error during execution of "{0}". + The process "{0}" does not return! + The process returns the non zero value {0}: {1} + Error starting the external fitter! + There are no minimized equations! + Equations are being calculated! Please wait a moment! + The variable {0} is used twice! + The file needs to be saved! + The circuit {0} imports itself! + The result of the minimization is not correct! + The names of the variables may not be unique. + Too many iterations in a loop. + Diode needs a pull up resistor at its output! + Diode needs a pull down resistor at its output! + Test signal {0} not found in the circuit! + Only {1} bits allowed, but {0} bits found! + Flip-flops with more than one bit are not allowed! + The two control inputs of a transmission gate must be inverted! + Signal {0} is used twice! + Error parsing the test data. + The model component {0} can not be analysed. + Error in wiring of power supply at {0}. + The pin number {0} is not an integer! + Error during export to VHDL. + No VHDL code for {0} available! + No Verilog code for {0} available! + Error creating a test bench! + Values of type {0} are not allowed! + A name is missing. Have e.g. all pins a label set? + Several outputs are connected to each other. + This type of interconnection is not supported for HDL export. ({0}, {1}, {2}). + Test cases with generic parameterization are not supported in HDL + export! + + unnamed net + Too many variables! + Invalid expression! + Function {0} not found in line {1}! + Number of arguments in function {0} in line {1} not correct (found {2}, expected {3})! + Invalid value {0} in function {1}! + The name {0} is not a path element. + Error during loading of a library. + The JAR file contains no manifest! + The manifest does not contain a Main-Class entry! + Could not find the class {0}! + Could not create an instance of the class {0}! + There must be more input bits than output bits! + It is not possible to set physical pins to constant values! + The string {0} is not a valid number (pos {1})! + The name "{0}" is not allowed! + No white space is allowed in the name of the TT2 file! + The table has too many columns! + Error writing the ZIP file. + Only one clock component with high frequency is allowed. + The circuit contains cycles. It's not possible to analyze such a circuit. + Cycles arise if an output of a gate is fed back to one of the inputs of the same gate. + The use of switches, FETs or relays also causes cycles. + If a monoflop is used, there must be exactly one clock component! + ROMs defined in the settings are not supported! + Could not create a component of type {0}! + + Could not write values to the external process! + Could not read values from the external process! + Could not create the external process! + Timeout reading data from external process! + {0} + Not enough data received! + {0} + The received text contains an invalid character: {0}! + {1} + The process has terminated unexpected! + {0} + Could not terminate the process! + Could not start process: {0} + Application exit status was not 0 but {0}: + {1} + External code can only be exported if it is VHDL! + External code can only be exported if it is Verilog! + If an external component is used multiple times, the code must be identical! Effects: {0} + Could not write to stdOut: + {0} + + The VHDL simulator ghdl does not seem to be installed. Install ghdl (http://ghdl.free.fr/) and try again. + If there are still problems, check the path to the ghdl executable in the Digital settings. + + + The Verilog simulator Icarus does not seem to be installed. Install IVerilog (http://iverilog.icarus.com/) and + try again. + If there are still problems, check the path to the IVerilog executable in the Digital settings. + + Error loading the HDL file {0} + A empty label is not allowed! + + Error analysing the circuit: {0} + Every ROM needs a unique label to be exported! + Every LUT needs a unique label to be exported! + The counter needs at least two bits. + The name "{0}" is not unique! + Clock elements can not be used in asynchronous mode. + Error during export to Verilog. + No program memory found! The program memory needs to be flagged as such. + Multiple program memories found! Only one program memory is allowed. + No memory "{0}" found in the model! + Multiple memories "{0}" found in the model! + Error loading the program memory. + Error while reading the SVG file. + The SVG file contains pins that do not exist in the circuit. + All memories into which data are to be loaded require the same bit width. + If programs are to be loaded into several RAMs, all RAMs must have + different names. The lexical order then determines the order of the RAMs. + The MIDI-System is not available. + The MIDI channel {0} is not available. + The MIDI instrument {0} is not available. + The MIDI instruments are not available. + During the execution of the tests "{0}" an error has occurred! + HDL not known: {0} + Error starting the command {0} + There is a unnamed input or output! + The signal name "{0}" is invalid or used multiple times! + Error when substituting components for the analysis. + Error in the evaluation of the generic code of the circuit. Code + {1} + at Component: {0} + + Error while parsing generics code. + No initialization code for the generic components. + A respective component must be added to the circuit in order to start it. + + Multiple initialization codes for the generic elements. + Error in the analysis of the generic initialization code. + Global variables can only be written in code components. + + There is no file name available for the automatic reload! + Virtual signal {0} declared twice in line {1}! + + No header found! + No output values found! + Not enough values in one line! + Too many values in one line! + Error writing file {0}. + The circuit contains no components! + + Address Bits + Number of address bits used. + Data Bits + Number of data bits used. + Color + The Color of the element. + Background color + Background color of the circuit when it is embedded in another circuit. Is not + used for DIL packages. + + Timeout cycles + If this amount of cycles is reached without a break signal, an error is created. + + Data + The values stored in this element. + Default + This value is set if the circuit is started. + At the demultiplexer, this value is set for the non-selected outputs. + Default + This value is set if the circuit is started. A "Z" means high-z state. + Is three-state input + If set the input is allowed to be in high-z state. At the input component this is + also allowed if high-z ("Z") is set as the default value. + No zero output. + Avoids zero output. This is especially helpful when setting up relay circuits. + Can only be activated if a high-z output is allowed. + Description + A short description of this element and its usage. + Frequency/Hz + The real time frequency used for the real time clock + Use IEEE 91-1984 shapes + Use IEEE 91-1984 shapes instead of rectangular shapes + Number of Inputs + The Number of Inputs used. Every input needs to be connected. + Label + The name of this element. + Size + The size of the shape in the circuit. + Language + Language of the GUI. Will only take effect after a restart. + Net name + All nets with identical name are connected together. + Input Splitting + If e.g. four bits, two bits and two further bits are to be used as inputs, + this can be configured with "4,2,2". The number indicates the number of bits. For convenience, the asterisk + can be used: 16 bits can be configured with "[Bits]*[Number]" as "1*16". + It is also possible to specify the bits to be used directly and in any order. + For example, "4-7,0-3" configures bits 4-7 and 0-3. This notation allows any bit arrangement. + The input bits must be specified completely and unambiguously. + Output splitting + If e.g. four bits, two bits and two further bits are to be used as outputs, + this can be configured with "4,2,2". The number indicates the number of bits. For convenience, the asterisk + can be used: 16 bits can be configured with "[Bits]*[Number]" as "1*16". + It is also possible to specify the bits to be used directly and in any order. + For example, "4-7,0-3" configures bits 4-7 and 0-3. This notation allows any bit arrangement. + Output bits can also be output several times: "0-7,1-6,4-7". + + Number of Selector Bits + Number of bits used for the selector input. + Signed Operation + If selected the operation is performed with signed (2th complement) values. + Remainder always positive + If set, the remainder of a signed division is always positive. + Closed + Sets the initial state of the switch. + Value + The value of the constant. + Width + Width of symbol if this circuit is used as an component in an other circuit. + Height + Height of symbol if this circuit is used as an component in an other circuit. + Reload at model start + Reloads the HEX file every time the model is started. + File + File to be loaded into the ROM. + Flip selector position + + This option allows you to move te selector pin to the opposite side of the + plexer. + + Number Format + The format used to show the numbers. + ASCII + Bin + Decimal + Signed decimal + Default + Hex + Octal + Fixed Point + Signed Fixed Point + Floating Point + fixed point digits + Number of fractional binary digits + shift input has sign + shift input data has two complement format + Mode + Mode of barrel shifter + Logical + Rotate + Arithmetic + Direction + Set direction. + left + right + Max number of steps to show + The maximal number of values stored. + If the maximum number is reached, the oldest values are discarded. + Show single gate steps + Shows all single step steps in the graphic. + Rotation + The orientation of the Element in the circuit. + Mirror + Mirrors the component in the circuit. + Start real time clock + If enabled the runtime clock is started when the circuit is started + Show measurement graph at simulation start + When the simulation is started, a graph with the measured values is shown. + Show measurement graph in single gate step mode at simulation start + When the simulation is started, a graph with the measured values in the + gate step mode is shown. All gate changes are included in the graph. + Show in Measurement Graph + Shows the value in the measurement graph. + Show measurement values at simulation start + When the simulation is started, a table with the measured values is shown. + Lines + The number of lines to show. + Characters per line + The number of characters shown in a single line. + Use as measurement value + If set the value is a measurement value and appears in the graph and data table. + In addition, a label must be specified that can serve as identification of the value. + + Test data + The description of the test case. + Details of the syntax can be found in the help dialog of the test data editor. + Width in pixels + The screen width in pixels. + Height in pixels + The screen height in pixels. + Program Memory + Makes this ROM to program memory. So it can be accessed by an external IDE. + Program Counter + Makes this register a program counter. The value of this register is returned + to the external assembler IDE to mark the current line of code during debugging. + Programmed + If set a diode is "blown" or "programmed". + At a floating gate FET the floating gate is charged. + You can change this setting with the [P] key. + + Format + Screen format of expressions. + Relay is normally closed. + If set the relay is closed if the input is low. + Pole count + Number of poles available. + Common Connection + If selected, a common cathode or anode input is also simulated. + Common + Kind of common connection. + Cathode + Anode + + Avoid Flicker + It is not possible to increase the frequency so much that the flickering + disappears. + In order to suppress the flickering nevertheless, a "afterglow" can be switched on for the LEDs with this + option. + If enabled, the LEDs remain on, even if one of the pins changes to high-z. + This simulates a frequency above the critical flicker fusion frequency. + ATF15xx Fitter + Path to the fitter for the ATF15xx. + Enter the directory which contains the fit15xx.exe files provided by Microchip (former ATMEL). + Pin number + An empty field means this signal is not assigned to a pin. + Rows + Specifies the number of rows by specifying the number of bits of the row word. + Address bits of columns + Addresses the individual columns. Three bits means eight columns. + Modification locked + The circuit is locked. It is possible to configure diodes and FGF-FETs. + Pin number + Number of this pin. Used for the representation of a circuit as a DIL package and + the pin assignment when programming a CPLD. + If there are several bits, all pin numbers can be specified as a comma-separated list. + + Number of DIL pins + Number of pins. A zero means that the number of pins is determined automatically. + + Component tree view is visible at startup. + If set, the component tree view is enabled at startup. + Inverted inputs + + You can select the inputs that are to be inverted. + Menus Font Size [%] + Size of the fonts used in the menu in percent of the default size. + Enable Input + If set an enable input (T) is available. + Unidirectional + Unidirectional transistors propagate a signal only from source to drain. They + are + much faster to simulate than bidirectional transistors. Since there is no feedback from drain to source, in this + mode, the transistor can not short the connected wires when it is conducting. Thus, this mode is necessary to + simulate certain CMOS circuits. + + Active Low + If selected the output is low if the component is active. + Library + Folder which contains the library with predefined sub circuits. + Contains, for example, the components of the 74xx series. You also can add your own circuits by storing + them at this location. + It must be ensured that the names of all files in this folder and all subfolders are unique. + + Show Grid + Shows a grid in the main window. + Wire tool tips + If set, lines are highlighted when the mouse hovers over them. + Map to keyboard + Button is mapped to the keyboard. + To use the cursor keys use UP, DOWN, LEFT or RIGHT as label. + + Java library + A jar file containing additional components implemented in Java. + Show the number of wires on a bus. + CAUTION: The value is only updated when the simulation starts. + Input Bit Width + The number of output bits must be greater than the number of input bits. + Output Bit Width + The number of output bits must be greater than the number of input bits. + Font Size + Sets the font size to use for this text. + Duration + Delay time in units of the common gate propagation delay. + Inverted output + If selected the output is inverted. + Pulse Width + The pulse width is measured in clock cycles. + Spreading + Configures the spread of the inputs and outputs in the circuit. + Content of ROMs + Content of all used ROMs + + Application + Defines which application to use. + Generic + GHDL + IVerilog + Inputs + The inputs of the external process. + It is a comma-separated list of signal names. For each signal name, a number of bits separated by a colon + can be specified. The inputs of an 8-bit adder could thus be described as "a:8,b:8,c_in". + + Outputs + The outputs of the external process. + It is a comma-separated list of signal names. For each signal name, a number of bits separated by a colon + can be specified. The outputs of an 8-bit adder could thus be described as "s:8,c_out". + + Program code + The program code to be executed by the external application. + Program code + The file containing the program code to be executed by the external application. + Options + GHDL + Path to the executable ghdl file. Only necessary if you want to use ghdl to simulate + components defined with VHDL. + + GHDL Options + Options that are used for all processing steps by GHDL. + IVerilog Options + Options that are used for all processing steps by IVerilog. + + IVerilog + Path to the Icarus Verilog installation folder. Only necessary if you want to use + iverilog to simulate + components defined with Verilog. + + Maximum Value + If a zero is entered, the maximum possible value is used (all bits are one). + + Output is High + The default output value of the DIP switch when the simulation starts. + + Use macOS mouse clicks. + Uses CTRL-click instead of right-click. + No tool tips for components on the main panel. + If set, no tool tips for the components on the main panel are displayed. + Especially in a presentation, these tool tips can be very annoying. + Show dialog for automatic renaming of tunnels. + If set, a dialog for automatically renaming all tunnels of the same name is displayed after a + tunnel has been renamed. + + ATMISP + Path to the executable file ATMISP.exe. If set, the ATMISP software can be started automatically! + + Custom Shape + Import of a SVG file + + Preload program memory at startup. + When simulating a processor that uses a RAM device as the program memory, + it is difficult to start this processor because the RAM contents are always initialized with zeros at the start + of the simulation. This setting allows loading data into the program memory at startup. + The program memory in the simulation must be marked as such. + + Program file + File which should be loaded into the program memory at the start of the + simulation. + + + Width + Width in grid units + Height + Height in grid units + Text Inside + Place text inside the rectangle. + Text at the bottom + Place text at the bottom of the rectangle. + Text on the right + Place text to the right of the rectangle. + + Wide Shape + Uses a wider shape to visualize the gate. + + Shape + The shape to be used for the representation of the circuit in an embedding circuit. + In the "Simple" mode, the inputs are displayed on the left and the outputs on the right side of a simple + rectangle. + With "Layout", the position of the inputs and outputs and their orientation in the circuit determines + the position of the pins. Here it is possible to have pins at the top or the bottom. + When selecting "DIL-Chip", a DIL housing is used to display the circuit. The pin numbers of the inputs and + outputs + determine the position of the pins in this case. + + Default + Simple + DIL-Chip + Layout + User defined + + Orientation + Position of the coordinate relative to the text. + left bottom + center bottom + right bottom + right center + right top + center top + left top + left center + center center + + MIDI channel + Selects the MIDI channel to use. + MIDI instrument + The MIDI instrument to use. + Allow program change + Adds a new input PC. If this input is set to high, + the value at input N is used to change the program (instrument). + + Enabled + Enables or disables this component. + + Toolchain Configuration + Used to configurate an integration of a toolchain. + Allows the start of external tools, e.g. to program an FPGA or similar. + + Generic Parameterization + Statements used to generify a circuit. + + Circuit is generic + Allows to create a generic circuit. + + Show Tutorial at Startup + Enables the tutorial. + + Switch behaves like an input + If the model is analyzed, the switch behaves like an input, where "open" corresponds to '0' and "closed" to '1'. + + SVG Export Settings + Text in LaTeX notation + Text is inserted in LaTeX notation. Inkscape is required for further processing. + Pin labels in Math Mode + For pin labels, use math mode even if no indexes are contained. + Hide Test Cases + The test cases are not exported. + Shapes not filled + Polygons are not filled. + Small Inputs and Outputs + Inputs and outputs are represented as small circles. + Leave out Pin Marker + The blue and red pin markers on the symbols are omitted. + High Contrast + The wires and the text of the pins are displayed in black. + Monochrome + Only gray colors are used. + Thin Lines + If set, the lines are drawn slightly thinner. + + Use Equals-Key + Use the equal key instead of the plus key. + This is always useful if the plus character is not a primary key, but the second assignment of the + equals character, e.g. for an American or French keyboard layout. + + + Snap To Grid + If set, the component is aligned with the grid. + + Pin Separator + Used by the layout shape type. Sets the distance to the previous pin. + + + Trigger + Trigger condition for data recording. + rising edge + falling edge + both edges + + Color scheme + Normal + Dark + Red/green colorblind + User Defined + User Defined Colors + Preset + Background + Foreground + Wire + Wire HIGH + Wire LOW + Value at the wire + Output + Wire HIGH-Z + Error + OK + Pins + Grid + Test case + Disabled + Asynchronous + Highlighted + + Inserted wire. + Insert from clipboard. + Value ''{0}'' in component ''{1}'' modified. + Attributes of component ''{0}'' modified. + Wire deleted. + Component ''{0}'' moved or rotated. + Wire moved. + Selection deleted. + Component ''{0}'' inserted. + Component ''{0}'' deleted. + Wire inserted. + Selection moved. + Undo: {0} + Redo: {0} + Modified circuit attributes. + Ordered measurements. + Modified attributes of selected components. + Splits a single wire into two wires. + Changes made by the running simulation. + + Logic + Arithmetic + Flip-Flops + IO + Memory + Plexers + Wires + Switches + Misc. + more + Displays + Mechanical + Peripherals + RAM + EEPROM + Decoration + Generic + VHDL/Verilog + + Command Line Interface + The non-optional argument {0} is missing. + The value {0} is not a boolean. + The value {0} is not a number. + The argument {0} is not defined. + There are not enough arguments. + There are too many arguments. + Invalid type. + The command {0} has no sub-command {1}. + Options: + + The first file name specifies the circuit to be tested. + If a second file name is specified, the test cases are executed from this file. + If no second file name is specified, the tests are executed from the first file. + + Name of the file to be tested. + Name of a file with test cases. + Allows the lack of inputs in the circuit which are + defined in the test case. This can be useful if there are several possible solutions which may + depend on different inputs. + + Tests have failed. + An error has occurred during the execution of the tests. + + Can be used to create an SVG file from a circuit. + The file name of the circuit. + The name of the SVG file to be written. + Use the IEEE symbols. + Error while creating the SVG file! + + Creates a CSV file which contains the circuit statistics. + All components used are listed in the CSV file. + + File name of the circuit. + Name of the CSV file to be created. + If this option is missing, the table is written to stdout. + + Error while creating the stats file! + + Windows + About + Analysis + Analyses the current circuit + Cut + Copy + Custom + Library + Delete components + Delete selected single component or group of components. + Edit + Circuit specific settings + The circuit specific settings affect the behavior of the + currently open circuit. + For example, the shape that represents the circuit when it is embedded in other circuits. + These settings are stored together with the circuit. + Settings + The global settings of the simulator specify, among other + things, the language, the symbol form to be used or the paths of external tools. + Stop Simulation + Stops the simulation and allows to edits the circuit. + Components + Export + Export PNG large + Export PNG small + Export SVG + Export Animated GIF + Run to Break + Runs the circuit until a break is detected by a BRK component. + File + Help + Update + Updates the components menu. + Fit to window + Single gate stepping + Runs the circuit in single gate step mode + New + Creates a new, empty circuit. + New embedded Circuit + Opens a new window to create a new embedded circuit, which can then be used in this + circuit. + + Open + Open Recent + Open Recent in New Window + Open in New Window + Opens a circuit in a new window + Order Inputs + Order the inputs for the use as a embedded circuit + Order measurement values + Orders the measurement values in the graphical and table view + Order Outputs + Order the outputs for the use as a embedded circuit. + Paste + Paste in new window + The content of the clipboard is pasted in a new window. + Rotate + Simulation + Start of Simulation + Starts the simulation of the circuit. + Save + Save As + Save Data + Save data as CSV file + Speed Test + Performs a speed test by calculating the max. clock frequency. + Gate Step + Calculates a single gate step + Run To Break in Single Gate Mode + Executes all single gate steps until a rising edge is detected on a break component. + If there is no break component, the remaining single gate steps are executed. + Synthesis + Generates the minimal bool expressions described by a truth table. + Set Scaling + + {0} variables + Create + Creates a CUPL source file containing the define circuit. + Creates a file containing the circuit similar to the Berkeley Logic Interchange Format (BLIF). + After that the Atmel fitter is started to create the JEDEC file. + Circuit + Creates a circuit which reproduces the truth table. + Circuit with JK flip-flops + Creates a circuit which reproduces the truth table. Uses JK flip-flops. + Circuit with LUTs + Creates a circuit which reproduces the truth table. Uses lookup tables to create the expressions. + Circuit with NAnd gates + Circuit with NAnd gates with two inputs + Use only NAnd gates with two inputs. + Creates a circuit which reproduces the truth table only with NAnd gates. + Circuit with NOr gates + Circuit with NOr gates with two inputs + Use only NOr gates with two inputs. + Creates a circuit which reproduces the truth table only with NOr gates. + Circuit with two input gates + Create circuit, use only gates with two inputs + Circuit with three input gates + Create circuit, use only gates with a maximum of three inputs + Device + Creates a JEDEC file for the device + Export LaTeX + Export Plain Text + Export Test Case + Creates a test case description that can be used in a test + case. + + The test case is only functional if the circuit is + purely combinatorial! + + + HEX + You can load the HEX file to a ROM or a LUT. + CSV + A CSV file containing the complete truth table. + CSV, prime implicants + A CSV file containing only the prime implicants. + New + Combinatorial + Sequential + Sequential bidirectional + Reorder/Delete Input Variables + Add Input Variable + Adds a new input variable to the table. + Reorder/Delete Output Columns + Add Output Column + Adds a new result column to the table. + Set X to 0 + Sets the Don't Cares to 0. + Set X to 1 + Sets the Don't Cares to 1. + Create J/K Expressions + Set all to X + Set all values to "don't care". + Set all to 0 + Set all values to zero. + Set all to 1 + Set all values to one. + Invert all bits + A "1" becomes a "0" and vice versa. Don't cares remain unchanged. + Show results dialog + Shows the results dialog again if it was closed manually. + Delete + Delete the terminals content. + View + Zoom In + Zoom Out + Expression + Create a circuit from an expression. + Run Tests + Runs all test cases in the circuit + Set Input Defaults + Use current input values as new default values. + Reset all diodes and FGFETs + Resets all diodes (fuses) and FGFETs to the "not programed" state. The + current fuse configuration is lost! + + Program diode + Components + Shows a list of all available components. + Help Dialog + Shows the help dialog describing the current circuit. + Memory + Shows the content of memory components. + Component Tree View + Shows a tree view of available components at the left side. + K-Map + Shows a K-map representation of the table! + + Special 74xx Functions + Add IO-Prefix + A prefix is added to all selected inputs and outputs. + Is used to simplify the doubling of circuits within a 74xx circuit. + Remove IO-Prefix + The first character from the inputs and outputs labels are removed. + Is used to simplify the doubling of circuits within a 74xx circuit. + Pin Wizard + Wizard to apply pin numbers to the inputs and outputs. + Remove Pin Numbers + Remove all pin numbers in the circuit + Select pin {0}: + + Undo + Revert last modification + Redo + Apply last reverted modification again. + Show graph + Show the data as a Graph. + Show table + Shows values as a table. + Add power supply + Adds a power supply to the circuit. + Export to VHDL + Exports the circuit to VHDL + Export to Verilog + Exports the circuit to Verilog + Documentation + Open {0} + Error opening a PDF file! + + Show measurement graph + Shows a graph with the measured values in a separate window. + Show measurement value table + Show table with the measured values in a separate window. + Export to ZIP file + Exports the circuit as a ZIP file. + The ZIP file thus contains all the files that are necessary for the operation of the circuit. + Label Inputs and Outputs + Set a label to all inputs and outputs without a label. + + Start Tutorial + Starts the beginner tutorial. + + Circuit Statistics + Shows a list of used components. + Number + Component + Inputs + Bits + Addr. Bits + + Name to use in generic circuits: {0} + Create Concrete Circuit + Create + Creates a concrete circuit from this generic circuit using the + parameters specified in this element. + + Error while creating the concrete circuit! + + Digital +

A simple simulator for digital circuits.

+

Written by H. Neemann in 2016-2021.

+

The icons are taken from the Tango Desktop Project.

+

Visit the project at GitHub. + At Github you can also download + the latest release.

+

There you also can file an issue + or suggest + an enhancement.

]]> +
+ {0} nodes + Error analysing the circuit + Color + Error calculating a step + Error creating the circuit + Error during simplification + Error during creation of hardware configuration. + Error editing a attribute value + Error importing the circuit {0}! + Error updating the component library!! + Error reading a file + Error writing a file + The maximum frequency is {0} kHz + Shape {0} is missing + Pin assignment + Pin {0}: {1} + A restart is required for the changes to take effect! + Command {0} unknown! + Enter an expression: + Error running the tests: + Test result + {0} passed + {0} failed + E: {0} / F: {1} + Error creating the help! + The clipboard contains no importable data! + Select an empty folder! + Message from the external fitter + Execution of external fitter + Current Circuit + The selected file name is not importable from the current project! + The file name is not unique! + All files in the working directory and all subdirectories must have unique file names. This also applies to the + library folder. If your work directory has a 7400.dig file, you cannot use this file or the 7400.dig file from + the library, because this file name can no longer be uniquely assigned. + + There are several files with identical file names, which can not be + uniquely assigned! Affected are: + + and {0} more. + The file has not yet been imported. + The file {0} already exists! Do you want to overwrite the file? + (Too many entries!) + All test cases are executed, but not all results are shown. + The evaluation of the test result is nevertheless correct! + The editing of the circuit is disabled. You can remove the lock at + "{0} -> {1} -> {2}". + However, copying of components and the configuration of diodes and FGFETs with the [P] key is also possible in + the locked mode. + + Error during speed test! + Pin {0} + Numbering Wizard + Written frames: {0} + Error writing to GIF file! + Ready + The GIF file is finalized and closed. + GIF Export + caused by + Inputs to invert + none + Could not determine the names of the pins. + Occurred in file {0}. + Affected are: {0}. + Signal {0} + No pin numbers assigned to the pins {0}! + Free pins are automatically assigned. The circuit can therefore not be used on real hardware in most cases! + You can only export a circuit without errors! + No KV map available! + Data will not be updated anymore! + Modify this Value + One of the fields contains a invalid value! + Creation of CHN file. + The table is very large, the export may take a while. + Start export anyway? + To create a hardware description, a circuit must first be created and analyzed. + A standalone truth table can not be used to generate a hardware description. + Included ROMs + no data + + Could not close external process! + + Check Result: + Check + Starts the application to check if the entered code is correct. + If this is not the case, the error message of the external application is displayed. + If possible, the input and output definitions are also adapted to the current code. + Input and output definitions could not be created automatically. + Please check the settings! + Executable file "{0}" not found! + Enter Text! + + Start ATMISP + Starts the external program ATMISP. This must have been previously installed. + Error while starting ATMISP! + Is the correct path to the executable ATMISP.exe specified in the settings? + + ATMISP is still running! + When this dialog is closed, ATMISP is terminated! + Make sure the flash process is complete before closing this dialog! + + + Run all Tests + Executes all tests in the current folder. + {0} test rows passed + File Tested + Truth Table + Comma Separated Values, CSV + Error while importing the SVG file. + Error creating the SVG template. + Statistics could not be created. + Error while reading the toolchain configuration {0} + Command "{0}" has been started! Processing may take some time! + The command "{0}" has been completed! + + Rename Net + There are {0} more tunnels with the net name ''{1}''. + Do you want to rename all {0} to ''{2}''? + + + Do you really want to discard the changes in the "{0}" field? + + Exportable to VHDL/Verilog. + Error while setting the test case row. + + Video mode was not detected ({0}) + + Create Behavior Fixing Test Case + Creates a behavioral fixture from the circuit. + A behavioral fixture is a test case that fixes the current behavior. + Fixtures: {0} + Create Fixture + Creates a new fixture in the test case. + Complete + Creates the test case component + Error in the creation of the test case. + + OK + + 180° + 270° + 90° + Break after {0} half cycles at break point ''{1}''. + Deletes the selected item + Move the item down + Move the item up + All possible solutions + Confirm Exit! + Measurements + Measurements full clock step + Measurements single gate step + Save Changes? + State Changed! + Table + Export + Select + Test data {0} + Data + Input {0} + Karnaugh Map + + Help + Clipboard + Copies the text to the clipboard. + + Central ROM Content + +

Motivation

+ When a circuit containing a ROM component is embedded multiple times, the contents of the ROM + is normally used for each instance of that circuit. Under certain circumstances, + however, it may be desirable for such a circuit to be embedded multiple times, + but different ROM contents are used for each instance.
+ This problem occurs e.g. if a 74xx ROM is used multiple times but with different + memory contents.
+

Function

+ At this location, therefore, contents can be defined for all ROMs in the circuit. + When the simulation model is generated, every ROM is initialized with the contents stored + directly in the respective ROM. Then it is checked whether an alternative content is + defined here. If this is the case, the content defined here is loaded into the corresponding ROM. +

Usage

+ It should be noted that each ROM requires a unique name used to identify the ROM. + To do this, use the asterisk ('*') in the label of the ROM. The asterisk is then replaced by the complete + path constructed from the names of the embedded circuits. + If a circuit contains only one ROM component, it is sufficient to use only the asterisk as a label for it. + All embedded circuits must be named so that a unique name can be formed for each ROM component. + + ]]> +
+ + +

New Version {0} Available

+

There is a new release of the simulator available.

+

In the release notes + you can find the changes and improvements.

+

Here you can download the new release.

+ + ]]>
+ + Expressions + To define an expression you can use all most common notations:

+

+ And: "&", "&&", "*", "∧"
+ Or: "|", "||", "+", "∨", "#"
+ XOr: "^", "⊻"
+ Not: "!", "~", "¬" +

+

As usual AND precedes OR and XOr.

+

Multiple expressions can be separated by "," or ";". + If you want to name the expressions you can use the + let command: "let U=A+B, let V=A*B".

]]> +
+ Test vectors + + + +

General

+

The first line has to contain the names of inputs and outputs. +The following lines contain the expected values. +A 'X' represents a don't care, and a 'Z' represents a high Z value. +If a 'C' is used, at first all other values are set, after that a clock cycle is performed and then the +values are compared. So it's easier to test sequential logic. +A line which starts with a number sign ('#') is a comment.

+ +

So a test for a 2-bit counter could look like this:

+ +
+C Q1 Q0
+0 0  0
+C 0  1
+C 1  0
+C 1  1
+C 0  0
+
+ +

The tests are executed by Run->Run Tests.

+

+To make it easier to create a lot of test vectors there is the 'repeat([n])' statement: +If a line begins with 'repeat([n])', [n] test lines are generated. The +variable 'n' can be used to generate the test data. With 'repeat(16)', +16 lines are created, where n goes from 0 to 15. If there are multiple bit inputs, +and these are to be set together to a binary value, this can be done with the +'bits([bits], [value])' statement. This is used to create [bits] bits of the value [value].

+ +

The following is an example that tests a 4-bit adder:

+ +
+           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
+repeat(256)  0    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15))
+repeat(256)  1    bits(4,n>>4)     bits(4,n)        bits(5,(n>>4)+(n&15)+1)
+
+ +

The input signals are the carry-in (C_i-1) and the eight input bits A_3-A_0 and B_3-B_0. +The 4 input bits are generated with the 'bits' instruction. The result (C_i, S_3-S_0) is also generated +by a 'bits' instruction. +This happens once with C_i-1 = 0 and in the next line with C_i-1 = 1. +In this way, 512 test rows are generated which cover all possible input configurations.

+

If multiple rows are to be repeated, or if nested loops are required, the loop +statement can be used. The above example could also be implemented as follows:

+ +
+           C_i-1  A_3 A_2 A_1 A_0  B_3 B_2 B_1 B_0  C_i S_3 S_2 S_1 S_0
+loop(a,16)
+  loop(b,16)
+             0    bits(4,a)        bits(4,b)        bits(5,a+b)
+             1    bits(4,a)        bits(4,b)        bits(5,a+b+1)
+  end loop
+end loop
+
+ +

Under certain circumstances it may be necessary to be able to react to the initial +state of the circuit. Therefore the signals provided in the circuit can be used within +the test case. For example, if a counter that starts in an undefined state is to be +tested, it can be clocked to a defined state:

+ +
C Q_3 Q_2 Q_1 Q_0
+
+# clock counter to 1111
+while(!(Q_3 & Q_2 & Q_1 & Q_0))
+C x x x x
+end while
+
+# start the test execution
+repeat(16) C bits(4,n)
+
+ +

It may be helpful to generate random numbers in test cases. +These can be created with the function 'random([n])'. The generated number is greater +than or equal to zero and less than [n]. Considering a 16-bit multiplier as an example, +a full test can not be performed since it would have 2^32 input combinations. +A regression test that multiplies 100000 random numbers might look like this:

+ +
+   A    B      Y
+loop(i,100000)
+  let a = random(1<<16);
+  let b = random(1<<16);
+  (a)  (b)   (a*b)
+end loop
+
+ +

An input that allows high impedance as a value can also be used as a test output. +In this case, the signal name can be used with a trailing "_out" to read back and check the current value. +For this, the corresponding input must be set to high impedance ('Z').

+ +
OE CLK D D_out
+0   0  0 0
+0   C  1 1
+1   0  z 1
+0   C  0 0
+1   0  z 0
+
+ +

The circuit for this test has only one input 'D', but which can be high impedance state. +Therefore, the signal 'D_out' is also available to check the value in this case.

+ +

In special cases, it may be desirable to use the signals, which are provided by +the circuit, to derive a new signal, which is then tested. An example could be a bus +signal with several bits, where only a single bit should be tested, whereby the remaining +bits have no influence on the test. In this case, a new signal can be generated in the +test itself, which contains this one bit so that tests can be defined for this bit.

+

This is done with the 'declare' statement:

+
A B Bit
+
+declare Bit = (Bus>>3)&1;
+
+0 0  0
+0 1  0
+1 0  1
+1 1  0
+
+

In this example, the 3rd bit is isolated from the 'Bus' signal and made available as +the 'Bit' signal for the test. The circuit itself contains no output 'Bit'.

+

Functions

+

Available functions are: +

+
signExt([bits],[value])
+
Extends the value [value] while preserving the sign to [bits] bits.
+
random([max])
+
Returns an integer random number. The maximum value is specified with [max].
+
ite([cond],[then],[else])
+
If the condition [cond] is true, the value [then] is returned, otherwise the value [else].
+
+

+ +

Processors

+

If processors are to be tested, an initialization of the processor is usually required. +It is possible to perform this initialization within the test case. +In this way, several tests can be located in one circuit and each test can use its own initialization. +There are three instructions to perform this initialization:

+
    +
  • The 'program' statement can be used to overwrite the program memory of the processor. +The instruction
    program(0x8000,0x2d11,0x8000,0x2f21)
    writes four words to the beginning +of the program memory. All other words are set to zero.
  • . +
  • The 'memory' instruction can be used to write to a RAM component: +
    memory mem(3)=7;
    +This example writes 7 to the memory with the label 'mem' at address 3.
  • +
  • A labeled register can be overwritten with the 'init' statement. +
    init R0=22;
    +This instruction overwrites the register with the label 'R0' with the value 22.
  • +
+

It should be noted that all used initializations are only applied once before the +test execution. It does not matter in which line in the test case these statements are located. +However, they must not be used above the header line listing the signal names.

. +]]>
+ + Finite State Machine + No movement + Transitions + Transitions+States + set {0} + Finite State Machine + Opens a Dialog to Edit a Finite State Machine. + Create + State Transition Table + Create Counter + {0} States + Help for operating the FSM editor. + The FSM is not deterministic: {0} + State Number {0} used twice. + There is no initial state (state number zero). + State ''{0}'' not found! + Wrong assignment to output (''{0}'')! + Error in condition ''{0}''! + State Number + The number which represents this state. + Initial State + If set, this state is the initial state. + Outputs + Defines the output values. + With simple assignments like "A=1, B=0" outputs can be set. + With instructions like "A=101", multi-bit outputs can be set. + Outputs that are not defined here are set to zero in states. + For transitions, unspecified outputs remain unchanged. + + Condition + A boolean expression. + Radius + Radius of the circle in the diagram. + Can not create state transition table. + Transition + State + New State + Error loading a file! + Error storing a file! + Help FSM Editor + + FSM-Optimizer + Optimize the State Numbers + Optimizes the state numbers so that an implementation has the + least possible effort. The runtime increases very quickly with the complexity of the machine. (O(n!)) + + Error during optimization! + Initial complexity: + Best so far: + + + +

Mouse Operation

+
+
Create a state:
+
Right mouse click on a free area.
+
Creating a transition:
+
Right mouse button down on the start state and dragging to the destination state.
+
Delete a state or a transition:
+
Move the mouse over the object and press the [Del] button.
+
Moving a state or transition:
+
Left mouse button down and dragging.
+
Editing a state or a transition:
+
Right mouse click on the state or the transition.
+
+

Layout Help Function

+
+
No movement:
+
The layout help function is disabled.
+
Transitions:
+
The layout help function moves the transition arrows to avoid overlaps.
+
Transitions+States
+
The layout help function moves both states and transitions to help create a well-balanced layout.
+
+

Interpretation of Transitions

+ To simplify the generation of a deterministic automata, unconditional transitions are treated in a special way: + an unconditional transition is only executed if no other transition satisfies the transition condition. + So there can be an unconditional transition and conditional transitions that start in the same state. + An unconditional transition thus determines to which state the state machine is shifted if no other transition + condition is met. + If there is no unconditional transition from a state, the state machine will stay in this state if no other + transition condition is met. +]]>
+ + The measurement graph + +

What can be seen in the graph?

+ Unlike a real logic analyzer, the X-axis of the measurement graph does not show the time. + Instead a counter is displayed which counts the changes of state in the circuit. + Whenever there is a change in the circuit, the counter is incremented and the new state is displayed.
+ You can also think of it as a classic logic analyzer, which does not save any data for optimization + if nothing has changed in the circuit. + However, this also means that it is not possible to read from the graph whether a lot or little time has + passed between two changes in the circuit.
+ This behavior is caused by the nature of the simulation: The simulation of the circuit does not know the + concept of time. A change is made to the circuit, and the change in the circuit state is calculated, until + the circuit has stabilized again. Then the next change is made, the effect of which is also is calculated + and so on. These changes are counted and the counter value is displayed on the X-axis of the graph.
+ Among other things, this also means that a circuit cannot be overclocked, since the effects of the falling + edge of the clock are not calculated until the circuit has stabilized after the previous rising edge. + + ]]>
+ + Tutorial + In the following a short tutorial leads you to the first, simple circuit: + + First, insert an input into the circuit. You will find the input in the menu Components▸IO. + + Now add a second input to the circuit. You can also click on the input + in the toolbar. + + It is best to place the second input slightly below the first input. + You can move the circuit by holding down the right mouse button. + By clicking on components you can move them. + Next, an "Exclusive Or" gate is to be inserted. + You can find this gate in the menu Components▸Logic. + Place this component with some distance to the right of the inputs. + The last component to be inserted is an output. + Place it with some distance to the right of the "Exclusive Or" gate. + + In order to complete the circuit, connecting wires must be drawn. + + Click on the red dot at the first input and connect it to an input of the "Exclusive Or" gate, + by clicking on a blue dot of the "Exclusive Or" gate afterwards. + Do NOT drag with mouse button down! + + Connect the red dot of the second input to the second blue dot of the + "Exclusive Or" gate and the red dot of the "Exclusive Or" gate to the blue dot of the output. + + While drawing, you can pin the wire by clicking somewhere on the canvas. + Right-click cancels the drawing of the wire (control-click on macOS). + + Your first circuit is now functional. + To start the simulation, you can click on the Play button in the toolbar. + If you move the mouse over the toolbar, tool tips are shown. + + + The simulation is now active. Switch the inputs by clicking on them. + + + To stop the simulation, click on the Stop button in the toolbar. + + + For completeness, the inputs and outputs should be labeled. + + Right-click on an input to open a dialog. On macOS control-click is used. + Here the input can be given a name. + + Label all inputs and outputs. + + + Inputs and outputs should always be uniquely named. + + + Skip Tutorial + +
diff --git a/src/test/java/de/neemann/digital/docu/DocuTest.java b/src/test/java/de/neemann/digital/docu/DocuTest.java index d44450c0b..e26c4d357 100644 --- a/src/test/java/de/neemann/digital/docu/DocuTest.java +++ b/src/test/java/de/neemann/digital/docu/DocuTest.java @@ -61,7 +61,7 @@ private void writeXML(Writer w, File images, String language, File libFile) thro .append("\" lang=\"") .append(language) .append("\" fontFamily=\"") - .append(language.equals("zh") ? "SansSerif,SimSun" : "SansSerif") + .append(getFontFamily(language)) .append("\" rev=\"") .append(System.getProperty("buildnumber")) .append("\" revt=\"") @@ -142,6 +142,14 @@ private void writeXML(Writer w, File images, String language, File libFile) thro w.append(""); } + private String getFontFamily(String language) { + switch (language) { + case "zh" : return "SansSerif,SimSun"; + case "ru" : return "Liberation Serif"; + default: return "SansSerif"; + } + } + private void writeCLIDescription(Writer w) throws IOException { w.append(" \n"); new Main().printXMLDescription(w); diff --git a/src/test/resources/docu/static_ru.xml b/src/test/resources/docu/static_ru.xml new file mode 100644 index 000000000..5e5262519 --- /dev/null +++ b/src/test/resources/docu/static_ru.xml @@ -0,0 +1,702 @@ + + + + + + Digital - это простой симулятор, используемый для моделирования цифровых схем. Логические вентили подключены + друг к другу проводами, и можно смоделировать поведение всей схемы. + Пользователь может взаимодействовать с симуляцией, нажимая кнопки или задавая + значения на входы схемы. + + + Таким образом, можно построить и смоделировать большинство базовых схем, используемых в цифровой электронике. + В папке examples пользователи могут найти примеры, включающие + 16-битный однотактный процессор с гарвардской архитектурой. + + + Симулятор имеет два режима работы: режим редактирования и моделирования. + В режиме редактирования можно вносить изменения в схему. Пользователи могут добавлять или подключать компоненты. + В этом режиме имитация отключена. + Режим моделирования активируется нажатием кнопки Старт на панели инструментов. + При запуске моделирования схема проверяется на целостность. + Если в цепи есть ошибки, отображается соответствующее сообщение и + затронутые компоненты или провода выделяются. Если в схеме нет ошибок, симуляция + включено. Теперь вы можете взаимодействовать с бегущей симуляцией. + В режиме моделирования невозможно изменить схему. Для этого вам необходимо активировать + снова в режиме редактирования, остановив симуляцию. + + + + + + В качестве первого примера схема должна быть построена с вентилем Исключающее ИЛИ. + В главном окне меню Компоненты позволяет выбирать различные компоненты. + Затем они размещаются на панели для рисования. Этот процесс можно отменить, нажав клавишу ESC в любом + время. Начните с выбора входного компонента. + Позже этим можно будет управлять в интерактивном режиме с помощью мыши. + + + После выбора первый вход можно разместить на панели рисования. + Красная точка на символе входного компонента - это точка соединения между компонентом и проводом, который будет + подключен позже. + Красный цвет указывает на выход. Это означает, что порт определяет значение сигнала или может управлять проводом. + + + + Таким же образом добавляется второй вход. Лучше всего разместить его прямо под первым входом. + + + После добавления входов выбирается элемент XOR. Этот элемент представляют собой фактическую логическую + функцию. + + + + Этот вентиль теперь также можно добавить в схему. Лучше всего разместить его так, чтобы последующие + разводка выполняется максимально просто. Синие точки обозначают входные клеммы элемента. + + + + Теперь выберите выход, который можно использовать для отображения состояния сигнала или для последующей передачи сигналов в + схема вложения. + + + + Он размещен таким образом, чтобы его можно было легко подключить. + На выходе есть синяя точка, обозначающая входной терминал. + Здесь вы можете ввести значение, которое затем экспортируется. + + + + После того, как все компоненты выбраны и установлены на свои места, с помощью мыши соедините синий и + красные точки. Убедитесь, что ровно одна красная точка соединена с любым количеством синих точек. + Только использование выходов с тремя состояниями позволяет отклониться от этого правила и соединить + несколько красных точек. + Если все провода нарисованы, цепь замкнута. + + + + Взаимодействие со схемой возможно при запуске моделирования. + Это делается нажатием на кнопку воспроизведения, расположенную на панели инструментов. + После запуска моделирования цвет проводов меняется, и + входы и выходы теперь заполнены. Ярко-зеленый означает логическую «1», а темно-зеленый - логический «0». + На рисунке выше все провода имеют значение «0». + + + + Щелчком мыши можно переключать входы. Поскольку симуляция теперь активна, + выход изменяется в соответствии с текущими состояниями входа. Схема ведет себя как + Исключающий ИЛИ, как и ожидалось. + + + + Для дальнейшей обработки схемы необходимо сначала остановить моделирование. Самый простой способ сделать это + с помощью кнопки Стоп на панели инструментов. Щелчок по компоненту правой кнопкой мыши + (щелкните macOS, удерживая нажатой клавишу Control), открывается диалоговое окно, в котором отображаются свойства компонента. Этикетка «А» может + быть определенным для первого ввода через это диалоговое окно. + + + + Таким же образом можно определить метки для остальных входов и выходов. Пункт меню + Анализ также содержит пункт меню Анализ. Эта функция выполняет анализ + текущая цепь. Однако это возможно только при правильной маркировке всех входов и выходов. + + + + Таблица истинности смоделированной схемы появится в новом окне. Под таблицей вы можете найти + алгебраическое выражение, связанное со схемой. Если существует несколько возможных алгебраических + выражений, откроется отдельное окно, в котором будут показаны все возможные выражения. + + + + В главном меню диалогового окна таблицы есть пункт K-Map. Это позволяет показать + таблицу истинности в виде K-карты. + + + + Вверху этого диалогового окна есть раскрывающийся список, который позволяет выбрать желаемый + выражение в K-карте. Таким образом вы можете, например, проиллюстрировать, как несколько эквивалентных + могут возникнуть алгебраические выражения. Однако в этом примере есть только одно минимальное выражение. + Таблицу истинности также можно изменить, щелкнув K-карту. + + + + + Все компоненты должны быть соединены проводами. Невозможно соединить два компонента + разместив их рядом друг с другом. + + + Кроме того, есть только соединения между конечной точкой провода и компонентом. + Если вывод компонента расположен в середине провода, соединение между компонентом не выполняется. + и провод. + Следовательно, провод должен фактически заканчиваться на каждом контакте, который должен быть подключен. + Даже если используется туннельный компонент, между штифтом и туннельным элементом должен быть провод. + + + Чтобы переместить компонент, необходимо выбрать его с помощью инструмента прямоугольного выделения. + вместе с подключенными проводами. Для перемещения компонента без подключенных проводов, + выберите компонент щелчком мыши. + + + С помощью CTRL-Click можно выбрать одиночный участок провода, чтобы переместить или удалить его. + Если во время рисования провода нажать клавишу D, можно нарисовать диагональный провод. + Клавиша S позволяет разделить линейный сегмент на два сегмента. + + + + + Если построена сложная схема, это может быстро запутать. Чтобы отследить здесь, + разные части схемы могут храниться в разных файлах. Этот механизм также делает его + возможно использовать подсхему, которая была создана один раз, несколько раз в следующей схеме. + Этот подход также предлагает то преимущество, что файлы могут храниться независимо друг от друга в + система контроля версий и изменения могут быть отслежены. + + + + В качестве примера рассмотрим 4-битный сумматор: сначала мы построили простой полусумматор. Он состоит из + Элемент XOR и Элемент И. Сумма двух битов «A» и «B» передается на выходы «S» и «C». + Эта схема хранится в файле halfAdder.dig. + + + + Теперь из двух полусумматоров можно построить полный сумматор. Для этого создайте новый пустой файл и сохраните + пустой файл как fullAdder.dig в той же папке, что и полусумматор. Тогда + полусумматор можно добавить в новую схему через меню Components Custom. + Порядок контактов на упаковке полусумматора можно изменить с полусумматора в + menu Редактировать Порядок входов или Edit Порядок выходов. + Полный сумматор складывает три бита «A», «B» и «Ci» и дает сумму для выходов «S» и «Co». + + + + Чтобы проверить правильность работы полного сумматора, необходимо добавить тестовый пример. В тестовом примере + сохраняется таблица истинности, которая должна выполнять схему. Таким образом, это может быть автоматически + проверил, так ли это. + + + + Тесты могут быть выполнены с помощью редактора тестовых примеров или кнопки тестирования на панели инструментов. + Ячейки таблицы, выделенные зеленым цветом, показывают, что выход схемы соответствует + таблица истинности, приведенная в тестовом примере. + + + + Теперь полные сумматоры можно собрать в так называемый сумматор с волновым переносом. + В этом случае выход переноса дополнения направляется как вход переноса в добавление + следующий бит более высокого порядка, как это обычно бывает при сложении карандаша и бумаги. + Этот 4-битный сумматор следует проверить на правильность работы. Для этого был вставлен тестовый пример. + + + + Этот тестовый пример выполняет 100% тест, который возможен только с относительно простыми схемами: все + возможные 512 входных комбинаций применяются к схеме, и проверяется, + схемы правильно. + В первой строке перечислены входные и выходные сигналы. Ниже вводятся применяемые входные значения и + проверяемые выходные значения указываются в строке, как в таблице истинности. + Однако в этом примере требуется 512 строк. Ввод этого будет утомительным и подверженным ошибкам занятием. + Автоматически генерировать нужные строки проще и надежнее. + Для этого пересекаются переменные A и B. + от 0 до 15. Соответствующие значения A и B затем назначаются входам «A [n]» и «B [n]». + Затем проверяется, выводит ли схема значение A + B. Затем снова проверяется с помощью + установлен бит переноса, и в этом случае должно получиться A + B + 1. + Подробная информация о синтаксисе теста представлена ​​в диалоговом окне справки. + + + Если схема встроена в другую схему, только имя файла подсхемы сохраняется в + схема, а не сама встроенная схема. + Соответствующие файлы + поэтому встроенные подсхемы должны быть найдены в файловой системе во время выполнения моделирования. + Чтобы как можно лучше поддерживать различные методы работы пользователей и при этом избегать + сложное администрирование путей импорта и т.д., реализована несколько необычная стратегия импорта. + + + В файле схем хранятся только имена файлов встроенных схем, а не полный путь. + Если файл необходимо открыть, во всех вложенных папках выполняется поиск файла с соответствующим именем. + Если подходящий файл найден, он импортируется. Этот процесс зависит только от имени файла, который нужно + быть прочитанным, а не на своем пути. Соответственно, выдается сообщение об ошибке, если имеется несколько файлов + одно и то же имя в разных подпапках, поскольку в этом случае возникают двусмысленности. + + + Таким образом, подходящая структура проекта выглядит следующим образом: Корневой контур расположен в отдельном + папка. + Все импортированные схемы должны находиться в одной папке или подпапках. Все схемы должны иметь разные названия, + поэтому не должно происходить, чтобы схемы с одним и тем же именем находились в разных папках. + + + + + + + Во время моделирования каждый логический вентиль имеет задержку распространения. Каждый компонент, найденный в библиотеке + имеет одинаковую задержку распространения независимо от его сложности. + Таким образом, логический элемент И имеет ту же задержку распространения, что и умножитель. + Единственным исключением являются диоды, переключатели и разветвители, которые используются для создания шин данных. + Эти компоненты вообще не имеют задержки распространения. + + + Если необходимо смоделировать логический элемент - например, множитель - с большей задержкой распространения, задержкой + вентиль должен быть вставлен в схему сразу за выходом умножителя. + + + Если схема включена в другую родительскую схему, включенная схема сохраняет свои временные характеристики. + Поэтому, если вы включите сложную схему, которая имеет большую задержку распространения, потому что входные сигналы + должен пройти три гейта, пока не достигнет выхода, это поведение сохраняется при включении этого + схема. + Никаких дополнительных задержек в результате включения цепи не возникает. Если не все выходы + схема есть + такая же задержка распространения, то это также имеет место, если она включена в родительский контур. + В общем, включение схемы в другую схему вообще не изменяет ее временное поведение. + Включенная цепь ведет себя точно так же, как если бы все компоненты были вставлены в один и тот же уровень. + + + + + + + Цепь можно проанализировать с помощью пункта меню Анализ. Таблица истинности создается для чисто + комбинаторной схемы. Эту таблицу истинности можно редактировать по желанию. + После редактирования из этой таблицы истинности может быть сгенерирована новая схема. + + + Помимо чисто комбинаторных схем, также можно анализировать или генерировать последовательные + схемы. + Вместо простой таблицы истинности создается так называемая таблица переходов состояний. + Таким образом, каждый триггер появляется на входной и выходной стороне таблицы переходов состояний. + В этой таблице справа вы можете найти следующее состояние, которое будет + происходить после следующего тактового сигнала. Это следующее состояние зависит от текущего состояния триггеров. + в левой части таблицы. + Чтобы анализ был возможен, триггеры должны быть названы. + + + Применяется следующее соглашение об именах: следующее состояние бита в правой части таблицы + обозначается строчной буквой «n + 1». Соответствующее текущее состояние обозначается добавленным «n». + Если существует переменная состояния «A», «An» указывает текущее состояние, а «An + 1» указывает следующее состояние. + Если в таблице истинности слева и справа присутствуют сигналы, соответствующие этому шаблону + предполагается, что таблица является таблицей переходов состояний, и вместо нее создается последовательная схема. + комбинаторная схема. + + + Следует отметить, что анализируемая схема может содержать только чисто комбинаторные элементы + в дополнение к встроенным шлепанцам D и JK. Если триггер, например, сделано из элеметнов ИЛИ-НЕ, это + Схема не распознается как триггер, поэтому анализ такой схемы невозможен. + + + + + Через пункт меню Выражение можно ввести логическую функцию, из которой + затем может быть сгенерирована цепь. + + + + + Редактор диаграмм состояний доступен через пункт меню Конечный автомат. + Он позволяет графическое создание конечных автоматов путем рисования состояний и переходов между состояниями. + Таким образом, разные выходы могут быть установлены в разные состояния. + Предоставляя переходы с условиями, можно сгенерировать входные сигналы. + Установив выходные значения при переходах, можно также определить автоматы Мили. + + + Определенный таким образом конечный автомат затем может быть автоматически перенесен в таблицу переходов состояний, + из которого на следующем этапе может быть сгенерирована схема, реализующая автомат начальных состояний. + Если затем запустить моделирование этой схемы, текущее состояние также можно будет отслеживать в + диаграмма состояния. + + + + + + + В меню генерации схемы в таблице истинности также есть функции для генерации так называемых + Файлы JEDEC. Это специальный формат файла, который описывает схему предохранителей PLD. + Этот файл JEDEC можно записать в соответствующий PLD с помощью специального программатора. + На данный момент схемы типа GAL16v8 и GAL22v10 или схемы предохранителей совместимы + устройства поддерживаются. + + + + + Микросхемы в + + ATF150x + + Семейство - это простые CPLD, содержащие до 128 макроячеек. Они доступны в + Пакет PLCC, который делает их пригодными для лабораторных упражнений: если ИС разрушается во время упражнений, + его можно просто заменить. Кроме того, с + + ATDH1150USB + + доступен простой в использовании и недорогой программатор. Этот программист умеет программировать + + ATF150x + + микросхемы в системе с использованием интерфейса JTAG. + Подходящая оценочная плата + + (ATF15XX-DK3-U) + + также доступен. + Программное обеспечение + + ATMISP + , + который доступен на веб-сайте ATMEL/Microchip, необходим для программирования микросхем. + + + К сожалению, информация о карте предохранителей не является общедоступной, поэтому нет подходящего установщика для этого чипа. + могут быть интегрированы в Digital, как это возможно с микросхемами GAL16v8 и GAL22v10. + + + Следовательно, необходимо использовать установщики fit150 [x] .exe, предоставленные ATMEL. Эти программы создают + Файл JEDEC из подходящего файла TT2, который затем можно запрограммировать на микросхеме. Цифровой + автоматически запускает установщик каждый раз при создании файла TT2. Для этого путь к + Установщики fit150 [n] .exe должны быть указаны в настройках. + Созданный файл JEDEC затем можно открыть и запрограммировать напрямую с помощью + + ATMISP + . + + + По юридическим причинам установщик fit1502.exe не может распространяться вместе с Digital. Однако это может быть + находится в папке WinCupl \ Fitters после установки + + WinCupl + . + + WinCupl + + доступен на веб-сайте ATMEL/Microchip. + В системах Linux установщики также могут выполняться Digital, если установлено wine. + + + + + Схема может быть экспортирована в VHDL или Verilog. Создается файл, содержащий полное описание + схемы. Сгенерированный код VHDL был протестирован с + Xilinx Vivado + и симулятор VHDL с открытым исходным кодом ghdl. + Код Verilog протестирован с помощью симулятора Verilog Icarus Verilog. + + + Если схема содержит тестовые примеры, тестовые данные используются для создания тестового стенда HDL. Это можно использовать + для проверки правильности работы схемы в моделировании HDL. + + + Могут быть созданы дополнительные файлы, необходимые для специальных плат. В настоящее время только + BASYS3 + доска и доски Mimas Mimas + и Mimas V2 + поддерживаются. + Создается файл ограничений, содержащий назначение выводов. Описание булавок может + можно найти в листе технических данных платы, и его необходимо ввести как номер контакта для входов и выходов. + + + Для платы BASYS3, если тактовая частота схемы низкая, в HDL встроен делитель частоты. + код, чтобы соответственно разделить часы на плате. + Если тактовая частота, выбранная в схеме, превышает 4,7 МГц, блок MMCM + Artix-7 используется для генерации часов. + Это гарантирует, что ресурсы FPGA, предоставленные для распределения часов, используются. + Это позволяет включенному образцу процессора работать на частоте 20 МГц, и, если вы можете обойтись без + множитель, также возможен 30HMz. + + + + Если схема должна работать на плате BASYS3, в Vivado можно создать новый проект. + Сгенерированный файл VHDL и файл ограничений необходимо добавить в проект. + После создания проекта можно сгенерировать поток битов и использовать Hardware-Manager. + для программирования платы BASYS3. + + + Чтобы создать требуемый файл ограничений в дополнение к файлу HDL, соответствующая плата + необходимо настроить в настройках. В поле «Toolchain Configuration» соответствующий файл XML. + можно выбрать. + Доступные конфигурации находятся в папке examples/hdl и содержат файл + расширение .config. + Если конфигурация была успешно интегрирована, появится дополнительное меню, в котором плата + доступны определенные функции. + + + + + + Хотя у Digital есть несколько параметров, которые определяют внешний вид схемы, когда она встроена в + в другую, в некоторых случаях может быть полезно использовать особый компонент для подсхемы. Примером является + представление ALU в процессоре, смотреть в примерах. В этой главе объясняется, как + определить такой особый компоненты цепи. + + + В Digital нет редактора для создания особого компонента. Вместо этого требуется небольшой обходной путь + для создания фигуры контура: сначала открывается компонент, который должен быть представлен специальным открытм компонентном. + Затем для этой схемы создается шаблон SVG. В этом шаблоне схема представлена + простым прямоугольником. Он также содержит все контакты схемы, представленные синим цветом (входы) и + красные (выходы) кружочки. Чтобы узнать, какой круг принадлежит какому выводу, вы можете посмотреть идентификатор + кружка в свойствах объекта. Этот идентификатор имеет вид pin: [имя] или pin +: [name]. + В последнем варианте вывод снабжен ярлыком при повторном импорте в цифровой формат. + Если вам не нужна такая метка, можно удалить +. + + + Теперь этот файл SVG можно редактировать. Наиболее подходящей является программа с открытым исходным кодом. + Inkscape, которая доступна бесплатно. + Выводы можно перемещать свободно, но при повторном импорте они перемещаются к следующей точке сетки. + + + Если необходимо использовать существующие файлы SVG, проще всего открыть созданный шаблон и вставить + существующий рисунок в шаблон с помощью копирования и вставки. + + + Если файл был сохранен, его можно импортировать с помощью Digital. Файл открывается и все необходимое + информация извлекается и сохраняется в схеме. Для дальнейшего использования схемы SVG + файл больше не требуется. + + + Последнее замечание: SVG - очень мощный и гибкий формат файла. + Его можно использовать для описания чрезвычайно сложной графики. Цифровой импортер не может импортировать все + возможные файлы SVG без ошибок. Если файл не может быть импортирован или отображается не так, как ожидалось, + может потребоваться некоторое экспериментирование, прежде чем будет достигнут желаемый результат. + + + + + Бывает, что подсхема создана, и ее нужно использовать в разных вариантах. + Например, вы можете представить специальный счетчик, который нужен для разной разрядности. + Если создать подсхему на 4, 5 и 6 бит каждая, обслуживание схемы + будет усложнено в будущем, так как всегда нужно работать с несколькими подсхемами, которые + идентичны, за исключением одного параметра - разрядности. + + + Чтобы предотвратить это, можно создать общую подсхему, которая может быть параметризована. + Для этого в настройках контура должен быть установлен флажок «Цепь является универсальной». + Затем диалоговое окно параметров каждого компонента в этой цепи содержит дополнительное поле "общая параметеризация". + В это поле можно ввести программный код, который может изменять параметры + составная часть. Каждый параметр имеет имя и может быть изменен как атрибут поля this. + Названия параметров можно найти в диалоговом окне справки компонента. + Если вы хотите изменить разрядность сумматора, можно использовать строку this.Bits=1;. + + + Однако таким образом еще невозможно создать схему, которая может быть параметризована. + По-прежнему необходимо получить доступ к параметрам, которые устанавливаются при использовании схемы. + Это делается через поле «args». Если вы хотите установить разрядность снаружи, вы можете написать: + this.Bits=args.bitWidth;. Имя аргумента - здесь bitWidth произвольно. + Если такая подсхема используется, этот аргумент должен быть установлен. + + + Если схема используется и открывается диалоговое окно параметров встроенной схемы, она также имеет + поле «общая параметризация». Здесь используемую разрядность можно установить с помощью инструкции + bitWidth:=5;. + + + Если общий контур должен быть запущен напрямую, это невозможно сразу, так как требуемые + отсутствуют аргументы, которые необходимо указать при встраивании схемы. Эти недостающие аргументы + приведет к появлению соответствующих сообщений об ошибках. + Поэтому, чтобы упростить тестирование схемы, компонент Generic Initialization может быть + добавлен в схему. В этом компоненте вы можете установить аргументы, которые будут поступать от схемы встраивания. + Таким образом, обычная схема также может быть смоделирована напрямую. + Если схема встроена, этот компонент игнорируется. + Он нужен только для непосредственного запуска симуляции. + + + При определенных обстоятельствах может быть полезно не только изменить атрибуты компонентов + схему, но добавить совершенно новые компоненты и провода в зависимости от переданных аргументов. + Для этого можно использовать компонент Code. Если он добавлен в схему, содержащийся + Код будет выполнен при запуске симуляции. + Здесь провод можно добавить с помощью функции addWire ([x1], [y1], [x2], [y2]) и с помощью функции + addComponent ([name], [x], [y]) новый компонент [name] может быть добавлен в позицию ([x], [y]). + Возвращаемое значение функции addComponent ([Name], [x], [y]) позволяет установить параметры + составная часть. + + + Схема примера examples/generic/modify/Conway/GenericConway.dig показывает, как более сложные + Схема может быть собрана таким образом. + + + Другой способ создания схемы - это рекурсия: можно, в зависимости от аргументов, заменить одну + схема другим. Для этого доступна функция setCircuit([Name]). + Если он вызывается в части определения подсхемы, вставляемая схема может быть заменена + по другой схеме. Это позволяет рекурсивно определять схему. Как и в другом программировании + языков, должно быть обеспечено подходящее условие прекращения. + + + Папка examples/generic содержит пример счетчика кода Грея, разрядность которого может + быть настроенным. Здесь счетчик кода Грея создается путем рекурсивного добавления дополнительных битов к + начальная схема до тех пор, пока не будет достигнуто необходимое количество бит счетчика. + + + + + Если учащиеся должны выполнять упражнения в цифровом формате, может быть полезно, если схемы, представленные + студенты могут быть проверены в автоматическом режиме. Для выполнения этой проверки можно запустить Digital + из командной строки. Вызов осуществляется следующим образом: + + + + java -cp Digital.jar CLI test [file to test] [-tests [optional file with + test cases]] + + + + Если указан только проверяемый файл, выполняются тестовые случаи в этом файле. Таким образом, + могут быть выполнены тестовые примеры, созданные самими студентами. + + + Если указано второе имя файла, тестовые примеры берутся из второго файла и первой схемы. + проверяется с помощью этих тестовых примеров. Поэтому второй файл обычно будет содержать образец решения. + чьи тестовые примеры полны и верны. Схема, содержащаяся во втором файле, игнорируется. + Из него взяты только тестовые примеры. + + + Чтобы протестировать представленную схему на примере решения, имена сигналов входов и + выходы в обеих цепях должны совпадать. + + + + + Как переместить провод? + Выберите одну из конечных точек с помощью прямоугольного выделения. Затем переместите эту точку с помощью мыши. + Вы также можете выбрать провод с помощью CTRL + кнопка мыши. + + + + Как удалить провод? + Выберите одну из конечных точек и нажмите DEL или щелкните корзину. + Вы также можете выбрать провод с помощью CTRL + кнопка мыши. + + + + Как переместить компонент, включая все подключенные провода? + Выделите компонент прямоугольным выделением. Выборка должна включать все + составная часть. + Затем переместите компонент, включая провода, с помощью мыши. + + + + Компонент не подключен к проводу, хотя контакты находятся на проводе. + Вывод подключается к проводу только в том случае, если у провода есть конечная точка на выводе. + + + Если имена выводов в цепи длинные, они становятся нечитаемыми, когда + схема встроена. Что я могу сделать? + Ширину блока можно увеличить с помощью пункта меню + Измените настройки контура. + + + Неоптимальный порядок выводов встроенной схемы. Как это можно изменить? + Последовательность можно изменить с помощью пункта меню Редактировать Порядок входов или + Изменить порядов выводов. + + + + Когда начинается симуляция, провод становится серым. Что это значит? + Светло-зеленый и темно-зеленый цвета используются для обозначения высокого и низкого состояния. + Серый цвет означает, что провод находится в состоянии высокого Z. + + + + У меня есть таблица истинности. Как вычислить минимизированные логические уравнения? + В меню Анализ выберите запись Синтез. Затем войдите в таблицу истинности. + Внизу окна вы можете найти соответствующее логическое уравнение. Если вы введете более одного + зависимой переменной открывается новое окно, в котором показаны все логические уравнения. + + + + Я ввел таблицу истинности, но здесь показано более одного логического уравнения. + Какой из них правильный? + + Минимизация логического уравнения может привести к множеству уравнений, описывающих одну и ту же функцию. + Цифровой показывает их все, и все они составляют одну и ту же таблицу истинности. + Могут быть различия в зависимости от «безразлично» в таблице истинности. + + + + У меня есть таблица истинности. Как создать схему, представляющую таблицу истинности? + В меню Анализ выберите запись Синтез. Затем войдите в таблицу истинности. + Таблицу можно редактировать с помощью меню Создать или Изменить. + В меню Create вы можете создать схему с помощью элемента Circuit. + + + + Как отредактировать имя сигнала в таблице истинности? + Щелкните правой кнопкой мыши имя в заголовке таблицы, чтобы изменить имя. + + + У меня есть логическое уравнение. Как создать схему? + В меню Анализ выберите запись Выражение. Затем введите уравнение. + + + + Как создать таблицу истинности из логического уравнения? + В меню Анализ выберите запись Выражение. Затем введите выражение. + Затем создайте схему и в меню Анализ используйте запись Анализ, чтобы создать истину. + Таблица. + + + + Как создать файл JEDEC из заданной цепи? + В меню Анализ выберите запись Анализ . Затем в меню Создать. + в новом + окне выберите нужное устройство в подменю Устройство. + + + + При создании файла JEDEC: как назначить пин-код определенному сигналу? + На соответствующих входах и выходах вы можете ввести количество выводов в диалоге настроек + вывод. + + + + Я создал файл JEDEC. Как запрограммировать его на GAL16v8 или GAL22v10? + + Для программирования такой микросхемы необходимо специальное программаторное оборудование. + + + Я создал схему, которую хочу использовать во многих других схемах. + Как я могу сделать это, не копируя файл снова и снова в соответствующие папки? + + Схему можно сохранить в папке "lib". Тогда он доступен во всех остальных схемах. + + + + + + Запускает или останавливает моделирование. + Открывает диалоговое окно таблицы измерений. + Бежать до конца. + Выполнить тестовые примеры. + Один тактовый шаг (работает только при работающем моделировании и только при наличии одного + часовая составляющая). + + Выполнить один шаг гейта. + Выполнять все шаги с одним вентилем, пока схема не стабилизируется или, + если присутствует разрывной компонент, до разрыва. + Анализ схемы. + Выбрать все. + Вырезает выбранные компоненты в буфер обмена. + Копирует выбранные компоненты в буфер обмена. + Вставляет компоненты из буфера обмена. + Дублировать текущий выбор без изменения буфера обмена. + При вставке компоненты поворачиваются. + Снова вставляет последний вставленный компонент. + Вставляет новый туннель. + Новая цепь. + Обрыв цепи. + Сохраните схему. + Отменить последнее изменение. + Вернуть последнее отмененное изменение. + Программирует диод или FGFET. + При рисовании провода переключается в диагональный режим. + При рисовании линии меняет ориентацию. + Разделяет один провод на два провода. + Прервать текущее действие. + Удаляет выбранные компоненты. + Удаляет выбранные компоненты. + Увеличивает количество входов в компоненте, на который указывает мышь. Если он используется с + константы, значение увеличивается. + + Уменьшает количество входов в компоненте, на который указывает мышь. Если он используется с + константы, значение уменьшается. + + Увеличить масштаб. + Уменьшить. + По размеру. + Показать или скрыть древовидное представление компонентов. + + + diff --git a/src/test/resources/docu/static_ru_ref.xml b/src/test/resources/docu/static_ru_ref.xml new file mode 100644 index 000000000..23da47105 --- /dev/null +++ b/src/test/resources/docu/static_ru_ref.xml @@ -0,0 +1,703 @@ + + + + + + Digital is a simple simulator used to simulate digital circuits. The logic gates are connected + to each other by wires and the behavior of the overall circuit can be simulated. + The user can interact with the simulation by either pressing buttons or setting + values to the inputs of the circuit. + + + In this way, most of the basic circuits used in digital electronics can be built and simulated. + In the folder examples, users can browse for examples that includes a functional + 16-bit single-cycle Harvard processor. + + + The simulator has two modes of operation: Editing and Simulation mode. + In the editing mode, modifications to the circuit can be performed. Users can add or connect components. + In this mode, simulation is disabled. + The simulation mode is activated by pressing the Start button in the toolbar. + While starting the simulation the circuit is checked for consistency. + If there are errors in the circuit an appropriate message is shown and + the affected components or wires are highlighted. If the circuit is error free, the simulation is + enabled. Now you can interact with the running simulation. + In the simulation mode it is not possible to modify the circuit. To do so you have to activate the + editing mode again by stopping the simulation. + + + + + + As a first example, a circuit is to be constructed with an Exclusive-Or gate. + From the main window, the Components menu allows you to select the various components. + Then they are placed on the drawing panel. This process can be canceled by pressing the ESC key at any + time. Start by selecting an input component. + This can later be controlled interactively by using the mouse. + + + After selection, the first input can be placed on the drawing panel. + The red dot on the input component symbol is a connection point between the component and a wire, which will be + connected later on. + The red color indicates an output. This means that the port defines a signal value or can drive a wire. + + + + In the same way, a second input is added. It is best to place it directly below the first input. + + + After adding the inputs, the Exclusive-Or gate is selected. This gate represents the actual logical + function. + + + + This gate can now also be added to the circuit. It is best to place it in a way that the subsequent + wiring is made as simple as possible. The blue dots indicate the input terminals of the gate. + + + + Now, select an output which could be used to display a signal state or to later pass signals to + an embedding circuit. + + + + This is placed in a way that it can be wired easily. + The output has a blue dot, which indicates an input terminal. + Here you can feed in the value which is then exported. + + + + After all components are selected and in place, use the mouse to wire a connection between the blue and + red dots. Make sure that exactly one red dot is connected to any number of blue dots. + Only the usage of three-state outputs makes it possible to deviate from this rule and to interconnect + several red dots. + If all wires have been drawn, the circuit is complete. + + + + Interaction with the circuit is possible when simulation is started. + This is done by clicking on the play button located in the toolbar. + After starting the simulation, the color of the wires changes and the + inputs and outputs are now filled. Bright green indicates a logical '1' and dark green a logical '0'. + In the figure above, all wires have a '0' value. + + + + By clicking with the mouse, the inputs can be switched. Since the simulation is now active, the + output changes according to the current input states. The circuit behaves like an + Exclusive-Or gate as expected . + + + + To further process the circuit, the simulation must first be stopped. The easiest way to do this is + with the Stop button in the tool bar. Clicking on a component with the right mouse button + (control-click on macOS) opens a dialog which shows the component's properties. The label 'A' can + be defined for the first input via this dialog. + + + + In the same way, the labels for the remaining inputs and outputs can be defined. The menu item + Analysis also contains a menu item Analysis. This function performs an analysis of + the current circuit. However, this is only possible if all inputs and outputs are labeled properly. + + + + The truth table of the simulated circuit appears in a new window. Below the table you can find the + algebraic expression associated with the circuit. If there are several possible algebraic + expressions, a separate window will open, showing all possible expressions. + + + + The table dialog has the menu entry K-Map in its main menu. This allows to display the truth + table in the form of a K-map. + + + + At the top of this dialog there is a drop-down list which allows the selection of the desired + expression in the K-map. In this way you can, for example, illustrate how several equivalent + algebraic expressions can result. However, in this example, there is only one minimal expression. + The truth table can also be modified by clicking the K-map. + + + + + All components must be connected via wires. It is not possible to connect two components + by placing them directly next to each other. + + + In addition, there are only connections between an endpoint of a wire and a component. + If a pin of a component is placed in the middle of a wire, no connection is made between the component + and the wire. + Therefore, a wire must actually terminate at each pin which is to be connected. + Even if the tunnel component is used, there must be a wire between the pin and the tunnel element. + + + The component needs to be selected using the rectangular selection tool in order to be moved + along with the connected wires. For moving a component without the connected wires, + select the component using a mouse click. + + + With CTRL-Click a single wire section can be selected to move or delete it. + If the D key is pressed while drawing a wire, a diagonal wire can be drawn. + The key S allows the splitting of a line segment into two segments. + + + + + If a complex circuit is built up, this can quickly become very confusing. To keep track here, + the different parts of a circuit can be stored in different files. This mechanism also makes it + possible to use a subcircuit, which has been created once, several times in a further circuit. + This approach also offers the advantage that the files can be stored independently of each other in a + version control system and changes can be tracked. + + + + As an example, consider a 4-bit adder: First, we built a simple half-adder. This consists of an + XOR gate and an AND gate. The sum of the two bits 'A' and 'B' is given to the outputs 'S' and 'C'. + This circuit is stored in the file halfAdder.dig. + + + + From two half adders a full adder can now be built. To do this, create a new empty file and save the + empty file as fullAdder.dig in the same folder as the half adder. Then the + half adder can be added to the new circuit via the ComponentsCustom menu. + The order of the pins at the package of the half-adder can be rearranged from the half adder in the + menu EditOrder inputs or EditOrder outputs. + The full adder adds the three bits 'A', 'B' and 'Ci' and gives the sum to the outputs 'S' and 'Co'. + + + + In order to check the correct function of the full adder, a test case should be added. In the test case, + the truth table is stored, which should fulfill the circuit. In this way it can be automatically + checked whether this is the case. + + + + The tests can be executed via the test case editor or the test button in the toolbar. + The table cells highlighted in green indicate that the output of the circuit matches + the truth table given in the test case. + + + + Now the full adders can be put together to form a so-called ripple-carry adder. + In this case, the carry output of an addition is forwarded as a carry input to the addition of the + next higher-order bit, just as is usual in pencil-and-paper addition. + This 4-bit adder should be tested for correct function. For this purpose a test case was inserted. + + + + This test case performs a 100% test, which is possible only with relatively simple circuits: all + possible 512 input combinations are applied to the circuit, and it is checked whether the output + of the circuit is correct. + The first line lists the input and output signals. Below this, the input values to be applied and + the output values to be checked are specified in a row, as in a truth table. + In this example, however, 512 lines are required. Entering this would be a tedious and error-prone task. + It is easier and more reliable to automatically generate the required lines. + For this purpose, the variables A and B are each traversed + from 0 to 15. The respective values of A and B are then assigned to inputs 'A[n]' and 'B[n]'. + Then it is checked whether the circuit outputs the value A+B. Then it is checked again with + the carry bit set, in which case A+B+1 must result. + The details of the test syntax are provided by the help dialog. + + + If a circuit is embedded in an other circuit, only the file name of the subcircuit is stored in a + circuit, not the embedded circuit itself. + The corresponding files of + the embedded subcircuits must therefore be found in the file system at runtime of the simulation. + In order to support the various work methods of the users as best as possible and still to avoid a + complex administration of import paths, etc., a somewhat unusual import strategy is implemented. + + + Only the file names of the embedded circuits are stored in a circuits file, not the full path. + If a file needs to be opened, all subfolders are searched for a file of the corresponding name. + If a suitable file is found, it is imported. This process only depends on the file name of the file to + be read, not on its path. Correspondingly, an error message is generated if there are several files of + the same name in different subfolders, since ambiguities then arise. + + + A suitable project structure therefore looks as follows: The root circuit is located in a separate + folder. + All imported circuits must be in the same folder or subfolders. All circuits must have different names, + so it must not happen that there are circuits of the same name in different folders. + + + + + + + During the simulation every logic gate has a propagation delay. Every component found in the library + has the same propagation delay regardless of its complexity. + The AND gate thus has the same propagation delay as the multiplier. + The only exceptions are diodes, switches and splitters which are used to create data buses. + These components have no propagation delay at all. + + + If it's necessary to simulate a gate - e.g. the multiplier - with a longer propagation delay, a delay + gate must be inserted in the circuit right behind the output of the multiplier. + + + If a circuit is included in another parent circuit, the included circuit keeps its timing behaviour. + So if you include a complex circuit which has a large propagation delay because the input signals + has to pass three gates until it reaches the output, this behaviour is conserved while including this + circuit. + There are no additional delays introduced as a result of including a circuit. If not all outputs of a + circuit have + the same propagation delay, then this is also the case if it is included in a parent circuit. + In general, including a circuit into an other circuit does not modify its timing behaviour at all. An + included circuit behaves exactly the same way as if all components had been inserted at the same circuit + level. + + + + + + + A circuit can be analyzed via the menu entry Analysis. A truth table is generated for purely + combinatorial circuits. This truth table can be edited as desired. + A new circuit can be generated from this truth table after editing. + + + In addition to purely combinatorial circuits, it is also possible to analyze or generate sequential + circuits. + Instead of a simple truth table a so-called state transition table is created. + Each flip-flop thereby appears on the input side and the output side of the state transition table. + In this table, on the right-hand side, you can find the next state, which will + occur after the next clock signal. This next state depends on the current state of the flip-flops as found + at the left-hand side of the table. + For an analysis to be possible, the flip-flops must be named. + + + The following naming convention applies: The following next state of a bit on the right side of the table + is indicated by a lowercase 'n+1'. The corresponding current state is indicated by an appended 'n'. + If there is a state variable 'A', 'An' indicates the current state and 'An+1' indicates the next state. + If, in the truth table on the left and right side, signals are present, which correspond to this pattern + it is assumed that the table is a state transition table, and a sequential circuit is generated instead of + a combinatorial circuit. + + + It should be noted that the circuit to be analyzed may contain only purely combinatorial elements in + addition to the built-in D and JK flip-flops. If a flip-flop is e.g. made from Nor gates, this + circuit is not recognized as a flip-flop and therefore it is not possible to analyse such a circuit. + + + + + Via the menu item Expression it is possible to enter a boolean function from which a + circuit can then be generated. + + + + + An editor for state charts is available via the menu item Finite State Machine. + It allows the graphical creation of state machines by drawing states and state transitions. + Thereby different outputs can be set in the different states. + By providing transitions with conditions, input signals can be generated. + By setting output values at transitions, Mealy automata can also be defined. + + + The state machine defined in this way can then be automatically transferred to a state transition table, + from which, in a further step, a circuit implementing the initial state machine can be generated. + If the simulation of this circuit is then started, the current state can also be followed in the + state chart. + + + + + + + In the circuit generation menu in the truth table there are also functions to generate so-called + JEDEC files. This is a special file format that describes the fuse map of a PLD. + This JEDEC file can be written into a corresponding PLD using a special programmer. + At the moment, circuits of the type GAL16v8 and GAL22v10 or fuse map compatible + devices are supported. + + + + + The chips in the + + ATF150x + + family are simple CPLDs with up to 128 macrocells. They are available in a + PLCC package, which makes them suitable for laboratory exercises: If an IC is destroyed during exercises, + it can simply be replaced. In addition, with the + + ATDH1150USB + + an easy to use, low-cost programmer is available. This programmer is able to program the + + ATF150x + + chips in system using a JTAG interface. + A suitable evaluation board + + (ATF15XX-DK3-U) + + is also available. + The software + + ATMISP + , + which is available on the ATMEL/Microchip website, is required for programming the chips. + + + Unfortunately, the fuse map details are not publicly available so that no suitable fitter for this chip + can be integrated in Digital, as is possible with the GAL16v8 and GAL22v10 chips. + + + Therefore, the fitters fit150[x].exe provided by ATMEL must be used. These programs create a + JEDEC file from a suitable TT2 file which can then be programmed on the chip. Digital + starts the fitter automatically every time a TT2 file is created. For this purpose, the path to the + fit150[n].exe fitters must be specified in the settings. + The created JEDEC file can then be opened and programmed directly with + + ATMISP + . + + + For legal reasons the fitter fit1502.exe can not be distributed with Digital. However, it can be + found in the folder WinCupl\Fitters after installing + + WinCupl + . + + WinCupl + + is available on the ATMEL/Microchip website. + On Linux systems, the fitters can also be executed by Digital if wine is installed. + + + + + A circuit can be exported to VHDL or Verilog. A file is generated which contains the complete description + of the circuit. The generated VHDL code was tested with + Xilinx Vivado + and the open source VHDL simulator ghdl. + The Verilog code is tested with the Verilog simulator Icarus Verilog. + + + If a circuit contains test cases, the test data is used to generate a HDL test bench. This can be used + to check the correct function of the circuit in a HDL simulation. + + + Additional files which are needed by special boards can be created. At present only the + BASYS3 + board and the Mimas boards Mimas + and Mimas V2 + are supported. + A constraints file is created, which contains the assignment of the pins. The description of the pins can + be found in the boards data sheet, and must be entered as a pin number for the inputs and outputs. + + + For a BASYS3 board, if the circuit clock frequency is low, a frequency divider is integrated into the HDL + code to divide the board clock accordingly. + If the clock frequency selected in the circuit exceeds 4.7MHz, the MMCM unit of the + Artix-7 is used for clock generation. + This ensures that the FPGA resources provided for the clock distribution are used. + This allows the included example processor to run at 20MHz, and if you can do without the + multiplier, 30HMz is also possible. + + + + If a circuit is to run on a BASYS3 board, a new project can be created in Vivado. + The generated VHDL file and the constraints file must be added to the project. + Once the project has been created, the bitstream can be generated and the Hardware-Manager can be used + to program a BASYS3 board. + + + In order to create the required constraints file in addition to the HDL file, the corresponding board + must be configured in the settings. In the field "Toolchain Configuration" the corresponding XML file + can be selected. + The available configurations can be found in the folder examples/hdl and have the file + extension .config. + If the configuration was successfully integrated, a further menu appears, which makes the board + specific functions accessible. + + + + + + Although Digital has some options that determine the appearance of a circuit when it is embedded in + another, in some cases it may be useful to use a very special shape for a subcircuit. An example is + the representation of the ALU in the processor included in the examples. This chapter explains how to + define such a special shape for a circuit. + + + Digital does not provide an editor for creating a special shape. Instead, a small detour is required + for creating circuit shapes: First, the circuit which is to be represented by a special shape is opened. + Then an SVG template is created for this circuit. In this template, the circuit is represented by a + simple rectangle. It also contains all the pins of the circuit, represented by blue (inputs) and + red (outputs) circles. To see which circle belongs to which pin, you can look at the ID of the + circle in the object properties. This ID has the form pin:[name] or pin+:[name]. + In the latter variant, the pin is provided with a label if reimported to digital. + If you do not want such a label, the + can be removed. + + + This SVG file can now be edited. The most suitable is the open source program + Inkscape which is available for free. + The pins can be moved freely, but are moved to the next grid point during the reimport. + + + If existing SVG files are to be used, it is easiest to open the created template and paste the + existing graphic into the template via Copy&Paste. + + + If the file was saved, it can be imported with Digital. The file is read in and all necessary + information is extracted and stored in the circuit. For further use of the circuit, the SVG + file is no longer required. + + + A final remark: SVG is a very powerful and flexible file format. + It can be used to describe extremely complex graphics. The Digital importer is not able to import all + possible SVG files without errors. If a file can not be imported, or does not appear as expected, + some experimentation may be required before the desired result is achieved. + + + + + It happens that a subcircuit has been created, and is to be used in different variants. + For example, you can imagine a special counter that is needed for different bit widths. + If one would create a subcircuit for 4, 5 and 6 bits each, the maintenance of the circuit + would be difficult in the future, since one must always work on several subcircuits, which are + identical except for one parameter, the bit width. + + + To prevent this, a generic subcircuit which can be parameterized can be created. + For this purpose, the checkbox "Circuit is generic" must be set in the circuit specific settings. + Then the parameter dialog of each component in that circuit contains the additional field "generic + parameterization". In this field program code can be entered, which can change the parameters of the + component. Each parameter has a name and can be modified as an attribute of the field this. + The names of the parameters can be found in the help dialog of the component. + If you want to change the bit width of an adder, the line this.Bits=1; can be used. + + + In this way, however, it is not yet possible to create a circuit that can be parameterized. + It is still necessary to access parameters that are set when the circuit is used. + This is done via the field "args". If you want to set the bit width from outside, you can write: + this.Bits=args.bitWidth;. The name of the argument - here bitWidth is arbitrary. + If such a subcircuit is used, this argument must be set. + + + If the circuit is used and the parameter dialog of the embedded circuit is opened, it also has a + field "generic parameterization". Here the bit width to be used can be set with the instruction + bitWidth:=5;. + + + If a generic circuit is to be started directly, this is not possible straight away, since the required + arguments are missing, which have to be specified when embedding the circuit. These missing arguments + would lead to corresponding error messages. + Therefore, to simplify the testing of the circuit, the Generic Initialization component can be + added to the circuit. In this component you can set the arguments that would come from an embedding circuit. + In this way, a generic circuit can also be simulated directly. + If the circuit is embedded, this component is ignored. + It is only needed for the direct start of the simulation. + + + Under certain circumstances it may be useful not only to change the attributes of the components of a + circuit, but to add completely new components and wires depending on the passed arguments. + The Code component can be used for this purpose. If it is added to the circuit, the contained + Code will be executed when the simulation is started. + Here, a wire can be added using the addWire([x1],[y1],[x2],[y2]) function, and using the function + addComponent([name],[x],[y]) a new component [name] can be added at the position ([x],[y]). + The return value of the addComponent([Name],[x],[y]) function allows to set the parameters of the + component. + + + The example circuit examples/generic/modify/Conway/GenericConway.dig shows how a more complex + circuit can be assembled in this way. + + + Another way to create a circuit is recursion: it is possible, depending on the arguments, to replace one + circuit by another. For this purpose the function setCircuit([Name]) is available. + If it is called in the definition part of a subcircuit, the circuit to be inserted can be replaced + by another circuit. This allows the recursive definition of a circuit. As in other programming + languages, a suitable termination condition must be ensured. + + + The examples/generic folder contains an example of a Gray code counter whose bit width can + be configured. Here a Gray code counter is constructed by recursively adding further bits to an + initial circuit until the required number of bits of the counter is reached. + + + + + If students are to complete exercises with Digital, it can be helpful if the circuits submitted by the + students can be checked in an automatic process. To perform this check, Digital can be started + from the command line. The call is done as follows: + + + + java -cp Digital.jar CLI test [file to test] [-tests [optional file with + test cases]] + + + + If only the file to be tested is specified, the test cases in that file are executed. In this way, the + test cases created by the students themselves can be executed. + + + If a second file name is specified, the test cases are taken from the second file and the first circuit + is checked with these test cases. The second file will therefore usually contain the sample solution + whose test cases are complete and correct. The circuit contained in the second file is ignored. + Only the test cases are taken from it. + + + In order to test a submitted circuit against a sample solution, the signal names of the inputs and + outputs in both circuits must match. + + + + + How to move a wire? + Select one of the end points with the rectangular selection. Then move this point using the mouse. + You can also select a wire with CTRL + mouse button. + + + + How to delete a wire? + Select one of the end points and press DEL or click on the trashcan. + You can also select a wire with CTRL + mouse button. + + + + How to move a component including all the connected wires? + Select the component with the rectangular selection. The selection must include the entire + component. + Then move the component including the wires using the mouse. + + + + There is a component not connected to a wire, even though the pins are on the wire. + A pin is only connected to a wire if the wire has an endpoint at the pin. + + + If the names of the pins in a circuit are long, the names are no longer readable when + the circuit is embedded. What can I do? + The width of the block can be increased using the menu item + EditCircuit specific settings. + + + The pins in an embedded circuit have an non-optimal order. How can this be changed? + The sequence can be changed using the menu entry EditOrder inputs or + EditOrder outputs. + + + + When the simulation is started, a wire becomes gray. What does that mean? + The colors light green and dark green are used to represent high and low state. + Gray means the wire is in high Z state. + + + + I have a truth table. How to calculate the minimized boolean equations? + In the menu Analysis select the entry Synthesise. Then enter the truth table. + At the bottom of the window you can find the matching boolean equation. If you enter more than one + dependent variable, a new window opens in which all boolean equations are shown. + + + + I have entered a truth table, but there is more than one boolean equation shown. + Which of them is the correct one? + + Minimizing a boolean equation can result in many equations describing the same function. + Digital shows all of them and they all create the same truth table. + There may be differences depending on the "don't cares" in the truth table. + + + + I have a truth table. How to create a circuit representing the truth table? + In the menu Analysis select the entry Synthesise. Then enter the truth table. + You can edit the table using the New or Edit menus. + In the menu Create, you can create a circuit using the Circuit item. + + + + How to edit a signal's name in the truth table? + Right click on the name in the table header to edit the name. + + + I have a boolean equation. How to create a circuit? + In the menu Analysis select the entry Expression. Then enter the equation. + + + + How to create a truth table from a boolean equation? + In the menu Analysis select the entry Expression. Then enter the expression. + Then create a circuit and in the menu Analysis use the entry Analysis to create the truth + table. + + + + How to create a JEDEC file from a given circuit? + In the menu Analysis select the entry Analysis. Then in the menu Create in the + new + window choose the correct device in the sub menu Device. + + + + When creating a JEDEC file: How to assign a pin number to a certain signal? + At the corresponding inputs and outputs you can enter a pin number in the settings dialog of the + pin. + + + + I have created a JEDEC file. How to program it to a GAL16v8 or GAL22v10? + + To program such a chip a special programmer hardware is necessary. + + + I have created a circuit that I want to use in many other circuits. + How can I do this without copying the file over and over again into the appropriate folders? + + The circuit can be saved in the "lib" folder. Then it is available in all other circuits. + + + + + + Starts or stops the simulation. + Opens the measurement table dialog. + Run to Break. + Execute test cases. + A single clock step (Works only in a running simulation and only if there is a single + clock component). + + Execute a single gate step. + Execute all single gate steps until the circuit has stabilized or, + if a break component is present, until the break. + Analysis of the circuit. + Select all. + Cuts the selected components to the clipboard. + Copys the selected components to the clipboard. + Inserts the components from the clipboard. + Duplicate the current selection without modifying the clipboard. + While inserting this rotates the components. + Inserts the last inserted component again. + Inserts a new tunnel. + New circuit. + Open circuit. + Save the circuit. + Undo last modification. + Redo the last undone modification. + Programs a diode or a FGFET. + While drawing a wire switches to the diagonal mode. + While drawing a line flips the orientation. + Splits a single wire into two wires. + Abort the current action. + Removes the selected components. + Removes the selected components. + Increases the number of inputs at the component the mouse points to. If it is used with + constants, the value is increased. + + Decreases the number of inputs at the component the mouse points to. If it is used with + constants, the value is decreased. + + Zoom In. + Zoom Out. + Fit to size. + Show or hide the components tree view. + + + \ No newline at end of file