Commit Graph

425 Commits

Author SHA1 Message Date
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
Luke Wren 6e2076268c Update CSR readability/writability tests for new CSRs 2022-08-22 08:50:57 +01:00
Luke Wren 6e3799eed0 First attempt at hacking in triggers, at least seems to have not broken other exception logic. Not yet tested. 2022-08-22 08:47:03 +01:00
Luke Wren 5d6b5a80b0 Standardise on ifndef YOSYS around default_nettype wire 2022-08-21 13:22:55 +01:00
Luke Wren 4c098d76a7 Fix some whitespace issues, and avoid redefinition of RVOPC macros 2022-08-21 13:09:28 +01:00
Luke Wren b994674c5a Cleanup to avoid negative array index (legal but causes whinging) 2022-08-20 18:13:45 +01:00
Luke Wren 3b7cd9bc96 Cleanup some unused signals 2022-08-20 16:44:39 +01:00
Luke Wren 96e55a5446 Replace localparams with defines in rv_opcodes.vh, to avoid slightly dubious localparam to casez Z-propagation 2022-08-20 16:22:04 +01:00
Luke Wren d299a3ca4e More width tweaks 2022-08-20 16:11:58 +01:00
Luke Wren bc274867c0 More width mismatch fixes 2022-08-20 15:27:14 +01:00