-
Notifications
You must be signed in to change notification settings - Fork 7
Home
The wiki will contain the documentation for the riscv-multi-core-lotr IP.
The 4 main components: GPC_4T, RC, LOTR, SW-Stack
Core HAS: https://github.com/amichai-bd/riscv-multi-core-lotr/wiki/HAS-CORE-GPC_4T
Core MAS: https://github.com/amichai-bd/riscv-multi-core-lotr/wiki/MAS-CORE-GPC_4T
Writing in Systemverilog
- in a "process agnostic" way - Compliant for Simulation, FPGA, ASIC.
GPC - General Purpose Compute Unit
- 5 stage pipeline Core.
- 4 HW Threads.
- Supporting the RV32I/E ISA.
- continues local Memory for I_MEM, D_MEM and MMIO_CR
RC HAS: https://github.com/amichai-bd/riscv-multi-core-lotr/wiki/HAS-RING_CTRL-RC
RC MAS: https://github.com/amichai-bd/riscv-multi-core-lotr/wiki/MAS-RING_CTRL-RC
Writing in SystemVerilog
- in a "process agnostic" way.
- Move data from cores to the Fabric (Ring)
- Move data from the Fabric (Ring) to the cores.
- Handle ordering, coherency, starvation, deadlocks.
LOTR HAS: https://github.com/amichai-bd/riscv-multi-core-lotr/wiki/HAS-FABRIC-LOTR
The LOTR is the 'Fabric' - the "top-level" of the design.
- Connects and pairs each 'core' to an 'RC' (ring controller) - LOTR_TILE.
- Instantiates the LOTR_TILE (core&rc) in the fabric and connects all the TILE RC to each other in a ring architecture.
Writing in C, Compiled using the riscv toolchain using the RV32I/E ISA (instruction set)
- Mainly to support the multithreaded core architecture, move data between cores.
- Handle Coherency, Deadlocks & Starvations.