Русская Википедия:TkGate

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Карточка программы

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

История TkGate

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

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

Файл:Xgate.gif
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-схем. Встроенные примитивы включают:

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

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

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

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

См. также

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

Примечания

Шаблон:Примечания

Ссылки