Как стать автором
Обновить

Комментарии 6

Отличная статья, спасибо!
А можно ли собрать все то же самое, но с процессором с OpenCores и сколько минимум ячеек для этого потребуется?
Специалист из Марсохода укладывал AmberSOC в 10 тыс ячеек. Но там было очень много работы.
Я уже сделал такой проект!

См. github.com/open-design/mips32r1_soc_nano/tree/mips32r1_wb

За основу взято ядро mips32r1 c opencores (https://github.com/grantae/mips32r1_soc_nano).
И добавлены компоненты с opencores.

Ядро mips32r1 также как MIPSfpga не подключается к Wishbone напрямую,
использует свою собственную доморощенную шину.

Я сделал переходник с этой шины на Wishbone, так что получилась вот такая конструкция (в bootrom также прошит nmon):



Вот данные по потребляемым ресурсам для ПЛИС плат DE0-Nano, DE1-SoC и Марсоход3:

; Family; Cyclone IV E;
; Device; EP4CE22F17C6;
; Timing Models; Final;
; Total logic elements; 9,236 / 22,320 ( 41 % );
; Total combinational functions; 8,769 / 22,320 ( 39 % );
; Dedicated logic registers; 2,465 / 22,320 ( 11 % );
; Total registers; 2465;
; Total memory bits; 256 / 608,256 ( < 1 % );

; Device; 5CSEMA5F31C6;
; Timing Models; Final;
; Logic utilization (in ALMs); 3,642 / 32,070 ( 11 % );
; Total registers; 2669;
; Total block memory bits; 0 / 4,065,280 ( 0 % );
; Total DSP Blocks; 6 / 87 ( 7 % );

; Device; 10M50SAE144C8GES;
; Timing Models; Preliminary;
; Total logic elements; 9,117 / 49,760 ( 18 % );
; Total combinational functions; 8,754 / 49,760 ( 18 % );
; Dedicated logic registers; 2,465 / 49,760 ( 5 % );
; Total registers; 2465;
; Total memory bits; 256 / 1,677,312 ( < 1 % );
; Embedded Multiplier 9-bit elements; 16 / 288 ( 6 % );

Для лаб ядро MIPSfpga конфигурируется в little-endian режиме, но легко может быть переключено в big-endian.
А вот mips32r1, как я понял, предназначено для работы в big-endian, а работоспособность little-endian режима ещё надо проверять.

На фоне MIPSfpga ядро mips32r1 смотрится довольно блекло:

* версия r1 архитектуры против r3 в MIPSfpga;

* нет кэшей и TLB.

Раз нет кэшей и TLB, значит никто не пускал на этом ядре Linux, то есть ядро можно сразу считать малотестированным.
Опять же переходники на Wishbone отъедают такты, их надо убирать.

С другой стороны это ядро может привлечь энтузиастов, которым интересно самим сделать собственное ядро. Хотя ядро не очень новое, а желающих его развивать не видно.
По поводу количества логических ячеек, которое требуется для mips32r1, надо внести поправку.

На самом деле из более чем 9000 LE надо вычесть те LE, которые пошли на реализацию bootrom (подозреваю, что bootrom можно было сделать на memory и cъэкономить LE). Так что за вычитом bootrom mips32r1_soc_nano занимает чуть меньше 6000 LE.
Я думаю, что можно как-то еще снизить количество LE каким-либо образом, разменяв производительность на объем. Ведь был же линукс на Atmega.
А вариантов того же самого для Zynq от Xilinx нет?
Мне несколько больше нравится их политика, ровно как и новая IDE.
Пожалуйста, уточните о чём «том же самом» вопрос.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории