ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
317151
Evgeny_CD, Архитектор (23.03.2012 23:09, просмотров: 26960)
Три танкиста процессора и собака FPGA = народный OMAP. Подборка материалов по дримбордстроению. *** FPGA|CPLD. Все со встроенной FLASH -- LFXP2-5E-5QN208C 5K LUTS, 146 I/O, 208-pin PQFP (28 x 28 mm), DSP, 100-12.62 latticesemi.com -- LCMXO2-1200HC-4MG132CR1 1280LUTS 105 I/O 132-ball csBGA (8x8 mm) 7 block 9 Kbits, User Flash Memory (Kbits) 64, PLL 1, 100-$6.25 digikey.com -- LCMXO2-1200HC-4TG144C 1280LUTS 108I/O 144-pin TQFP (20x20 mm), 7 block 9 Kbits, User Flash Memory (Kbits) 64, PLL 1, 100-$7 digikey.com -- LCMXO2-1200UHC-4FTG256C 1280LUTS 207I/O 256-ball ftBGA (17x17 mm), 8 block 9 Kbits, User Flash Memory (Kbits) 80, PLL 1 100-$8.9 digikey.com -- LCMXO2-2000HE-4TG144C 2112LUTS 144-pin TQFP (20x20 mm) I/O 112, 8 block 9 Kbits, User Flash Memory (Kbits) 80, PLL 1 100-$9.25 digikey.com -- LCMXO2-2000UHE-4FG484C 2112LUTS 484-ball fpBGA (23x23 mm) I/O 279, 10 block 9 Kbits, User Flash Memory (Kbits) 96, PLL 2 100-$16.13 digikey.com [FPGA - разрыв шаблона по соотношению пинов и цены!] -- LCMXO2-4000HE-4TG144C 4320LUTS 144-pin TQFP (20x20 mm) I/O 115, 10 block 9 Kbits, User Flash Memory (Kbits) 96, PLL 2 100-$9.26 digikey.com -- LCMXO2-7000HE-4FG484C 6864LUTS 484-ball fpBGA (23x23 mm) I/O 335, 26 block 9 Kbits, User Flash Memory (Kbits) 256, PLL 2 100-$21.21 [ничего себе "CPLDшка"!] FPGA Lattice есть в комактных корпусах 256-ball caBGA (14x14 mm). *** SRAM -- IS61WV102416BLL-10TLI IC SRAM 16MBIT 10NS 16M (1M x 16) 48-TFSOP (0.724", 18.40mm Width) 1000-$14.90400 digikey.com -- IS61WV102416BLL-10MLI IC SRAM 16MBIT 10NS 16M (1M x 16) 48-miniBGA (9x11) 1000-$15.37 digikey.com -- IS61WV51216BLL-10MLI-TR IC SRAM 8MBIT 8M (512K x 16) 10NS 48-miniBGA (9x11) 2000-$10.56 digikey.com -- IS61WV51216BLL-10TLI IC SRAM 8MBIT 10NS 8M (512K x 16) 44-TSOP (0.400", 10.16mm Width) 10000-$10.26 digikey.com -- IS62WV51216BLL-55TLI IC SRAM 8MBIT 55NS 8M (512K x 16) 44-TSOP (0.400", 10.16mm Width) 1000-$6.53 digikey.com -- IS62WV51216BLL-55BLI IC SRAM 8MBIT 55NS 8M (512K x 16) 48-miniBGA (6x8) 1000-$6.53 digikey.com -- IS61WV25616BLL-10BLI IC SRAM 4MBIT 10NS 4M (256K x 16) 48-miniBGA (6x8) 10000-$3.49 digikey.com -- IS61WV25616BLL-10TLI IC SRAM 4MBIT 10NS 4M (256K x 16) 44-TSOP (0.400", 10.16mm Width) 1000-$3.45 digikey.com *** DSP -- ADSP-BF592KCPZ-2 IC DSP CTRLR 200MHZ 64kB SRAM 0°C ~ 70°C 64-LFCSP-VQ (9x9) 1000$-3.35 digikey.com -- ADSP-BF592KCPZ IC DSP CTRLR 400MHz 64kB SRAM 0°C ~ 70°C 64-LFCSP-VQ (9x9) 1000-$5.14 digikey.com -- ADSP-BF512KSWZ-3 IC DSP 16/32B 300MHZ 116kB SRAM 0°C ~ 70°C 176-LQFP-EP (24x24) 40-$11.07 digikey.com -- ADSP-21375KSWZ-2B IC DSP 32BIT 266MHZ 64kB SRAM 0°C ~ 70°C 208-LQFP-EP (28x28) 36-$16.90 digikey.com [плавучка!] -- ADSP-21371KSWZ-2B IC DSP 32BIT 266MHZ 128kB SRAM 0°C ~ 70°C 208-LQFP-EP (28x28) 1000-$17.45 digikey.com [плавучка+ много памяти, к сожалению варианты с 256к ОЗУ стоят неразумно] *** малые процессоры CF -- PCF51QU128VLH LQFP 64 128k FLASH 32k SRAM 10000-$2.04 freescale.com 500-$2.82 mouser.com [CF+, внешняя шина, "все дела"] -- MCF52256CAG66 MCU 32BIT COLDFIRE V2 66MHz 144LQFP 256KB FLASH, 64K SRAM 100-$5.64 digikey.com [пока CF+ только стартуют, можно тренироваться на нем, все равно один из самых дешевых с внешней шиной и DMA, в качестве довеска есть USB, Etrhernet и ADC :) ] *** малые процессоры Cortex-M3 -- ATSAM3U4EA-CU IC MCU 32BIT 256KB FLASH 52K SRAM 144LFBGA 100-$9.24 digikey.com -- ATSAM3U4EA-AU IC MCU 32BIT 256KB FLASH 52K SRAM 144LQFP 100$-9.02 digikey.com -- ATSAM3U1CA-CU IC MCU 32BIT 64KB FLASH 20K SRAM, 100TFBGA 100-$6.75 digikey.com -- ATSAM3U1CA-AU IC MCU 32BIT 64KB FLASH 20K SRAM, 100LQFP 100-$6.23 digikey.com *** Большие процессоры ARM926 -- LPC3130FET180,551 IC ARM9 MCU 180MHZ 180-TFBGA 96K SRAM 10000-$3.78 digikey.com [самый дешевый 926 !!!] -- LPC3141FET180,551 IC ARM9 270MHz MCU USB OTG 180TFBGA 192K SRAM 1000-$6.07 digikey.com [192к ОЗУ на частоте 72 Мгц, камень будет жить очень долго] -- IS42S16400J-7TL IC SDRAM 64MBIT 64M (4M x 16) 143MHZ 54TSOP 1000-$2.16 [SDRAM 64-128Мбит можно взять за $1.5] Считаем пины: * SRAM 1m x 16 - 20 адрес, 16 данные, CE, OE, WE, UB, LB, 5 = 41 * PPI BF = 20 пинов * CF+ мультиплесированная шина - 25 * TV декодер - 13 * I2S - 6 в общем случае * шина большого процессора 1m x 16 - 41 41+20+25+13+6+41=146 пинов, LFXP2-5E-5QN208C однако! Примеры конфигурации. *** DSP и малый процессор. Память 512к раздена между процессорами TDMA. Типа цифра для радиомодема и пр. DSP всегда работает в монозадачном режиме: отработал задачу, прыгнул в монитор, откачал данные, закачал новые данные, закачал новый код из разделенного SRAM, прыгнул на задачу. -- LCMXO2-1200HC-4TG144C 1280LUTS 108I/O 144-pin TQFP (20x20 mm), 7 block 9 Kbits, User Flash Memory (Kbits) 64, PLL 1, 100-$7 digikey.com -- ADSP-BF592KCPZ-2 IC DSP CTRLR 200MHZ 64kB SRAM 0°C ~ 70°C 64-LFCSP-VQ (9x9) 1000$-3.35 digikey.com -- PCF51QU128VLH LQFP 64 128k FLASH 32k SRAM 10000-$2.04 freescale.com 500-$2.82 mouser.com [CF+, внешняя шина, "все дела"] -- IS61WV25616BLL-10TLI IC SRAM 4MBIT 10NS 4M (256K x 16) 44-TSOP (0.400", 10.16mm Width) 1000-$3.45 digikey.com 7+3.35+2.82+3.45=16.62. Напоминает по цене OMAP L-132 в небольших количествах, но есть важные отличия по функционалу: * зашаренной памяти между процессорами 512к, а не 128 * FLASH MCU+FPGA - 2 защиты * весьма маложрушее. FPGA потребляе порядка 10 мВт в покое + линейный рост от тактовой. SRAM, не смотря на скорость, жрет порядка 30 ма на ходу и менее 1 ма во сне. * удобно подрубать всякую периферию типа ADC|DAC, с автоматическим "кучкованием" отсчетов в памяти, привязкой ко времени и пр. То, на что при программной эмуляции будет тратиться море тактов проца *** взрослая 3-х процессорная конфигурация. DSP, малый процессор. А вот с большим процессором интереснее. Он имеет доступ к памяти TDMA, и имеет очень мало прерываний. Малый процессор складывает|забирает данные из SRAM в виде структур, удобных для большого процессора! Большое получает прерыание при готовности больгого блока данных, инвалидирует кеш лайн по адресу пакета, и работает с данными в памяти! Экономия на переключениях контекста для большого процессора просто колоссальная, можно пускать Linux и не беспокоиться (почти) на тему RT. -- LCMXO2-1200UHC-4FTG256C 1280LUTS 207I/O 256-ball ftBGA (17x17 mm), 8 block 9 Kbits, User Flash Memory (Kbits) 80, PLL 1 100-$8.9 digikey.com -- ADSP-BF592KCPZ IC DSP CTRLR 400MHz 64kB SRAM 0°C ~ 70°C 64-LFCSP-VQ (9x9) 1000-$5.14 digikey.com -- PCF51QU128VLH LQFP 64 128k FLASH 32k SRAM 10000-$2.04 freescale.com 500-$2.82 mouser.com [CF+, внешняя шина, "все дела"] -- IS61WV51216BLL-10TLI IC SRAM 8MBIT 10NS 8M (512K x 16) 44-TSOP (0.400", 10.16mm Width) 10000-$10.26 digikey.com -- LPC3130FET180,551 IC ARM9 MCU 180MHZ 180-TFBGA 96K SRAM 10000-$3.78 digikey.com [самый дешевый 926 !!!] -- IS42S16400J-7TL IC SDRAM 64MBIT 64M (4M x 16) 143MHZ 54TSOP 1000-$2.16 [SDRAM 64-128Мбит можно взять за $1.5] 8.9+5.14+2.82+10.26+3.78+1.5=32.4 OMAPL138AZWT3 250-$20.18 digikey.com. Типа мы в проигрыше $12. Но, на самом деле, все не так однозначно. * у нас 1Мбайт зашаренной памяти между 3 процами. Можно взять 512к и сэкономить $7 * у нас 8Мбайт SDRAM, еще $1.5. Проигрываем мы всего 12-7-1.5=$3.5 * описанная 3-х процессорная конфигурация не имеет аналогов. С одной стороны, в OMAP есть PRU. С другой стороны, на С на них не попрограммишь, и ресурсов у них мало. С третьей стороны, они сидят на шине процессора и по скорости уделают все мною описанное (наверное). * FPGA кодинг в моем варианте не смертельный, но не примитивный. Это тоже денег стоит. Но, освоив его, можно получить в свои руки очень мощную штуковину. * на стороне OMAP мощная плавучка. Можно использовать AD SHARK, но это будет заметно дороже. Большим стратегическим + моего решения вляется его фантастическая гибкость. Даже здесь приведен набор компонентов, которые даст под сотню конфигуцраций. И набор можно расширить. Не хочешь BGA для теренировочной платы - набирай все из QFN|QFP. "такое сделают даже в Резоните"(С) - можно хоть раз в неделю заказывать за 10кр опытную партию 4х слоек и возиться с аналоговой частью - там далеко не всегда все можно подсчитать и смоделировать. Вышел на серию - переводи в BGA при возможности. Не хватает одного DSP - поставить 2. Нужно - прикрути DSP с плавучкой. Еще меня сильно прельщает возможность эмуляции DSP на PC. Поскольку в описанном варианте DSP работает только с памятью, можно сделать "ход конем" * сохраняем интерфейс PPI * ставим отдельную FPGA * в нее софткор либо внешний процессор * либо в виде IP блока гигабитный Ethernet, либо в виде чипа http://caxapa.ru/316023.html * GMII|RGMII PHY * UDP итерфейс с писюбком: "DSP" отсосал данные по PPI, перегнал по UDP, получил обработанное на PC, засунул по PPI. Получается очень хорошее разделение труда. DSP программист вообще живет удаленно, и занимается только своим делом. Программист, пишущий основной код, пишет на чем угодно высокоуровневом реализацию нужных ему DSP функций в описанном эмуляторе. Проверят, что при реализации нужной ему DSP функциональности основной код работает ок. Далее DSP программер получает небольшое ТЗ и этот код как ТЗ. Прохождение тестов в паре с основным кодом является основанием для оплаты. Наличие сорца-ТЗ сильно упрощает для него понимание деталей ТЗ. Минус состоит в том, что UDP под вендой латентность менее 10 мс не даст (я не нашел иных данных без написания собственных kernel mode монстров). Это может быть много. По Linux даже без RT патча народ уверенно получает менее 1 мс, и этого хватит для большинства задач. Ну значит будет отдельная физическая Linux машинка, на которой при наличии заготовок по работе с UDP приписать целевой код не так и сложно. Итог я вижу таким: * Мы не церкви, чтобы верить. Каждый примеряет мои мысли к своим задачам. Я выложил все данные. * При крупной серии однокристальное решение, конечно же выгоднее. Но надо внимательно считать полную стоимость разработки. * При малой тиражности и большом числе проектов гибкость предложенного решения перекроет все небольшие финансовые потери на BOM * Предложенная трехпроцессорная архитектура представляется мне очень перспективной. Сделать так, чтобы больой проц работал с IO в максимально комфортном для него режиме - это просто "мечта человечества". * Идея с виртулизированым DSP - это вообще ключ к успеху. Забудем про DSP. Поставим задачу так. Некий процессор собрал и скучковал данные от реальных устройств. Далее на "сервере" выполнена их обработка, после чего "имелкий процессор" рассовал все по периферии. Можно прохождить функциональные тесты в RT для очень многиз задач. Далее, после решения задачи, начинается оптимизация. А не до, как получается в программизме реального DSP (потому, что его его программить не думая об оптимальности, они даже близко не покажет ничего из своей реакламируемой производительности). Может, вообще выяснится, что DSP не нужен - небольшой DSPатель в FPGA + еще один Cortex|CF "сопроцессор", тот же Cortex-M4, когда их до ума доведут и FLASH к ним прикрутят (хотя при описанной идеологии RAM based Cortex-M4 от NXP самое то!). Я бы сказал так: * сложные проекты надо делать, начиная с описанной идеологии, но "косить глазом" в сторону "OMAP". * по мере развития принимать решение - куда идти дальше на следующем шаге. Очень буду признателен за критику и мысли.