Patterns

From PSXDEV
Jump to: navigation, search

Contents

Утилита patterns

Утилита для поиска паттернов изображений в исходной картинке.

Назначение утилиты

Утилита создана для ускорения обратной разработки чипов и быстрого поиска стандартных ячеек (standard cells).

Рабочая среда (Workspace)

Patterns 001.jpg

Рабочая среда состоит из двух окон и строки состояния.

Слева находится окно отображения исходной картинки с наложенными поверх неё найденными стандартными ячейками.

Справа отображается библиотека паттернов.

Строка состояния отображает текущее состояние рабочей среды.

Схематически устройство программы можно представить следующим образом:

  • Паттерны из базы данных (Pattern Database) размещаются в плоскости паттернов (Added Patterns layer) в соответствии с исходным изображением (Source Image)
  • После размещения всех паттернов их координаты и типы экспортируются в текстовой файл для дальнейшего использования.

Patterns 002.jpg

Управление:

  • Правая кнопка: Перетаскивание (скроллинг) исходного изображения и добавленных паттернов.
  • Левая кнопка на паттерн : выделение и перетаскивание паттерна
  • Левая кнопка на кнопку удаления : удалить паттерн
  • Двойной щелчок на паттерн: ротация флагов (flip, mirror)
  • Левая кнопка на пустое пространство : добавляет рамку выделения :

Patterns 003.jpg

При этом программа автоматически сортирует базу данных ячеек и показывает только те из них, которые удовлетворяют критериям поиска (размеру Lamda с учётом относительной погрешности в Delta).

При активной области выделения нажатие на паттерн в окне базы данных добавляет указанный паттерн на плоскость добавленных паттернов.

Галочка «Flip» позволяет добавлять паттерны в перевёрнутом виде. Галочка «Mirror» позволяет добавлять зеркально отраженные паттерны.

Параметры Lamda / Delta

Lamda – основной характеристический параметр стандартной ячейки. Он определяет размер минимальной топологической единицы.

Этот параметр используется для удобного сопоставления масштабов оригинального изображения и картинки паттерна из базы данных (их масштабы могут не соответствовать).

Для этого исходной картинке назначается параметр Lamda и работа с шириной и высотой ведётся уже не в абсолютных единицах (пикселях), а в относительных (lamda).

Patterns 004.jpg

Delta – это относительная погрешность в измерении Lamda, которая используется для определения размеров ячейки. Погрешность используется для выборки из базы паттернов подходящих ячеек.

Плоскость исходной картинки (Source Image layer)

В плоскость исходной картинки загружается исходное изображение. Поддерживается только формат Jpeg.

Плоскость паттернов (Added Patterns layer)

Плоскость добавленных паттернов содержит добавленные паттерны.

Библиотека паттернов (Patterns Database)

Библиотека паттернов загружается из базы. База паттернов представляет собой текстовой файл patterns_db.txt, примерный формат которого показан ниже:

# Patterns database

# Pattern Syntax:
# pattern name, source_lamda, pcount, ncount, image_path

# Inverters and Buffers

pattern NOT1, 8.0, 1, 1, "patterns_db/NOT1.jpg"

# Logic Operations

# Multiplexers

pattern IMUX, 6.5, 4, 4, "patterns_db/IMUX.jpg"

# With Clock

pattern nDFF, 4.0, 12, 12, "patterns_db/nDFF.jpg"

# Adder / Multiplier

# Misc

# EOF

Строки начинающиеся с символа # считаются комментариями. Формат описания паттерна имеет следующий вид:

pattern (ключевое слово) PATTERN_NAME (название паттерна), LAMDA, (Значение Lamda для картинки ячейки, число типа float), PCOUNT (количество транзисторов p-типа), NCOUNT (количество транзисторов n-типа), "Path_to_pattern_image.jpg" (путь к картинке паттерна, может быть относительным)

При сохранении рабочей среды в .WRK файл текущая база данных паттернов сохраняется вместе с рабочей средой.

Путь к исходному изображению сохраняется относительно .WRK файла.

Главное меню

File → Load Source Image: Загружает изображение формата Jpeg в плоскость исходной картинки. Если изображение уже было загружено, то предыдущая картинка выгружается.

File → Load Pattern Database: Загружает новые паттерны в базу. Старые паттерны удаляются. Если при этом в рабочей среде существуют добавленные паттерны которых нет в добавляемой базе — они перестают отображаться (но остаются виртуально в среде).

Удобно использовать если загруженную среду нужно обновить новой базой паттернов.

File → Save Patterns as Image: Сохраняет комбинированное изображение исходной картинки с наложенными поверх неё добавленными паттернами.

File → Save Patterns as Text: Сохраняет добавленные паттерны в виде форматированного текстового файла.

Workspace → Load Workspace: Загружает сохраненное состояние Рабочей среды из .WRK файла.

Workspace → Save Workspace: Сохраняет состояние рабочей среды в файл .WRK

Workspace → Remove all added patterns: Убирает все добавленные паттерны из плоскости паттернов

Workspace → Ensure Visible: перемещает скроллинг на выбранный паттерн

Workspace → Show debug profile info: отображает отладочную информацию профайлера (скорость работы отдельных процедур программы)

Настройки

Patterns 005.jpg

В Настройках задаются параметры Lamda и Delta для текущей рабочей среды.

Lamda и Delta измеряются в пикселях, но число может быть не целым.

Строка состояния

Строка состояния отображает текущее состояние рабочей среды:

  • Selected: Показывает размер выделенной области в абсолютных (пиксели) и относительных (Lamda) единицах. Если выбран паттерн — показывает его название и положение.
  • Scroll: Показывает координаты относительно левого верхнего угла исходного изображения
  • Patterns: Показывает количество доступных паттернов из базы данных, которые соответствуют критериям фильтра и общее количество паттернов в базе данных
  • Patterns Added: Количество добавленных паттернов
  • Lamda/Delta: Текущие настройки Lamda и Delta рабочей среды
  • Source Image: Название загруженного исходного изображения

Скачать

Последняя сборка с библиотекой ячеек процессора CXD8530CQ находится тут:

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

Исходники находятся на Github:

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