Deroute
Contents |
Утилита deroute
Утилита находится в финальной стадии разработки.
В целях ускорения разработки применяется c#.
Особенности программы
В центре утилиты находится кастомный элемент управления, называемый 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
Последняя сборка: