Deroute

From PSXDEV
Jump to: navigation, search

Contents

Утилита deroute

Утилита находится в финальной стадии разработки.

В целях ускорения разработки применяется c#.

Deroute wip3.png

Особенности программы

В центре утилиты находится кастомный элемент управления, называемый EntityBox. В его задачи входит хранение и отображение набора "Сущностей" (entities).

Модуль, реализующий компонент находится в файле EntityBox.cs

Сущности представляют собой любые связные элементы, которые используются для построения топологии микросхем: провода, соединительные контакты (виасы), стандартные ячейки, блоки регистров и памяти.

Все определения сущностей находятся в Entity.cs.

Настройки отображения сущностей находятся в свойствах EntityBox. Каждому типу сущности можно задать цвет, прозрачность итп.

Управление

Управление задаётся свойством Mode. В зависимости от выбранного режима EntityBox позволяет рисовать контакты, провода, выделять элементы и пр. Со стороны родительского приложения Mode может задаваться через меню или панель управления.

Слои изображений

Поддерживается 3 слоя изображений.

Для каждого слоя применяется свой скроллинг и зум, независимый от скроллинга и зума всей сцены.

Каждому слою можно назначать прозрачность. Отрисовка слоёв производится в очередности 2 -> 1 -> 0.

Система координат

Программа работает в двух системах координат:

  • Для хранения векторных данных используются растрово-независимые Lambda-координаты. 1 Lamda = n пикселям (задаётся в свойствах EntityBox)
  • Для отображения векторных данных Lambda-координаты преобразуются в экранные координаты, с учётом скроллинга и зума.

Выходные данные

Для данного конкретного приложения EntityBox производит файл с векторными данными (проводами, виасами), которые затем можно соединить с векторными данными ячеек и кастомных блоков, для получения окончательного Netlist соединений.

Все виасы являются ключевыми точками для утилиты Stitch, которая изоморфно соединяет векторные данные с разных источников в один целый набор.

Возможно слишком замудрено объясняю, но постараюсь сделать так, чтобы работать в этой утилите было удобнее, чем в Photoshop :-D

Скачать

Ознакомиться с исходниками можно на Github:

https://github.com/ogamespec/psxdev/tree/master/tools/DerouteSharp

Последняя сборка:

http://psxdev.ru/files/deroute_latest.zip