From e71267ce8f974414c803e47a5a186e27bdeb74d7 Mon Sep 17 00:00:00 2001 From: kulikovdb Date: Tue, 27 Apr 2021 10:03:42 +0300 Subject: [PATCH 1/6] Add Russian automatic translation with usage Crow Translate --- src/main/resources/lang/lang.xml | 1 + src/main/resources/lang/lang_ru.xml | 2511 +++++++++++++++++++++++++++ 2 files changed, 2512 insertions(+) create mode 100644 src/main/resources/lang/lang_ru.xml 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..3566c8b6c --- /dev/null +++ b/src/main/resources/lang/lang_ru.xml @@ -0,0 +1,2511 @@ + + + Адрес + Оглавление + Общие + Версия + Дата + максимум + Ниже описаны доступные настройки симулятора. + Атрибуты + Открытый контур + Включенная схема: + Открывает схему в новом окне. + Справка + Показывает краткое описание этого элемента. + Базовый + Расширенный + Отменить изменения + Изменить + Продолжить редактирование + Загрузить + Сохранить + Создать + Создать схему в отдельном окне + Изменить отключенный + Открывает диалог как немодальный диалог + Браузер + Открывает текст справки в браузере. Позволяет распечатать текст. + Очистить + Все значения обнулены! + Переходы + Все возможные переходы добавлены как тестовые примеры. Используется для создания тестовых примеров для тестирования самого симулятора. + Новое имя + Все равно сохранить + Перезаписать + Применить + Редактирует содержимое выбранного ПЗУ / 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-канальный полевой транзистор. + Основная часть подключается к поз. Шина напряжения и транзистор моделируются без основного диода. + + Ворота + Источник + Слив + N-канальный полевой транзистор + N-канальный полевой транзистор. + Основная часть соединена с землей, и транзистор моделируется без внутреннего диода. + + Ворота + Источник + Слив + П-канальный полевой транзистор с плавающим затвором + 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 вместо прямоугольных + Количество входов + Количество используемых входов. Каждый вход должен быть подключен. + Метка + Имя этого элемента. + Размер + Размер фигуры в цепи. + Язык + Язык графического интерфейса. Вступит в силу только после перезапуска. + Сетевое имя + Все сети с одинаковым именем соединяются вместе. + Разделение ввода + Если, например, четыре бита, два бита и два дополнительных бита должны использоваться в качестве входов, + это можно настроить с помощью «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
+            С 0 1
+            С 1 0
+            С 1 1
+            С 0 0
+        
+ +

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

+

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

+ +

Ниже приведен пример проверки 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
+            повторить (256) 0 бит (4, n >> 4) бит (4, n) бит (5, (n >> 4) + (n и 15))
+            повторить (256) 1 бит (4, n >> 4) бит (4, n) бит (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
+            петля (а, 16)
+            петля (б, 16)
+            0 бит (4, a) бит (4, b) бит (5, a + b)
+            1 биты (4, a) биты (4, b) биты (5, a + b + 1)
+            конец цикла
+            конец цикла
+        
+ +

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

+ +
 C Q_3 Q_2 Q_1 Q_0
+
+            # счетчик часов до 1111
+            в то время как (! (Q_3 & Q_2 & Q_1 & Q_0))
+            С х х х х
+            конец пока
+
+            # запускаем выполнение теста
+            повторить (16) C бит (4, n)
+        
+ +

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

+ +
+            А Б Y
+            цикл (я, 100000)
+            пусть a = random(1<<16);
+            пусть b = random(1<<16);
+            (а) (б) (а * б)
+            конец цикла
+        
+ +

Вход, допускающий высокое сопротивление в качестве значения, также можно использовать в качестве тестового выхода. + В этом случае имя сигнала можно использовать с завершающим «_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
+
+            объявить 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.
  • +
+

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

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

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

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

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

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

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

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

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

+ В отличие от настоящего логического анализатора, ось X графика измерений не показывает время. + Вместо этого отображается счетчик, который подсчитывает изменения состояния в цепи. + Каждый раз, когда в цепи происходит изменение, счетчик увеличивается и отображается новое состояние.
+ Вы также можете рассматривать его как классический логический анализатор, который не сохраняет данные для оптимизации. + если в схеме ничего не изменилось. + Однако это также означает, что по графику невозможно определить, много или мало времени + прошло между двумя изменениями в схеме.
+ Такое поведение вызвано характером моделирования: моделирование схемы не знает + понятие времени. В схему вносятся изменения, и изменение состояния схемы рассчитывается до тех пор, пока + цепь снова стабилизировалась. Затем производится следующее изменение, эффект которого также рассчитывается. + и так далее. Эти изменения подсчитываются, и значение счетчика отображается на оси X графика.
+ Помимо прочего, это также означает, что схему нельзя разогнать, так как эффекты падения + фронты тактовых импульсов не вычисляются до тех пор, пока схема не стабилизируется после предыдущего нарастающего фронта. + +]]>
+ +Учебник + В следующем коротком руководстве вы познакомитесь с первой простой схемой: + +Сначала вставьте вход в схему. Вы найдете вход в меню Components▸IO. + + Теперь добавьте второй вход в схему. Вы также можете нажать на ввод +на панели инструментов. + +Лучше всего разместить второй вход немного ниже первого входа. +Вы можете перемещать схему, удерживая правую кнопку мыши. +Нажимая на компоненты, вы можете их перемещать. + Затем нужно вставить вентиль «Исключающее ИЛИ». +Вы можете найти эти ворота в меню Components▸Logic. +Поместите этот компонент на некотором расстоянии справа от входов. + Последний компонент, который нужно вставить, является выходным. +Поместите его на некотором расстоянии справа от ворот «Исключительное Или». + + Чтобы завершить схему, необходимо провести соединительные провода. + +Нажмите на красную точку на первом входе и подключите его к входу «Исключающее ИЛИ», +нажав затем на синюю точку ворот «Исключительное ИЛИ». +НЕ тащите кнопкой мыши вниз! + + Подключите красную точку второго входа ко второй синей точке +Строб «Исключающее ИЛИ» и красная точка гейта «Исключающее ИЛИ» к синей точке выхода. + +Во время рисования вы можете закрепить провод, щелкнув где-нибудь на холсте. +Щелкните правой кнопкой мыши, чтобы отменить прорисовку провода (щелкните, удерживая клавишу Control, в macOS). + + Теперь ваша первая схема работает. +Чтобы начать симуляцию, вы можете нажать кнопку «Воспроизвести» на панели инструментов. +Если вы наведете указатель мыши на панель инструментов, отобразятся подсказки. + + +Теперь симуляция активна. Переключайте входы, щелкая по ним. + + +Чтобы остановить симуляцию, нажмите кнопку «Стоп» на панели инструментов. + + +Для полноты входные и выходные данные должны быть помечены. + +Щелкните правой кнопкой мыши вход, чтобы открыть диалоговое окно. В macOS используется нажатие клавиши Control. +Здесь входу можно дать имя. + +Пометьте все входы и выходы. + + +Входы и выходы всегда должны иметь однозначные имена. + + +Пропустить учебник + +
From e9969e0b8ad0ffe05dd9569d3f3df91134552cec Mon Sep 17 00:00:00 2001 From: kulikovdb Date: Tue, 4 May 2021 11:11:43 +0300 Subject: [PATCH 2/6] Add Russian automatic translation with usage Crow Translate --- src/main/resources/lang/lang_ru.xml | 115 +- src/main/resources/lang/lang_ru_ref.xml | 2519 +++++++++++++++++ .../de/neemann/digital/docu/DocuTest.java | 2 +- src/test/resources/docu/static_ru.xml | 703 +++++ src/test/resources/docu/static_ru_ref.xml | 703 +++++ 5 files changed, 3988 insertions(+), 54 deletions(-) create mode 100644 src/main/resources/lang/lang_ru_ref.xml create mode 100644 src/test/resources/docu/static_ru.xml create mode 100644 src/test/resources/docu/static_ru_ref.xml diff --git a/src/main/resources/lang/lang_ru.xml b/src/main/resources/lang/lang_ru.xml index 3566c8b6c..c6f2e858b 100644 --- a/src/main/resources/lang/lang_ru.xml +++ b/src/main/resources/lang/lang_ru.xml @@ -1,5 +1,11 @@ - + Адрес Оглавление Общие @@ -17,7 +23,7 @@ Расширенный Отменить изменения Изменить - Продолжить редактирование + Продолжить редактирование Загрузить Сохранить Создать @@ -323,14 +329,14 @@ Переключатель предельного положения 1 становится равным 1, когда угол двигателя составляет 180 °. - Катушка A, положительная - Катушка A, отрицательная - Катушка B, положительная - Катушка B, отрицательная + Катушка A, положительная + Катушка A, отрицательная + Катушка B, положительная + Катушка B, отрицательная - ​​Земля + Земля Подключение к земле. Вывод всегда равен нулю. Вывод всегда возвращает 0. Напряжение питания @@ -469,7 +475,7 @@ Установленный ввод. Вход сброса. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. RS-триггер, синхронизированный RS @@ -481,7 +487,7 @@ Вход часов. Нарастающий фронт инициирует переход состояния. Вход сброса. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. JK-триггер JK Имеет возможность сохранять (J = K = 0), устанавливать (J = 1, K = 0), сбрасывать (J = 0, K = 1) или переключать (J = K = 1) ) сохраненное значение. @@ -490,7 +496,7 @@ Вход часов. Нарастающий фронт инициирует изменение состояния. Вход сброса триггера. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. D-триггер D Компонент, используемый для хранения значения. @@ -501,14 +507,14 @@ Вывод часов для хранения значения. Значение на входе D сохраняется на переднем фронте этого вывода. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. Т-триггер Т Хранит один бит. Переключает состояние по нарастающему фронту на входе C. Включает функцию переключения. Вход часов. Нарастающий фронт переключает выход, если вход T установлен на 1. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. JK-триггер, асинхронный JK-AS Имеет возможность сохранять (J = K = 0), устанавливать (J = 1, K = 0), сбрасывать (J = 0, K = 1) или переключать (J = K = 1) ) сохраненное значение. @@ -519,7 +525,7 @@ Вход часов. Нарастающий фронт инициирует изменение состояния. Вход сброса триггера. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. асинхронный набор. Высокое значение на этом входе устанавливает триггер. асинхронная очистка. Высокое значение на этом входе очищает триггер. D-триггер, асинхронный @@ -532,7 +538,7 @@ Ввод бита для сохранения. Пин управления для хранения бита. Бит на входе D сохраняется на переднем фронте этого вывода. Возвращает сохраненное значение. - Возвращает инвертированное сохраненное значение. + Возвращает инвертированное сохраненное значение. асинхронный набор. Если установлено в единицу, все сохраненные биты устанавливаются в единицу. асинхронная очистка. Если установлено в единицу, все сохраненные биты устанавливаются в ноль. @@ -546,7 +552,7 @@ Сбросить ввод. Высокое значение очищает монофлоп. Вход часов. Нарастающий фронт устанавливает монофлоп. вывод - инвертированный вывод + инвертированный вывод @@ -923,7 +929,7 @@ введите A вход B управляющий ввод. - инвертированный управляющий вход + инвертированный управляющий вход @@ -999,7 +1005,7 @@ Ошибка Контакт {0} в компоненте {1} не является входом или выходом - Необходим единственный компонент часов. Все триггеры должны использовать этот тактовый сигнал. + Необходим единственный компонент часов. Все триггеры должны использовать этот тактовый сигнал. Схема не имеет помеченных входов Схема не имеет маркированных выходов Не обнаружено перерывов после {0} циклов в точке останова '' {1} ''. @@ -1013,17 +1019,17 @@ Невозможно проанализировать узел {0} Содержит [var] и [not var] Пин {0} в компоненте {1} существует дважды - ​​Компонент {0} не найден - Требуются точные значения {0}, а не {1} + Компонент {0} не найден + Требуются точные значения {0}, а не {1} Триггер должен быть подключен к часам. Неверный формат файла Логика уже инициализирована Туннель {0} не подключен! - ​​Есть несколько часов + Есть несколько часов Компонент часов не используется! Требуется {0} бит, но найдено {1} бит - ​​Сеть контактов {0} не найдена - ​​В логике не найдено часов + Сеть контактов {0} не найдена + В логике не найдено часов Нет доступных входов для установки Не найдена фигура для компонента {0} Ничего не связано с входом '' {0} '' в компоненте '' {1} ''. Открытые вводы не допускаются. @@ -1037,7 +1043,7 @@ Вывод {0} не определен Нет метки для вывода {0} Пин {0} назначен дважды! - ​​Нет = найдено! + Нет = найдено! Пин {0} не является вводом! Пин {0} не является выходом! Использовано слишком много входных данных! @@ -1047,8 +1053,8 @@ Нашли часы без метки. Если часы встроены, они также нуждаются в метка. - ​​Контакт {0} не найден в компоненте {1} - ​​Пин {0} не найден + Контакт {0} не найден в компоненте {1} + Пин {0} не найден Пользовательская форма не определяет булавку {0} Пин {0} неизвестно Логика колеблется. @@ -1076,7 +1082,7 @@ Ожидается {0}, но найдено {1} значений в строке {2}! Неожиданный токен ({0}) в строке {1}. - ​​Переменная {0} не найдена! + Переменная {0} не найдена! В тестовом векторе не определены входные сигналы! В тестовом векторе не определены выходные сигналы! Тестовых данных не найдено. @@ -1100,9 +1106,9 @@ Слишком много итераций в цикле. Диоду требуется подтягивающий резистор на выходе! Диоду нужен понижающий резистор на выходе! - ​​Тестовый сигнал {0} не найден в цепи! + Тестовый сигнал {0} не найден в цепи! Разрешено только {1} бит, но найдено {0} бит! - ​​Триггеры с более чем одним битом не допускаются! + Триггеры с более чем одним битом не допускаются! Два управляющих входа затвора передачи должны быть инвертированы! Сигнал {0} используется дважды! Ошибка анализа тестовых данных. @@ -1120,7 +1126,7 @@ Тестовые случаи с общей параметризацией не поддерживаются в HDL. экспорт! - безымянная сеть + безымянная сеть Слишком много переменных! Недействительное выражение! Функция {0} не найдена в строке {1}! @@ -1128,9 +1134,9 @@ Недопустимое значение {0} в функции {1}! Имя {0} не является элементом пути. Ошибка при загрузке библиотеки. - ​​Файл JAR не содержит манифеста! + Файл JAR не содержит манифеста! Манифест не содержит записи основного класса! - ​​Не удалось найти класс {0}! + Не удалось найти класс {0}! Не удалось создать экземпляр класса {0}! Входных битов должно быть больше, чем выходных! Невозможно установить для физических выводов постоянные значения! @@ -1140,7 +1146,7 @@ В таблице слишком много столбцов! Ошибка записи ZIP-файла. Разрешен только один тактовый компонент с высокой частотой. - Схема содержит циклы. Анализировать такую ​​схему невозможно. + Схема содержит циклы. Анализировать такую схему невозможно. Циклы возникают, если выход элемента возвращается на один из входов того же элемента. Использование переключателей, полевых транзисторов или реле также вызывает циклы. Если используется монофлоп, должен быть ровно один компонент часов! @@ -1186,10 +1192,10 @@ Имя "{0}" не уникально! Элементы часов нельзя использовать в асинхронном режиме. Ошибка при экспорте в Verilog. - ​​Память для программ не найдена! Программная память должна быть отмечена как таковая. - ​​Обнаружено несколько программных ячеек! Допускается только одна программная память. - ​​В модели не обнаружено памяти "{0}"! - ​​В модели обнаружено несколько воспоминаний "{0}"! + Память для программ не найдена! Программная память должна быть отмечена как таковая. + Обнаружено несколько программных ячеек! Допускается только одна программная память. + В модели не обнаружено памяти "{0}"! + В модели обнаружено несколько воспоминаний "{0}"! Ошибка загрузки памяти программы. Ошибка при чтении файла SVG. Файл SVG содержит контакты, которых нет в цепи. @@ -1197,10 +1203,10 @@ Если программы должны быть загружены в несколько RAM, все RAM должны иметь разные имена. Затем лексический порядок определяет порядок RAM. MIDI-система недоступна. - MIDI-канал {0} недоступен. - MIDI-инструмент {0} недоступен. + MIDI-канал {0} недоступен. + MIDI-инструмент {0} недоступен. MIDI-инструменты недоступны. - Во время выполнения тестов "{0}" произошла ошибка! + Во время выполнения тестов "{0}" произошла ошибка! HDL неизвестен: {0} Ошибка при запуске команды {0} Имеется безымянный ввод или вывод! @@ -1221,8 +1227,8 @@ Нет имени файла, доступного для автоматической перезагрузки! Виртуальный сигнал {0} объявлен дважды в строке {1}! - ​​Заголовок не найден! - ​​Выходных значений не найдено! + Заголовок не найден! + Выходных значений не найдено! Недостаточно значений в одной строке! Слишком много значений в одной строке! Ошибка записи файла {0}. @@ -1303,8 +1309,11 @@ Перезагружает HEX-файл каждый раз при запуске модели. Файл Файл для загрузки в ПЗУ. - Отразить положение селектора - Этот параметр позволяет переместить штифт селектора на противоположную сторону плексер. + Отразить положение селектора + + Этот параметр позволяет переместить штифт селектора на противоположную сторону + плексер. + Формат числа Формат, используемый для отображения чисел. ASCII @@ -1608,7 +1617,7 @@ Закрепить метки в математическом режиме Для меток контактов используйте математический режим, даже если индексы отсутствуют. Скрыть тестовые наборы - Тестовые наборы не экспортируются. + Тестовые наборы не экспортируются. Фигуры не закрашены Полигоны не заполнены. Небольшие входы и выходы @@ -1680,7 +1689,7 @@ Отменить: {0} Повторить: {0} Измененные атрибуты цепи. - Заказанные измерения. + Порядок измерений. Измененные атрибуты выбранных компонентов. Разделяет одиночный провод на два провода. Изменения, внесенные в ходе моделирования. @@ -1791,11 +1800,11 @@ Открыть в новом окне Открывает схему в новом окне Порядок ввода - Закажите входы для использования в качестве встроенной схемы - Значения измерения заказа - Заказывает значения измерений в графическом и табличном виде - Вывод заказа - Закажите выходы для использования в качестве встроенной схемы. + Порядок выводов для использования в качестве встроенной схемы + Порядок измеренных значений + Порядок измеренных значений в графическом и табличном виде + Порядок выходов + Порядок выходов для использования в качестве встроенной схемы. Вставить Вставить в новом окне Содержимое буфера обмена вставляется в новое окно. @@ -2071,7 +2080,7 @@ Если возможно, определения ввода и вывода также адаптируются к текущему коду. Определения ввода и вывода не могут быть созданы автоматически. Пожалуйста, проверьте настройки! -​​Исполняемый файл "{0}" не найден! +Исполняемый файл "{0}" не найден! Введите текст! Запустить ATMISP @@ -2365,7 +2374,7 @@ FSM не является детерминированным: {0} Номер состояния {0} используется дважды. Нет начального состояния (нулевой номер состояния). -​​Состояние '' {0} '' не найдено! +Состояние '' {0} '' не найдено! Неправильное назначение для вывода ('' {0} '')! Ошибка в условии '' {0} ''! Номер состояния @@ -2502,7 +2511,7 @@ Пометьте все входы и выходы. - + Входы и выходы всегда должны иметь однозначные имена. 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..199b4d2a1 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(language.equals("zh") ? "SansSerif,SimSun" : "SansSerif,Arial") .append("\" rev=\"") .append(System.getProperty("buildnumber")) .append("\" revt=\"") diff --git a/src/test/resources/docu/static_ru.xml b/src/test/resources/docu/static_ru.xml new file mode 100644 index 000000000..64f00ef4f --- /dev/null +++ b/src/test/resources/docu/static_ru.xml @@ -0,0 +1,703 @@ + + + + + + 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. + Подробная информация о синтаксисе теста представлена ​​в диалоговом окне справки. + + + Если схема встроена в другую схему, только имя файла подсхемы сохраняется в + схема, а не сама встроенная схема. + Соответствующие файлы + поэтому встроенные подсхемы должны быть найдены в файловой системе во время выполнения моделирования. + Чтобы как можно лучше поддерживать различные методы работы пользователей и при этом избегать + сложное администрирование путей импорта и т.д., реализована несколько необычная стратегия импорта. + + + В файле схем хранятся только имена файлов встроенных схем, а не полный путь. + Если файл необходимо открыть, во всех вложенных папках выполняется поиск файла с соответствующим именем. + Если подходящий файл найден, он импортируется. Этот процесс зависит только от имени файла, который нужно + быть прочитанным, а не на своем пути. Соответственно, выдается сообщение об ошибке, если имеется несколько файлов + одно и то же имя в разных подпапках, поскольку в этом случае возникают двусмысленности. + + + Таким образом, подходящая структура проекта выглядит следующим образом: Корневой контур расположен в отдельном + папка. + Все импортированные схемы должны находиться в одной папке или подпапках. Все схемы должны иметь разные названия, + поэтому не должно происходить, чтобы схемы с одним и тем же именем находились в разных папках. + + + + + + + Во время моделирования каждый логический вентиль имеет задержку распространения. Каждый компонент, найденный в библиотеке + имеет одинаковую задержку распространения независимо от его сложности. + Таким образом, логический элемент И имеет ту же задержку распространения, что и умножитель. + Единственным исключением являются диоды, переключатели и разветвители, которые используются для создания шин данных. + Эти компоненты вообще не имеют задержки распространения. + + + Если необходимо смоделировать логический элемент - например, множитель - с большей задержкой распространения, задержкой + вентиль должен быть вставлен в схему сразу за выходом умножителя. + + + Если схема включена в другую родительскую схему, включенная схема сохраняет свои временные характеристики. + Поэтому, если вы включите сложную схему, которая имеет большую задержку распространения, потому что входные сигналы + должен пройти три гейта, пока не достигнет выхода, это поведение сохраняется при включении этого + схема. + Никаких дополнительных задержек в результате включения цепи не возникает. Если не все выходы + схема есть + такая же задержка распространения, то это также имеет место, если она включена в родительский контур. + В общем, включение схемы в другую схему вообще не изменяет ее временное поведение. An + включенная цепь ведет себя точно так же, как если бы все компоненты были вставлены в одну и ту же цепь + уровень. + + + + + + + Цепь можно проанализировать с помощью пункта меню Анализ. Таблица истинности создается для чисто + комбинаторные схемы. Эту таблицу истинности можно редактировать по желанию. + После редактирования из этой таблицы истинности может быть сгенерирована новая схема. + + + Помимо чисто комбинаторных схем, также можно анализировать или генерировать последовательные + схемы. + Вместо простой таблицы истинности создается так называемая таблица переходов состояний. + Таким образом, каждый триггер появляется на входной и выходной стороне таблицы переходов состояний. + В этой таблице справа вы можете найти следующее состояние, которое будет + происходит после следующего тактового сигнала. Это следующее состояние зависит от текущего состояния триггеров. + в левой части таблицы. + Чтобы анализ был возможен, триггеры должны быть названы. + + + Применяется следующее соглашение об именах: следующее состояние бита в правой части таблицы + обозначается строчной буквой «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 [файл для тестирования] [-tests [необязательный файл с + тестовыми примерами]] + + + + Если указан только проверяемый файл, выполняются тестовые случаи в этом файле. Таким образом, + могут быть выполнены тестовые примеры, созданные самими студентами. + + + Если указано второе имя файла, тестовые примеры берутся из второго файла и первой схемы. + проверяется с помощью этих тестовых примеров. Поэтому второй файл обычно будет содержать образец решения. + чьи тестовые примеры полны и верны. Схема, содержащаяся во втором файле, игнорируется. + Из него взяты только тестовые примеры. + + + Чтобы протестировать представленную схему на примере решения, имена сигналов входов и + выходы в обеих цепях должны совпадать. + + + + + Как переместить провод? + Выберите одну из конечных точек с помощью прямоугольного выделения. Затем переместите эту точку с помощью мыши. + Вы также можете выбрать провод с помощью 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 From 4728a5360dedbb21f34d0d3f5561dc57b92ab856 Mon Sep 17 00:00:00 2001 From: kulikovdb Date: Tue, 4 May 2021 11:14:25 +0300 Subject: [PATCH 3/6] Add Russian automatic translation with usage Crow Translate --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 4302086044e3ce3b153eda532e030fa2b694a678 Mon Sep 17 00:00:00 2001 From: kulikovdb Date: Tue, 17 Aug 2021 14:17:16 +0300 Subject: [PATCH 4/6] Add Russian automatic translation with usage Crow Translate, use Liberation Serif font --- src/main/resources/lang/lang_ru.xml | 2 +- src/test/java/de/neemann/digital/docu/DocuTest.java | 10 +++++++++- src/test/resources/docu/static_ru.xml | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/resources/lang/lang_ru.xml b/src/main/resources/lang/lang_ru.xml index c6f2e858b..877a9f009 100644 --- a/src/main/resources/lang/lang_ru.xml +++ b/src/main/resources/lang/lang_ru.xml @@ -28,7 +28,7 @@ In the file howTo.md you can find more details about translations. Сохранить Создать Создать схему в отдельном окне - Изменить отключенный + Изменить (отдельное окно) Открывает диалог как немодальный диалог Браузер Открывает текст справки в браузере. Позволяет распечатать текст. diff --git a/src/test/java/de/neemann/digital/docu/DocuTest.java b/src/test/java/de/neemann/digital/docu/DocuTest.java index 199b4d2a1..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,Arial") + .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 index 64f00ef4f..b672775bd 100644 --- a/src/test/resources/docu/static_ru.xml +++ b/src/test/resources/docu/static_ru.xml @@ -529,8 +529,8 @@ - java -cp Digital.jar CLI test [файл для тестирования] [-tests [необязательный файл с - тестовыми примерами]] + java -cp Digital.jar CLI test [file to test] [-tests [optional file with + test cases]] From f4ff8b392e6fc75d375b4c7c8ab20288113d2b33 Mon Sep 17 00:00:00 2001 From: kulikovdb Date: Mon, 6 Sep 2021 09:56:05 +0300 Subject: [PATCH 5/6] Add Russian automatic translation with usage Crow Translate, use Liberation Serif font --- src/main/resources/lang/lang_ru.xml | 96 +++++++++++++-------------- src/test/resources/docu/static_ru.xml | 15 ++--- 2 files changed, 55 insertions(+), 56 deletions(-) diff --git a/src/main/resources/lang/lang_ru.xml b/src/main/resources/lang/lang_ru.xml index 877a9f009..b53af0a8b 100644 --- a/src/main/resources/lang/lang_ru.xml +++ b/src/main/resources/lang/lang_ru.xml @@ -556,7 +556,7 @@ In the file howTo.md you can find more details about translations. - Зарегистрироваться + Регистр Рег Компонент для хранения значений. Можно выбрать разрядность слова данных. В отличие от D-триггера, регистр обеспечивает вход, который включает часы. @@ -573,7 +573,7 @@ In the file howTo.md you can find more details about translations. Выбранное слово данных, если вход sel высокий. Если вход высокий, выход активируется. Если он низкий, выходные данные находятся в состоянии высокого Z. - Двойной порт ПЗУ + Двухпортовое ПЗУ ПЗУ Компонент энергонезависимой памяти. Сохраненные данные можно редактировать в диалоговом окне атрибутов. @@ -703,8 +703,8 @@ In the file howTo.md you can find more details about translations. сохраняется по адресу, применяемому к A при изменении A или D. Вывод сохраненных данных. - Файл регистрации - Зарегистрироваться + Файл регистра + Регистр Память с одним портом для записи и двумя портами для чтения из память одновременно. Может использоваться для реализации регистров процессора. Два регистра могут быть прочитаны одновременно, а третий может быть записан. @@ -877,7 +877,7 @@ In the file howTo.md you can find more details about translations. Одно из соединений предохранителя. Одно из соединений предохранителя. Реле - Реле - это переключатель, которым можно управлять с помощью катушки. + Реле - это переключатель, которым можно управлять с помощью катушки. Если через катушку протекает ток, переключатель замыкается или размыкается. Обратного диода нет, поэтому направление тока не имеет значения. Переключатель срабатывает, если входы имеют разные значения. @@ -894,22 +894,22 @@ In the file howTo.md you can find more details about translations. Один из входов для управления реле. Один из входов для управления реле. - П-канальный полевой транзистор - P-канальный полевой транзистор. + P-канальный полевой транзистор + P-канальный полевой транзистор. Основная часть подключается к поз. Шина напряжения и транзистор моделируются без основного диода. Ворота Источник Слив N-канальный полевой транзистор - N-канальный полевой транзистор. + N-канальный полевой транзистор. Основная часть соединена с землей, и транзистор моделируется без внутреннего диода. Ворота Источник Слив - П-канальный полевой транзистор с плавающим затвором - P-канальный полевой транзистор с плавающим затвором. + P-канальный полевой транзистор с плавающим затвором + P-канальный полевой транзистор с плавающим затвором. Основная часть соединена с землей, и транзистор моделируется без внутреннего диода. Если в плавающем затворе хранится заряд, он не проводит ток, даже если затвор низкий. @@ -2222,27 +2222,27 @@ In the file howTo.md you can find more details about translations.
             C Q1 Q0
             0 0 0
-            С 0 1
-            С 1 0
-            С 1 1
-            С 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. Если имеется несколько битовых входов, + Если строка начинается с '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
-            повторить (256) 0 бит (4, n >> 4) бит (4, n) бит (5, (n >> 4) + (n и 15))
-            повторить (256) 1 бит (4, n >> 4) бит (4, n) бит (5, (n >> 4) + (n & 15) +1)
+           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. @@ -2254,13 +2254,13 @@ In the file howTo.md you can find more details about translations. заявление можно использовать. Приведенный выше пример также можно реализовать следующим образом:

-            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
-            петля (а, 16)
-            петля (б, 16)
-            0 бит (4, a) бит (4, b) бит (5, a + b)
-            1 биты (4, a) биты (4, b) биты (5, a + b + 1)
-            конец цикла
-            конец цикла
+           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
         

При определенных обстоятельствах может возникнуть необходимость отреагировать на первоначальный @@ -2271,12 +2271,12 @@ In the file howTo.md you can find more details about translations.

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

В тестовых случаях может быть полезно генерировать случайные числа. @@ -2286,12 +2286,12 @@ In the file howTo.md you can find more details about translations. Регрессионный тест, который умножает 100000 случайных чисел, может выглядеть так:

-            А Б Y
-            цикл (я, 100000)
-            пусть a = random(1<<16);
-            пусть b = random(1<<16);
-            (а) (б) (а * б)
-            конец цикла
+            A    B      Y
+        loop(i,100000)
+            let a = random(1<<16);
+            let b = random(1<<16);
+            (a)  (b)   (a*b)
+        end loop
         

Вход, допускающий высокое сопротивление в качестве значения, также можно использовать в качестве тестового выхода. @@ -2317,12 +2317,12 @@ In the file howTo.md you can find more details about translations.

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

 A B Bit
 
-            объявить Bit = (Bus >> 3) & 1;
+            declare Bit = (Bus>>3)&1;;
 
-            0 0 0
-            0 1 0
-            1 0 1
-            1 1 0
+            0 0  0
+            0 1  0
+            1 0  1
+            1 1  0
         

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

@@ -2345,19 +2345,19 @@ In the file howTo.md you can find more details about translations. Для выполнения этой инициализации есть три инструкции:

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

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

. - fastennable>
+
Конечный автомат Нет движения @@ -2442,7 +2442,7 @@ In the file howTo.md you can find more details about translations. условие выполнено. Если нет безусловного перехода из состояния, конечный автомат останется в этом состоянии, если нет других условие перехода выполнено. - fastennable>
+
График измерений Таким образом, можно построить и смоделировать большинство базовых схем, используемых в цифровой электронике. - В папке examples пользователи могут найти примеры, включающие функциональные - 16-битный однотактный процессор Гарварда. + В папке examples пользователи могут найти примеры, включающие + 16-битный однотактный процессор с гарвардской архитектурой. Симулятор имеет два режима работы: режим редактирования и моделирования. @@ -243,9 +243,8 @@ Никаких дополнительных задержек в результате включения цепи не возникает. Если не все выходы схема есть такая же задержка распространения, то это также имеет место, если она включена в родительский контур. - В общем, включение схемы в другую схему вообще не изменяет ее временное поведение. An - включенная цепь ведет себя точно так же, как если бы все компоненты были вставлены в одну и ту же цепь - уровень. + В общем, включение схемы в другую схему вообще не изменяет ее временное поведение. + Включенная цепь ведет себя точно так же, как если бы все компоненты были вставлены в один и тот же уровень. @@ -253,7 +252,7 @@ Цепь можно проанализировать с помощью пункта меню Анализ. Таблица истинности создается для чисто - комбинаторные схемы. Эту таблицу истинности можно редактировать по желанию. + комбинаторной схемы. Эту таблицу истинности можно редактировать по желанию. После редактирования из этой таблицы истинности может быть сгенерирована новая схема. @@ -262,7 +261,7 @@ Вместо простой таблицы истинности создается так называемая таблица переходов состояний. Таким образом, каждый триггер появляется на входной и выходной стороне таблицы переходов состояний. В этой таблице справа вы можете найти следующее состояние, которое будет - происходит после следующего тактового сигнала. Это следующее состояние зависит от текущего состояния триггеров. + происходить после следующего тактового сигнала. Это следующее состояние зависит от текущего состояния триггеров. в левой части таблицы. Чтобы анализ был возможен, триггеры должны быть названы. @@ -275,7 +274,7 @@ комбинаторная схема.
- Следует отметить, что анализируемая схема может содержать только чисто комбинаторные элементы в + Следует отметить, что анализируемая схема может содержать только чисто комбинаторные элементы в дополнение к встроенным шлепанцам D и JK. Если триггер, например, сделано из элеметнов ИЛИ-НЕ, это Схема не распознается как триггер, поэтому анализ такой схемы невозможен. From dfca4e05e4b5e975575ea7ff7414006731d460d7 Mon Sep 17 00:00:00 2001 From: kulikovdb Date: Wed, 13 Oct 2021 17:31:06 +0300 Subject: [PATCH 6/6] Clarify usage of IEEE shapes settings --- src/main/resources/lang/lang_ru.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/lang/lang_ru.xml b/src/main/resources/lang/lang_ru.xml index b53af0a8b..14867642b 100644 --- a/src/main/resources/lang/lang_ru.xml +++ b/src/main/resources/lang/lang_ru.xml @@ -1264,8 +1264,8 @@ In the file howTo.md you can find more details about translations. Краткое описание этого элемента и его использования. Частота/Гц Частота реального времени, используемая для часов реального времени - Используйте формы IEEE 91-1984 - Используйте формы IEEE 91-1984 вместо прямоугольных + Использовать графические обозначения IEEE 91-1984 + Использовать графические обозначения IEEE 91-1984 вместо прямоугольных IEC Количество входов Количество используемых входов. Каждый вход должен быть подключен. Метка