Сообщения без ответов | Активные темы Текущее время: 28 мар 2024, 18:16



Ответить на тему  [ Сообщений: 305 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 16  След.
 64 квадратных миллиметров счастья 
Автор Сообщение
Сообщение 12 июн 2013, 11:59
Профиль WWW
Аватара пользователя

Зарегистрирован:
28 июл 2007, 04:39
Сообщения: 103
Откуда: MSK
Я уже нашел и поправил. Там проблемы с захардкоженными слешами в путях были.
Сейчас есть другая проблема, как пофикшу - выложу новый билд.

-- 12 июн 2013, 13:39 --

http://rghost.net/46696661 вот. Импорт картинок работает. Есть проблема с удалением временных файлов, которую я пока не решил, так что лучше чистить папку tmp переодически

_________________
close the world...
..open the next.


Сообщение 12 июн 2013, 14:50
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Виасы не рапспознаются, какая-то ошибка в путях.

Объекты не удаляются, кнопка DEL не работает :)

Поиск металлических дорожек тоже не работает, вылетает исключение.
Прикрепляю тестовую картинку.


Вложения:
1.jpg
1.jpg [ 1.26 МБ | Просмотров: 15796 ]
cannot_via.jpg
cannot_via.jpg [ 37.26 КБ | Просмотров: 15796 ]
Сообщение 12 июн 2013, 15:17
Профиль WWW
Аватара пользователя

Зарегистрирован:
28 июл 2007, 04:39
Сообщения: 103
Откуда: MSK
Не могу воспроизвести. Можно последовательность действий и лог из консоли?

-- 12 июн 2013, 15:22 --

Заодно нашел там еще баг с автосохранением проекта =_=

_________________
close the world...
..open the next.


Сообщение 12 июн 2013, 15:40
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Создаем проект -> создаем 3 слоя (0:металл, 1:металл, 2:логика)
Импортируем тестовую картинку на слой 0 (металл)
1. Жмем : Recognition -> Wire matching с дефолтными параметрами. Исключение.
2. Тыкаем Via down на какой-нибудь виас, Жмем : Recognition -> Via matching. Исключение.

А можно убрать вывод загружаемых иконок в консоль ? )


Сообщение 12 июн 2013, 16:22
Профиль WWW
Аватара пользователя

Зарегистрирован:
28 июл 2007, 04:39
Сообщения: 103
Откуда: MSK
Билд с убраным срачем в консоль при старте и отключенным (пока) автосохранением http://rghost.net/46700784
Те два эксепшна выше я так и не смог воспроизвести =/

_________________
close the world...
..open the next.


Сообщение 13 июн 2013, 23:49
Профиль

Зарегистрирован:
08 июн 2013, 22:12
Сообщения: 12
Огромное спасибо за все исправления в коде degate! Я сам не использую, но хорошо знаю некоторых, кто использует. От них - спасибо!


Сообщение 15 июн 2013, 15:07
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Свежесобранные кусочки CPU:

Кусок 11:
Изображение

Куски 12 и 15:
Изображение

Куски 13 и 14:
Изображение

Кусок 31:
Изображение

Кусок 32:
Изображение

-- 15 Jun 2013, 17:30 --

Собрал еще кусок 01, 03 и 04. Как оказалось части снимков нехватает (

Изображение


Вложения:
psxcpu_part01-03-04_small.jpg
psxcpu_part01-03-04_small.jpg [ 179.62 КБ | Просмотров: 15721 ]
psxcpu_part32_small.jpg
psxcpu_part32_small.jpg [ 300.95 КБ | Просмотров: 15730 ]
psxcpu_part31_small.jpg
psxcpu_part31_small.jpg [ 174.66 КБ | Просмотров: 15730 ]
psxcpu_part13-14_small.jpg
psxcpu_part13-14_small.jpg [ 467.01 КБ | Просмотров: 15730 ]
psxcpu_part12-15_small.jpg
psxcpu_part12-15_small.jpg [ 243.31 КБ | Просмотров: 15730 ]
psxcpu_part11_small.jpg
psxcpu_part11_small.jpg [ 108.71 КБ | Просмотров: 15730 ]
Сообщение 17 июн 2013, 12:24
Профиль

Зарегистрирован:
08 июн 2013, 22:12
Сообщения: 12
Как вы собираетесь совмещать слои между собой?


Сообщение 17 июн 2013, 12:45
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Не знаю как коллега Акари, но я совмещать не собираюсь. Восстановлю библиотеку логических вентилей, а промежуточные линии (входы и выходы) как нибудь обзову. Стало понятно, что трассировка металлических межсоединений - это мартышкин труд, самый сок находится слоем ниже - в диффузии. Поэтому мы попросили Михаила "травить по-маленьку" :)

Сайт обновлен : http://psxdev.ru/download


Последний раз редактировалось org 17 июн 2013, 13:12, всего редактировалось 1 раз.



Сообщение 17 июн 2013, 12:55
Профиль

Зарегистрирован:
08 июн 2013, 22:12
Сообщения: 12
Цитата:
Стало понятно, что трассировка металлических межсоединений - это мартышкин труд, самый сок находится слоем ниже - в диффузии.

Эмм... А как тогда схему восстанавливать без межсоединений?


Сообщение 17 июн 2013, 13:16
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Легко. Могу показать на примере APU 2A03:

Изображение

Внизу межсоединения, в сверху функциональные блоки. В местах входа/выхода межсоединений указывается название контрольной линии, после чего собственно сами межсоединения нам уже не нужны.


Сообщение 17 июн 2013, 13:23
Профиль

Зарегистрирован:
08 июн 2013, 22:12
Сообщения: 12
А как тогда узнать где какой вход? Там же названия не подписаны.


Сообщение 17 июн 2013, 13:33
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
По фотографии верхнего слоя проследить куда ведет провод, подписать его и дополнительно пометить на нижнем слое. Имеющегося разрешения вполне достаточно. Единственная трудность в этом - шланги могут уходить в другие куски схемы, поэтому дополнительно нужно будет подписывать места ухода шланга в другой кусок.
В итоге мы получим набор "лент" из логических элементов, с подписанными входами и выходами.

-- 17 июн 2013, 12:40 --

Изображение

Начать разбор схемы естественно нужно с контактов, в частности с тактовых сигналов и шин. Станет понятно где находятся защелки и выходные tri-state буферы шин. Из шин можно попасть в "селекторы" регистров, а по тактовым линиями можно добраться до регистров и прочего добра. Это можно уже сделать сейчас, но без фотографий логики будет непонятно функциональное назначение мест, куда приходят входные контакты (и выходят выходные). Нужны вентили.


Сообщение 17 июн 2013, 17:29
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Ну и чтобы не быть голословным, прилагаю текущие результаты трассировки куска 2-4.

Готово примерно на 70%, учитывая что можно из него выжать даже межсоединения нижнего слоя металла и виасы.
Автоматическую трассировку делать на таком большом куске боюсь + искажения вряд ли будут корректно переварены.

Итог всей работы на данный момент : розовый квадратик A соединяется с розовыми квадратиками B, C и D :D
Конечно трассировку смотреть приятней, чем ползать по проводам исходной фотографии, но как уже говорил - без вентилей делать тут пока особо нечего.

http://psxdev.ru/files/IC103/24_topo2.jpg


Вложения:
24_topo2_sm.jpg
24_topo2_sm.jpg [ 222.08 КБ | Просмотров: 15613 ]
Сообщение 17 июн 2013, 18:29
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Собрал следующий кусок состоящий из фрагментов21, 22 и 23. В нем тоже нехватает незначительной части фотографий контактов.

Изображение


Вложения:
psxcpu_part21-22-23_small.jpg
psxcpu_part21-22-23_small.jpg [ 124.77 КБ | Просмотров: 15710 ]
Сообщение 19 июн 2013, 11:47
Профиль

Зарегистрирован:
19 июн 2013, 10:59
Сообщения: 30
Узнал об теме с хабра и поглядываю.

Так вот что хочу сказать по тому, что здесь вижу.
Чипы такой сложности разбирать вручную - нереально. Огромные затраты времени и сил. Год разбирали чип 3к, а 300к - сто лет значит?
Для примера - килобайт бинарного кода можно разобрать вручную на бумажке. С мегабайтом без IDA (и если возможно Hexrays) связываться - безумие.
Как верно написано, данный чип продукт работы CAD. А эти системы не следуют человеческим методам раскладки компонент. Там сидит математика и рандом. Они оптимизируют схему по опреденным критериям. Не смогли подобрать с одного раза, рандомно прекидали проблемые участки, попробовали опять, и так итерациями. А учитывая, когда данный чип проектировали, алгоритмы раскладки были далеко не столь хороши как сейчас.
С продукцией компа - должен разбираться комп.
А вот тут проблема - софта нормального в доступе нет. Что объяснимо, очень мало кто этим занимается профессионально.
Покрутил хваленый дигейт - студенческая поделка к диплому. Полноценно работать с ним нельзя. До уровня софта у чипворкс ему как до луны, и пользуются им от безвыходности.

Так что для начала, вам нужно сформировать ТЗ на софт реверса, а дальше или самим писать и(или) фрилансеров нанимать.
"Лучше день потерять - потом за 5 минут долететь"


Сообщение 19 июн 2013, 12:36
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
На прошлой неделе нам на огород привезли грузовик щебенки и высыпали на дорогу. Получилось 2 кучи, примерно с человеческий рост.
Мы с батей стали лопатами грузить в тележку и разбрасывать по дороге. За 4 часа растаскали примерно десятую часть одной кучи.
Нанятая на следующий день бригада таджиков растаскала обе(!) кучи за 3 часа.

-- 19 июн 2013, 11:47 --

А вообще все верно. Сейчас попробую ТЗ составить на программу )

-- 19 июн 2013, 13:48 --

Программа для реверс-инжиниринга микросхем.

Программа для Win32, GUI желательно стандартный winapi, чтобы можно было без проблем запускать в Wine.
Второй вариант : приложение на JavaScript.

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

"Файл" проекта представляет собой базу данных (MySQL), где хранятся объекты и компоненты, а также локальный кеш, куда складываются графические материалы
(PNG картинки компонентов, задники топологии и пр.). На сервере хранится сервеный кэш картинок. При обновлении серверного кеша - локальные кеши
всех пользователей также обновляются.

Взаимодействие по протоколу HTTP с серверной частью.

Все правки мгновенно записываются в БД и отображаются на экранах всех пользователей. То есть один пользователей может в реальном времени смотреть что делают
другие пользователи.

Главный интерфейс.

Главный интерфейс представляет собой :
- drop-down меню (обычное меню средствами Windows).
- слева распологается дерево компонентов (об этом подробнее)
- справа распологается главное поле для просмотра и редактирования

Меню
Файл - Присоединиться к проекту (необходимо указать URL сайта, где находится сереверная часть редактируемого проекта)
После чего нужно будет указать логин и пароль для создания сессии подключения к проекту.
Выйти - закрыть сессию и выйти из программы.
Регистрация в проекте осуществляется через web-сайт, учетная запись активируется руководителем проекта (админом).
Остальное придумаем походу.

Дерево компонентов
Дерево представлено обычным образом Родитель -> Потомок.
В качестве узлов используются компоненты определенных типов, которые берутся из Библиотеки. Каждый узел имеет свой уникальный ID внутри проекта.

Библиотека
Таблица в БД, где хранятся свойства компонента:
- картинка компонента, в формате GIF или PNG, для обеспечения прозрачности. Также возможно использоваться JPG/BMP, но прозрачным цветом в этом случае будет являться
черный цвет (RGB #000). Все картинки хранятся на серверном кеше (/images/cache). При первом подключении весь серверный кеш копируется на локальный компьютер
пользователя в папку (/images/cache). После редактирования компонента - кеш инвалидируется и пользователю загружается новая картинка.
Картинки может и не быть (если например компонент - это vias)
- линейные размеры компонента в пикселях (ширина/высота). Форма границы компонентов - прямоугольная.
- входы/выходы. Набор координат (X;Y) в пределах компонента, и тип соединения : вход (in), выход (out), двунаправленный (i/o). Входы и выходы помечаются особым
образом в GUI (в виде разноцветных квадратиков, цвет можно поменять в настройках).
- дополнительное свойство входа/выхода - "блокировка подсветки". Если вход не блокирует подсветку, то при выделении цепи - выделение не прерывается на данном входе.
- название компонента (строка)
- уникальный номер (ID)

Пользователи могут как добавлять новые компоненты в библиотеку, так и размещать инстанции компонентов на схеме (включать их в дерево).
Никакой функциональной нагрузки дерево не несёт и используется просто для удобства, чтобы пометить например: "защелка ACRL входит в состав Program Control,
который в свою очередь входит в Dispatch Logic, который входит в верхнюю часть 6502."

"Поле деятельности"
Это главная часть окна программы где собственно распологаются микрофотографии микросхем и нанесенными сверху компонентами.

Поле делится на две группы слоев :
- слои картинок
- слои компонентов

Слои картинок
Пользователь может выбирать на какой слой положить картинку и какой слой картинок отображать в данный момент. На одном слое может находится несколько картинок.
У каждого слоя есть приоритет 0 -> 1 -> 2... Слой с большим приоритетом показывается выше нижних слоев.
У картинок внутри слоя также есть приоритет 0 -> 1 -> 2 ... Картинки с большим приоритетом показываются выше остальных в текущем слое.

Свойства картинок
- Номер слоя, на котором распологается картинка
- Приоритет внутри слоя
- Координаты верхнего левого угла
- Линейные размеры

Картинки можно двигать мышкой на манер drag&drop.

Слои компонентов
Все слои компонентов находятся выше всех слоев картинок. Внутри слоя у компонентов нет приоритета.
Кроме компонентов можно размещать другие объекты :
- Межсоединения. Обычные линии, фиксированной толщины. Состоит из двух координат (x;y), толщины линии в пикселях и цвета RGB.
- Узлы. Места соединения межсоединений. Не являются физическими контактами, а используются для обозначения места перегиба.
Когда пользователь тыкает на межсоединение - оно подсвечивается определенным образом. Причем осуществляется трассировка компонентов и подсвечивается весь кусок до
входов/выходов составляющих его компонентов (если вход/выход блокирует подсветку). Отмена подсветки - ESC, или клик на пустое место.
Рисование межсоединений осуществляется обычным образом - мышкой.
- Bounding box-ы (bbox). Это замкнутые области для обозначения группы компонентов. При перетаскивании bbox-а - перетаскивается вся группа компонентов внутри него.
Состоит из списка координат : Начало -> узел1 -> узел2 -> ... -> УзелN. Последний узел соединяется с началом. Проверка на вхождение компонента в bbox : если координаты
левого-верхнего угла входят внутрь bbox-а, то компонент входит в bbox.
Перетаскивание bbox осуществляется за Начало (которое обычно является верхним-левым углом)

Прочее
- Самый задний бекграунд (ниже картинок) монотонного цвета (можно выставить в настройках)
- Дополнительно можно включить "липкую" сетку (на манер окон WinAmp), цвет точек и шаг сетки можно выставить в настройках.

Импорт схемы в PNG.
По команде сервер может сгенерировать схему в виде обычной картинки.


Сообщение 19 июн 2013, 16:16
Профиль

Зарегистрирован:
19 июн 2013, 10:59
Сообщения: 30
Некоторые дополнения.
org писал(а):

-- 19 июн 2013, 13:48 --

Программа для реверс-инжиниринга микросхем.

Программа для Win32, GUI желательно стандартный winapi, чтобы можно было без проблем запускать в Wine.
Второй вариант : приложение на JavaScript.

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

"Файл" проекта представляет собой базу данных (MySQL)(не обязательно он), где хранятся объекты и компоненты, а также локальный кеш, куда складываются графические материалы
(PNG картинки компонентов, задники топологии и пр.). На сервере хранится сервеный кэш картинок. При обновлении серверного кеша - локальные кеши
всех пользователей также обновляются.

Взаимодействие по протоколу HTTP(https) с серверной частью.

Все правки мгновенно записываются в БД и отображаются на экранах всех пользователей. То есть один пользователей может в реальном времени смотреть что делают
другие пользователи.

Главный интерфейс.

Главный интерфейс представляет собой :
- drop-down меню (обычное меню средствами Windows).
- слева распологается дерево компонентов (об этом подробнее)
- справа распологается главное поле для просмотра и редактирования

Меню
Файл - Присоединиться к проекту (необходимо указать URL сайта, где находится сереверная часть редактируемого проекта)
После чего нужно будет указать логин и пароль для создания сессии подключения к проекту.
Выйти - закрыть сессию и выйти из программы.
Регистрация в проекте осуществляется через web-сайт, учетная запись активируется руководителем проекта (админом).
Остальное придумаем походу.

Дерево компонентов
Дерево представлено обычным образом Родитель -> Потомок.
В качестве узлов используются компоненты определенных типов, которые берутся из Библиотеки. Каждый узел имеет свой уникальный ID внутри проекта.

Библиотека
Таблица в БД, где хранятся свойства компонента:
- картинка компонента, в формате GIF или PNG, для обеспечения прозрачности. Также возможно использоваться JPG/BMP, но прозрачным цветом в этом случае будет являться
черный цвет (RGB #000). Все картинки хранятся на серверном кеше (/images/cache). При первом подключении весь серверный кеш копируется на локальный компьютер
пользователя в папку (/images/cache). После редактирования компонента - кеш инвалидируется и пользователю загружается новая картинка.
Картинки может и не быть (если например компонент - это vias)
- линейные размеры компонента в пикселях (ширина/высота). Форма границы компонентов - прямоугольная.
- входы/выходы. Набор координат (X;Y) в пределах компонента, и тип соединения : вход (in), выход (out), двунаправленный (i/o). Входы и выходы помечаются особым
образом в GUI (в виде разноцветных квадратиков, цвет можно поменять в настройках).
- дополнительное свойство входа/выхода - "блокировка подсветки". Если вход не блокирует подсветку, то при выделении цепи - выделение не прерывается на данном входе.
- название компонента (строка)
- уникальный номер (ID)

Пользователи могут как добавлять новые компоненты в библиотеку, так и размещать инстанции компонентов на схеме (включать их в дерево).
Никакой функциональной нагрузки дерево не несёт и используется просто для удобства, чтобы пометить например: "защелка ACRL входит в состав Program Control,
который в свою очередь входит в Dispatch Logic, который входит в верхнюю часть 6502."

"Поле деятельности"
Это главная часть окна программы где собственно распологаются микрофотографии микросхем и нанесенными сверху компонентами.

Поле делится на две группы слоев :
- слои картинок
- слои компонентов

Слои картинок
Пользователь может выбирать на какой слой положить картинку и какой слой картинок отображать в данный момент. На одном слое может находится несколько картинок.
У каждого слоя есть приоритет 0 -> 1 -> 2... Слой с большим приоритетом показывается выше нижних слоев.
У картинок внутри слоя также есть приоритет 0 -> 1 -> 2 ... Картинки с большим приоритетом показываются выше остальных в текущем слое.

Свойства картинок
- Номер слоя, на котором распологается картинка
- Приоритет внутри слоя
- Координаты верхнего левого угла
- Линейные размеры
- Правка геометрических искажений (подушка, бочка)
-поддержка полупрозрачности картинок при рендере, которую можно регулировать
- возможность иметь в локальном кеше свой вариант картинки, не загружая его на сервер (если надо с ней поработать в серьезном редакторе с какими-либо целями)



Картинки можно двигать мышкой на манер drag&drop.

Слои компонентов
Все слои компонентов находятся выше всех слоев картинок. Внутри слоя у компонентов нет приоритета.
Кроме компонентов можно размещать другие объекты :
- Межсоединения. Обычные линии, фиксированной толщины. Состоит из двух координат (x;y), толщины линии в пикселях и цвета RGB.
- Узлы. Места соединения межсоединений. Не являются физическими контактами, а используются для обозначения места перегиба.
Когда пользователь тыкает на межсоединение - оно подсвечивается определенным образом. Причем осуществляется трассировка компонентов и подсвечивается весь кусок до
входов/выходов составляющих его компонентов (если вход/выход блокирует подсветку). Отмена подсветки - ESC, или клик на пустое место.
Рисование межсоединений осуществляется обычным образом - мышкой.
- Bounding box-ы (bbox). Это замкнутые области для обозначения группы компонентов. При перетаскивании bbox-а - перетаскивается вся группа компонентов внутри него.
Состоит из списка координат : Начало -> узел1 -> узел2 -> ... -> УзелN. Последний узел соединяется с началом. Проверка на вхождение компонента в bbox : если координаты
левого-верхнего угла входят внутрь bbox-а, то компонент входит в bbox.
Перетаскивание bbox осуществляется за Начало (которое обычно является верхним-левым углом)

Прочее
- Самый задний бекграунд (ниже картинок) монотонного цвета (можно выставить в настройках)
- Дополнительно можно включить "липкую" сетку (на манер окон WinAmp), цвет точек и шаг сетки можно выставить в настройках.



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

Пока это только графика. Даже если это будет реализовано, все упроститься. Плюс при реализации всплывут неучтенные моменты

В дальнейшем надо думать над механизмом перевода результатов трассировки в принципальную схему, а из нее в VHDL
Кое какие наметки в этом направлении в дегейте есть.


Импорт схемы в PNG.
По команде сервер может сгенерировать схему в виде обычной картинки.


Сообщение 19 июн 2013, 18:10
Профиль WWW
Аватара пользователя

Зарегистрирован:
28 июл 2007, 04:39
Сообщения: 103
Откуда: MSK
>GUI желательно стандартный winapi, чтобы можно было без проблем запускать в Wine.
Зачем, если есть кроссплатформенный Qt?

Алсо, я так понял, degate под винду уже никому не нужен?

_________________
close the world...
..open the next.


Сообщение 19 июн 2013, 18:34
Профиль

Зарегистрирован:
19 июн 2013, 10:59
Сообщения: 30
iSage писал(а):
>GUI желательно стандартный winapi, чтобы можно было без проблем запускать в Wine.
Зачем, если есть кроссплатформенный Qt?

Алсо, я так понял, degate под винду уже никому не нужен?


Ну. Гуя может и на Qt, основное - база на сервере. Кстати может имеет смысл иметь и ее локальную копию.

degate под винду вы крутили побольше? Ваше мнение - демонстратор алгоритмов или что-то серьезнее? Есть ли смысл допиливать дальше или лучше делать прогу по данному ТЗ.


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 305 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 16  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB