Regate

From PSXDEV
Jump to: navigation, search

Contents

Обзор

Regate -- утилита чтобы хачить микросхемы совместно в реальном времени, используя механизм RPC.

Regate1.jpg

Основные возможности (планируется/сделано):

  • Рендеринг на OpenGL (сделано, begui). Довольно шустренько, тянет вплоть до 2000 ячеек. Дальше начинаются тормоза. Но всё равно, куда быстрее чем SVG, который тупит уже на 100 ячейках.
  • Хранение векторизованных данных в XML
  • Web-based RPC (удаленное выполнение команд рисования) для совместного реверсинга
  • Библиотека стандартных ячеек (при нажатии в отдельном окне отображается основная информация по ячейке)
  • Виасы расставляются одним нажатием кнопки V (вставляется по текущим координатам мышки) (сделано частично)
  • Рисование М1 / M2 производится нажатием кнопок 1 и 2. При этом после нажатия фиксируется начало рисования провода, мышкой наводится его конец и повторным нажатием на 1/2 завершается рисование (сделано частично)
  • Zoom колесиком мышки / pan правой кнопкой (сделано частично)
  • Левая кнопка мыши выделяет перетаскивает компоненты
  • Выделенные элементы можно удалять кнопкой DEL
  • Основные слои в порядке увеличения приоритета : картинки (привязка производится по ссылке), ячейки, М1, M2, виасы, текстовые пометки

XML и хранение данных проекта

  • Данные проекта хранятся удаленно на сервере
  • Клиенты подсоединяются к серверу проекта, настройки подключения хранятся в программе
  • В программе нет понятия "Сохранить", все изменения вносятся в проект всеми пользователями одновременно, для отката используется система ревизий (обычные бекапы)
  • Картинки для слоя image "привязываются" динамически через URL и грузятся через кеш (который периодически инвалидируется), вся остальная геометрия хранится в XML проекта.
  • XML проекта можно открыть в режиме просмотра (может быть сделаем ещё и web-клиента)

Почему не SVG?

SVG хорош, но тормозной, сцука.

Библиотека ячеек

Это просто составные элементы из основных примитивов утилиты (по принципу sPlan)

Библиотека хранится в отдельном XML.

Проект содержит в себе лишь копии стандартных ячеек из библиотеки (тупо инжекция XML). Таким образом для открытия проекта не обязательно иметь библиотеку ячеек.

Библиотека ячеек хранится локально у каждого пользователя. Изменения в библиотеку вносятся часто только на первых этапах, затем она практически не меняется.

Примитивы

  • Точка (vias)
  • Линия (wire)
  • Картинка (image)
  • Прямоугольник (box)
  • Текст (text)

Технически примитивы организованы в виде кастомных компонентов (Component) begui.

Verilike и Regate

В отдаленном светлом будущем возможна интеграция Regate с Verilike, для генерации и симуляции netlist.

При этом Regate работает в интерактивном режиме (провода меняют цвет в зависимости от логических уровней, а внутри ячеек отображаются текущие значения)