ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
830111
Evgeny_CD, Архитектор (07.04.2018 01:09 - 01:11, просмотров: 3573)
Необычный взгляд на [Cyclone 10 LP и Spartan-7] с точки зрения модулькостроительства. Ода ZBT SRAM. [Невероятные возможности за $36] Все производители современных FPGA стоят перед тяжелым выбором. Себестоимость кремния на небольшие конфигурации (до 25 к LE включительно) упала, и по идее надо снижать цены. Но тогда юзера будут с большим подозрением смотреть на FPGA за много сотен баксов, а то и килобаксов. И сумрачный гений маркетинга выдал решение. Либо по максимуму экономим на "потрохах" FPGA, прежде всего на количестве блочной памяти и скорости работы фабрики LE, либо экономии на пинах и создаем искусственный геморрой для малотиражных фирм в виде BGA 0.4 и проч. Spartan-7 получился очень быстрыми (400 и более МГц внутри) и относительно экономичным. Набортной памяти очень много, но в конфигурациях от 25к LE. 28 нм дают о себе знать. Что сделал сумрачный гений? Правильно, дешевые ПЛИС до XC7S25 включительно доступны с макс 150 IO, но даже для самых дешевых вариантов есть BGA 1.0 Lattice ECP5 - это отдельная песня, он удивительно дешев, но он внутри более 200 МГц не очень хорошо разгоняется, и корпуса только BGA 0.8 мм и менее. Cyclone 10 LP стоит особняком. Он получился не очень быстрым (200...250 МГц внутри демократичные варианты), ему дали немного блочной памяти, но щедро насыпали IO, да и корпуса BGA 1.0 доступны для дешевых конфигураций. Более того, он есть в TQFP 144 - просто преступление по нынешним временам. Правда, в этом корпусе у него от 88 до 76 IO - сумрачные гении маркетинга работают :) Также из Cyclone 10 LP выпилили все DDR'ное. Ибо нефиг получать все и сразу почти бесплатно! MAX 10 доступен и в TQFP 144, и в BGA 256 1.0mm, и FLASH встроенный, но цены на сколь-нибудь серьезные по числу LE чипы удручают. DDR на месте, внутри он 200...300 МГц, неожиданно быстр, даже с учетом того, что он сделан на TSMC's 55 nm процессе. Но мы будем мыслить нестандартно, и таки завоюем всю вселенную! [Не привлекая внимание санитаров.] Cyclone 10 LP
                 LE       RAM       PLL DSP       IO   F умн.  F RAM   Цена
10CL016YF484C8G  16,000   56x9kbit  4   56 18x18  340! 200 МГц 238 МГц $18.26@60
10CL016YF484I7G  16,000   56x9kbit  4   56 18x18  340! 250 МГц 274 МГц $24.34@25
10CL016YF484C6G  16,000   56x9kbit  4   56 18x18  340! 287 МГц 315 МГц $29.20@25
10CL040YF484C8G  40,000   126x9kbit 4   126 18x18 325  200 МГц 238 МГц $31.65@60
10CL040YF484I7G  40,000   126x9kbit 4   126 18x18 325  250 МГц 274 МГц $42.20@25
10CL040YF484C6G  40,000   126x9kbit 4   126 18x18 325  287 МГц 315 МГц $50.64@25
10CL055YF484C8G  55,000   260x9kbit 4   156 18x18 321  200 МГц 238 МГц $50.12@60
10CL055YF484I7G  55,000   260x9kbit 4   156 18x18 321  250 МГц 274 МГц $66.84@25
10CL055YF484C6G  55,000   260x9kbit 4   156 18x18 321  287 МГц 315 МГц $80.20@25
10CL080YF484C8G  80,000   305x9kbit 4   244 18x18 289  200 МГц 238 МГц $67.71@60
10CL080YF484I7G  80,000   305x9kbit 4   244 18x18 289  250 МГц 274 МГц $90.28@25
10CL080YF484C6G  80,000   305x9kbit 4   244 18x18 289  287 МГц 315 МГц $108.34@60
10CL120YF484C8G  120,000  432x9kbit 4   288 18x18 277  200 МГц 238 МГц $102.79@60
10CL120YF484I7G  120,000  432x9kbit 4   288 18x18 277  250 МГц 274 МГц $137.06@25
F484 pin (23 mm x 23 mm, 1.0 mm pitch) C6G - коммерческий, I7G - индастриал. Заметим, у Cyclone 10 LP масштабирование в рамках одного корпуса просто уникальное. По LE 7.5 раза. По $$$ - чуть менее 6 раз. Spartan-7
                  LE     RAM       PLL DSP   IO  F RAM F умн.  F дерева F IO  Цена
XC7S6-1FTGB196Q   6000   5x36kbit  2   10    100 388   464     464      315  $18.62@19
XC7S25-2FTGB196C  23,360 45x36kbit 3   80    100 460   550     628      375  $27.92@1
XC7S25-1FTGB196I  23,360 45x36kbit 3   80    100 388   464     464      315  $29.21@1
XC7S25-2FTGB196I  23,360 45x36kbit 3   80    100 460   550     628      375  $32.10@1
XC7S50-1FTGB196C  52,160 75x36kbit 5   120   100 388   464     464      315  $48.30@1
XC7S50-2FTGB196C  52,160 75x36kbit 5   120   100 460   550     628      375  $46.68@1
XC7S50-1FTGB196I  52,160 75x36kbit 5   120   100 388   464     464      315  $55.58@1
XC7S50-2FTGB196I  52,160 75x36kbit 5   120   100 460   550     628      375  $61.11@1
XC7S50-1FGGA484C  52,160 75x36kbit 5   120   250 388   464     464      315  $50.92@1
XC7S50-2FGGA484C  52,160 75x36kbit 5   120   250 460   550     628      375  $63.77@1
XC7S50-1FGGA484I  52,160 75x36kbit 5   120   250 388   464     464      315  $66.64@1
XC7S50-2FGGA484I  52,160 75x36kbit 5   120   250 460   550     628      375  $73.29@1
FTGB196 15 x 15 1.0. Q - автомобильный вариант. -40°C ~ 125°C. I -40°C ~ 100°C, C - коммерческий FGGA484 23 x 23 1.0 Как видно, старшие чипы Spartan-7 имеют больше памяти и сильно быстрее за те же деньги, но имеют меньше выводов. 10CL055YF484I7G $66.84@25 260x9kbit 321 IO XC7S50-1FGGA484I $66.64@1 75x36kbit 250 IO 10CL016YF484C8G - идеальный поделочный чип, 10CL016YF484I7G - нормальное решение для серии, но вот блочной памяти маловато. Софткор NIOS-II без внешней памяти будет умеренно эффективен. Как добавить памяти? Ставим внешнюю. SDRAM обычный - 1100 LE (Altera) https://www.altera …-sdram-controller.html DDR2 и 3 - скорее 3000 LE. + задержки. + память на кеши для софткора. Тоска. + DDR в Cyclone 10 LP нету :) Есть такая штука - синхронная SRAM ZBT. Краткое описание вложено. Идея простая - синхронная SRAM, у которой каждый такт - обмен по ША, но задержка от выдачи адреса - 2 такта. Как не трудно заметить, при тактовой 200 МГц мы получаем эквивалент двух 100 МГц шин!!! Мультиплексирование: одна шина выдали адрес - получили через 2 такта данные, вторая шина то же самое но со сдвигом на 1 такт. Контроллер ZBT примитивен - 200 LE https://www.altera …memory-controller.html IS61NLP51236B-200B3LI Synchronous Memory IC 200MHZ 18Mb (512K x 36) 165-TFBGA (13x15) 1.0мм $17.79@25 IS61NLP12836EC-200B3LI Synchronous Memory IC 200MHZ 4.5Mb (128K x 36) 165-TFBGA (13x15) 1.0мм $8.29@144 IS61NLP102436B-200B3LI Synchronous Memory IC 200MHZ 36Mb (1M x 36) 165-TFBGA (13x15) 1.0мм $70.22@144 CY7C1470BV33-167BZI Synchronous Memory IC 167MHZ 72Mb (2M x 36) 165-FBGA (15x17) 1.0мм $146.462@10 - этот "ужас на крыльях ночи" жрет 450 мА по 3.3В 200 МГц вариант есть под 2.5В -40°C ~ 85°C. 3.3V одно питание. Одна разводка. Корпуса BGA 1.0 имеют сказочную разводку. Внутри остров из земли и питания - идеально кондеры ставить. По периферии в 2 ряда - сигналы. Причем, в силу того, что это SRAM, адреса можно менять произвольно, как и данные, только А0 и А1 надо сохранить - на них burst завязан. Можно сделать разводку очень короткими проводниками в одном слое pin-pin на FPGA. Шансов, что будут глюки по цепям при применении здравого смысла немного. 18Mb имеет 68 сигналов. 4.5Mb - 66. 10CL016YF484C8G - 340 IO. -68IO = 272 IO 10CL016YF484C8G + IS61NLP51236B-200B3LI = 18.26+17.79 = $36,05. Получаем супер ПЛИС с 272IO и 2Мбайтами 100 МГц SRAM У ксилов XC7S50-1FGGA484C 75x36kbit $50.92@1 250 IO. LE больше, но по памяти проигрыш почти 7 раз :) В принципе, даже 4.5Mb вариант для многих целей вполне достаточен. В 2 Мбайт кода+данных NIOS-II можно много чего навговнокодить. Что касается 200 Мгц. У Spartan-7 оно бы точно получилось :). В варианте Cyclone 10 LP - ну пусть 166 или даже 150 Мгц получится - не фатально. Кстати, есть и варианты x72 бита в одном чипе, и тоже BGA 1.0 209-LFBGA (14x22), разводка почти не ухудшилась :) Для полного кайфа, заметим, нужно делать специализированный софткор с разделенными шинами кода и данных, и с растактовкой под ZBT, со сдвигом. Можно получить 100 MIPS софткор, который за каждый такт будет выбирать 1 32 битную команду и делать одну операцию с данными в ОЗУ. Уместно вспомнить про RISC-V http://caxapa.ru/760263.html И его микроконтроллерный вариант. Там как раз 100 МГц и очень скромно по LE получили. http://caxapa.ru/655544.html https://www.ohwr.o …ts/urv-core/repository - Verilog сорцы лежат, можно начинать хачить :) RISC-V скоро даже IAR будет поддерживать http://caxapa.ru/830105.html Возникает законный вопрос - снова троллейбус из буханки?. Отвечаю. https://geektimes.ru/post/259276/ 1. Никаких линухов и эмуляции обычных процессорных ядер под обычные задачи. Никаких GUI. Это решение для настоящих микроконтроллерных и DSP задач. 2. Почти всегда это будет сопроцессором. Локальным или удаленным. Большое количество свободных IO пинов позволяет подключить к host процессору различными способами, в том числе извращенными. 3. Софткор имеет смысл только если он, в первую очередь, быстро и эффективно управляет специализированными аппаратными блоками. 4. Чисто DSP целочисленные задачи + управляющий процессор общего назначения. 5. Если на такие блоки переложить значительную часть работы, и алгоритмы хорошо лягут на FPGA, то можно получить очень хорошую экономию во всем. И в LE - чтобы не кодить в RTL медленную управляющую логику, и в скорости - чтобы процессор тупо не опрашивал чего-то в поиске важных событий. 6. Hard RT. В предложенном мною варианте можно обойтись без кешей или с очень мелкими кешами. Поведение процессора полностью предсказуемо, растактовка заранее известна. 7. В пределах одних и тех же посадочных мест масштабирование просто фантастическое. 16k LE -> 120k LE, 512кБайт ОЗУ -> 8 Мбайт ОЗУ. Готовые чипы MCU|CPU нервно курят. 8. BGA 1.0 мм. На 6 слоях все описанное мною хорошо разведется, на 8 - идеально. Стоимость даже опытной партии печатных плат (до 100 х 100 мм) будет $200-250, что позволяет при отлаженной библиотеке и разводке основных элементов делать макетки под задачу, с минимизацией граблей из-за макетных соплей. 9. Все блоки IO имеют одно и то же питание - 3.3В. Сильно повышает гибкость. 10. Оборотная сторона - все это будет кушать пару W. Это точно не батарейное решение :) 11. Идеальная макетно-поделочная платформа.