Commit Graph

903 Commits

Author SHA1 Message Date
Marcus Comstedt c489143442 Add support for big endian byte ordering 2020-08-30 15:17:09 +02:00
Dolu1990 7dcaa0c390 VexRiscvSmpCluster now avoid useless decoder for plic/clint 2020-08-13 11:26:11 +02:00
Dolu1990 69d5ba239a Smp config now initialise regfile using logic 2020-07-28 16:15:17 +02:00
Dolu1990 cc423cbe49 Litex cluster add DMA sel feature 2020-07-21 19:42:27 +02:00
Dolu1990 15bda15bc9 Litex cluster can now set cache layout 2020-07-21 19:35:56 +02:00
Dolu1990 9f62f37538 improve LitexCluster area for single core configuration 2020-07-21 15:45:02 +02:00
Dolu1990 da666ade49 Add VexRiscvLitexSmpClusterCmdGen 2020-07-21 15:07:32 +02:00
Dolu1990 fe5401f835 BmbGenerators refractoring (bus -> ctrl) 2020-07-16 13:04:25 +02:00
Dolu1990 da73317912 Cleanup BmbGenerators 2020-07-15 20:51:46 +02:00
Dolu1990 5f0aec7570 BmbInterconnectGenerator refractoring 2020-07-15 17:03:05 +02:00
Dolu1990 d0a572de98 Add openroad config 2020-07-08 01:37:10 +02:00
Dolu1990 32f778613f DBusCachedPlugin now support asyncTagMemory 2020-07-08 01:36:58 +02:00
Dolu1990 60ee7e2b4c Better VexRiscvSmpCluster config 2020-07-08 01:36:40 +02:00
Dolu1990 51070d0e69 Fix MmuPlugin when used in multi stage config 2020-07-05 13:17:39 +02:00
Dolu1990 06584518da Remove CsrPlugin redoInterface combinatorial depedency from execut_isStuck 2020-07-05 13:17:07 +02:00
Dolu1990 a404078117 Few fixes 2020-07-05 13:16:39 +02:00
Dolu1990 c51e25f8c4 Litex SoC add coherent DMA master 2020-07-05 13:15:44 +02:00
Dolu1990 32539dfe6d Got VexRiscvSmpLitexCluster refractoring to work 2020-06-30 22:29:33 +02:00
Dolu1990 0da94ac66f Bring back smp cluster parameters 2020-06-29 15:49:01 +02:00
Dolu1990 062509deee Update Bmb brides and comment out SmpCluster for now 2020-06-29 11:44:10 +02:00
Dolu1990 c12f9a378d Fix inv regression 2020-06-20 13:18:46 +02:00
Dolu1990 f0f2cf61da D$ inv/ack are now fragment, which ease serialisation of wider invalidations 2020-06-19 15:57:56 +02:00
Dolu1990 c18bc12cb2 Fix DebugPlugin.fromBmb 2020-06-19 15:57:21 +02:00
Dolu1990 490c1f6b02 cleanup of old todo 2020-06-19 15:56:45 +02:00
Dolu1990 b0cd88c462 SmpCluster now with proper jtag and plic 2020-06-12 16:18:41 +02:00
Dolu1990 cb5597818d Fix d$ generation crash 2020-06-07 11:29:07 +02:00
Dolu1990 1f9fce6388 Fix d$ uncached writes exception handeling 2020-06-06 22:12:37 +02:00
Dolu1990 760d2f74d0 Update litex cluster to implement utime 2020-06-05 13:31:24 +02:00
Dolu1990 d6455817e7 smp cluster now have 2w*4KB of d$ , no more rdtime emulation 2020-06-05 10:43:03 +02:00
Dolu1990 71760ea372 CsrPlugin now support utime csr to avoid emulation 2020-06-05 10:43:03 +02:00
Dolu1990 3dafe8708b Cfu update 2020-06-05 10:43:03 +02:00
Dolu1990 0668046407 More smp cluster profiling 2020-06-05 10:40:51 +02:00
Dolu1990 97c2dc270c Fix typo 2020-06-04 10:11:30 +02:00
Dolu1990 89c13bedbd Fix litex smp cluster sim 2020-06-03 16:31:54 +02:00
Dolu1990 73f88e47cb Fix BmbToLitexDram coherency 2020-06-03 16:31:54 +02:00
Dolu1990 db50f04653 Add litexMpCluster 2020-06-03 16:31:54 +02:00
Dolu1990 08189ee907 DebugPlugin now support Bmb 2020-06-02 19:13:55 +02:00
Dolu1990 2942d0652a fix Briey verilator 2020-06-01 11:18:25 +02:00
Dolu1990 5e5c730959 Add LitexSmpDevCluster with per cpu dedicated litedram ports 2020-05-29 10:56:55 +02:00
Dolu1990 bc4a2c3747 Fix SmpCluster jtag 2020-05-27 14:19:37 +02:00
Dolu1990 18cce053a3 Improve SingleInstructionLimiterPlugin to also include fetch stages 2020-05-27 14:19:17 +02:00
Dolu1990 a64fd9cf3b Add CsrPlugin external hartid
d$ rsp/sync now decrement pendings by signal amount
2020-05-20 13:49:10 +02:00
Tom Verbeure b901651ab5 Add default value of NONE to uinstret CSR. 2020-05-19 14:48:35 -07:00
Tom Verbeure c74b03b4de Add uinstret support. 2020-05-19 13:40:46 -07:00
Dolu1990 cf60989ae1 Litex smp cluster now blackboxify d$ data ram 2020-05-14 00:05:54 +02:00
Dolu1990 42fef8bbcd Smp cluster now use i$ reduceBankWidth 2020-05-12 23:59:38 +02:00
Dolu1990 685c914227 Add i$ reduceBankWidth to take advantage of multi way by remaping the data location to reduce on chip ram data width 2020-05-12 23:59:38 +02:00
Dolu1990 0471c7ad76 Fix machineCsr test 2020-05-12 23:55:47 +02:00
Dolu1990 cb44a474fc more smp cluster profiling 2020-05-12 13:25:55 +02:00
Dolu1990 63511b19a2 smp cluster add more profiling 2020-05-11 10:35:24 +02:00
Charles Papon b592b0bff8 Add regression TRACE_SPORADIC, LINUX_SOC_SMP
regression golden model now properly sync dut exceptions
2020-05-09 17:00:13 +02:00
Dolu1990 0a159f06b2 update smp config 2020-05-07 22:50:36 +02:00
Dolu1990 0e76cf9ac8 i$ now support multi cycle MMU 2020-05-07 22:50:25 +02:00
Dolu1990 41ee8fd226 MmuPlugin now support multiple stages, D$ can now take advantage of that 2020-05-07 13:37:53 +02:00
Dolu1990 8e025aeeaa more litex smp cluster pipelining 2020-05-07 13:18:11 +02:00
Dolu1990 fc0f3a2020 cleanup mmu interface 2020-05-06 18:05:20 +02:00
Dolu1990 6323caf265 MMU now allow $ to match tag against tlb pyhsical values directly
D$ retiming
D$ directTlbHit feature added for better timings
2020-05-06 17:09:46 +02:00
Dolu1990 ed4a89e4af more pipelineing in Litex SMP cluster interconnect 2020-05-06 17:06:45 +02:00
Dolu1990 8043feebd5 More VexRiscv smp cluster probes 2020-05-06 17:06:17 +02:00
Dolu1990 09724e907b play around with CSR synthesis impact on design size 2020-05-05 00:32:59 +02:00
Dolu1990 c16f2ed787 Add probes in SmpCluster sim 2020-05-04 12:54:28 +02:00
Dolu1990 b0f7f37ac8 D$ now support memDataWidth > 32 2020-05-04 12:54:16 +02:00
Dolu1990 93b386e16e litex smp cluster now use OO decoder 2020-05-02 23:44:58 +02:00
Dolu1990 f0745eb0d9 update SMP line size to 64 bytes 2020-05-02 23:44:27 +02:00
Dolu1990 09ac23b78f Fix SMP fence lock when 4 stages CPU 2020-05-01 12:45:16 +02:00
Dolu1990 f5f30615ba Got litex SMP cluster to work on FPGA 2020-05-01 11:14:52 +02:00
Dolu1990 dc0da9662a Update SMP fence (final) 2020-05-01 11:14:11 +02:00
Dolu1990 7c50fa6d55 SmpCluster now use i$ line of 64 bytes 2020-04-29 14:03:00 +02:00
Dolu1990 9e9d28bfa6 d$ now implement consistancy hazard by using writeback redo 2020-04-29 14:02:41 +02:00
Dolu1990 86e0cbc1f3 I$ with memDataWidth > cpuDataWidth now mux memWords into cpuWords before the decode stage by default. Add twoCycleRamInnerMux option to move that to the decode stage 2020-04-29 13:59:43 +02:00
Dolu1990 7b80e1fc30 Set SMP workspace to use i$ memDataWidth of 128 bits 2020-04-28 22:11:41 +02:00
Dolu1990 eee9927baf IBusCachedPlugin now support memory data width multiple of 32 2020-04-28 22:10:56 +02:00
Dolu1990 03a0445775 Fix SMP for configuration without writeback stage.
Include SMP core into the single core tests regressions
2020-04-28 15:50:20 +02:00
Dolu1990 4a49b23636 Fix regression 2020-04-28 14:38:27 +02:00
Dolu1990 3ba509931c Add VexRiscvSmpLitexCluster with the required pipelining to get proper FMax 2020-04-27 17:38:06 +02:00
Dolu1990 5fd0b220cd CsrPlugin add openSbi config 2020-04-27 17:37:30 +02:00
Dolu1990 0c59dd9ed3 SMP fence now ensure ordering for all kinds of memory transfers 2020-04-27 17:37:15 +02:00
Dolu1990 3fb123a64a fix withStall 2020-04-21 21:20:54 +02:00
Dolu1990 3885e52bb7 Merge remote-tracking branch 'origin/dev' into smp 2020-04-21 17:21:48 +02:00
Dolu1990 056bf63866 Add more consistancy tests 2020-04-21 16:03:03 +02:00
Dolu1990 b389878d23 Add smp consistency check, fix VexRiscv invalidation read during write hazard logic 2020-04-21 12:18:10 +02:00
Dolu1990 0e55caacab deduplicae VexRiscv wishbone 2020-04-21 10:33:51 +02:00
Dolu1990 b383b4b98b Add commented usage of fromXilinxBscane2 2020-04-20 12:13:12 +02:00
Dolu1990 8e8b64feaa Got full linux / buildroot to boot in 4 cpu config 2020-04-19 19:49:26 +02:00
Dolu1990 a1b6353d6b workaround AMO LR/SC consistancy issue, but that need a proper fix 2020-04-19 19:48:57 +02:00
Dolu1990 ad2d2e411a Add tap less debug plugin bridges 2020-04-19 17:56:33 +02:00
Dolu1990 af128ec9eb revert to 4 cpu 2020-04-18 01:27:35 +02:00
Dolu1990 4a49e6d91f initialize the clint in sim 2020-04-18 01:26:31 +02:00
Dolu1990 befecc7ed6 cleaning 2020-04-18 00:51:57 +02:00
Dolu1990 8c0e534c6b Add openSBI test, seem to work fine 2020-04-18 00:51:47 +02:00
Dolu1990 d5a52caab8 fix smp test barrier 2020-04-16 17:27:27 +02:00
Dolu1990 d88d04dbc4 More SMP tests (barrier via AMO and LRSC) 2020-04-16 15:23:25 +02:00
Dolu1990 fd52f9ba50 Add smp.bin 2020-04-16 02:22:18 +02:00
Dolu1990 73c21177e5 Add VexRiscvSmpCluster, seem to work on simple case 2020-04-16 01:30:03 +02:00
Dolu1990 b9ceabf128 few fixes 2020-04-16 01:29:13 +02:00
Dolu1990 46207abbc4 dataCache now implement invalidation sync 2020-04-16 01:28:38 +02:00
Dolu1990 a00605b10c fix Briey verilator 2020-04-13 13:01:12 +02:00
Dolu1990 467a2bc488 refactor DBus invalidation, and add invalidation enable 2020-04-11 19:06:22 +02:00
Dolu1990 abbfaf6bcf regression : restore normal invalidation setup 2020-04-10 18:58:03 +02:00
Dolu1990 4a9b8c1f72 improve invalidation read during write hazard logic 2020-04-10 14:44:28 +02:00
Dolu1990 0ad0f5ed3f Add d$ invalidation tests
fix d$ invalidation, linux OK
2020-04-10 14:28:16 +02:00
Dolu1990 f71f360e32 Add SMP synthesis 2020-04-10 14:27:39 +02:00
Dolu1990 296cb44bc4 Add hardware AMO support using LR/SC exclusive 2020-04-09 20:12:37 +02:00
Dolu1990 1d0e180e1d Add GenTwoStage config and UltraScale synthesis 2020-04-09 20:11:56 +02:00
Dolu1990 861df664cf clean some AMO stuff 2020-04-08 18:48:01 +02:00
Dolu1990 6922f80a87 DataCache now implement fence operations 2020-04-08 18:12:13 +02:00
Dolu1990 9e1817a280 fix DataCache for config without invalidation 2020-04-07 20:05:24 +02:00
Dolu1990 0c8ea4a368 DataCache add invalidation feature 2020-04-07 19:18:20 +02:00
Dolu1990 1ef099e308 Merge branch 'dev' into smp 2020-04-07 12:29:58 +02:00
Dolu1990 f20eb4d541 Merge pull request #115 from antmicro/fix_emulator
emulator: Use external hw/common.h from LiteX
2020-04-07 12:29:40 +02:00
Dolu1990 ddc59bc404 Fix DebugPlugin step by step 2020-04-07 12:27:52 +02:00
Dolu1990 5aa0b86d96 Fix DebugPlugin step by step 2020-04-07 12:13:40 +02:00
Dolu1990 a52b833727 fix weird regression testbench memory bug 2020-04-06 21:42:44 +02:00
Dolu1990 a107e45116 fix non smp regression 2020-04-06 06:43:28 +02:00
Dolu1990 ca72a421be LrSc align software model to the hardware. Linux OK 2020-04-05 21:45:45 +02:00
Dolu1990 2eec18de65 LrSc SMP, linux crash in userspace 2020-04-05 16:28:46 +02:00
Dolu1990 f2ef8e95ab Implement external LrSc 2020-04-05 11:38:57 +02:00
Dolu1990 ff074459ad Fix LrSc for configs without mmu 2020-04-04 22:54:35 +02:00
Dolu1990 c9bbf0d12a update LrSc reservation logic to match the spec 2020-04-04 21:21:35 +02:00
Dolu1990 2dac7dae32 Fix BranchPlugin.jumpInterface priority to avoid conflicts with other instructions on DYNAMIC_TARGET missprediction 2020-03-28 14:36:06 +01:00
Dolu1990 b3215e8beb Make things generated in a deterministic order 2020-03-24 13:11:07 +01:00
Dolu1990 97258c214a
Merge pull request #115 from antmicro/fix_emulator
emulator: Use external hw/common.h from LiteX
2020-03-18 12:02:27 +01:00
Dolu1990 defe3c5558 DataCache relax flush timings 2020-03-08 12:35:24 +01:00
Dolu1990 97db4f02a0 Merge branch 'rework_fetch' into dev 2020-03-07 18:22:46 +01:00
Dolu1990 44005ebf31 update Synthesis results 2020-03-07 18:22:01 +01:00
Charles Papon 58af94269e add CsrPlugin.csrOhDecoder 2020-03-05 00:13:04 +01:00
Charles Papon 505d0b700a MulDivPlugin now give names to div stages 2020-03-04 19:58:54 +01:00
Dolu1990 0a212c91fd update synthesisBench paths 2020-03-04 18:13:56 +01:00
Dolu1990 ff5cfc0dde Fix DebugPlugin step 2020-03-03 18:27:53 +01:00
Dolu1990 12463e40a4 improve debugPlugin step logic 2020-03-03 15:59:30 +01:00
Dolu1990 ef5398ce21 Fix #117 DataCache mem blackboxing 2020-03-02 14:24:27 +01:00
Dolu1990 54581f6d9e Fix #117 DataCache mem blackboxing 2020-03-02 14:23:59 +01:00
Dolu1990 78d4660282 Merge branch 'dev' into rework_fetch
# Conflicts:
#	src/test/scala/vexriscv/TestIndividualFeatures.scala
2020-03-01 22:58:25 +01:00
Dolu1990 ea5464ea26 TestIndividualFeatures is now multithreaded 2020-03-01 21:40:53 +01:00
Dolu1990 559260020b Improve testing infrastructure with more options and better readme
https://github.com/litex-hub/linux-on-litex-vexriscv/issues/112
2020-03-01 13:02:08 +01:00
Charles Papon 25d880f6c7 Fix synthesis bench 2020-02-28 18:20:08 +01:00
Charles Papon c94d8f1c6c Fetcher and IBusSimplePlugin flush reworked 2020-02-28 17:23:44 +01:00
Charles Papon 492310e6fa DBusCachedPlugin fix noWriteBack redo priority 2020-02-28 17:21:59 +01:00
Charles Papon 76d063f20a Fix MulPlugin keep attribute 2020-02-24 22:43:08 +01:00
Mateusz Holenko f88b259eba emulator: Use external hw/common.h from LiteX
Remove code copied from `hw/common.h` and use
the header from the LiteX repository provided
using `LITEX_BASE` environment variable.

Content of `common.h` is now evolving (new functions
are added, some are removed) and syncing it
between repos would be cumbersome.
2020-02-24 14:27:45 +01:00
Charles Papon 485b4a5838 Improve maxPerf configs 2020-02-23 23:52:43 +01:00
Charles Papon fad09e805f Add Fetcher.predictionBuffer option to pipeline BRANCH_TARGET, higher FMax, about 1 ns critical path gain on Arty7 => 5 ns 2020-02-23 23:18:27 +01:00
Charles Papon 67d2071a32 typo 2020-02-23 23:17:02 +01:00
Charles Papon c8016e90a4 MulPlugin now add KEEP attribute on RS1 and RS2 to force Vivado to not retime it with the DSP 2020-02-23 20:25:31 +01:00
Charles Papon 01e5112680 Fetcher RVC ensure redo keep PC(1)
Fix BranchTarget RVC inibition
2020-02-23 10:44:44 +01:00
Charles Papon 5ea0b57d1b Fix BRANCH_TARGET with RVC patch 2020-02-22 11:53:47 +01:00
Charles Papon 41008551c1 CsrPlugin redo interface do not need next pc calculation 2020-02-21 20:01:35 +01:00
Charles Papon 4ad1215873 Fix iBusSimplePlugin MMU integration 2020-02-21 13:28:42 +01:00
Charles Papon befc54a444 No more Fetcher flush() API as it can now be done via the decoder.flushNext 2020-02-21 13:28:29 +01:00
Charles Papon 32fade50e5 Fix fetcher decompressor when driving decode stage 2020-02-21 02:03:29 +01:00