Библиотека 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 -
}
Назад к Справке по библиотеке