Commit Graph

104 Commits

Author SHA1 Message Date
Luke Wren 8bfc089660 Slightly more strict holdoff of IRQs on AMO 2021-12-06 18:13:43 +00:00
Luke Wren 0b3629564c Don't apply shifter assertions to rotates 2021-12-06 18:12:23 +00:00
Luke Wren 4c532240f8 Hold off IRQ when AMO is past the point of no return 2021-12-06 07:45:13 +00:00
Luke Wren 260491405a Fix atomic instructions not asserting decode error when A extension is disabled 2021-12-06 07:28:50 +00:00
Luke Wren cc38f46848 Fix AMO wdata valid left high when entering trap at just the right time 2021-12-06 07:28:50 +00:00
Luke Wren 12c79c0b41 Fix feature-flag for Zbs instructions in decoder 2021-12-05 02:05:35 +00:00
Luke Wren 9b9120960d Fix missing RAW stall on sc.w succes result. Closing laptop again. 2021-12-05 01:05:01 +00:00
Luke Wren df658d86ff First plausibly working AMOs. Add AMOs to instruction timings list 2021-12-04 23:44:22 +00:00
Luke Wren 5c098866f2 Sketch in AMO support 2021-12-04 20:46:39 +00:00
Luke Wren 34e57f0b14 Sketch in an AMO ALU 2021-12-04 18:52:41 +00:00
Luke Wren a8933c332d Fix illegal issue of pipelined exclusives on the bus, and document correct timings 2021-12-04 18:23:01 +00:00
Luke Wren 5e17bb805e Add basic support for lr/sc instructions from the A extension 2021-12-04 15:02:31 +00:00
Luke Wren 607147f280 Rewrite byte pick/sign-extend logic, preparing to handle more memops 2021-12-04 12:08:54 +00:00
Luke Wren a988adfec8 Add RISC-V opcodes and memory operation codes for atomics 2021-12-04 11:16:24 +00:00
Luke Wren 52ba930638 Remove useless midcr.eivect feature. Make mlei left-shift its value by 2. 2021-12-04 01:17:57 +00:00
Luke Wren dfb07822ee Remove UART DTM 2021-12-02 02:08:16 +00:00
Luke Wren be6b2f3f76 Fix up DTMs to use byte addressing 2021-12-02 02:05:23 +00:00
Luke Wren 1ebccb7cce Switch DM to use byte addresses on APB, not word addresses 2021-12-02 01:47:30 +00:00
Luke Wren c5e85dea4c Add mconfigptr CSR 2021-12-01 03:25:56 +00:00
Luke Wren c8afb4ac33 Add option for fast high-half multiplies 2021-11-29 18:48:02 +00:00
Luke Wren 94a3d43f27 Add Hazard3's registered marchid value to hdl and docs 2021-11-28 19:53:49 +00:00
Luke Wren 1aa9dbcddd Fix comment typo in APB clock crossing 2021-11-28 17:40:57 +00:00
Luke Wren e7466ae4be Move DM data0 CSR into the M-custom space, and document this 2021-11-28 15:52:52 +00:00
Luke Wren 76172cdade Start filling out CSR documentation. Change misa to report X=1 because of nonstandard IRQ CSRs. 2021-11-28 06:33:35 +00:00
Luke Wren 800b21d2f5 Remove event feedback path (not logical path) in priority encoder 2021-11-28 02:19:01 +00:00
Luke Wren 14a4f1a281 Add bitmanip reference vectors and test scripts. Fix bug in bclr implementation 2021-11-27 17:19:41 +00:00
Luke Wren 5d093487b7 Update README 2021-11-26 23:33:46 +00:00
Luke Wren 1bb7e33b69 Fix alignment of heap_ptr in init.S. Small ALU cleanup 2021-11-26 02:59:50 +00:00
Luke Wren 8bcec11c80 Couple more silly mistakes 2021-11-26 01:30:13 +00:00
Luke Wren 41eeb90c7d Remove (safe) feedback path which Verilator linted on -- CXXRTL doesn't hate me any more 2021-11-26 01:29:47 +00:00
Luke Wren 998f3fdeb7 Clean up silly mistakes 2021-11-26 00:55:57 +00:00
Luke Wren 58c20a39d0 First pass at implementing bitmanip. Breaks CXXRTL. Ooop 2021-11-25 23:30:35 +00:00
Luke Wren ed6b6a3660 Cleanup order of declaration/use of a couple of wires 2021-11-25 15:16:59 +00:00
Luke Wren 49462a8642 Add Zba/Zbb/Zbc/Zbs opcodes to rv_opcodes.vh 2021-11-23 22:11:50 +00:00
Luke Wren e05e9a4109 Add default_nettype none at top of every file, and default_nettype wire at bottom 2021-11-23 22:10:39 +00:00
Luke Wren 0b9b706e81 Safer logic for load/store blocked by preceding WFI 2021-11-23 22:01:14 +00:00
Luke Wren cc6a6c09ba Vaguely implement wfi 2021-11-05 18:48:42 +00:00
Luke Wren cfe16caf41 Remove some old todos 2021-09-05 22:20:40 +01:00
Luke Wren e9fccffca0 Fix break and single-step on a load/store access fault dropping the exception. Better fix for halt request on definitely-excepting stage M instruction giving unreachable next-instruction DPC. 2021-09-05 04:45:38 +01:00
Luke Wren 65bfca5fdf Fix latent bug with asynchronous debug entry during stalled load/store address phase 2021-09-04 07:49:29 +01:00
Luke Wren d03a82a826 Add instruction fetch faults 2021-09-04 02:57:39 +01:00
Luke Wren e16ae06cb5 Clean up timer 2021-08-21 17:03:32 +01:00
Luke Wren 9dd091b7b5 Doh typo 2021-08-21 09:06:20 +01:00
Luke Wren b99e5b8a67 Convert timer to serial for smaller area. Rather untested 2021-08-20 22:27:15 +01:00
Luke Wren 4aba165166 First pass at a 64-bit system timer 2021-08-20 21:49:05 +01:00
Luke Wren 8263ee3a5d Fix reporting DPC after an excepting instruction when halt request is simultaneous with exception 2021-07-24 15:31:33 +01:00
Luke Wren 70a44d9681 Small code cleanup 2021-07-24 10:08:27 +01:00
Luke Wren 155d3ba554 Tie off 1 or 2 LSBs of DPC depending on IALIGN 2021-07-23 23:09:03 +01:00
Luke Wren 115cb2c50f Tweaks to example soc configuration 2021-07-23 23:08:23 +01:00
Luke Wren 279e4b4f29 Implement mstatush as hardwired-0, as required by priv-1.12 2021-07-23 21:52:01 +01:00