Форум Эму-Россия http://forum.emu-russia.net/ |
|
64 квадратных миллиметров счастья http://forum.emu-russia.net/viewtopic.php?f=13&t=4106 |
Страница 4 из 16 |
Автор: | iSage [ 12 июн 2013, 11:59 ] |
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья |
Я уже нашел и поправил. Там проблемы с захардкоженными слешами в путях были. Сейчас есть другая проблема, как пофикшу - выложу новый билд. -- 12 июн 2013, 13:39 -- http://rghost.net/46696661 вот. Импорт картинок работает. Есть проблема с удалением временных файлов, которую я пока не решил, так что лучше чистить папку tmp переодически |
Автор: | iSage [ 12 июн 2013, 15:17 ] |
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья |
Не могу воспроизвести. Можно последовательность действий и лог из консоли? -- 12 июн 2013, 15:22 -- Заодно нашел там еще баг с автосохранением проекта =_= |
Автор: | org [ 12 июн 2013, 15:40 ] |
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья |
Создаем проект -> создаем 3 слоя (0:металл, 1:металл, 2:логика) Импортируем тестовую картинку на слой 0 (металл) 1. Жмем : Recognition -> Wire matching с дефолтными параметрами. Исключение. 2. Тыкаем Via down на какой-нибудь виас, Жмем : Recognition -> Via matching. Исключение. А можно убрать вывод загружаемых иконок в консоль ? ) |
Автор: | iSage [ 12 июн 2013, 16:22 ] |
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья |
Билд с убраным срачем в консоль при старте и отключенным (пока) автосохранением http://rghost.net/46700784 Те два эксепшна выше я так и не смог воспроизвести =/ |
Автор: | XVilka [ 13 июн 2013, 23:49 ] |
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья |
Огромное спасибо за все исправления в коде degate! Я сам не использую, но хорошо знаю некоторых, кто использует. От них - спасибо! |
Автор: | Akari [ 15 июн 2013, 15:07 ] | |||||||
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья | |||||||
Свежесобранные кусочки CPU: Кусок 11: Куски 12 и 15: Куски 13 и 14: Кусок 31: Кусок 32: -- 15 Jun 2013, 17:30 -- Собрал еще кусок 01, 03 и 04. Как оказалось части снимков нехватает (
|
Автор: | XVilka [ 17 июн 2013, 12:24 ] |
Заголовок сообщения: | Re: 8 квадратных миллиметров счастья |
Как вы собираетесь совмещать слои между собой? |
Автор: | org [ 17 июн 2013, 12:45 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
Не знаю как коллега Акари, но я совмещать не собираюсь. Восстановлю библиотеку логических вентилей, а промежуточные линии (входы и выходы) как нибудь обзову. Стало понятно, что трассировка металлических межсоединений - это мартышкин труд, самый сок находится слоем ниже - в диффузии. Поэтому мы попросили Михаила "травить по-маленьку" Сайт обновлен : http://psxdev.ru/download |
Автор: | XVilka [ 17 июн 2013, 12:55 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
Цитата: Стало понятно, что трассировка металлических межсоединений - это мартышкин труд, самый сок находится слоем ниже - в диффузии. Эмм... А как тогда схему восстанавливать без межсоединений? |
Автор: | org [ 17 июн 2013, 13:16 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
Легко. Могу показать на примере APU 2A03: Внизу межсоединения, в сверху функциональные блоки. В местах входа/выхода межсоединений указывается название контрольной линии, после чего собственно сами межсоединения нам уже не нужны. |
Автор: | XVilka [ 17 июн 2013, 13:23 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
А как тогда узнать где какой вход? Там же названия не подписаны. |
Автор: | org [ 17 июн 2013, 13:33 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
По фотографии верхнего слоя проследить куда ведет провод, подписать его и дополнительно пометить на нижнем слое. Имеющегося разрешения вполне достаточно. Единственная трудность в этом - шланги могут уходить в другие куски схемы, поэтому дополнительно нужно будет подписывать места ухода шланга в другой кусок. В итоге мы получим набор "лент" из логических элементов, с подписанными входами и выходами. -- 17 июн 2013, 12:40 -- Начать разбор схемы естественно нужно с контактов, в частности с тактовых сигналов и шин. Станет понятно где находятся защелки и выходные tri-state буферы шин. Из шин можно попасть в "селекторы" регистров, а по тактовым линиями можно добраться до регистров и прочего добра. Это можно уже сделать сейчас, но без фотографий логики будет непонятно функциональное назначение мест, куда приходят входные контакты (и выходят выходные). Нужны вентили. |
Автор: | org [ 17 июн 2013, 17:29 ] | ||
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья | ||
Ну и чтобы не быть голословным, прилагаю текущие результаты трассировки куска 2-4. Готово примерно на 70%, учитывая что можно из него выжать даже межсоединения нижнего слоя металла и виасы. Автоматическую трассировку делать на таком большом куске боюсь + искажения вряд ли будут корректно переварены. Итог всей работы на данный момент : розовый квадратик A соединяется с розовыми квадратиками B, C и D Конечно трассировку смотреть приятней, чем ползать по проводам исходной фотографии, но как уже говорил - без вентилей делать тут пока особо нечего. http://psxdev.ru/files/IC103/24_topo2.jpg
|
Автор: | Akari [ 17 июн 2013, 18:29 ] | ||
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья | ||
Собрал следующий кусок состоящий из фрагментов21, 22 и 23. В нем тоже нехватает незначительной части фотографий контактов.
|
Автор: | Gloval [ 19 июн 2013, 11:47 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
Узнал об теме с хабра и поглядываю. Так вот что хочу сказать по тому, что здесь вижу. Чипы такой сложности разбирать вручную - нереально. Огромные затраты времени и сил. Год разбирали чип 3к, а 300к - сто лет значит? Для примера - килобайт бинарного кода можно разобрать вручную на бумажке. С мегабайтом без IDA (и если возможно Hexrays) связываться - безумие. Как верно написано, данный чип продукт работы CAD. А эти системы не следуют человеческим методам раскладки компонент. Там сидит математика и рандом. Они оптимизируют схему по опреденным критериям. Не смогли подобрать с одного раза, рандомно прекидали проблемые участки, попробовали опять, и так итерациями. А учитывая, когда данный чип проектировали, алгоритмы раскладки были далеко не столь хороши как сейчас. С продукцией компа - должен разбираться комп. А вот тут проблема - софта нормального в доступе нет. Что объяснимо, очень мало кто этим занимается профессионально. Покрутил хваленый дигейт - студенческая поделка к диплому. Полноценно работать с ним нельзя. До уровня софта у чипворкс ему как до луны, и пользуются им от безвыходности. Так что для начала, вам нужно сформировать ТЗ на софт реверса, а дальше или самим писать и(или) фрилансеров нанимать. "Лучше день потерять - потом за 5 минут долететь" |
Автор: | org [ 19 июн 2013, 12:36 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
На прошлой неделе нам на огород привезли грузовик щебенки и высыпали на дорогу. Получилось 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. По команде сервер может сгенерировать схему в виде обычной картинки. |
Автор: | Gloval [ 19 июн 2013, 16:16 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
Некоторые дополнения. 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. По команде сервер может сгенерировать схему в виде обычной картинки. |
Автор: | iSage [ 19 июн 2013, 18:10 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
>GUI желательно стандартный winapi, чтобы можно было без проблем запускать в Wine. Зачем, если есть кроссплатформенный Qt? Алсо, я так понял, degate под винду уже никому не нужен? |
Автор: | Gloval [ 19 июн 2013, 18:34 ] |
Заголовок сообщения: | Re: 64 квадратных миллиметров счастья |
iSage писал(а): >GUI желательно стандартный winapi, чтобы можно было без проблем запускать в Wine. Зачем, если есть кроссплатформенный Qt? Алсо, я так понял, degate под винду уже никому не нужен? Ну. Гуя может и на Qt, основное - база на сервере. Кстати может имеет смысл иметь и ее локальную копию. degate под винду вы крутили побольше? Ваше мнение - демонстратор алгоритмов или что-то серьезнее? Есть ли смысл допиливать дальше или лучше делать прогу по данному ТЗ. |
Страница 4 из 16 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |