TkGate — среда моделирования и симуляции цифровых электронных схем, состоящая из графического редактора с интерфейсом, основанным на tcl/tk и управляемого событиями симулятора. TkGate поддерживает большое количество готовых примитивов, от отдельных транзисторов и вентилей, до стандартных комбинационных и последовательных элементов логических схем. Кроме этого, поддерживается определение модулей в виде графических логических схем или Verilog описаний, а также библиотек модулей для создания сложных иерархических моделей с переиспользованием кода. В дистрибутив входят примеры схем и учебное руководство. Примеры включают 16-ти разрядный процессор, запрограммированный для запуска игры «Животные». Является свободным программным обеспечением, распространяемым на условиях GPL2.[1]

TkGate
Логотип программы TkGate
Скриншот программы TkGate
TkGate 2.0.0
Тип Редактор и симулятор логических электронных схем
Автор Jeffery P. Hansen
Разработчик Jeffery P. Hansen
Написана на C, Tcl
Интерфейс Tk, Xlib
Операционная система POSIX
Языки интерфейса Английский, Испанский, Немецкий, Французский, Итальянский, Японский, Русский
Первый выпуск 1987
Последняя версия 2.0.0 (19 июня 2015; 8 лет назад (2015-06-19))
Кандидат в релизы 2.0-rc3 (16 марта 2015; 9 лет назад (2015-03-16))
Бета-версия 2.0-b10 (27 сентября 2009; 14 лет назад (2009-09-27))
Альфа-версия 2.1-a1 (19 июня 2015; 8 лет назад (2015-06-19))
Репозиторий bitbucket.org/starling13…
Состояние активное
Лицензия GNU GPL 2+
Сайт tkgate.org

История TkGate править

TkGate начинался, как студенческий проект Джеффри Хэнсена в Университете Карнеги — Меллон в 1987. В то время программа называлась просто gate и запускалась под управлением оконного менеджера wm, оконной системы разработанной в CMU прежде чем X11 стал широко использоваться. Данный вариант программы использовался студентами курса архитектуры компьютера в CMU для создания простого процессора под названием «The Bat Computer». Многие изображения элементов схем и курсоров (такие как разрезатель проводников), используемые в современной версии, изначально создавались ещё для gate. Эта версия также содержала скрытый рецепт блинов, который всё ещё присутствует в TkGate.

Пролежав несколько лет на полке, программа была воскрешена в 1991 и портирована для использования XLib. Эта версия была несколько раз использована студентами во вводном курсе цифровой логики, но после того, как автор выпустился из CMU вновь предана забвению.

 
xgate — предок TkGate, основанный на XLib

Работа над первой Tcl/Tk инкарнацией началась в 1998 как упражнение в изучении Tcl/Tk. Также, это была первая версия, которая использовала формат сохранения файлов, основанный на Verilog. Предыдущие версии gate/xgate использовали формат, похожий на Lisp.

Текущая разрабатываемая версия, TkGate 2.0, является значительным достижением по сравнению с последней версией первого поколения TkGate 1.8.7. В то время, как 1.8 состояла приблизительно из 73,000 строк на C и Tcl, TkGate 2.0 практически удвоил это количество (приблизительно 130,000). Основные нововведения в TkGate 2.0 включают значительно улучшенный и стандартизированный пользовательский интерфейс, корректный Verilog формат сохраняемых файлов (все метаданные являются комментариями Verilog), основанную на Verilog симуляцию, редактор интерфейса модулей, интерфейсы модулей в виде произвольных символов и написанные на Tcl/Tk виртуальные периферийные устройства.[2]

Возможности править

TkGate позволяет проектировать цифровые электронные схемы в виде иерархического набора модулей.

Модули описываются на языке Verilog или в виде графических схем, включающих готовые компоненты-примитивы. Однако встроенные примитивы также имеют внутреннее представление на Verilog, поэтому графический способ описания схем является просто более удобным и наглядным способом добиться того же результата, что и при использовании чисто Verilog-схем. Встроенные примитивы включают:

  • стандартные вентили И, ИЛИ, исключающее ИЛИ, буфер, инвертор, буфер с тремя состояниями с возможностью инвертировани входов и выходов;
  • одновходовые вентили логической редукции;
  • «средние интегральные схемы», включающие распространённые комбинационные схемы дешифраторов, мультиплексоров, демультиплексоров.
  • элементы арифметико-логических устройств;
  • элементы памяти, такие как триггеры, регистры, модули ОЗУ и ПЗУ;
  • устройства ввода-вывода, используемые в интерактивных симуляциях (индикаторы и переключатели);
 
TkGate, выполняющий симуляцию 16-битного процессора с игрой «Животные» под управлением OpenBSD 5.6

Для более сложных интерактивных симуляций могут использоваться внешние виртуальные периферийные устройства, написанные на tcl/tk. Дистрибутив программы включает примеры таких устройств: генератор синхросигнала в реальном масштабе времени, терминал и интерфейсную часть автомата по продаже напитков.

Использование Verilog позволяет представлять цифровые схемы на различных уровнях абстракции:

  • транзисторных ключей;
  • логических вентилей;
  • регистровых передач;
  • поведенческом.

См. также править

  • Qucs — интегрированный симулятор электронных схем

Примечания править

  1. Страница проекта TkGate. Дата обращения: 3 февраля 2015. Архивировано 11 января 2015 года.
  2. Документация TkGate 2.0, история TkGate. Дата обращения: 3 февраля 2015. Архивировано из оригинала 6 марта 2016 года.

Ссылки править