Библиотека TCL

Компоненты TCL позволяют создавать компоненты, поведение которых описывается TCL-скриптом.

######### Консоль REDS
######### Универсальный TCL-компонент

Спецификация TCL-скрипта

TCL-скрипт запускается Logisim во вспомогательной оболочке (wrapper).

API оболочки

Оболочка предоставляет API, совместимый с API Questasim/Modelsim для проведения моделирования. Доступны следующие функции:

examine <сигнал>
Получает буферизованное значение сигнала. Возвращаемое значение представляет собой строку с двоичным значением сигнала.
<сигнал> — имя сигнала. Если имя содержит путь к сигналу (для Questasim), этот путь будет проигнорирован (например, /top_sim/component2/Signal_2_i превратится в Signal_2_i).
Чтение отдельных битов (например, examine Signal_2_i(3)) не поддерживается.

force <сигнал> <значение>
Устанавливает буферизованное значение сигнала.
<сигнал> — имя сигнала. Если имя содержит путь к сигналу (для Questasim), этот путь будет проигнорирован (например, /top_sim/component2/Signal_2_i превратится в Signal_2_i).
<значение> — строка с двоичным значением. Если строка неполная (отсутствуют старшие значащие биты), она будет дополнена символами X (например, значение 10100, переданное для 8-разрядного сигнала, станет XXX10100).

run
Запрашивает у Logisim один шаг моделирования.

Обратный вызов оболочки

На каждом шаге моделирования оболочка вызывает функцию обратного вызова refresh {}. Обычно в нее помещают код, необходимый для чтения входов, расчета выходов, обновления графического интерфейса пользователя (GUI) и установки выходов.

Функции обратного вызова refresh запрещено содержать вызов функции run. В противном случае вы создадите бесконечный цикл, так как функция run выполняет шаг моделирования, который снова вызывает функцию refresh.

refresh {} {
# Чтение входов с помощью функции examine
# Вычисление значений
# Обновление графического интерфейса
# Установка выходов с помощью функции force
}
Назад к Справке по библиотеке