Commit Graph

434 Commits

Author SHA1 Message Date
Luke Wren dff278ea05 Increase DTM idle cycle hint to 8 cycles -- see #6 2022-10-19 21:11:18 +01:00
Luke Wren 1953773ca5 Don't gate exception into D-mode CSR write, as a valid CSR instruction
writing to a valid CSR in D-mode is guaranteed not to raise any exception
(particularly the external data0 CSR is of interest)
2022-10-10 22:15:56 +01:00
Luke Wren ae4ddf7001 Clean up the old/unused W_COUNTER parameter, and use a cleaner tie-off style for the counter CSRs 2022-10-10 16:33:31 +01:00
Luke Wren f771a1294d Alias DPC to the real program counter, small savings overall 2022-10-10 00:28:42 +01:00
Luke Wren aa438fc37c Remove op_b (rs2) register from muldiv_seq for modest LUT/FF savings 2022-10-08 18:22:16 +01:00
Luke Wren d3667769d2 Arrange for address buses to be 0 when processor is held in reset 2022-10-08 16:50:58 +01:00
Luke Wren 633a07fef9 Tidy up priority tie-offs in irq_ctrl 2022-10-08 16:25:05 +01:00
Luke Wren 5e7bf0d604 Don't reset register file by default 2022-10-08 16:24:28 +01:00
Luke Wren f329d30713 Typo in docs introduction 2022-10-08 15:10:45 +01:00
Luke Wren 489480dc80 Revise default config values, and update docs with new values 2022-10-08 08:43:25 +01:00
Luke Wren 0b18fae32e Fix swapped MHARTID/MCONFIGPTR values in tb configs 2022-10-08 08:42:50 +01:00
Luke Wren 874cb20910 Add config headers to tb_cxxrtl instead of using defparams in Makefile 2022-10-08 08:09:26 +01:00
Luke Wren 8721bd3deb Add RISC-V timer to example soc, and tweak ULX3S config 2022-10-07 03:11:36 +01:00
Luke Wren a18c3018e1 Bump riscv-formal to head of hazard3 branch, not sure what happened there 2022-10-07 01:35:10 +01:00
Luke Wren bf1bca2ca5 Remove FPGA synth netlist checked in by mistake 2022-10-06 16:00:27 +01:00
Luke Wren 1036d15467 Clean up duplicate declaration of external_irq_pending in hazard3_irq_ctrl 2022-10-06 15:59:54 +01:00
Luke Wren 4b94c9a2d4 Document new configuration for IRQ and PMPM extensions 2022-10-06 00:19:13 +01:00
Luke Wren e6aaf4b801 Avoid IRQ to bus through-path when custom IRQs are disabled 2022-10-06 00:16:10 +01:00
Luke Wren c55d3f0d0b Make custom IRQ and PMP functionality optional. Factor out IRQ controller into separate module. 2022-10-05 23:53:04 +01:00
Luke Wren d1d70efa60 Fix some width issues introduced by last commit 2022-10-05 22:19:02 +01:00
Luke Wren 6f8b75c041 Make IRQ vectors right-sized. CXXRTL was spending > 1/3rd of its time in the CSR update. 2022-10-05 22:11:53 +01:00
Luke Wren 0915cc2834 Doh 2022-09-08 15:11:24 +01:00
Luke Wren f48177c644 Tie off debug LEDs in ULX3S top level 2022-09-05 00:37:44 +01:00
Luke Wren 9eb8590858 Add generate to avoid elaborating internals of PMP/triggers with 0 PMP regions or triggers. 2022-09-05 00:36:41 +01:00
Luke Wren 18c64bd633 Add no_rw_check attribute to regfile memory to avoid recent Yosys area regression 2022-09-04 23:56:14 +01:00
Luke Wren 787a7ec372 Fix bad preprocessor conditional in ECP5 JTAG DTM 2022-09-04 23:48:58 +01:00
Luke Wren c594ec42e9 Change style of IRQ register tie-offs as Yosys was not able to trim them for iCE40 synthesis. 2022-09-04 23:43:24 +01:00
Luke Wren 3ae843034d Example soc: connect up power signals and always-on clock. Set more parameters explicitly. 2022-09-04 23:42:48 +01:00
Luke Wren 624d39669d Fix up new asserts in hazard3_power_ctrl. Add power signals to formal TBs. 2022-08-29 19:20:09 +01:00
Luke Wren 1c2249dbef Typo 2022-08-29 16:25:12 +01:00
Luke Wren 6abd93eb49 Oops, masked the wakeup-on-halt request path when I masked IRQs on WFI state. 2022-08-29 16:15:19 +01:00
Luke Wren 099f0467fb Clean up remnants of the 'wfi_is_nop' thing that seemed like a good idea at the time 2022-08-29 15:56:57 +01:00
Luke Wren da4097ecd8 Delay pwrup_req->pwrup_ack in tb 2022-08-29 14:55:11 +01:00
Luke Wren 954bae5cf1 Implement block/unblock instructions, and fix questionable partial masking of sleep signals on exceptions. Add simple test for self-block/unblock with loopback in tb. 2022-08-29 14:52:01 +01:00
Luke Wren b352d3878d Update docs for new power control extension 2022-08-28 19:54:55 +01:00
Luke Wren 2ae2463b97 First stab at adding wake/sleep state machine 2022-08-28 19:50:04 +01:00
Luke Wren ce93c45e69 Add docs section for custom extensions 2022-08-28 15:50:26 +01:00
Luke Wren bf38d93d33 Remove references to AHB-Lite, describe buses as (a subset of) AHB5 2022-08-28 14:15:20 +01:00
Luke Wren 7d18a21734 Editing 2022-08-27 20:49:55 +01:00
Luke Wren d56e217a40 Work on docs. Document config options, expand the intro, move instruction timings and pseudocode to appendices. 2022-08-27 20:13:21 +01:00
Luke Wren a79c857d82 Bump riscv-tests: enable hardware instruction breakpoints in hardware tests 2022-08-27 17:05:02 +01:00
Luke Wren 9a60f06c43 Fix trigger enable condition 2022-08-23 01:05:46 +01:00
Luke Wren fef6d80fd4 tcontrol.mpte is not supposed to change on trap exit, unlike mstatus.mpie 2022-08-23 00:19:56 +01:00
Luke Wren 9e11c0e5a8 Fix tdata1.dmode being writable from M-mode 2022-08-23 00:08:17 +01:00
Luke Wren 04f138ae0e Fix mcontrol.execute not being writable. Enable hardware breakpoint debug tests: Hwpb1/2, JumpHBreak, TriggerExecuteInstant 2022-08-23 00:05:30 +01:00
Luke Wren 49c2edeff8 Avoid reserved keyword 2022-08-22 10:26:20 +01:00
Luke Wren 53902a901b Fix bad rdata width for tdata1 (which also caused the trigger type to appear as legacy SiFive, oops) 2022-08-22 09:47:19 +01:00
Luke Wren f9dafa3867 Update readme 2022-08-22 09:25:37 +01:00
Luke Wren b90d12efed CSRs: avoid use of wdata_update in rdata for meicontext, which the SMT2 backend sees as a loop.
There is no functional loop here since this is an acyclic path between different bits of the rdata vector, but it makes sense that this would confuse tools that don't bitblast all the vectors.
2022-08-22 09:18:57 +01:00
Luke Wren ba775563d5 Fix suspicious gating of jump request 2022-08-22 09:10:12 +01:00