olofk / corescore

CoreScore
Apache License 2.0
134 stars 40 forks source link

Add support for EBAZ4205 'Development' Board #33

Closed kholia closed 3 years ago

kholia commented 3 years ago

Usage:

fusesoc run --target=ebaz4205 corescore

python3 fusesoc_libraries/corescore/sw/corecount.py /dev/ttyUSB0

Result: We can fit 85 cores on this board ;)

Screenshot_2021-08-16_01-57-17

Per-core price:

20.93 USD (my price) / 85 => $0.246235/core

5 USD ("In-China" price) / 85 => $0.0588235/core

References:

Note: This PR needs the following patch to build,

$ git diff
diff --git a/corescore.core b/corescore.core
index 01527de..b68461e 100644
--- a/corescore.core
+++ b/corescore.core
@@ -12,7 +12,7 @@ filesets:
       - rtl/emitter_mux.v
       - rtl/emitter.v
     file_type: verilogSource
-    depend: ["=::serv:1.0.2", servant, serving, verilog-axis]
+    depend: ["serv", servant, serving, verilog-axis]

   alhambra_II:
     files:

Without this patch, I run into the following Vivado problem,

ERROR: [Synth 8-7136] In the module 'serv_rf_ram_if' declared at 'workspace/build/corescore_0/src/serv_1.0.2/rtl/serv_rf_ram_if.v:2', parameter 'reset_strategy' used as named parameter override, does not exist [workspace/build/corescore_0/src/serving_1.1.0/serving/serving.v:172]

But this patch may not be generally applicable for other boards, so it is not a part of this PR.

olofk commented 3 years ago

Excellent. Congratulations to the new SERV/$ record :) The problem with the reset_strategy parameter was because of a version mismatch between serv-1.0.2 and serving-1.1.0. I have fixed that now to lock the serving (and servant) versions to 1.0.2. Since SERV 1.0.2 is bigger I was worried your 85 cores wouldn't fit anymore but I rerun the build and seems fine. Many thanks for your contribution