--
You received this message because you are subscribed to the Google Groups "Linux for LiteX FPGA SoC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-litex...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/6ee2b043-9a7c-4b5c-baad-66a2969e3344%40googlegroups.com.
Things are looking good.
--
You received this message because you are subscribed to the Google Groups "Linux for LiteX FPGA SoC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-litex...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/abc4498b-4eb4-46f5-94f6-42dd146adbbd%40googlegroups.com.
https://github.com/enjoy-digital/litex_vexriscv_smp
should now be usable. But it still miss the informations about how to build opensbi/linux/buildroot.
--
You received this message because you are subscribed to the Google Groups "Linux for LiteX FPGA SoC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-litex...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/624b7dc2-e30a-4e07-8078-6778239bcaef%40googlegroups.com.
How does the resource usage of this SMP design compare to the single core version?
On Fri, 1 May 2020 at 06:35, Charles Papon <charles...@gmail.com> wrote:
https://github.com/enjoy-digital/litex_vexriscv_smp--
should now be usable. But it still miss the informations about how to build opensbi/linux/buildroot.
You received this message because you are subscribed to the Google Groups "Linux for LiteX FPGA SoC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-litex...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/10a2195d-4e88-4fb6-a966-30a66f951bdf%40googlegroups.com.
+---------------------------------------------+-------------------------+------------+------------+---------+------+-------+--------+--------+--------------+| Instance | Module | Total LUTs | Logic LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | DSP48 Blocks |+---------------------------------------------+-------------------------+------------+------------+---------+------+-------+--------+--------+--------------+| top | (top) | 14762 | 14229 | 530 | 3 | 12492 | 21 | 28 | 16 || (top) | (top) | 1332 | 1185 | 144 | 3 | 1966 | 9 | 0 | 0 || VexRiscvLitexSmpCluster | VexRiscvLitexSmpCluster | 13433 | 13047 | 386 | 0 | 10526 | 12 | 28 | 16 || (VexRiscvLitexSmpCluster) | VexRiscvLitexSmpCluster | 276 | 276 | 0 | 0 | 989 | 0 | 0 | 0 || cluster | VexRiscvSmpCluster | 11245 | 11043 | 202 | 0 | 9173 | 8 | 28 | 16 || (cluster) | VexRiscvSmpCluster | 18 | 18 | 0 | 0 | 218 | 0 | 0 | 0 || cpus_0_core | VexRiscv | 2727 | 2677 | 50 | 0 | 2182 | 2 | 7 | 4 || (cpus_0_core) | VexRiscv | 1087 | 1039 | 48 | 0 | 1812 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache | 477 | 477 | 0 | 0 | 104 | 2 | 1 | 0 || dataCache_4 | DataCache_5 | 1166 | 1164 | 2 | 0 | 266 | 0 | 6 | 0 || cpus_1_core | VexRiscv_1 | 2725 | 2675 | 50 | 0 | 2184 | 2 | 7 | 4 || (cpus_1_core) | VexRiscv_1 | 1106 | 1058 | 48 | 0 | 1807 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache_1_3 | 497 | 497 | 0 | 0 | 104 | 2 | 1 | 0 || dataCache_4 | DataCache_4 | 1127 | 1125 | 2 | 0 | 273 | 0 | 6 | 0 || cpus_2_core | VexRiscv_2 | 2711 | 2661 | 50 | 0 | 2160 | 2 | 7 | 4 || (cpus_2_core) | VexRiscv_2 | 1111 | 1063 | 48 | 0 | 1805 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache_1_1 | 500 | 500 | 0 | 0 | 104 | 2 | 1 | 0 || dataCache_4 | DataCache_2 | 1107 | 1105 | 2 | 0 | 251 | 0 | 6 | 0 || cpus_3_core | VexRiscv_3 | 2666 | 2616 | 50 | 0 | 2160 | 2 | 7 | 4 || (cpus_3_core) | VexRiscv_3 | 1097 | 1049 | 48 | 0 | 1805 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache_1 | 463 | 463 | 0 | 0 | 104 | 2 | 1 | 0 || dataCache_4 | DataCache | 1112 | 1110 | 2 | 0 | 251 | 0 | 6 | 0 || dBusArbiter | BmbArbiter | 135 | 135 | 0 | 0 | 20 | 0 | 0 | 0 || (dBusArbiter) | BmbArbiter | 12 | 12 | 0 | 0 | 15 | 0 | 0 | 0 || memory_arbiter | StreamArbiter | 123 | 123 | 0 | 0 | 5 | 0 | 0 | 0 || exclusiveMonitor | BmbExclusiveMonitor | 242 | 242 | 0 | 0 | 234 | 0 | 0 | 0 || (exclusiveMonitor) | BmbExclusiveMonitor | 114 | 114 | 0 | 0 | 226 | 0 | 0 | 0 || cmdArbiter | StreamArbiter_2 | 29 | 29 | 0 | 0 | 3 | 0 | 0 | 0 || exclusiveReadArbiter | StreamArbiter_1 | 100 | 100 | 0 | 0 | 5 | 0 | 0 | 0 || invalidateMonitor | BmbInvalidateMonitor | 24 | 22 | 2 | 0 | 15 | 0 | 0 | 0 || io_output_rsp_fork | StreamFork_1 | 8 | 8 | 0 | 0 | 3 | 0 | 0 | 0 || rspLogic_rspToSyncFiltred_fifo | StreamFifo | 16 | 14 | 2 | 0 | 12 | 0 | 0 | 0 || dBusDecoder | BmbDecoder | 14 | 14 | 0 | 0 | 7 | 0 | 0 | 0 || dMemBridge | BmbToLiteDram | 876 | 788 | 88 | 0 | 109 | 4 | 0 | 0 || (dMemBridge) | BmbToLiteDram | 4 | 4 | 0 | 0 | 6 | 0 | 0 | 0 || cmdContext_fifo | StreamFifo_2 | 38 | 38 | 0 | 0 | 12 | 1 | 0 | 0 || io_input_upSizer | BmbUpSizerBridge | 12 | 12 | 0 | 0 | 15 | 0 | 0 | 0 || io_input_upSizer_io_output_unburstify | BmbUnburstify | 250 | 250 | 0 | 0 | 51 | 0 | 0 | 0 || io_output_rdata_fifo | StreamFifoLowLatency_0 | 403 | 315 | 88 | 0 | 11 | 0 | 0 | 0 || streamFork_4 | StreamFork_2 | 18 | 18 | 0 | 0 | 2 | 0 | 0 | 0 || streamFork_4_io_outputs_1_thrown_fifo | StreamFifo_1 | 155 | 155 | 0 | 0 | 12 | 3 | 0 | 0 || iBusArbiter | BmbArbiter_1 | 52 | 52 | 0 | 0 | 5 | 0 | 0 | 0 || memory_arbiter | StreamArbiter_3 | 52 | 52 | 0 | 0 | 5 | 0 | 0 | 0 || iBusDecoder | BmbDecoder_1 | 7 | 7 | 0 | 0 | 6 | 0 | 0 | 0 || iBusDecoder_io_outputs_0_downSizer | BmbDownSizerBridge | 102 | 102 | 0 | 0 | 99 | 0 | 0 | 0 || iMemBridge | BmbToLiteDram_1 | 277 | 181 | 96 | 0 | 63 | 0 | 0 | 0 || (iMemBridge) | BmbToLiteDram_1 | 9 | 9 | 0 | 0 | 6 | 0 | 0 | 0 || cmdContext_fifo | StreamFifo_3 | 30 | 22 | 8 | 0 | 17 | 0 | 0 | 0 || io_input_unburstify | BmbUnburstify_1 | 127 | 127 | 0 | 0 | 29 | 0 | 0 | 0 || io_output_rdata_fifo | StreamFifoLowLatency | 115 | 27 | 88 | 0 | 11 | 0 | 0 | 0 || peripheralArbiter | BmbArbiter_2 | 541 | 541 | 0 | 0 | 3 | 0 | 0 | 0 || memory_arbiter | StreamArbiter_4 | 541 | 541 | 0 | 0 | 3 | 0 | 0 | 0 || peripheralArbiter_io_output_toWishbone | BmbToWishbone | 53 | 53 | 0 | 0 | 72 | 0 | 0 | 0 |+---------------------------------------------+-------------------------+------------+------------+---------+------+-------+--------+--------+--------------+* Note: The sum of lower-level cells may be larger than their parent cells total, due to cross-hierarchy LUT combining
Just checking,~13k LUT for the CPU core complex and roughly ~2k LUT for all the support peripherals like DDR / UART / etc?
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/10a2195d-4e88-4fb6-a966-30a66f951bdf%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-litex...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/9c04d667-5382-476f-a870-c21c072c03d8%40googlegroups.com.
I know this is just a "get something working" type stage, but a couple of random thoughts;- Looks like there is currently a lot of overhead in the dMemBridge and iMemBridge and peripheralArbiter? Could LiteX do more here around native support for native VexRISCV structures to reduce that?- Does it make sense for the cache to be shared between cores?- It seems like the caches are using a lot of LUTs? Should some of that be mapping to LUTRAMs?Keep up the super awesome work!Tim 'mithro' Ansell
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-litex/9c04d667-5382-476f-a870-c21c072c03d8%40googlegroups.com.
+---------------------------------------------+-------------------------+------------+------------+---------+------+-------+--------+--------+--------------+| Instance | Module | Total LUTs | Logic LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | DSP48 Blocks |+---------------------------------------------+-------------------------+------------+------------+---------+------+-------+--------+--------+--------------+
| top | (top) | 14869 | 14336 | 530 | 3 | 12782 | 21 | 28 | 16 || (top) | (top) | 2417 | 2270 | 144 | 3 | 1966 | 9 | 0 | 0 || VexRiscvLitexSmpCluster | VexRiscvLitexSmpCluster | 12455 | 12069 | 386 | 0 | 10816 | 12 | 28 | 16 || (VexRiscvLitexSmpCluster) | VexRiscvLitexSmpCluster | 375 | 375 | 0 | 0 | 996 | 0 | 0 | 0 || cluster | VexRiscvSmpCluster | 11236 | 11034 | 202 | 0 | 9358 | 8 | 28 | 16 || (cluster) | VexRiscvSmpCluster | 39 | 39 | 0 | 0 | 222 | 0 | 0 | 0 || cpus_0_core | VexRiscv | 2736 | 2686 | 50 | 0 | 2236 | 2 | 7 | 4 || (cpus_0_core) | VexRiscv | 2239 | 2191 | 48 | 0 | 1827 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache | 75 | 75 | 0 | 0 | 121 | 2 | 1 | 0 || dataCache_4 | DataCache__2 | 422 | 420 | 2 | 0 | 288 | 0 | 6 | 0 || cpus_1_core | VexRiscv_1 | 2677 | 2627 | 50 | 0 | 2206 | 2 | 7 | 4 || (cpus_1_core) | VexRiscv_1 | 2200 | 2152 | 48 | 0 | 1819 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache_1__2 | 58 | 58 | 0 | 0 | 100 | 2 | 1 | 0 || dataCache_4 | DataCache__3 | 419 | 417 | 2 | 0 | 287 | 0 | 6 | 0 || cpus_2_core | VexRiscv_2 | 2701 | 2651 | 50 | 0 | 2206 | 2 | 7 | 4 || (cpus_2_core) | VexRiscv_2 | 2225 | 2177 | 48 | 0 | 1819 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache_1 | 57 | 57 | 0 | 0 | 100 | 2 | 1 | 0 || dataCache_4 | DataCache | 420 | 418 | 2 | 0 | 287 | 0 | 6 | 0 || cpus_3_core | VexRiscv_3 | 2723 | 2673 | 50 | 0 | 2214 | 2 | 7 | 4 || (cpus_3_core) | VexRiscv_3 | 2246 | 2198 | 48 | 0 | 1819 | 0 | 0 | 4 || IBusCachedPlugin_cache | InstructionCache_1__1 | 58 | 58 | 0 | 0 | 100 | 2 | 1 | 0 || dataCache_4 | DataCache__1 | 421 | 419 | 2 | 0 | 295 | 0 | 6 | 0 || dBusArbiter | BmbArbiter | 109 | 109 | 0 | 0 | 20 | 0 | 0 | 0 || (dBusArbiter) | BmbArbiter | 20 | 20 | 0 | 0 | 15 | 0 | 0 | 0 || memory_arbiter | StreamArbiter | 89 | 89 | 0 | 0 | 5 | 0 | 0 | 0 || exclusiveMonitor | BmbExclusiveMonitor | 231 | 231 | 0 | 0 | 239 | 0 | 0 | 0 || (exclusiveMonitor) | BmbExclusiveMonitor | 139 | 139 | 0 | 0 | 231 | 0 | 0 | 0 || cmdArbiter | StreamArbiter_2 | 39 | 39 | 0 | 0 | 3 | 0 | 0 | 0 || exclusiveReadArbiter | StreamArbiter_1 | 53 | 53 | 0 | 0 | 5 | 0 | 0 | 0 || invalidateMonitor | BmbInvalidateMonitor | 21 | 19 | 2 | 0 | 15 | 0 | 0 | 0 || (invalidateMonitor) | BmbInvalidateMonitor | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 || io_output_rsp_fork | StreamFork_1 | 5 | 5 | 0 | 0 | 3 | 0 | 0 | 0 || rspLogic_rspToSyncFiltred_fifo | StreamFifo | 13 | 11 | 2 | 0 | 12 | 0 | 0 | 0 || dBusDecoder | BmbDecoder | 47 | 47 | 0 | 0 | 7 | 0 | 0 | 0 || dMemBridge | BmbToLiteDram | 358 | 270 | 88 | 0 | 207 | 4 | 0 | 0 || (dMemBridge) | BmbToLiteDram | 17 | 17 | 0 | 0 | 6 | 0 | 0 | 0 || cmdContext_fifo | StreamFifo_2 | 17 | 17 | 0 | 0 | 12 | 1 | 0 | 0 || io_input_upSizer | BmbUpSizerBridge | 165 | 165 | 0 | 0 | 114 | 0 | 0 | 0 || io_input_upSizer_io_output_unburstify | BmbUnburstify | 37 | 37 | 0 | 0 | 50 | 0 | 0 | 0 || io_output_rdata_fifo | StreamFifoLowLatency | 102 | 14 | 88 | 0 | 11 | 0 | 0 | 0 || streamFork_4 | StreamFork_2 | 4 | 4 | 0 | 0 | 2 | 0 | 0 | 0 || streamFork_4_io_outputs_1_thrown_fifo | StreamFifo_1 | 16 | 16 | 0 | 0 | 12 | 3 | 0 | 0 || iBusArbiter | BmbArbiter_1 | 50 | 50 | 0 | 0 | 5 | 0 | 0 | 0 || (iBusArbiter) | BmbArbiter_1 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 || memory_arbiter | StreamArbiter_3 | 48 | 48 | 0 | 0 | 5 | 0 | 0 | 0 || iBusDecoder | BmbDecoder_1 | 79 | 79 | 0 | 0 | 6 | 0 | 0 | 0 || iBusDecoder_io_outputs_0_downSizer | BmbDownSizerBridge | 70 | 70 | 0 | 0 | 99 | 0 | 0 | 0 || iMemBridge | BmbToLiteDram_1 | 163 | 67 | 96 | 0 | 63 | 0 | 0 | 0 || (iMemBridge) | BmbToLiteDram_1 | 15 | 15 | 0 | 0 | 6 | 0 | 0 | 0 || cmdContext_fifo | StreamFifo_3 | 23 | 15 | 8 | 0 | 17 | 0 | 0 | 0 || io_input_unburstify | BmbUnburstify_1 | 23 | 23 | 0 | 0 | 29 | 0 | 0 | 0 || io_output_rdata_fifo | StreamFifoLowLatency__1 | 102 | 14 | 88 | 0 | 11 | 0 | 0 | 0 || streamFork_4 | StreamFork_3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 || peripheralArbiter | BmbArbiter_2 | 65 | 65 | 0 | 0 | 3 | 0 | 0 | 0 || (peripheralArbiter) | BmbArbiter_2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 || memory_arbiter | StreamArbiter_4 | 64 | 64 | 0 | 0 | 3 | 0 | 0 | 0 || peripheralArbiter_io_output_toWishbone | BmbToWishbone | 13 | 13 | 0 | 0 | 72 | 0 | 0 | 0 |
+---------------------------------------------+-------------------------+------------+------------+---------+------+-------+--------+--------+--------------+* Note: The sum of lower-level cells may be larger than their parent cells total, due to cross-hierarchy LUT combining
Did some tests where the bandwidth is mesured. The shell is after 2.5 s.
Note those tests aren't using litedram, but are in a virtual SoC.
The noise is due to the timer ticks (i filtred the data a bit to reduce that noise)
also, in the shell, ran some commands :
At 4.5 => 3 dhrystone running in parallel
At 5 => 1 dhrystone running alone