Commit Graph

1162 Commits

Author SHA1 Message Date
Dolu1990 4cd3f65296 Add official RISC-V debug support (WIP, but can already load / step / run code via openocd telnet) 2022-10-19 12:36:45 +02:00
Dolu1990 959e48a353 Fpu now set csr status fs on FPU csr write 2022-10-06 11:13:57 +02:00
Dolu1990 fda7da00c2 add litex --wishbone-force-32b 2022-09-06 11:19:29 +02:00
Dolu1990 54412bde30 getDrivingReg() update 2022-07-21 09:10:26 +02:00
Dolu1990 b1252f47de csr opensbi now enable ebreak 2022-06-13 16:34:49 +02:00
Dolu1990 1303c0ca7c CfuPlugin.withEnable added 2022-06-09 17:57:31 +02:00
Dolu1990 0f6d0f022c VexRiscvBmbGenerator now also report bytesPerLine 2022-05-24 12:37:31 +02:00
Dolu1990 e6dfcac0be Add D$ single line flush support 2022-05-24 12:13:37 +02:00
Dolu1990 4c4913c703 Fix MPP to only retain legal values 2022-05-24 11:14:34 +02:00
Dolu1990 209fc719e8 VexRiscvBmbGenerator export more info 2022-05-24 10:19:35 +02:00
Dolu1990 48cf4120f2 Add VexRiscvSmpCluster forceMisa/forceMscratch 2022-05-23 15:49:32 +02:00
Dolu1990 0872852387 Fix DYNAMIC_TARGET / debug plugin interation corrupting the recoded next pc durring step by step #254 2022-05-17 20:44:17 +02:00
Dolu1990 a553d3b476 Fix DYNAMIC_TARGET from triggering fetch missprediction while in debug mode #254 2022-05-17 15:27:50 +02:00
Dolu1990 78f0a7f13e Fix CfuPlugin/VfuPlugin fork duplication
https://github.com/google/CFU-Playground/issues/582
2022-05-16 10:36:21 +02:00
Dolu1990 8df2dcbd40 Fix RVC step by step triggering next instruction branch predictor 2022-05-11 14:10:32 +02:00
Daniel Schultz ea7a18c7f4 plugin: caches: Fix "Can't resolve the literal value of"
Both registers were initialized with unsigned integers without a value.
This triggered:

[error] Exception in thread "main" spinal.core.SpinalExit:
[error]  Can't resolve the literal value of (..._rspCounter :  UInt[32 bits])

Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
2022-04-20 11:19:34 +02:00
Dolu1990 3b8270b82b #241 Fix Murax/Briey TB timeouts 2022-04-11 11:59:41 +02:00
Dolu1990 db34033593 #240 Code generation now warn against cpu generation without illegal instruction catch and ebreak being disabled, as it may make crash some software, ex : rust 2022-04-08 11:09:14 +02:00
Andreas Wallner 2d2017465e Fix reset vector of GenCustomSimdAdd
With the old reset vector half of the tests fail since
they expect the CPU to start at 0x80000000.
(e.g. I-IO, I-NOP, I-LUI, etc.)
2022-04-03 02:55:42 +02:00
Dolu1990 ccff48f872 deprecated Data.keep 2022-03-30 16:17:57 +02:00
Dolu1990 4bddb091ae Update CFU example 2022-03-23 18:58:18 +01:00
Dolu1990 5dc91a8be4 Add MuraxCfu 2022-03-23 18:54:18 +01:00
Dolu1990 b2e61caf9e CfuPlugin now implement upstream spec 2022-03-23 18:54:07 +01:00
Dolu1990 9149c42065 DecoderPlugin now implement forceIllegal API 2022-03-23 18:53:43 +01:00
Dolu1990 51b8865b66 Fix VexRiscvSmpClusterGen linux less mhartid 2022-03-18 12:36:05 +01:00
Dolu1990 e558b79582 Fix Briey simulation floating rxd blocking the uart #238 2022-02-22 16:15:14 +01:00
Daniel Schultz 807aa98d37 plugin: DBusSimplePlugin: Remove assert
This assert triggered sometimes at the beginning of a simulation.
Since it's not really needed anymore, we can remove it.

Signed-off-by: Daniel Schultz <daniel.schultz@aesc-silicon.de>
2022-02-10 19:55:08 +01:00
Dolu1990 5714680278 Merge branch 'master' into dev
# Conflicts:
#	build.sbt
2022-02-05 11:32:40 +01:00
Dolu1990 8b2f107d46 verilator++ 2022-02-04 15:10:57 +01:00
Daniel Schultz 57dd80a566 plugin: CsrPlugin: Init cycle and instret registers
Both counters are initialized with "randBoot()". This is fine for FPGA
designs because the registers can be loaded with default values but
ASIC designs require to load the value during a reset.

Since both counters require to start at 0 (read-only CSR registers),
change both registers from "randBoot()" to "init(0)".

Error:

    reg        [63:0]   CsrPlugin_mcycle = 64'b0000000...00000000000;

           |
  Warning : Ignoring unsynthesizable construct. [VLOGPT-37]

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2022-01-26 08:59:03 +01:00
Dolu1990 9c34a1fd2e updated related to JtagInstructionWrapper.ignoreWidth 2022-01-14 09:59:24 +01:00
Dolu1990 b8e904e43f syncronize golden model with dut for lrsc reservation 2022-01-10 19:55:28 +01:00
Dolu1990 6e77f32087 sim golden model lrsc reservation sync 2022-01-10 16:08:38 +01:00
Dolu1990 da53de360f Fix lrsc from last commit 2022-01-10 14:21:20 +01:00
Dolu1990 f46ad43f39
DataCache.withInternalLrSc reserved clearing fix 2022-01-10 13:39:41 +01:00
Oscar Shiang fe6c391fe4 Fix typo in Linux.scala
Correct "machime" to "machine".
2022-01-04 16:31:23 +08:00
Dolu1990 34e5cafb75 Enable scala 2.13 compatibility 2021-12-20 09:38:35 +01:00
Dolu1990 4824827b7e Enable scala 2.13 compatibility 2021-12-20 09:38:02 +01:00
Dolu1990 dd12047aa7 Merge branch dev (SpinalHDL 1.6.1) 2021-12-15 09:22:46 +01:00
B.Lang 411d946a58
Update DebugPlugin.scala
Add readback of the hardware breakpoint values.
A new parameter is added to the plugin to switch readback on and off.
2021-11-11 12:12:23 +01:00
Dolu1990 acf14385d8 #213 disable pmp test with region overlapping 2021-10-22 17:24:51 +02:00
occheung a3807660e3 pmp perm: revert to mux for priority 2021-10-19 11:40:39 +08:00
occheung df03c99ab2 pmp_setter: fix mask generation 2021-10-19 11:39:25 +08:00
Dolu1990 c3c3a94c5d IBusSimplePlugin can now use a Vec based buffer 2021-10-13 16:26:16 +02:00
Dolu1990 97a3c1955b VexRiscvSmpCluster add d$ i$ less arg 2021-10-11 11:57:39 +02:00
Dolu1990 35754a0709 Fix BrieySim (SpinalSim) 2021-09-25 13:28:37 +02:00
Dolu1990 8c0fbcadac Add BrieySim (SpinalSim) 2021-09-25 13:18:55 +02:00
Dolu1990 5f5f4afbf2 Briey revert RVC unwanted addition 2021-09-22 15:01:08 +02:00
Dolu1990 b807254759 Briey and Murax verilators now use FST instead of VCD 2021-09-22 12:57:27 +02:00
Dolu1990 65cda95176 Fix wishbone bridges with datawidth > 32 2021-09-17 09:43:30 +02:00
Dolu1990 c1481ae244 update ScopeProperty usages 2021-09-16 19:08:41 +02:00
Dolu1990 42bb1ab591 d$ / i$ toWishbone bridges can now be bigger than 32 bits
https://github.com/m-labs/VexRiscv-verilog/pull/12
2021-09-15 11:36:51 +02:00
Dolu1990 68e704f309 restore avalon d$ tests 2021-09-02 15:42:33 +02:00
Dolu1990 efd3cd4737 Merge branch 'master' into dev 2021-09-02 14:16:07 +02:00
Dolu1990 cc9f3e753a Fix d$ toAxi bridge 2021-09-02 14:14:42 +02:00
Dolu1990 bc561c30eb Add PmpPluginOld (support TOR) 2021-09-01 11:27:12 +02:00
Dolu1990 5c7e4a0294 #170 wishbone example now set dBusCmdMasterPipe 2021-08-24 23:24:29 +02:00
Dolu1990 3deeab42fd VexRiscvSmpCluster config fix 2021-08-10 12:14:42 +02:00
Dolu1990 805bd56077 Fix VexRiscvBmbGenerator.hardwareBreakpointCount default value 2021-07-30 16:51:07 +02:00
Dolu1990 671bd30953 Update Bmb invalidate/sync parameters 2021-07-28 13:44:04 +02:00
Dolu1990 ba8f5f966a Vfu typo 2021-07-26 15:27:20 +02:00
Dolu1990 b717f228d6 VfuPlugin wip 2021-07-26 15:17:06 +02:00
Dolu1990 c242744d02 CfuPlugin now only fork when the rest of the pipeline is hazard free 2021-07-26 14:45:54 +02:00
Dolu1990 f3f9b79f9a VexRiscvSmpCluster earlyShifterInjection added 2021-07-21 18:34:57 +02:00
Dolu1990 5fc4125763 Merge branch 'dev' 2021-07-20 11:21:11 +02:00
Dolu1990 3028c19389 Fix #191 (data cache toAxi bridge) 2021-07-20 11:20:53 +02:00
Dolu1990 5f2fcc7d0f Merge branch 'dev'
(SpinalHDL 1.6.0)
2021-07-20 10:39:09 +02:00
Dolu1990 0cdad37fff VexRiscvSmpClusterGen now implement ebreak 2021-07-11 21:55:33 +02:00
Dolu1990 c79357d1b2 VexRiscvSmpClusterGen no support atomic less configs 2021-07-05 12:38:54 +02:00
Dolu1990 a380c3a36c Merge branch 'spinal_1.4.4' into dev 2021-07-05 11:37:53 +02:00
Dolu1990 551e76d244 VexRiscvSmpCluster add a few options 2021-07-02 19:04:30 +02:00
Dolu1990 df7ac05db9 Update 2.13 compatibility 2021-06-23 11:48:38 +02:00
Dolu1990 d67fe72de9 Merge branch 'dev'
# Conflicts:
#	build.sbt
#	src/test/cpp/regression/main.cpp
2021-06-15 15:54:13 +02:00
Dolu1990 1497001ebd Update FpuTest with the new rs1/rs2 store mapping 2021-06-09 13:37:31 +02:00
Dolu1990 1ee45eeb0a More named signals 2021-06-09 11:27:18 +02:00
Dolu1990 0e89ebeced Improve FPU rs1 timings 2021-06-09 11:26:58 +02:00
Dolu1990 e1e1be5797 exception code can now be bigger than 4 bits 2021-06-08 12:19:08 +02:00
Dolu1990 646911a373 Fix pmp write when there is hazard due to the register file. 2021-06-07 17:30:47 +02:00
Dolu1990 87f100dac1
Merge pull request #174 from lindemer/new_pmp
New PMP plugin optimized for FPGAs
2021-06-03 20:16:34 +02:00
Samuel Lindemer 156a84e76f Fix PMP FSM halting logic 2021-06-03 13:12:55 +02:00
Samuel Lindemer 342b06128f Combine all the PMP logic into one FSM 2021-06-02 17:12:10 +02:00
Samuel Lindemer 2a4ca0b249 PMP CSR writes occur in execute stage 2021-06-02 16:01:30 +02:00
Dolu1990 0272d66971 Fix CsrPlugin.redoInterface priority 2021-05-28 16:20:43 +02:00
Samuel Lindemer 3a4ab7ad51 Un-pend PMP CSR writes on pipeline flushes 2021-05-28 16:17:19 +02:00
Samuel Lindemer d49f8d1b58
Merge branch 'dev' into new_pmp 2021-05-28 13:56:15 +02:00
Samuel Lindemer 24a534acff All tests passing on new PMP plugin 2021-05-28 13:54:55 +02:00
Dolu1990 4490254d3d Csr/Mmu ensure implement that SFENCE_VMA flush the next instructions
SAT flush reworked a bit too
2021-05-28 13:35:52 +02:00
Samuel Lindemer 4a2dc0ff5f Fix granularity control 2021-05-27 15:50:45 +02:00
Samuel Lindemer 6471014131 Simplify pmpcfg encoding 2021-05-27 14:34:51 +02:00
Dolu1990 4b0763b43d CsrPlugin.csrMapping now give names to inner signals 2021-05-27 10:40:55 +02:00
Samuel Lindemer a5f66623b7 Add an "allow" property to individual CSRs 2021-05-26 16:34:51 +02:00
Samuel Lindemer 61f68f0729 Refactor for new CSR API (PMP reads still broken) 2021-05-26 15:29:27 +02:00
Dolu1990 6066d8bc26 CsrPlugin add API to implement CSR in a decoupled way. (very low level api) #174 2021-05-26 11:44:46 +02:00
Dolu1990 72328e7bc4 Arty now has RVC enabled ! 2021-05-25 15:59:02 +02:00
Alexis Marquet 8122cc9b5e fixed priority of == & != as seemed logical to get less warnings when building 2021-05-17 18:51:33 +02:00
Dolu1990 1c3b9e93a2
Merge pull request #182 from rdolbeau/extra_config
Make the [ID]TLB size configurable from Litex
2021-05-12 13:54:27 +02:00
Dolu1990 fe739b907a Bench DecoderPlugin 2021-05-10 10:47:15 +02:00
Romain Dolbeau 1bd33a369e Make the [ID]TLB size configurable from Litex 2021-05-08 07:59:34 -04:00
Dolu1990 e78c0546a0 fix #178 2021-05-04 21:09:42 +02:00
Dolu1990 fa2899a1a2 Merge branch 'debugPlugin' into dev 2021-04-26 11:11:38 +02:00
Dolu1990 45e67ccf56 sync 2021-04-26 11:10:55 +02:00
Dolu1990 0a0998fcea #176 fix typo 2021-04-22 14:02:46 +02:00
Dolu1990 32e4ea406f update #176 when DebugPlugin ebreak are enabled it disable CsrPlugin ebreak. Also, DebugPlugin ebreak can be disabled via the debug bus. 2021-04-22 13:59:33 +02:00
Dolu1990 bfe65da1eb implement #176 DebugPlugin.allowEBreak is now disabled until the debug bus is used. 2021-04-20 23:23:18 +02:00
Samuel Lindemer 79bc09e69a Decouple PMP and CSR plugins 2021-04-13 08:35:07 +02:00
Samuel Lindemer 15137742fc
Merge branch 'dev' into new_pmp 2021-04-12 13:23:10 +02:00
Samuel Lindemer b41db0af93 Prevent PMP access from U-mode, fix tests 2021-04-12 13:20:15 +02:00
Samuel Lindemer bf399cc927 Initial commit of optimized PMP plugin 2021-04-12 13:20:15 +02:00
Tim Callahan 36c896f95b Update CFU immed field to use sext([31:24]) to match spec.
Signed-off-by: Tim Callahan <tcal@google.com>
2021-04-02 13:16:53 -07:00
Dolu1990 66f5c3079b CfuPlugin names fixes 2021-04-02 12:50:21 -07:00
Dolu1990 73893ce5d9 CfuPlugin names fixes 2021-04-02 09:20:26 +02:00
Dolu1990 a42c089119 IBusSimplePlugin ensure AHB persistance 2021-03-31 19:03:38 +02:00
Dolu1990 9ac6625ef3 FpuCore improve FMA rounding 2021-03-29 16:31:18 +02:00
Dolu1990 9462496386 Add rvc support and fix rvc with FPU 2021-03-25 14:14:19 +01:00
Dolu1990 6f481f51ef Fetcher.decompressor ensure that the decoded instruction do not mutate when the pipeline is stalled (fix FPU cmd fork for rvc without injector stage) 2021-03-25 14:13:12 +01:00
Dolu1990 21c91c6b70 fpu now lift wfi 2021-03-24 16:21:37 +01:00
Dolu1990 925edd160e RVC implement RVF RVD
Rework RVC_GEN
2021-03-24 12:04:27 +01:00
Romain Dolbeau 8495fe3dde Attempt at supporting C (ompressed) and F/D (floating-point) together 2021-03-24 11:07:09 +01:00
Dolu1990 da458dea7e litex cluster add cpuPerFpu option 2021-03-23 20:00:50 +01:00
Dolu1990 80f64f0f9f litex better pipelining for better fmax, create one FPU for each 4 cores 2021-03-18 11:10:22 +01:00
Dolu1990 6956db2b21 fpu add schedulerM2sPipe optino 2021-03-18 11:10:22 +01:00
Dolu1990 099dea743b fpu cleanup 2021-03-18 10:54:51 +01:00
Dolu1990 f6e620196d litex add fpu suport 2021-03-17 13:19:41 +01:00
Dolu1990 e23687c45d Handle ClockDomain improvements 2021-03-16 14:46:30 +01:00
Dolu1990 02c572b6f1 fpu improve FMax and add asyncronus regfile support 2021-03-16 14:45:59 +01:00
Dolu1990 5aa1f2e996 fpu improve pipline cycles 2021-03-15 17:27:14 +01:00
Dolu1990 341c159d06 data cache relax assert into error 2021-03-15 14:43:22 +01:00
Dolu1990 3a34b8dae2 Merge branch 'dev' into fiber
# Conflicts:
#	src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala
#	src/main/scala/vexriscv/plugin/MulPlugin.scala
2021-03-15 10:35:02 +01:00
Charles Papon ff4e5e4666 wipe generator 2021-03-11 18:02:02 +01:00
Charles Papon adc37b269c FpuPlugin.pending is now 6 bits 2021-03-11 13:06:50 +01:00
Charles Papon 845cfcb966 DebugPlugin.fromBscane2 added 2021-03-10 20:35:44 +01:00
Charles Papon 67d2f72a4b fiber sync 2021-03-07 20:43:02 +01:00
Dolu1990 e384bfe145 fiber update 2021-03-05 22:04:20 +01:00
Dolu1990 fd234bbf9e fix cfu gen error 2021-03-05 09:41:05 +01:00
Dolu1990 aee8841438 CFU ensure that CFU_IN_FLIGHT do not produce false positive when the pipeline is stuck 2021-03-05 09:41:05 +01:00
Dolu1990 ec507308e7 fix cfu gen error 2021-03-04 20:29:33 +01:00
Dolu1990 bdc52097b6 CFU ensure that CFU_IN_FLIGHT do not produce false positive when the pipeline is stuck 2021-03-04 20:15:01 +01:00
Dolu1990 0530d22a1d sync 2021-03-04 16:06:18 +01:00
Dolu1990 caf1bde49b Add MuraxAsicBlackBox example 2021-03-04 10:16:45 +01:00
Dolu1990 4bdab667cc fpu fix cmd / commit race condition 2021-03-02 19:39:55 +01:00
Dolu1990 636d53cf63 fpu now track commits using a counter per pipeline per port 2021-03-02 16:13:12 +01:00
Dolu1990 81c193af1f Improve subnormal/normal rounding 2021-02-26 16:32:42 +01:00
Dolu1990 de81da36eb Fpu fix a few div special cases 2021-02-25 19:39:57 +01:00
Dolu1990 de09ed3fcb fpu added exact div/sqrt implementations using iterative approaches 2021-02-25 15:28:38 +01:00
Dolu1990 be81cc1e0e CfuPlugin.response_ok removed 2021-02-23 12:23:48 +01:00
Dolu1990 47673863fb fpu test cleaning 2021-02-22 19:27:55 +01:00
Dolu1990 b1f4c06d4e fpu fix arbitration/lock bugs
add getVexRiscvRegressionArgs
2021-02-22 19:27:26 +01:00
Dolu1990 a6e89fe05c fpu vex regression goldenModel can now assert FPU interface 2021-02-19 17:55:56 +01:00
Dolu1990 3f226b758c fpu fix exception flag handeling 2021-02-19 13:03:48 +01:00
Dolu1990 e504afbf18 fpu integration wip, got mandelbrot to work in linux with no inline (crash when inlined) 2021-02-19 11:26:28 +01:00