[ZPU] -> открытый (BSD) стековый 32 битный процессор Spartan-6 639 LUT 100 MHz 0.5 DMIPS/MHz или 1162 LUT 80 MHz 2.6 DMIPS/MHz Документация -> http://repo.or.cz/w/zpu.git?a=blob_plain;f=zpu/docs/zpu_arch.html;hb=HEAD
https://github.com/zylin/zpu
Порт GCC есть.
Невероятная простота!
0.5 DMIPS/MHz
https://github.com …ore/zpu_core_small.vhd
2.6 DMIPS/MHz
https://github.com …zpu4/core/zpu_core.vhd
В силу своей простоты легко расширяемый. Поскольку все данные для него - память, то можно приделать любой аппаратный блок, который даст нужную производительность.
Фирма, создавшая это чудо, несколько утратила интерес к нему. Но нашлись продолжатели.
http://section5.ch
mail list особой активностью не отличается
https://groups.google.com/forum/#!forum/zylin-zpu
Но нашелся пост человека, который описал свои улучшения ZPU
https://groups.google.com/forum/#!topic/zylin-zpu/91-qiRXdkR8
Этот трудолюбивый швейцарец наклепал кучу вариантов ядра
http://section5.ch …cist-soc/soc-overview/
Приделал scatter-gather style DMA engine
http://section5.ch …obuffering-techniques/
И сделал универсальную поделочную сетевую плату на Spartan-6 LX9. Он точно курил мои посты!!!!
http://section5.ch …oduct/netpp-node-v0-1/
XC6SLX9-2TQG144I 102 I/O 144TQFP 1 $18.97
XC6SLX9-3TQG144I 102 I/O 144TQFP 1 $20.86 - это самый быстрый и индустриальный.
Оно вот на этом ядре
http://section5.ch …soc-overview/#dagobert
В эту небольшую плиску он напихал
• 32 Bit processor ’ZPUng’ v1.1, three stage pipeline @54 Mhz
• Wishbone-Bus for address decoding and peripherals
• Autobuffer DMA for high speed data I/O
• Programmable in C (GCC)
• Hardware Debugger (JTAG), GDB
• Ethernet, UDP/IP stack
И потратил ресурсов
Spartan6-LX9
Registers 2961 (25%)
LUT 3972 (69%)
RAMB16 30 (93%) - заметим, в чипе только BRAM почти закончилась, а логики хватит, чтобы простую периферию сотворить.
Что интересно, кода там исполняется из SPI флешки с кешем на BRAM.
Но мы же помним про ECP5, верно?
http://caxapa.ru/778579.html T Case IO LE RAM DSP Умн. PLL Price
LFE5U-12F-6BG381I -40°C ~ 100°C 381-CABGA 0.8 197 12000 32х18k YES 28 2 100 - $5.64
LFE5U-25F-6BG381I -40°C ~ 100°C 381-CABGA 0.8 197 24000 56х18k YES 28 2 100 - $10.77
XC6SLX9-3TQG144I -40°C ~ 100°C 144-TQFP 101 9152 32х18k YES 16 2 1 - $20.66
10CL006YE144I7G -40°C ~ 100°C 144-EPFQ 88 6272 30x9k - 15 2 25 - $8.98
10CL010YE144I7G -40°C ~ 100°C 144-EPFQ 88 10320 46x9k - 23 2 1 - $13.02
10CL016YE144I7G -40°C ~ 100°C 144-EPFQ 78 15408 56x9k - 56 4 1 - $18.90
10CL025YE144I7G -40°C ~ 100°C 144-EPFQ 76 24624 66x9k - 66 2 1 - $27.30
В варианте MachXO2 (LE там как в ECP5) быстрый вариант ZPU занимает 2429 LUT4, в 2 раза больше Spartan-6, но в LFE5U-25F за $10 элементов в 3 раза больше, чем в XC6SLX9 $20.86, так что все влезет. А памяти в ECP5 в 2 раза больше.
Есть проект dombert на Lattice - тактовая частота процессора 50 МГц вместо 54
http://section5.ch …/soc-overview/#dombert
Кстати, там видно отличие ECP5 от ECP3
Теперь вспоминаем про SRAM ZBT
http://caxapa.ru/830111.html
И понимаем, что ~$15 собирается удивительный периферийный контроллер. Топовая версия.
-- 50 МГц 50-80-100 DMIPS 32 битное простое ядро
-- DMA мечты
-- сеть 100, да и 1000 Мбит влезет, из которой на аппаратном уровне выжимается 100% скорости
-- нужная специализированная периферия. Которая будет идеальна для целевой задачи, и идеальна в части RT - ибо FPGA.
Из LFE5U-12F-6BG381I 100 - $5.64 + внешний чим быстрой SRAM за $1.3 = $7 получится чуть более простой, но тоже мощный периферийный контроллер.
IS61WV6416EEBLL-10BLI 1Mb (64K x 16) Parallel 10ns 48-TFBGA (6x8) 100 $1.33 BGA 0.75mm
IS61WV6416DBLL-10TLI 1Mb (64K x 16) Parallel 10ns 44-TSOP2 100 $1.50
64K x 16 HIGH SPEED ASYNCHRONOUS CMOS STATIC RAM WITH ECC
за 8.3 (FPGA + 2* SRAM - код и данные раздельно) получится весьма кошерный контроллер.
Получается, что я правильно задумал идею "универсальный сетевой микроконтроллер". Не я один это "увидел".
Что касается отцов-основателей ZPU, то они сделали великое дело, но в целом тащили проект в сторону достаточно больших ОСей, у них есть порт eCOS, и там оно не не очень пошло, почему они и забросили.
А вот как на достаточно маленький контроллер для внутричиповых применений они на свое детище, похоже, не очень смотрели.
Трудолюбивый швейцарец еще очень много чего сделал - интеграция с Labview, качественный симулятор SoC, система отладки и прочая. Но для мелких проектов можно обойтись и без этого.