Bruno Levy
9154327d2e
Precision: for Ubuntu
2022-11-24 18:14:52 +01:00
Bruno Levy
1ccf098e7a
New script to install YOSYS/NEXTPNR for ICE40-based FPGAs
2022-11-24 18:14:09 +01:00
Bruno Levy
0a97ede525
* Added precompiled RAYSTONES, DHRYSONES and COREMARK
...
* Experimental pipelineZ.v with two shifters (left and right), and
pipelined register Id comparison.
2022-10-12 15:57:05 +02:00
Bruno Levy
cecdaf7a8f
* Added new frequencies in PLL (now we got something that runs
...
at 180 MHz on the ULX3S)
* Added (* no_rw_check *) where relevant in femtosoc and quark
2022-10-02 19:22:45 +02:00
Bruno Levy
dd7b10b416
typos.
2022-09-26 12:41:53 +02:00
Bruno Levy
7ae0d3205f
Added step on RV32M
2022-09-25 22:53:05 +02:00
Bruno Levy
55a61df815
typo !
2022-09-25 10:01:00 +02:00
Bruno Levy
c802104a75
Small fixes in step 9
2022-09-25 09:55:18 +02:00
Bruno Levy
5e49257292
BRAM, not DRAM !
2022-09-25 09:45:14 +02:00
Bruno Levy
2ef4bf4e44
Finished writing tutorial for step 9 (RAS)
2022-09-25 09:44:43 +02:00
Bruno Levy
a750d57362
Restored % 21 instead of & 15 (now we have div/rem in pipelineY.v)
2022-09-19 23:02:00 +02:00
Bruno Levy
0bbee839cd
better "progress bar"...
2022-09-19 14:59:27 +02:00
Bruno Levy
587f5a7573
* added missing .section DATA in assembly programs
...
* raystones: added "progress bar"
* pipelineY.v: added MUL/DIV stats
2022-09-19 14:55:13 +02:00
Bruno Levy
9e08dcec74
cCleanup, comments.
2022-09-18 20:12:46 +02:00
Bruno Levy
e6ad7e38e9
Ooops, `ifdef RV32M instead of CONFIG_RV32M broke everything !!!
2022-09-18 19:48:34 +02:00
Bruno Levy
f252a96853
Comments
2022-09-18 19:45:04 +02:00
Bruno Levy
e98c91ae06
Made RV32M optional
2022-09-18 19:44:04 +02:00
Bruno Levy
dafd0f9268
Replaced several imbrications of muxes with big "or" expression in
...
MUL/DIV ALU.
2022-09-18 19:09:23 +02:00
Bruno Levy
631db7b065
Added comments.
2022-09-18 18:49:52 +02:00
Bruno Levy
42c2ebbbcc
cleaner division.
2022-09-18 18:42:53 +02:00
Bruno Levy
837c5eefab
cleaner divide, without divResult reg (now uses mux on
...
EE_quotient and EE_dividend)
2022-09-18 17:56:39 +02:00
Bruno Levy
5d21128738
- Removed registered branch prediction (does not gain anything)
...
- Registered DE_isDiv and EE_DivBusy
2022-09-18 15:45:29 +02:00
Bruno Levy
e82bc09c72
300 iterations (else not enough to measure timings)
2022-09-18 08:09:38 +02:00
Bruno Levy
503b0b790a
Fixed load-after-store bug by inserting a bubble :
...
added || (D_isLoad && DE_isStore) to dataHazard
condition.
2022-09-18 07:49:50 +02:00
Bruno Levy
9bd5b94c37
Found bug in pipelineX and pipelineY: when storing at an address and
...
loading at the same address in the next instruction, wrong value is
obtained because load memory access is done in Execute.
2022-09-18 07:18:52 +02:00
Bruno Levy
3f4ee1fbfd
- Added reg fwd display in debug.
...
- WIP: DIV/REM
2022-09-17 09:30:08 +02:00
Bruno Levy
e63efbcf59
pipelineY: added MUL instructions
...
riscv_disassembly: added RV32M instructions
2022-09-16 21:08:54 +02:00
Bruno Levy
68261c87eb
Added "debugger"
2022-09-16 15:25:56 +02:00
Bruno Levy
261d75ff29
Comment.
2022-09-16 10:38:30 +02:00
Bruno Levy
0d49dee78b
Fixed computation of load hazard statistics
...
(instructions were wrongly put in if(!D_stall) conditional)
2022-09-16 10:33:39 +02:00
Bruno Levy
2e9f7027aa
Added statistic in bench mode.
2022-09-16 10:28:21 +02:00
Bruno Levy
69244a8356
* riscv_disassembly.v: added utility functions in riscv_disasm (RV32I instruction recognizers and field extraction)
...
* pipelineX_generic.v: improved debugger
2022-09-16 09:56:11 +02:00
Bruno Levy
91e5a4ef5c
Added generic version of optimized pipelined CPU.
2022-09-16 04:02:46 +02:00
Bruno Levy
1d4df16794
More optimizations in D stage, and registered D_predictBranch.
2022-09-14 14:34:16 +02:00
Bruno Levy
6b042d001e
Cleanup
2022-09-09 14:38:49 +02:00
Bruno Levy
5ee0184d07
PipelineX: Added versions with register fwding alone, static branch prediction,
...
return address stack.
2022-09-08 23:45:33 +02:00
Bruno Levy
e9401388c5
Added support for ARTY
2022-09-07 21:46:39 +02:00
Bruno Levy
b116c81b49
Added coremark benchmark (adapted)
2022-09-07 21:45:46 +02:00
Bruno Levy
192d679b42
* fixed problem in dhrystone (uint64_t everywhere, and run it 50000
...
time instead of 100 to mitigate "startup code" discrepancy between
measured CPI in test and in VERILOG code)
* added Load/Store stats and Load hazard stats in pipeline9.v
2022-09-06 08:41:05 +02:00
Bruno Levy
362d869768
- Fixed Return Address Stack (test both x1 and x5 for JALR as "ret")
...
- pipelineX.v: comments at beginning of file.
2022-09-05 14:59:11 +02:00
Bruno Levy
8feb9f3c37
- aesthetic fix.
...
- Return Address Stack: pushes more often than it pops, still
investigating...
2022-09-05 08:29:32 +02:00
Bruno Levy
ac47b239b8
Finished step 8 on branch prediction.
2022-09-04 12:19:05 +02:00
Bruno Levy
dd304e4e52
gshare branch prediction seems to work.
2022-09-04 10:58:58 +02:00
Bruno Levy
35368da0ef
Branch prediction
...
- added DHRYSTONE test
- cleaning sources, adding hit/miss reports in simulation
- pipeline9.v: with return address stack
2022-09-03 10:50:26 +02:00
Bruno Levy
629b48b24e
pshare/gshare
2022-08-31 15:37:20 +02:00
Bruno Levy
7ec9dd1097
Cleaner and commented dynamic branch prediction
2022-08-31 14:01:42 +02:00
Bruno Levy
a2b5f94023
cleaner stats.
2022-08-31 13:49:08 +02:00
Bruno Levy
9fea7a3e2b
dynamic branch prediction.
2022-08-31 13:14:51 +02:00
Bruno Levy
16b1b85489
Fixed verbose mode for version with branch prediction
2022-08-29 22:18:08 +02:00
Bruno Levy
3576c7ad1f
pipeline7 now gives stats on branch prediction in simulation.
2022-08-29 19:21:36 +02:00