TKGate — open-source симулятор цифрових схем: проект знову живий

TKGate ( tkgate.org ) — це симулятор цифрових схем на базі Verilog з відкритим вихідним кодом. Він працює в ОС Linux. Симулятор написаний на зв'язці C і Tk/Tcl. Автором проекту є Jeffery P. Hansen (неактивний). Зараз розробкою займається наш співвітчизник Андрій Скворцов. Минулого тижня після шестирічного (!) перерви в розробці вийшла нова версія симулятора TKGate-2.0. Ось так виглядає TKGate:





Під катом більш докладний розбір TKGate.

Історія та основні можливості
Я використовував TKGate приблизно в 2005-2006 році, і у мене про нього залишилися самі позитивні спогади. Потім близько 2009 року розробка проекту припинилася, і у мене не було проектів з цифровою електронікою, яку потрібно було моделювати. З цього часу я даний симулятор не бачив і думав, що проект помер. Тепер, на щастя, знайшовся розробник, який підняв цей проект з мертвих. Тепер розглянемо детальніше цей симулятор. Ключові можливості симулятора наступні:
  • Інтерактивне моделювання цифрових схем
  • Доступні типи компонентів: логічні елементи, тригери, регістри, лічильники, дешифратори, мультиплексори, ОЗУ, ПЗУ, АЛУ, ключів на МДН-транзисторі, імітатори вхідних сигналів, світлодіоди, семисегментыне індикатори, шкали, генератори синхросигналов.
  • Використання користувальницьких скриптів Verilog.


Схемний файл являє собою звичайний скрипт Verilog, в коментарях якого містяться дані про розташування компонентів і проводів. Цей код Verilog, наприклад, можна потім передавати в САПР для синтезу ПЛІС.

Графічний інтерфейс TKGate написаний на Tk/Tcl і тому для тих, хто звик до сучасних KDE і Gnome виглядає дещо старомодно. Проте це аніскільки не шкодить функціоналу програми.

Установка
Симулятор працює тільки під Linux версію для Windows, напевно, можна самим зібрати з исходников.

Попередня версія TKGate-1.8 є в репозиторії Debian, і щоб його встановити досить виконати команду:
apt-get install tkgate


Готових пакетів для останньої версії поки немає, тому її потрібно збирати самим. Потрібні наступні залежності:
  • Tk/Tcl
  • GCC
  • Autotools


Можна завантажити архів з исходниками з офіційного сайту або скопіювати репозиторій проекту на Bitbucket:
clone hg https://bitbucket.org/starling13/tkgate


Якщо взяли архів з исходниками з офіційного сайту, то його слід розпакувати і в каталозі, куди він був розпакований виконати:
./configure
make
make install


Якщо склонировали репозиторій, то послідовність складання складніше:
./configure
aclocal
automake
make 
make install


Можна make install замінити на checkinstall, який збере пакет для вашого дистрибутива.

Налаштування
Після установки, потрібно налаштувати бібліотеки, що завантажуються при запуску програми. Можна завантажувати всі бібліотеки або деякі з них. Для цього натискаємо в головному меню Інструменти->Налаштування і потім у діалоговому вікні Бібліотеки->Автозавантаження. Вибираємо бібліотеки, що завантажуються при старті. Зокрема програма містить бібліотеку ІМС 74-ї серії (ТТЛ і ТТЛШ). На цьому встановлення завершено.



Динамічно завантажувати бібліотеки можна, клацнувши правою кнопкою на пункті Бібліотеки в дереві проекту в лівій частині вікна програми і вибравши в контекстному меню пункт Менеджер бібліотек.

Робота з програмою
Розглянемо невеликий приклад. Промоделюємо елемент 2І-НЕ. Для цього створюємо новий файл: Файл->Створити.

Відкривається порожня схема. Центральна частина головного вікна програми являє собою власне поле вводу схеми.

Тепер потрібно додати компоненти. Компоненти додаються через контекстне меню,
викликається правим клацанням миші на полі схеми. Вибираємо Компоненти->Вентиль->І-НЕ. До входів вентиля потрібно підключити перемикачі, які будуть подавати на них лог.0 або лог.1, а до виходу світлодіод, щоб контролювати стан вентиля 2І-НЕ. Перемикачі знову вибираємо через контекстне меню Компоненти->Введення/виведення->Перемикач. Світлодіод знаходиться там же: Компоненти->Введення/виведення->Світлодіод. Тепер з'єднуємо всі проводами. Повинна вийти ось така схема:



Тепер схему можна моделювати. Для цього переходимо на вкладку Симуляція. Стає активним меню Симуляція. Тепер запускаємо моделювання: Симуляція->Пуск. Моделювання є повністю інтерактивним, на відміну від наприклад моделювання цифрових схем в Qucs. Підхід до моделювання в TKGate нагадує Multisim або Proteus. Під час моделювання можна вручну змінювати стан перемикачів і т. п. і дивитися відгук схеми. У нашій схемі якщо поклацати по перемикачам, то побачимо, що стан виходу логічного елемента змінюється в залежності від стану входів згідно таблиці істинності елемента 2І-НЕ. Щоб зупинити симуляцію, потрібно викликати команду Симуляція->Закінчити симуляцію. Результат моделювання представлений на малюнку:



Більш складні схеми можуть включати в себе ІМС середнього ступеня інтеграції, модулі Verilog, ОЗУ і ПЗУ.

Таким чином, можна укласти, що TKGate незважаючи на перерву в розробці і старомодний інтерфейс являє собою досить потужний інструмент для аналізу цифрових схем.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.