ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 апреля
317225 Топик полностью
Evgeny_CD, Архитектор (24.03.2012 14:10 - 14:32, просмотров: 365) ответил Evgeny_CD на Три танкиста процессора и собака FPGA = народный OMAP. Подборка материалов по дримбордстроению.
Для реализации описанной идеологии очень хорошо пойдет следующий "эмулятор всего". Небольшая платка. С краевым разъемом. В термоусадке - чтобы было компактно, и ничего не могло коротнуть [мы для отладочных, и даже для мелкосерийных плат часто так далаем, купили специально агроменную термоусадку - довольно удобно, если на презентабельность забить]. На плате: * FPGA потолще * SRAM 10 нс статика, что-то типа 512к х 32 или даже 1м х 32 * 2 порта 1000BASE-T * можно miniUSB для отладки В ПЛИС выделяем один или несколько портов, с выделенным питанием, для связи с целевым объектом. Чтобы порты питать прямо от самой целевой платы, а саму отладочную плату лучше питать отдельно. В ПЛИС делаем аппаратную реализацию того интерфейса, который заложен в целевой плате. Например, PPI, если мы хотим эмулировать BF, или вообще шину процессора - если мы эмулируем процессор вместе со всей его прошивкой. Делаем все разумно - DDR шины эмулировать не будем и пр. В ПЛИС поднимаем софткор, или несколько. Они: * управляют работой аппаратного интерфейса * отсылают данные по UDP на хост машину * принимают данные по UDP от хост машинуы * передают данные в целевую платформу Софткоры в иделе вообще живут на встроенной блочной памяти, а внешняя память для буферизации. Софткоры тут будут идеальны по причине того, что можно сделать сколь угодно тесную связь с аппаратной реализацией целевого интерфейса. Вплоть до кастомных команд, которые будут напрямую управлять интерфейсом. Тут FPGA рулит однозначно. В качестве ОЗУ я бы поставил такого монстра CY7C1062DV33-10BGI 25-$32.25 digikey.com. Дока приложена. Не потому, что мне денег девать некуда, а чтобы не париться с DDR контроллерами и иметь минимальную латентность памяти. Ethernet - либо софткоры, либо отдельный чип типа http://caxapa.ru/316023.html. Я бы взял один софткор, и один чип - для тренировки. В качестве ПЛИС я влял бы Альтеру по нескольким причинам. * для такой платы важны удобство и скорость разработки, а не цена чипов. Тут Альтера на коне. * NIOS-II и, в особенности, его шина Avalon очень хорошо задокументированы, имеют кучу тулзов и примеров. Шинный коммутаторы делаются автоматом - а они тут весьма пригодятся. * Cyclone-III есть в корпусах PQFP-240. Можно сделать !BGA дизайн - если это по какой-то причине важно. Например, EP3C40F484C6 IC CYCLONE III FPGA 40K 484FBGA I/O 331 1-$129.70. Много пинов, много ресурсов на кристалле. Самая быстрая версия чипа (поэтому и такая дорогая). Теперь почему 2 * Ethernet. 1000BASE-T передает дуплексно по всем 4-м парам одновременно. В принципе можно обойтись одним. http://en.wikipedi …it_Ethernet#1000BASE-T Но обычно у контроллера 1 порт, и по нему надо прокачивать 200 Мбайт\сек, что есть не совсем тривиальная задача. Возможно, будет быстрее, если через один контроллер передавать, а через другой принимать. Так 100 Мбайт/сек дуплекса точно будет. Кстати, возможно софткор Ethernet будет с этой точки зрения правильнее - у него-то можно сделать "несколько портов". Linux даст round trip UDP для гигабитного Ethernet 50-70 мкс. В приложенных бумагах приведены результаты тестов для довольно древнего железа и древних версий ядра, но расписано все подробно. Про Win придется забыть, там будет 10+, только мс :) Хотя сейчас будет пост, как и это можно побороть :)