| 
 
 
 
	
			
	
	 64 квадратных миллиметров счастья 
        
        
            | Автор | Сообщение |  
			|  12 июн 2013, 11:59 | 
					
					     |  
			| 
				Зарегистрирован:
 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 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | Виасы не рапспознаются, какая-то ошибка в путях. Объекты не удаляются, кнопка DEL не работает   Поиск металлических дорожек тоже не работает, вылетает исключение. Прикрепляю тестовую картинку.
 
 Вложения: 
			 1.jpg [ 1.26 МБ | Просмотров: 21341 ] 
			 cannot_via.jpg [ 37.26 КБ | Просмотров: 21341 ] |  
		 
		|  |  
			|  12 июн 2013, 15:17 | 
					
					     |  
			| 
				Зарегистрирован:
 28 июл 2007, 04:39
 Сообщения: 103
 Откуда: MSK
   | Не могу воспроизвести. Можно последовательность действий и лог из консоли?
 -- 12 июн 2013, 15:22 --
 
 Заодно нашел там еще баг с автосохранением проекта =_=
 _________________
 close the world...
 ..open the next.
 
 
 |  
		 
		|  |  
			|  12 июн 2013, 15:40 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | Создаем проект -> создаем 3 слоя (0:металл, 1:металл, 2:логика)Импортируем тестовую картинку на слой 0 (металл)
 1. Жмем : Recognition -> Wire matching с дефолтными параметрами. Исключение.
 2. Тыкаем Via down на какой-нибудь виас, Жмем : Recognition -> Via matching. Исключение.
 
 А можно убрать вывод загружаемых иконок в консоль ? )
 
 
 |  
		 
		|  |  
			|  12 июн 2013, 16:22 | 
					
					     |  
			| 
				Зарегистрирован:
 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. Как оказалось части снимков нехватает ( 
 
 |  
		 
		|  |  
			|  17 июн 2013, 12:24 | 
					
					   |  
			| 
				Зарегистрирован:
 08 июн 2013, 22:12
 Сообщения: 12
   | Как вы собираетесь совмещать слои между собой? 
 
 |  
		 
		|  |  
			|  17 июн 2013, 12:45 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | Не знаю как коллега Акари, но я совмещать не собираюсь. Восстановлю библиотеку логических вентилей, а промежуточные линии (входы и выходы) как нибудь обзову. Стало понятно, что трассировка металлических межсоединений - это мартышкин труд, самый сок находится слоем ниже - в диффузии. Поэтому мы попросили Михаила "травить по-маленьку"   Сайт обновлен : http://psxdev.ru/download
 
 
    							Последний раз редактировалось org 17 июн 2013, 13:12, всего редактировалось 1 раз. 
 
 |  
		 
		|  |  
			|  17 июн 2013, 12:55 | 
					
					   |  
			| 
				Зарегистрирован:
 08 июн 2013, 22:12
 Сообщения: 12
   | Цитата: Стало понятно, что трассировка металлических межсоединений - это мартышкин труд, самый сок находится слоем ниже - в диффузии.
Эмм... А как тогда схему восстанавливать без межсоединений?
 
 |  
		 
		|  |  
			|  17 июн 2013, 13:16 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | Легко. Могу показать на примере APU 2A03:  Внизу межсоединения, в сверху функциональные блоки. В местах входа/выхода межсоединений указывается название контрольной линии, после чего собственно сами межсоединения нам уже не нужны.
 
 |  
		 
		|  |  
			|  17 июн 2013, 13:23 | 
					
					   |  
			| 
				Зарегистрирован:
 08 июн 2013, 22:12
 Сообщения: 12
   | А как тогда узнать где какой вход? Там же названия не подписаны. 
 
 |  
		 
		|  |  
			|  17 июн 2013, 13:33 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | По фотографии верхнего слоя проследить куда ведет провод, подписать его и дополнительно пометить на нижнем слое. Имеющегося разрешения вполне достаточно. Единственная трудность в этом - шланги могут уходить в другие куски схемы, поэтому дополнительно нужно будет подписывать места ухода шланга в другой кусок. В итоге мы получим набор "лент" из логических элементов, с подписанными входами и выходами. -- 17 июн 2013, 12:40 --  Начать разбор схемы естественно нужно с контактов, в частности с тактовых сигналов и шин. Станет понятно где находятся защелки и выходные tri-state буферы шин. Из шин можно попасть в "селекторы" регистров, а по тактовым линиями можно добраться до регистров и прочего добра. Это можно уже сделать сейчас, но без фотографий логики будет непонятно функциональное назначение мест, куда приходят входные контакты (и выходят выходные). Нужны вентили.
 
 |  
		 
		|  |  
			|  17 июн 2013, 17:29 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | Ну и чтобы не быть голословным, прилагаю текущие результаты трассировки куска 2-4. Готово примерно на 70%, учитывая что можно из него выжать даже межсоединения нижнего слоя металла и виасы. Автоматическую трассировку делать на таком большом куске боюсь + искажения вряд ли будут корректно переварены. Итог всей работы на данный момент : розовый квадратик A соединяется с розовыми квадратиками B, C и D     Конечно трассировку смотреть приятней, чем ползать по проводам исходной фотографии, но как уже говорил - без вентилей делать тут пока особо нечего.http://psxdev.ru/files/IC103/24_topo2.jpg
 
 Вложения: 
			 24_topo2_sm.jpg [ 222.08 КБ | Просмотров: 21158 ] |  
		 
		|  |  
			|  17 июн 2013, 18:29 | 
					
					   |  
			| 
				Зарегистрирован:
 28 ноя 2012, 17:56
 Сообщения: 63
   | Собрал следующий кусок состоящий из фрагментов21, 22 и 23. В нем тоже нехватает незначительной части фотографий контактов. 
 
 Вложения: 
			 psxcpu_part21-22-23_small.jpg [ 124.77 КБ | Просмотров: 21255 ] |  
		 
		|  |  
			|  19 июн 2013, 11:47 | 
					
					   |  
			| 
				Зарегистрирован:
 19 июн 2013, 10:59
 Сообщения: 30
   | Узнал об теме с хабра и поглядываю.
 Так вот что хочу сказать по тому, что здесь вижу.
 Чипы такой сложности разбирать вручную - нереально. Огромные затраты времени и сил. Год разбирали чип  3к, а 300к - сто лет значит?
 Для примера - килобайт бинарного кода можно разобрать вручную на бумажке. С мегабайтом без IDA (и если возможно Hexrays)  связываться - безумие.
 Как верно написано, данный чип продукт работы CAD. А эти системы не следуют человеческим методам раскладки компонент. Там сидит математика и рандом.   Они оптимизируют схему по опреденным критериям.  Не смогли подобрать с одного раза, рандомно прекидали проблемые участки, попробовали опять, и так итерациями. А учитывая, когда данный чип проектировали, алгоритмы раскладки были  далеко не столь хороши как сейчас.
 С продукцией компа - должен разбираться комп.
 А вот тут проблема - софта нормального в доступе нет. Что объяснимо, очень мало кто этим занимается профессионально.
 Покрутил хваленый дигейт - студенческая поделка к диплому. Полноценно работать с ним нельзя. До уровня софта у чипворкс ему как до луны, и пользуются им от безвыходности.
 
 Так что для начала, вам нужно сформировать ТЗ на софт реверса, а дальше или самим писать и(или) фрилансеров нанимать.
 "Лучше день потерять - потом за 5 минут долететь"
 
 
 |  
		 
		|  |  
			|  19 июн 2013, 12:36 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | На прошлой неделе нам на огород привезли грузовик щебенки и высыпали на дорогу. Получилось 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 | 
					
					     |  
			| 
				Зарегистрирован:
 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 под винду вы крутили побольше? Ваше мнение - демонстратор алгоритмов или что-то серьезнее? Есть ли смысл допиливать дальше или лучше делать прогу по данному ТЗ.
 
 |  
		 
		|  |  
		|  |  
 
	
		| Кто сейчас на конференции |  
		| Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1 |  
 
	|  | Вы не можете начинать темы Вы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете добавлять вложения
 
 |  
 |