Search
Write a publication
Pull to refresh
34
0.1
Дмитрий @DmitryZlobec

Разработчик программного обеспечения.

Send message

"Акулов не бывает". Там 4 банка по 8 будет. [31:0] это как из Харрисов идет так всех в заблужденье и вводит. Посмотрите ARM® Cortex®-M Processor based System Prototyping on FPGA , у них там есть утилитка fromelf которая бинарник бьет на банки. (Ее в доступе нет, но смысл понятен)

Сделайте пожалуйста на GitHub я себе форкну.

GCC 14.2 уже очень сильно оптимизирует по сравнению с 12й версией (я на ней до сих пор сижу)

Это у первых Харрисов глава 7.5

Не про умножение речь, если вы сделаете комбинационный умножитель 32х32 через generate то на Cyclone 4 он займет 2КLUT и максимальная тактовая будет где-то 50МГц. (тоже интересовался победой в Coremark и честным умножением) Ну у него так и получилось.

Почему? Хорошая цифра, вот теперь можно говорить о конвейере. Но если 3.0 Cm/Mhz не получится, то конечно смысла бодаться нет.
и по лутам влез в OMDAZZ.

А если 25? Умножитель 32х32 на Cyclone 4 в 50 МГц влазит, тут вроде не сильно разлапистей

Техпроцесса ни у кого нет, а Coremark есть. Ты дал нам надежду и зажег огонь в наших сердцах !))

А точно что Fmax = 5МГц ? Он же его не синтезировал вроде еще.

Это можно отключить, синтезировать 128 байт памяти и посмотреть максимальную частоту.

Тогда есть шанс получить 1.25 CM/Mhz как у всех ((((
И вообще ковейеров много, а вот победа в CoreMark она одна

Увеличть то он ее увеличит, а где он техпроцесс то найдет? )))) У него судя по всему Cyclone iV или MAX10

Как это возможно на RV32? Атомиков же нет?

И у него же также сделано
if (data_w) begin ?

Ничего не понял. Блок M9k у Cyclone IV двухпортовый и такая конструкция на нем должна синтезироваться:
always_ff @(posedge clk)
<TAB> if(we) mem[addr]<=din;
assign dout= mem[addr];

Другое дело что на некоторых Cyclone Вы не сможете синтезировать [31:0] mem [1:1024]; Надо делать четыре штуки по [7:0]. В MIPSFpga и примерах на Cortex M0 так и сделано. Это в schoolRisc reg [31:0] rom [SIZE - 1:0];

А смысл подключать синхронную память если мы про SRAM. Отладок с синхронной памятью всего две шутки и одну из них делает @checkpoint

Запись сделана также как в YRV через маску Byte line enable, на ПЛИСе должно работать, там единственное что не все [31:0] умеют синтезировать, но это решаемо.

Интересно посмотреть как изменится CM когда появитс три стадии.

Стойте стойте, а почему вы собираете %gcc_bin%-gcc %ccflags% -c src/core_list_join.c -o build/core_list_join.o

А где matrix?

PS. Хотя нет, я извиняюсь за занудство.

Результат теста во втрой статье $finish дает количество тиков 1,629,813 это развне не должно биться с Total ticks? Применяя аппаратное умножение $finish 802303 в два раза быстрее. В тестбенче `timescale 1ns / 1ns. Если бы тактовая была 1Mhz то в первом случае итерация бы заняла 1,6 секунды, вовтором 0.8. В первом случае у Вас 0,625 Cm/Mhz во втором 1, 25 как у всех однотактников. Где я ошибся?

1
23 ...

Information

Rating
2,313-th
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity

Specialization

Backend Developer, Chief Technology Officer (CTO)
Lead
Git
SQL
OOP
Java
Docker
CI/CD
REST
Java Spring Framework
Spring Boot
Linux