ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
486666
Evgeny_CD, Архитектор (10.02.2014 01:21 - 01:43, просмотров: 14959)
Внимательный взгляд на Spartan-6, навеянный -> Все нужные для понимания смысла поста доки внутри. http://caxapa.ru/309699.html
http://caxapa.ru/486508.html
Цены дижикея. Итак, рассмотрим сводную таблицу в корпусе BGA 384 0.8мм
Кристалл            XC6SLX9-2CSG324C    XC6SLX16-2CSG324C   XC6SLX25-2CSG324C   XC6SLX45-2CSG324C
IO пинов            200                 232                 226                 218
Slices              1430                2278                3758                6822
SLICEMs             360                 544                 916                 1,602
SLICELs             355                 595                 963                 1,809
SLICEXs             715                 1,139               1,879               3,411
6-Input LUTs        5,720               9,112               15,032              27,288
Flip-Flops          11,440              18,224              30,064              54,576
LE                  9152                14579               24051               43661
BRAM (18 кбит)      32                  32                  52                  116
DSP48A1             16                  32                  38                  58
Цена розн.,$        20.75               27.93               39.37               52.00
Цена -40°C ~ 100°C  23.87               35.31               45.29               59.78
Теперь рассмотрим подходящую память
LPDDR 128 Мбит
W947D6HBHX5E Winbond Electronics IC LPDDR SDRAM 128MBIT (8M x 16) 60VFBGA 200 MHz -25°C ~ 85°C 100 - $2.33
W947D6HBHX5I Winbond Electronics IC LPDDR SDRAM 128MBIT (8M x 16) 60VFBGA 200 MHz -40°C ~ 85°C 312 - $2.32

DDR2 256 Mbit - 128 не поддерживается
W9725G6KB-25 Winbond Electronics IC DDR2 SDRAM 256MBIT(16M x 16) 84-TWBGA (8x12.5) 2.5NS 0°C ~ 85°C 100 - $2.09
W9725G6KB25I Winbond Electronics IC DDR2 SDRAM 256MBIT(16M x 16) 84-TWBGA (8x12.5) 2.5NS -40°C ~ 95°C 209 - $2.46 
Каждый чип несет на борту 2 контроллера памяти, каждый из которых может быть 4, 8 и 16 битный по чипу памяти, и каждый имеет до 6 32 битных портов на внутреннюю шину. Дока приложена. Если делать проект классическим путем - навороченное 32 битное ядро, мощная многослойная шина с коммутатором, навороченные IP ядра со встроенным контроллером DMA и большими локальными буферами, то ничего хорошего не выйдет. Идти надо другим путем. Нужно делать центральный проц, ориентированный на работу с SDRAM, с простой внутренней шиной, и развитой системой сигналов, заведенных на контроллер прерывания. А всю периферию делать на основе PicoBlaze и всяких микросеквенсеров, которые отрабатывают команды от основного проца - сделай то и положи в память по адресу такому то. + система сигнализации о выполнении и готовности. PicoBlaze для Spartan-6 требует всего 26 слайсов (KCPSM6 версия) и половину 2кб блока памяти для ROM команд. Также ксилы залудили специальную версию MicroBlaze Micro Controller System с очень малым расходом ресурсов - в Virtex-6 собирается 546...882 LUT. Правда, работает только из блочной памяти, но можно использовать всего 1 блок и под код, и под данные. 100 Мгц у него получится, судя по всему, на самых медленных чипах. http://www.xilinx.com/tools/mb_mcs.htm Вопрос возникает только в одном - в наличии средств разработки, которые поддерживают иерархические дизайны. PicoBlaze со всей подключенной к нему на IO логикой надо на поведенческом уровне симулировать как один блок. И в это средство разработки вставить кучу таких блоков, центральный проц, контроллер DDR, саму память и проч, чтобы проверить совместную работу всего хозяйства. Разрабатывать надо сверху. Писать модели для блоков, проверять на уровне совокупного моделировать блоков, что все ок, а потом детальную модель блока верифицировать по модели верхнего уровня этого блока. В общем, это идеология SuystemC, или SystemVerilog. Про последний ничего сказать не могу - по нему крайне мало книг. И ксилы это тоже поняли, и залудили чудную штуковину - Vivado High-Level Synthesis http://www.xilinx. …n/esl-design/index.htm Которая С, С++, SystemC, управляется Tcl (и вроде как еще и Perl?), сама генерит Verilog|VHDL и RTL. Дальше начинаются детали, которые мне уже не видны (насколько хорошо этот Vivado работает), но тенденция понятная. Выводы. 1. На Spartan-6 можно собрать основу продвинутого микроконтроллера за $25 (FPGA + 16 или 32 Мбайт DDR* SDRAM, все -40), который будет обладать большой гибкостью по сравнению с готовыми чипами. 2. По сравнению с другими семействами FPGA, Spartan-6 отличается: -- хорошей масштабируемостью в пределах одного корпуса. Можно делать линейку устройств с разными фичами, для отладки ставить в ту же плату более мощный кристалл и т.д. -- встроенным аппаратным контролером памяти с поддержкой всех нужных типов памяти и множественным доступом внутри ПЛИСки -- разумной ценой для заданной конфигурации 3. Основной идеологии такого контроллер становится memory hub - CPU общается только с памятью (ну ладно, GPIO оставим), а периферийные контроллеры сами таскают в основную память и обратно блоки данных. Это позволяет сильно снизить частоту переключений контекста и повысить эффективность кеша при скромной его организации. 4. 32Мбайта, если не фапать на линух, позволяют сильно упростить структуру периферийных контролеров (например, все блоки памяти кратны 512 байт, все блоки имеют стандартизованный дескриптор и т.д.) 5. Оставшиеся несколько мбайт ОЗУ :) + всякие приятные фишки MicroBlaze типа регистры защиты стека (минимум и максимум) позволяют построить хорошую вытесняющую RTOS. 6. Tcl рулит --> :)