From 830d5b09c0589c6e7a33d8a091f52a7309222168 Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Fri, 7 Nov 2025 16:52:06 -0500 Subject: [PATCH 01/37] feat: initial commit, module file setup --- rtl/mem/cache/cache_coherency_none.sv | 7 +++++++ rtl/mem/cache/cache_miss_unit.sv | 7 +++++++ rtl/mem/cache/cache_tags.sv | 7 +++++++ rtl/mem/cache/dcache.sv | 11 +++++++++++ rtl/mem/cache/icache.sv | 24 ++++++++++++++++++++++++ 5 files changed, 56 insertions(+) diff --git a/rtl/mem/cache/cache_coherency_none.sv b/rtl/mem/cache/cache_coherency_none.sv index e69de29..3092871 100644 --- a/rtl/mem/cache/cache_coherency_none.sv +++ b/rtl/mem/cache/cache_coherency_none.sv @@ -0,0 +1,7 @@ +module cache_coherency_none #( + parameters +) ( + ports +); + +endmodule \ No newline at end of file diff --git a/rtl/mem/cache/cache_miss_unit.sv b/rtl/mem/cache/cache_miss_unit.sv index e69de29..d8ced03 100644 --- a/rtl/mem/cache/cache_miss_unit.sv +++ b/rtl/mem/cache/cache_miss_unit.sv @@ -0,0 +1,7 @@ +module cache_miss_unit #( + parameters +) ( + ports +); + +endmodule diff --git a/rtl/mem/cache/cache_tags.sv b/rtl/mem/cache/cache_tags.sv index e69de29..0519101 100644 --- a/rtl/mem/cache/cache_tags.sv +++ b/rtl/mem/cache/cache_tags.sv @@ -0,0 +1,7 @@ +module cache_tags #( + parameters +) ( + ports +); + +endmodule diff --git a/rtl/mem/cache/dcache.sv b/rtl/mem/cache/dcache.sv index e69de29..9352a9a 100644 --- a/rtl/mem/cache/dcache.sv +++ b/rtl/mem/cache/dcache.sv @@ -0,0 +1,11 @@ +module dcache #( + parameter int INSTR_WIDTH = 32, + parameter ADDR_WIDTH = 32, + parameter LINE_SIZE = 64, + parameter WAYS = 4, + parameter DMEM_SIZE = 32768 +) ( + ports +); + +endmodule diff --git a/rtl/mem/cache/icache.sv b/rtl/mem/cache/icache.sv index e69de29..e70044c 100644 --- a/rtl/mem/cache/icache.sv +++ b/rtl/mem/cache/icache.sv @@ -0,0 +1,24 @@ +module icache #( + //subject to change + parameter int INSTR_WIDTH = 32, + parameter ADDR_WIDTH = 32, + parameter LINE_SIZE = 64, + parameter WAYS = 4, + parameter IMEM_SIZE = 32768 +) ( + input logic clk_i, + input logic rst_ni, + + //CPU Interface + input logic cpu_req_valid_i, + input logic [ADDR_WIDTH-1:0] cpu_addr_i, + input logic cpu_resp_ready_i, + input logic icache_flush_i, + + output logic icache_req_ready_o, + output logic icache_resp_valid_o, + output logic [INSTR_WIDTH-1:0] icache_resp_instr_o +); + + +endmodule From 1230bd80d03dac9cc5cfaf7719e0a9e0f5f58c98 Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Wed, 12 Nov 2025 15:16:33 -0500 Subject: [PATCH 02/37] feat: semi skeleton code beginning for instruction cache, added L2 cache file --- rtl/mem/cache/dcache.sv | 2 +- rtl/mem/cache/icache.sv | 105 ++++++++++++++++++++++++++++++++++---- rtl/mem/cache/l2_cache.sv | 11 ++++ 3 files changed, 107 insertions(+), 11 deletions(-) create mode 100644 rtl/mem/cache/l2_cache.sv diff --git a/rtl/mem/cache/dcache.sv b/rtl/mem/cache/dcache.sv index 9352a9a..33d2b16 100644 --- a/rtl/mem/cache/dcache.sv +++ b/rtl/mem/cache/dcache.sv @@ -3,7 +3,7 @@ module dcache #( parameter ADDR_WIDTH = 32, parameter LINE_SIZE = 64, parameter WAYS = 4, - parameter DMEM_SIZE = 32768 + parameter DMEM_SIZE = 16384 ) ( ports ); diff --git a/rtl/mem/cache/icache.sv b/rtl/mem/cache/icache.sv index e70044c..ed0d95d 100644 --- a/rtl/mem/cache/icache.sv +++ b/rtl/mem/cache/icache.sv @@ -1,24 +1,109 @@ module icache #( - //subject to change parameter int INSTR_WIDTH = 32, - parameter ADDR_WIDTH = 32, - parameter LINE_SIZE = 64, - parameter WAYS = 4, - parameter IMEM_SIZE = 32768 + parameter int ADDR_WIDTH = 32, + parameter int LINE_SIZE = 64, + parameter int WAYS = 2, + parameter int IMEM_SIZE = 16384 ) ( + // Global / Control signals input logic clk_i, input logic rst_ni, + input logic icache_flush_i, // FENCE_I - //CPU Interface + // CPU <-> I$ Interface input logic cpu_req_valid_i, - input logic [ADDR_WIDTH-1:0] cpu_addr_i, + input logic [ADDR_WIDTH-1 : 0] cpu_addr_i, input logic cpu_resp_ready_i, - input logic icache_flush_i, - output logic icache_req_ready_o, output logic icache_resp_valid_o, - output logic [INSTR_WIDTH-1:0] icache_resp_instr_o + output logic [INSTR_WIDTH-1 : 0] icache_resp_instr_o, + + // TLB -> I$ Interface + input logic [TAG-1 : 0] tlb_pa_tag_i, + input logic tlb_req_ready_i, + input logic tlb_resp_valid_i, + output logic icache_tlb_resp_ready_o, + + // L2$ <-> I$ Interface + input logic l2_ready_i, + input logic l2_valid_i, + input logic [ADDR_WIDTH-1 : 0] l2_addr_i, + input logic [LINE_SIZE*8-1:0] l2_data_i + + // AXI Interface not needed on I$, we only communicate with CPU and L2 Cache ); + //localparams for constants + localparam int SETS = IMEM_SIZE / (WAYS * LINE_SIZE); // 128 sets + localparam int OFFSET = $clog2(LINE_SIZE); // 6 bits + localparam int INDEX = $clog2(SETS); // 7 bits + localparam int TAG = ADDR_WIDTH - OFFSET - INDEX; // 19 bits + + //main cache storage + logic [TAG-1:0] icache_tags [SETS][WAYS]; + logic [LINE_SIZE*8-1:0] icache_data [SETS][WAYS]; + logic valid_bits [SETS][WAYS]; + + //address + logic [TAG-1 : 0] addr_tag_virtual; + logic [INDEX-1 : 0] addr_index; + logic [OFFSET-1 : 0] addr_offset; + + //cache state machine + typedef enum logic [2:0] { + IDLE, + LOOKUP, + MISS, + DATA + } cache_state_t; + + cache_state_t current_state, next_state; + + // main sequential loop + always_ff @(posedge clk_i) begin + if(!rst_ni) begin + current_state <= IDLE; + for(int set = 0; set < SETS; set++) begin + for(int way = 0; way < WAYS; way++) begin + valid_bits[set][way] <= 1'b0; + end + end + end + else if(icache_flush_i) begin + current_state <= IDLE; + for(int set = 0; set < SETS; set++) begin + for(int way = 0; way < WAYS; way++) begin + valid_bits[set][way] <= 1'b0; + end + end + end + else begin + current_state <= next_state; + end + end + + // VIPT address stuff + always_comb begin + addr_index = cpu_addr_i[OFFSET+INDEX-1 : OFFSET]; + addr_offset = cpu_addr_i[OFFSET-1 : 0]; + addr_tag_virtual = cpu_addr_i[ADDR_WIDTH-1 : OFFSET+INDEX]; + end + + //combinational next state control + always_comb begin + case (current_state) + IDLE: + LOOKUP: + MISS: + DATA: + default: next_state = IDLE; + endcase + end +/* +add next state combinational logic +add replacement/evict logic +add communiaction with L2 cache +refine state machine +*/ endmodule diff --git a/rtl/mem/cache/l2_cache.sv b/rtl/mem/cache/l2_cache.sv new file mode 100644 index 0000000..0a391eb --- /dev/null +++ b/rtl/mem/cache/l2_cache.sv @@ -0,0 +1,11 @@ +module l2_cache #( + parameter int INSTR_WIDTH = 32, + parameter int ADDR_WIDTH = 32, + parameter int LINE_SIZE = 64, + parameter int WAYS = 4, + parameter int L2_SIZE = 262144 +) ( + ports +); + +endmodule From b3fe5b3cdce57eb3f2b7c3fb55901b73dcd63376 Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Thu, 13 Nov 2025 19:48:34 -0500 Subject: [PATCH 03/37] feat: added i-cache module brief, changed branch name --- docs/Instruction Cache (I$) Brief (v1.0).md | 131 ++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs/Instruction Cache (I$) Brief (v1.0).md diff --git a/docs/Instruction Cache (I$) Brief (v1.0).md b/docs/Instruction Cache (I$) Brief (v1.0).md new file mode 100644 index 0000000..b674ec5 --- /dev/null +++ b/docs/Instruction Cache (I$) Brief (v1.0).md @@ -0,0 +1,131 @@ +**Author:** Trevor Cannon +**RTL:** *rtl/mem/cache/icache.sv* + +--- +**Purpose & Role** +- Instruction Cache (I$) is a N-way set-associative cache that loads instructions from main memory through AXI port which are then sent to the Fetch (IF) stage of CPU pipeline + - N-way set associative: Cache is comprised of many "sets" where each set has N number of "ways" to store data. Each way in a set contains one "line" of data. + - Set-associative means that any incoming data can be stored at any way within the set, providing flexibility of storage + - Number of "ways" (N) can be decided on later, will likely be 2 or 4 way +--- +**Parameters** +- Parameters in Verilog/SystemVerilog are similar to constants and #define directives seen in C/C++ that are reused many times across a module to avoid magic numbers and promote reusability +- Parameters are subject to change but this is a general idea: + +| Name | Default | Description | +| --------- | --------------- | ------------------------------------------------------------------------------------------------------ | +| LINE_SIZE | project default | Size of cache line in bytes | +| WAYS | project default | Ways of associativity per set (number of lines per set) | +| IMEM_SIZE | project default | Total size of I$ | +| SETS | project default | Number of sets in cache, defined based formula: ($\frac{Total\,Cache\,Size}{Ways\,\times Line\,Size}$) | + +--- +**Interfaces (Ports)** +- Any input or output signal that will be used in the operation of the I$ +- AXI burst parameters must be defined later +- Subject to change + +| Signal Name | Direction | Width | Description | +| ----------------------- | --------- | ----- | ---------------------------------------------------------------------- | +| | | | | +| **Global Signals** | | | | +| clk_i | In | 1 | Main clock input | +| rst_ni | In | 1 | Active-low reset | +| | | | | +| **CPU Interface** | | | | +| cpu_req_valid_i | In | 1 | CPU requesting an instruction fetch | +| cpu_addr_i | In | 32 | CPU virtual address for requested instruction | +| icache_req_ready_o | Out | 1 | I$ ready to receive fetch requests | +| icache_resp_valid_o | Out | 1 | I$ returning a valid instruction | +| icache_resp_instr_o | Out | 32 | Instruction located at CPU's requested virtual address | +| cpu_resp_ready_i | In | 1 | CPU ready to accept instruction | +| icache_flush_i | In | 1 | Invalidate I$ on FENCE.I instruction | +| | | | | +| **AXI Interface** | | | | +| axi_mem_ar_o | Out | 32 | AXI Address Read (AR) - Physical address to be read from main memory | +| axi_ar_valid_o | Out | 1 | AXI Handshake - I$ sending valid address to main memory | +| axi_ar_ready_i | In | 1 | AXI Handshake - Main memory ready to accept address | +| axi_mem_r_i | In | 128 | AXI Read Data (R) - Returns data from requested address in main memory | +| axi_r_valid_i | In | 1 | AXI Handshake - Main memory data sent is valid | +| axi_r_ready_o | Out | 1 | AXI Handshake - I$ ready to accept data from main memory | +| | | | | +| **MMU/TLB Interface** | | | | +| icache_tlb_req_valid_o | Out | 1 | I$ is sending a valid virtual address to the TLB | +| icache_tlb_va_o | Out | 32 | Virtual address to be translated | +| tlb_req_ready_i | In | 1 | TLB ready for translation | +| tlb_resp_valid_i | In | 1 | TLB response is valid | +| tlb_resp_pa_i | In | 32 | TLB's translated physical address | +| icache_tlb_resp_ready_o | Out | 1 | I$ ready to accept TLB response | + +--- +**Reset/Init** +- When performing a reset, the signal rst_ni becomes LOW, and every cache lines valid bit is set LOW + - This signals an invalid line which will cause new data to be fetched from main memory on every CPU request + - This is done to put the cache in a known starting state +--- +**Behavior & Timing** +- Cache Hit: + - Defined as a requested instruction being found successfully in I$ and returned to CPU for execution + - Each address the CPU requests contains a Tag, Index, and Offset + - Index is used to map to the specific set in cache + - Tag is used to check if the data at that address is already present in cache + - Offset is the specific byte in the line corresponding to that address + - Since the CPU provides virtual addresses that must be converted to physical addresses, the MMU/TLB must be used to translate these addresses + - We will implement a Virtually-Indexed, Physically Tagged system (VIPT) where only the tag of the address will need to be translated in order to confirm a match + - This will greatly speedup operation as the cache does not need to wait on the TLB returning the full physical address and works in parallel with the TLB lookup + - VIPT works as follows: + - Once receiving a virtual address from the CPU, the cache will immediately send the address to the TLB to translate into a physical address + - At the same time this occurs, the Index of the virtual address is used to select the corresponding set and read all tags and data from all lines in that set + - When the TLB returns the physical address back to the cache, we can use the translated Tag to compare against all the tags from the set selected earlier + - If there is a match amongst the tags, it is considered a hit + - Data can then be sent immediately to the CPU since we have already read the entire line + offset earlier +- Cache Miss: + - A miss will occur if after checking the tag against all lines in that set we have no matches + - The CPU's IF stage must then be stalled until the correct line can be fetched from main memory (across AXI bus) using the physical address from TLB + - The fetched line is then stored according to our replacement policy and the pipeline is resumed +- Replacement Policy: + - When a cache miss occurs and the set is full, a line must be evicted from the cache + - Choosing which line to evict falls onto he replacement policy + - This can be defined later, common policies are Random or Least Recently Used (LRU) +--- +**Performance Targets** +- Hit Rate: + - Percentage of cache accesses that result in the correct data being found in cache + - 95%+ hit rate on successfully finding instructions in I$ + - Hit rate (and miss rate) can be improved upon by choosing well-suited replacement policy when needing to store new data in cache +- Hit Latency + - Time taken to return instruction to CPU on cache hit + - Aiming for 1-2 cycles +- Miss Rate + - Percentage of cache accesses that result in the data not being found, requiring main memory access + - Want <5% miss rate +- Miss Penalty: + - Additional time needed when cache miss occurs + - Miss penalty is heavily determined by AXI/main memory speeds + - Access time low as possible, but still could be tens to hundreds of clock cycles + - Minimizing miss latency is the goal +--- +**Dependencies** +- AXI: *rtl/bus/axi/axi_crossbar.sv* + - AXI connection for multiple master-slave agents + - I$ serves is master, main memory is slave + - The AXI data width and burst length will be defined the AXI crossbar itself + - Must match with project-wide specifications +- CPU (IF stage): *rtl/cpu/core/fetch.sv* + - I$ receives instruction requests from CPU fetch stage, returns instructions on hit, retrieves from main memory on miss +- MMU/TLB: *rtl/cpu/mmu/sv32_mmu.sv* + - MMU maps virtual addresses from the kernel to physical hardware addresses + - TLB (Translation Lookaside Buffer) stores recently used virtual-hardware address mappings to speed up memory accesses + - I$ and D$ must must make use of address translations from MMU/TLB as CPU will always give virtual addresses that must be mapped back into physical addresses +--- +**Verification Links** +- *sim/cocotb/test_icache.py* + - Cocotb simulation environment to verify instruction cache +- ~~*verification/cache/wb_wa_sequences.sv*~~ + - ~~Testing write-back and write-allocate features of D$~~ + - **I$ is read only, write policies not used** +- *verification/cache/self_mod_code_fencei.S* + - Testing the FENCE.I instruction where I$ is considered invalid due to self-modifying code + - FENCE.I is used when new code is written to memory that may conflict with instructions found in I$ or CPU fetch pipeline + - Must invalidate cache and force re-fetching of instructions to prevent use of stale or incorrect instructions + - Used by OS/kernel to flush I$ and prevent VIPT conflicts \ No newline at end of file From 9d5671b2e787517e795e6ab0fd9d3e313c253884 Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Thu, 13 Nov 2025 19:56:59 -0500 Subject: [PATCH 04/37] fix: put i-cache brief into correct folder in docs/ip-briefs --- docs/{ => ip-briefs}/Instruction Cache (I$) Brief (v1.0).md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{ => ip-briefs}/Instruction Cache (I$) Brief (v1.0).md (100%) diff --git a/docs/Instruction Cache (I$) Brief (v1.0).md b/docs/ip-briefs/Instruction Cache (I$) Brief (v1.0).md similarity index 100% rename from docs/Instruction Cache (I$) Brief (v1.0).md rename to docs/ip-briefs/Instruction Cache (I$) Brief (v1.0).md From 4d72ecdb671e30cad62b418ce9e462525526b98b Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 13 Nov 2025 20:24:01 -0500 Subject: [PATCH 05/37] docs: axi_crossbar.md --- docs/ip-briefs/axi_crossbar.md | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/ip-briefs/axi_crossbar.md diff --git a/docs/ip-briefs/axi_crossbar.md b/docs/ip-briefs/axi_crossbar.md new file mode 100644 index 0000000..559da11 --- /dev/null +++ b/docs/ip-briefs/axi_crossbar.md @@ -0,0 +1,65 @@ +### **axi_crossbar — Module Brief (v0.2)** +|**Owner:** Sebastian Candelaria and Bus System Team | **RTL:** rtl/bus/axi/axi_crossbar.sv | +| :-|-: | +--- +### **Purpose & Role** +Central AXI4 interconnect between managers and subordinates. Performs address decode, per-subordinate channel arbitration, and ID-based routing so multiple transactions can be outstanding concurrently. Common widths/IDs are defined in **rtl/bus/interconnect_pkg.sv.** + +--- + +### **System Context (Managers/Subordinates)** +- **Managers:** I$ port **axi_icache_port.sv**, D$ port **axi_dcache_port.sv**, DMA **axi_dma.sv**, and the MMU Page Table Walker **rtl/cpu/mmu/ptw.sv.** +- **Subordinates:** DDR via **rtl/mem/ddr/mig_axi_wrap.sv**, peripheral MMIO via **rtl/bus/axi/axi_to_axi_lite.sv** into **rtl/subsys/periph_axi_shell.sv.** +- **CDC:** When a clock crossing is required, channels use **axi_async_fifo.sv.** +*** +### **Interfaces (Ports)** +--- + +| Signal/Bundle | Dir | Width | Description | +|---|:---:|:---:|---| +| `s_axi_*[N_M]` | In | — | Subordinate-side inputs from managers (I\$, D\$, DMA, PTW). | +| `m_axi_*[N_S]` | Out | — | manager-side outputs to subordinates (DDR, AXI-Lite bridge, etc.). | +| `clk_i`, `rst_ni` | In | 1 | Fabric clock and active-low reset. | +--- + +### Parameters & Configuration +- Number of managers/subordinates, ID width, and data/address widths are set via **interconnect_pkg.sv.** +- Address windows correspond to the SoC memory map (DDR and MMIO ranges). +--- + +### Errors/IRQs + +- **IRQs:** None as the crossbar does not raise any interrupts. The interrupts would come from the peripherals. +- **Errors:** Conveyed only though AXI response codes and the crossbar should either pass through a subordinate's error or generate one itself for decode/feature violations. +--- + +### Performance Targets + +- **Clock:** **TBD** MHz (ASIC), **TBD** MHz (FPGA) +- **Throughput:** **1 beat/cycle** once granted (R & W) +- **Latency (xbar-only):** addr → grant ≤ 2 cycles; read addr → first data ≤ 3 cycles beyond subordinate; last-W → B ≤ 3 cycles +- **Arbitration:** **Round-robin;** starvation ≤ **N_M grants** +- **Bursts:** **INCR**, max len **TBD** +- **Outstanding:** per-manager **TBD R/TBD W**; backpressure only +- **CDC:** each crossing adds **+TBD cycles;** throughput unchanged +- **Reset:** READY may assert within ≤ **TBD cycles** after `rst_ni` deassert +--- + +### Behavior & Timing + +- Per-subordinate arbitration and decode; maintains AXI ready/valid ordering on all channels (AW/W/B/AR/R). +- Supports multiple outstanding transactions using `AXI ID` tagging; responses are routed back by ID. +- Designed for the system clock domain; CDC handled externally via **axi_async_fifo.sv** where required. +--- + +### Dependencies +- **Clocks/Reset:** clk_i, rst_ni (system domain; sync release). +- **Upstream managers (initiate AXI):** I$ port, D$ port, SMA engine, Page Table Walker. +- **Downstream subordinates (serve AXI):** DDR controller, AXI → AXI-Lite bridge into Peripheral Shell. +- **Configuration source:** address windows, ID/Data/Addr widths defined in the interconnect package. +- **CDC:** any clock crossings are handled *outside* the crossbar via AXI async FIFOs on the affected ports. +--- + +### Verification Links +- **AXI memory model testbench:** sim/common/tb_axi_mem.sv +- **System integration (exercises crossbar paths):** sim/cocotb/test_sd_spi.py, sim/cocotb/test_video_scanout.py, sim/cocotb/test_audio_i2s.py, sim/cocotb/test_mmu_sv32.py From 90012f962b70a966740280e788d863255b0c228f Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 13 Nov 2025 20:47:37 -0500 Subject: [PATCH 06/37] feat: semi skeleton code for axi_crossbar --- rtl/bus/axi/axi_crossbar.sv | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rtl/bus/axi/axi_crossbar.sv b/rtl/bus/axi/axi_crossbar.sv index e69de29..bc2758f 100644 --- a/rtl/bus/axi/axi_crossbar.sv +++ b/rtl/bus/axi/axi_crossbar.sv @@ -0,0 +1,25 @@ +module axi_crossbar #( + // TODO: add parameters subject to change (managers/subordinates, widths) + parameter int unsigned N_M = 4; + parameter int unsigned N_S = 2; + parameter int unsigned ADDR_WIDTH = 32; + parameter int unsigned DATA_WIDTH = 64; + parameter int unsigned ID_WIDTH = 4; +)( + // TODO: add ports + input logic clk_i, + input logic rst_ni + + // Manager-side AXI ports (I$, D$, DMA, PTW, etc) + // ... + + // Subordinate-side AXI ports (DDR, AXI-Lite bridge, etc.) + // ... +); + + // TODO: address decode + // TODO: per-subordinate arbitration + // TODO: ID-based routing + // TODO: ready/valid handling + +endmodule From 56f419f9f63b08d22200c862cc58fdd054447cdd Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 13 Nov 2025 20:57:29 -0500 Subject: [PATCH 07/37] feat: semi skeleton with TODOs for axi_async_fifo.sv --- rtl/bus/axi/axi_async_fifo.sv | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rtl/bus/axi/axi_async_fifo.sv b/rtl/bus/axi/axi_async_fifo.sv index e69de29..6d5e5f9 100644 --- a/rtl/bus/axi/axi_async_fifo.sv +++ b/rtl/bus/axi/axi_async_fifo.sv @@ -0,0 +1,25 @@ +module axi_async_fifo #( + // TODO: add parameters, subject to change (widths, depth) + parameter int unsigned ADDR_WIDTH = 32; + parameter int unsigned DATA_WIDTH = 64; + parameter int unsigned ID_WIDTH = 4; + parameter int unsigned FIFO_DEPTH = 8; +)( + // Source clock domain + input logic s_clk_i, + input logic s_rst_ni, + + // Destination clock domain + input logic m_clck_i, + input logic m_rst_ni + + // TODO: add AXI ports for source and destination +); + + // TODO: + // Define request/response structs or AXI channel ports + // Implement async FIFOs between source and destination clocks + // Preserve AXI valid/ready handshake and ordering + +endmodule + From c503570ff4ae1a129815f344b7024b87eb9f9709 Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 11:04:31 -0500 Subject: [PATCH 08/37] feat: init of axi_dcache_port.sv file setup --- rtl/bus/axi/axi_dcache_port.sv | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rtl/bus/axi/axi_dcache_port.sv b/rtl/bus/axi/axi_dcache_port.sv index e69de29..8b901cc 100644 --- a/rtl/bus/axi/axi_dcache_port.sv +++ b/rtl/bus/axi/axi_dcache_port.sv @@ -0,0 +1,7 @@ +module axi_dcache_port #( + parameter +)( + ports +); + +endmodule From 5d2868972257849e2f7c2c4fe91f5e5c0fbfe81b Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 11:06:58 -0500 Subject: [PATCH 09/37] feat: added comments for axi_dcache_port.sv --- rtl/bus/axi/axi_dcache_port.sv | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rtl/bus/axi/axi_dcache_port.sv b/rtl/bus/axi/axi_dcache_port.sv index 8b901cc..2859d17 100644 --- a/rtl/bus/axi/axi_dcache_port.sv +++ b/rtl/bus/axi/axi_dcache_port.sv @@ -1,7 +1,15 @@ module axi_dcache_port #( + // TODO: Parameter setups parameter )( + // TODO: Port set up ports + + // TODO: Input logic + input logic clk_i, + input logic rst_ni + ); endmodule + From 10011d86230f4c42fd4756b25362f285601bb262 Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 11:07:51 -0500 Subject: [PATCH 10/37] feat: init of axi_dma.sv --- rtl/bus/axi/axi_dma.sv | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rtl/bus/axi/axi_dma.sv b/rtl/bus/axi/axi_dma.sv index e69de29..66a2e47 100644 --- a/rtl/bus/axi/axi_dma.sv +++ b/rtl/bus/axi/axi_dma.sv @@ -0,0 +1,14 @@ +module axi_dma #( + // TODO: Parameter setups + parameter +)( + // TODO: Port set up + ports + + // TODO: Input logic + input logic clk_i, + input logic rst_ni + +); + +endmodule From 8ec9cff177936dc955053a529200d6f2b6ab3640 Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 11:08:36 -0500 Subject: [PATCH 11/37] feat: init of axi_icache_port.sv --- rtl/bus/axi/axi_icache_port.sv | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rtl/bus/axi/axi_icache_port.sv b/rtl/bus/axi/axi_icache_port.sv index e69de29..1f92419 100644 --- a/rtl/bus/axi/axi_icache_port.sv +++ b/rtl/bus/axi/axi_icache_port.sv @@ -0,0 +1,14 @@ +module axi_icache_port #( + // TODO: Parameter setups + parameter +)( + // TODO: Port set up + ports + + // TODO: Input logic + input logic clk_i, + input logic rst_ni + +); + +endmodule From 20d569882c7969fdb6103e2698c2059b3b35fdbd Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 11:09:07 -0500 Subject: [PATCH 12/37] feat: init of axi_to_axi_lite.sv --- rtl/bus/axi/axi_to_axi_lite.sv | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rtl/bus/axi/axi_to_axi_lite.sv b/rtl/bus/axi/axi_to_axi_lite.sv index e69de29..4c647d8 100644 --- a/rtl/bus/axi/axi_to_axi_lite.sv +++ b/rtl/bus/axi/axi_to_axi_lite.sv @@ -0,0 +1,14 @@ +module axi_to_axi_lite #( + // TODO: Parameter setups + parameter +)( + // TODO: Port set up + ports + + // TODO: Input logic + input logic clk_i, + input logic rst_ni + +); + +endmodule From f1ac2e4c6729fae3dd9c2d1e00ca66b978441c25 Mon Sep 17 00:00:00 2001 From: Skye <77247288+Skye135@users.noreply.github.com> Date: Fri, 14 Nov 2025 15:06:56 -0500 Subject: [PATCH 13/37] Update axi_crossbar.sv Added some of the interfaces/ports as described in the one-pager for AXI Crossbar. Size and quantity of ports subject to change --- rtl/bus/axi/axi_crossbar.sv | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rtl/bus/axi/axi_crossbar.sv b/rtl/bus/axi/axi_crossbar.sv index bc2758f..4f0b281 100644 --- a/rtl/bus/axi/axi_crossbar.sv +++ b/rtl/bus/axi/axi_crossbar.sv @@ -11,10 +11,15 @@ module axi_crossbar #( input logic rst_ni // Manager-side AXI ports (I$, D$, DMA, PTW, etc) - // ... - + // Amount of Manager-side AXI ports subject to change + output [ADDR_WIDTH-1:0] m_axi_I$, + output [ADDR_WIDTH-1:0] m_axi_D$, + output [ADDR_WIDTH-1:0] m_axi_DMA, + output [ADDR_WIDTH-1:0] m_axi_PTW, // Subordinate-side AXI ports (DDR, AXI-Lite bridge, etc.) // ... + input [ADDR_WIDTH-1:0] s_axi_DDR, + input [ADDR_WIDTH-1:0] s_axi_LiteB ); // TODO: address decode @@ -23,3 +28,4 @@ module axi_crossbar #( // TODO: ready/valid handling endmodule + From 34e552635a5df72f8bffb99afbf172c07958170b Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 16:37:15 -0500 Subject: [PATCH 14/37] feat: update axi_crossbar.sv --- rtl/bus/axi/axi_crossbar.sv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtl/bus/axi/axi_crossbar.sv b/rtl/bus/axi/axi_crossbar.sv index 4f0b281..73606af 100644 --- a/rtl/bus/axi/axi_crossbar.sv +++ b/rtl/bus/axi/axi_crossbar.sv @@ -17,7 +17,7 @@ module axi_crossbar #( output [ADDR_WIDTH-1:0] m_axi_DMA, output [ADDR_WIDTH-1:0] m_axi_PTW, // Subordinate-side AXI ports (DDR, AXI-Lite bridge, etc.) - // ... + // Amount and size of Subordinate-side AXi ports subject to change input [ADDR_WIDTH-1:0] s_axi_DDR, input [ADDR_WIDTH-1:0] s_axi_LiteB ); @@ -29,3 +29,4 @@ module axi_crossbar #( endmodule + From 8973f64eda1bface883bc1d49f5c106c6b7ff006 Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Fri, 14 Nov 2025 16:54:21 -0500 Subject: [PATCH 15/37] feat: update axi_crossbar.sv --- rtl/bus/axi/axi_crossbar.sv | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rtl/bus/axi/axi_crossbar.sv b/rtl/bus/axi/axi_crossbar.sv index 73606af..b19ef77 100644 --- a/rtl/bus/axi/axi_crossbar.sv +++ b/rtl/bus/axi/axi_crossbar.sv @@ -1,3 +1,12 @@ +/* + axi_crossbar.sv + + Purpose & Role + Central AXI4 interconnect between managers and subordinates. + Performs address decode, per-subordinate channel arbitration, and ID-based routing so multiple transactions can be outstanding concurrently. + Common widths/IDs are defined in rtl/bus/interconnect_pkg.sv +*/ + module axi_crossbar #( // TODO: add parameters subject to change (managers/subordinates, widths) parameter int unsigned N_M = 4; @@ -30,3 +39,4 @@ module axi_crossbar #( endmodule + From a9cf7e705fe3abfd916c8278082f1763568c324f Mon Sep 17 00:00:00 2001 From: Gavin Wiese Date: Fri, 14 Nov 2025 17:00:10 -0500 Subject: [PATCH 16/37] Add files via upload --- docs/ip-briefs/clint_module_brief_v0.2.md | 64 +++++++++++++++++++++++ docs/ip-briefs/plic_module_brief_v0.2.md | 63 ++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 docs/ip-briefs/clint_module_brief_v0.2.md create mode 100644 docs/ip-briefs/plic_module_brief_v0.2.md diff --git a/docs/ip-briefs/clint_module_brief_v0.2.md b/docs/ip-briefs/clint_module_brief_v0.2.md new file mode 100644 index 0000000..0d03a22 --- /dev/null +++ b/docs/ip-briefs/clint_module_brief_v0.2.md @@ -0,0 +1,64 @@ +# CLINT - Module Brief (v0.2) + +**Owner:** Gavin Wiese +**RTL:** rtl/irq/clint.sv + +### Purpose & Role +The Core Local Interruptor (CLINT) is placed near the CPU core, as interrupts are sent directly to the core via the memory-mapped AXI bus. The CLINT provides two types of interrupts: **timer-based** (`timer_irq_o`) and **software-based** (`soft_irq_o`). It ensures that events from the timer or software are recognized promptly by the CPU. + +### Parameters + +- Timer Width: 64 bits (`mtime` and `mtimecmp` registers) +- Software interrupt width: 1 bit (`msip`) +- Software interrupt output width: 1 bit (`soft_irq_o`) +- Timer interrupt output width: 1 bit (`timer_irq_o`) + +### Interfaces (Ports) + +| **Signal** | **Dir** | **Width** | **Description** | +|----------------|---------|-----------|----------------------------------| +| mtime_o | out | 64 | Current timer value | +| timer_irq_o | out | 1 | Timer interrupt output | +| soft_irq_o | out | 1 | Software interrupt output | +| clk_i | in | 1 | System clock | +| rst_ni | in | 1 | Active-low reset | + +### Reset/Init + +An active-low reset (`rst_ni`) is used for the CLINT. When reset is asserted (`rst_ni = 0`), all internal registers—`mtime`, `mtimecmp`, and `msip`—are cleared to 0, and output signals (`mtime_o`, `timer_irq_o`, `soft_irq_o`) reflect these reset values. All values are reset synchronously with the system clock. Once reset is deasserted (`rst_ni = 1`), the `mtime` counter begins incrementing every clock cycle, and the interrupt outputs (`timer_irq_o` and `soft_irq_o`) update according to the current register states. + +### Behavior and Timing + +`mtime` increments by one on every rising edge of the system clock. When `mtime` becomes greater than or equal to `mtimecmp`, the timer interrupt output `timer_irq_o` is asserted and remains asserted until a new, greater `mtimecmp` value is written. The software interrupt output `soft_irq_o` directly reflects the state of the `msip` register. All operations are synchronous with the system clock, and outputs update on the cycle following their trigger conditions. + +### Programming Model + +The CLINT exposes three memory-mapped registers: + +- **`msip`** – Software interrupt pending. Writing a `1` to bit 0 asserts `soft_irq_o` until cleared. +- **`mtimecmp`** – Timer compare register. When the internal 64-bit counter `mtime` reaches or exceeds this value, `timer_irq_o` is asserted until a new, greater value is written. +- **`mtime`** – A 64-bit free-running counter that increments at the system clock rate. Software can read this register for timing purposes. + +All registers are accessible through the memory-mapped AXI bus at addresses defined in the SoC register map. + +### Errors/IRQs + +| **IRQ** | **Source** | **How it's triggered** | **How it's cleared** | +|----------------|------------|--------------------------------|------------------------------------------------| +| timer_irq_o | mtimecmp | Asserted when mtime >= mtimecmp | Cleared when a new, greater mtimecmp is written | +| soft_irq_o | msip | Reflects the value of the msip register | Cleared by writing 0 to msip | + +The CLINT does not generate additional error signals. + +### Performance Targets + +- `mtime` increments every clock cycle in sync with the system clock. +- Timer and software interrupts (`timer_irq_o` and `soft_irq_o`) are asserted within one clock cycle of their triggering condition. + +### Dependencies + +The CLINT depends on `clk_i` to increment `mtime` and `rst_ni` to initialize internal registers. It must be connected to the CPU core so software can access the memory-mapped registers and receive the interrupt outputs. + +### Verification Links + +Verification for the CLINT is planned through simulation testbenches to confirm correct behavior of the internal 64-bit timer (`mtime`), timer compare (`mtimecmp`), and software interrupt (`msip`) functionality. Testbenches will ensure that `timer_irq_o` and `soft_irq_o` assert under the correct conditions and that the module responds correctly to reset (`rst_ni`). \ No newline at end of file diff --git a/docs/ip-briefs/plic_module_brief_v0.2.md b/docs/ip-briefs/plic_module_brief_v0.2.md new file mode 100644 index 0000000..e8e2cab --- /dev/null +++ b/docs/ip-briefs/plic_module_brief_v0.2.md @@ -0,0 +1,63 @@ +# PLIC - Module Brief (v0.2) + +**Owner:** Gavin Wiese +**RTL:** rtl/irq/plic.sv + +### Purpose & Role +The Platform-Level Interrupt Controller (PLIC) is placed near the CPU core, connected via the memory-mapped AXI bus. The PLIC manages and prioritizes external interrupt requests from up to 32 sources, forwarding only the highest-priority pending interrupt to the CPU. This allows the processor to efficiently handle asynchronous external events. + +### Parameters + +- Number of interrupt sources: 32 (`N_SOURCES`) +- Number of target contexts (CPU cores): 1 (`N_TARGETS`) +- Priority field width per source: 3 bits (`PRIO_WIDTH`) +- Interrupt ID width for claim/complete operations: 6 bits (`ID_WIDTH`) + +### Interfaces (Ports) + +| **Signal** | **Dir** | **Width** | **Description** | +|---------------|---------|-----------|---------------------------------------------| +| clk_i | in | 1 | System clock | +| rst_ni | in | 1 | Active-low reset | +| src_i | in | 32 | External interrupt sources | +| ext_irq_o | out | 1 | Interrupt output to the CPU core | + +### Reset/Init + +An active-low reset (`rst_ni`) is used for the PLIC. When reset is asserted (`rst_ni = 0`), all internal registers are cleared to 0, and the output signal `ext_irq_o` reflects this reset value. All internal registers are reset synchronously with the system clock. + +### Behavior and Timing + +The PLIC continuously monitors the 32 `src_i` interrupt lines. When one or more enabled interrupts are pending, the highest-priority source is selected, and `ext_irq_o` is asserted to signal the CPU core. Once the CPU completes the interrupt, it writes back the interrupt ID, clearing the corresponding pending bit. All operations are synchronous with the system clock, and `ext_irq_o` is asserted one clock cycle after the conditions are met. + +### Programming Model + +The PLIC provides three memory-mapped registers: + +- **`priority`** – Stores the priority of each interrupt source. Higher values indicate higher priority. +- **`enable`** – Determines which interrupt sources are enabled for the target CPU core. +- **`claim`** – Used by the CPU to claim the highest-priority pending interrupt. Reading this register returns the interrupt ID, and writing the same ID back signals completion, clearing the pending bit. + +All registers are accessible through the memory-mapped AXI bus at addresses defined in the SoC register map. + +### Errors/IRQs + +| **IRQ** | **Source** | **Trigger** | **Clear** | +|------------|-----------|----------------------------------|-------------------------------------| +| ext_irq_o | src_i | One or more enabled interrupts pending | Cleared when CPU claims/completes via claim register | + +The PLIC does not generate additional internal error signals; all interrupts come from external sources. + +### Performance Targets + +- `ext_irq_o` asserts within one clock cycle of a pending, enabled interrupt being detected. +- All internal registers (priority, enable, claim/complete) update synchronously with the system clock. +- The PLIC can handle all 32 external sources without loss of pending interrupts. + +### Dependencies + +The PLIC depends on `clk_i` to update internal registers and monitor interrupt sources, and on `rst_ni` to initialize registers. It also relies on the AXI memory-mapped bus to allow the CPU to access and configure priority, enable, and claim/complete registers. The external interrupt lines (`src_i`) provide all input events, and the PLIC drives the single interrupt output (`ext_irq_o`) to the CPU core. + +### Verification Links + +Verification for the PLIC is planned through simulation testbenches to confirm correct behavior of priority handling, enable bits, and the claim/complete mechanism. Testbenches will ensure that `ext_irq_o` asserts for the highest-priority pending interrupt, that pending bits are cleared after a claim/complete operation, and that the module responds correctly to reset (`rst_ni`). \ No newline at end of file From 09aa41cbfedaaf717b6430c7e300b6fb6a4229ac Mon Sep 17 00:00:00 2001 From: sebasthechill Date: Fri, 14 Nov 2025 17:26:31 -0500 Subject: [PATCH 17/37] Add initial sv32_mmu module skeleton --- rtl/cpu/mmu/sv32_mmu.sv | 140 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/rtl/cpu/mmu/sv32_mmu.sv b/rtl/cpu/mmu/sv32_mmu.sv index e69de29..caf696e 100644 --- a/rtl/cpu/mmu/sv32_mmu.sv +++ b/rtl/cpu/mmu/sv32_mmu.sv @@ -0,0 +1,140 @@ +// ----------------------------------------------------------------------------- +// sv32_mmu.sv +// Sv32 Memory Management Unit (MMU) +// One-pager implementation skeleton +// ----------------------------------------------------------------------------- +// +// Module performs Sv32 virtual to physical translation using an external +// PTW (Page Table Walker) and a TLB. This file is an early state template +// based on the one pager specification. +// +// ----------------------------------------------------------------------------- + +module sv32_mmu #( + parameter int TLB_ENTRIES = 16, + parameter int PAGE_SIZE = 4096, + parameter int PTW_TIMEOUT_CYCLES = 256, + parameter int ADDR_WIDTH = 32, + parameter int PADDR_WIDTH = 34 +)( + input logic clk_i, + input logic rst_ni, + + // Translation request from CPU + input logic [ADDR_WIDTH-1:0] va_i, + input logic valid_i, + output logic ready_o, + + // Translated physical address to CPU + output logic [PADDR_WIDTH-1:0] pa_o, + + // PTW interface (external module) + output logic ptw_req_valid_o, + output logic [ADDR_WIDTH-1:0] ptw_req_addr_o, + input logic ptw_rsp_valid_i, + input logic [63:0] ptw_rsp_data_i, + + // CSR / privilege inputs + input logic [31:0] satp_i, + input logic [1:0] priv_i +); + + // Internal Types & Signals + // ------------------------- + + typedef enum logic [1:0] { + IDLE, + TLB_LOOKUP, + PTW_WAIT, + OUTPUT_RESULT + } mmu_state_e; + + mmu_state_e state_d, state_q; + + logic tlb_hit; + logic [PADDR_WIDTH-1:0] tlb_pa; + + logic miss_detected; + + // TLB Instance (placeholder) + // -------------------------- + + // NOTE: + // Replace this with the actual TLB module + // from rtl/cpu/mmu/tlb.sv and hook up ports accordingly. + + // tlb #(.ENTRIES(TLB_ENTRIES)) u_tlb ( + // .clk_i(clk_i), + // .rst_ni(rst_ni), + // .lookup_va_i(va_i), + // .lookup_valid_i(valid_i), + // .lookup_ready_o(), + // .lookup_hit_o(tlb_hit), + // .lookup_pa_o(tlb_pa), + // .miss_o(miss_detected), + // .insert_valid_i(), + // .insert_vpn_i(), + // .insert_ppn_i(), + // .insert_perm_i(), + // .flush_i(1'b0) + // ); + + // PTW Interface Logic (template) + // ------------------------------ + + // For assignment submission: + // MMU will assert ptw_req_valid_o on a miss and wait for ptw_rsp_valid_i. + // + // Real logic will be added later by your PTW / MMU teammates. + + assign ptw_req_valid_o = (state_q == PTW_WAIT); + assign ptw_req_addr_o = va_i; // placeholder: real implementation extracts VPN + + // State Machine + // ------------- + + always_ff @(posedge clk_i or negedge rst_ni) begin + if (!rst_ni) begin + state_q <= IDLE; + end else begin + state_q <= state_d; + end + end + + always_comb begin + state_d = state_q; + ready_o = 1'b0; + pa_o = '0; + + case (state_q) + + IDLE: begin + if (valid_i) + state_d = TLB_LOOKUP; + end + + TLB_LOOKUP: begin + if (tlb_hit) begin + pa_o = tlb_pa; + ready_o = 1'b1; + state_d = OUTPUT_RESULT; + end else begin + state_d = PTW_WAIT; // TLB miss -> request PTW + end + end + + PTW_WAIT: begin + if (ptw_rsp_valid_i) begin + // Placeholder: real code inserts into TLB + checks permissions + ready_o = 1'b1; + state_d = OUTPUT_RESULT; + end + end + + OUTPUT_RESULT: begin + // End of translation, ready for next request + state_d = IDLE; + end + endcase + end +endmodule From 4672c3561a84d15edba71e917b45536aa1aad648 Mon Sep 17 00:00:00 2001 From: Gavin Wiese Date: Fri, 14 Nov 2025 18:44:14 -0500 Subject: [PATCH 18/37] Update plic.sv --- rtl/irq/plic.sv | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/rtl/irq/plic.sv b/rtl/irq/plic.sv index e69de29..fcd63c8 100644 --- a/rtl/irq/plic.sv +++ b/rtl/irq/plic.sv @@ -0,0 +1,29 @@ +module plic ( + input clk_i, + input rst_ni, + input[31:0] src_i, + output ext_irq_o + ); + + reg[95:0] priorities; + reg[31:0] enable; + reg[31:0] claim; + + always_ff @(negedge clk_i) begin + + if(!rst_ni) begin + for(int i = 0; i < 32; i++) + priorities[i] <= 0; + end + + if(!rst_ni) begin + for(int i = 0; i < 32; i++) + enable[i] <= 0; + end + + if(!rst_ni) begin + for(int i = 0; i < 32; i++) + claim[i] <= 0; + end + end +endmodule From f87fa24b518d252e0b8e9793e8481f7191bb7273 Mon Sep 17 00:00:00 2001 From: AirPodsRed Date: Fri, 14 Nov 2025 22:18:17 -0500 Subject: [PATCH 19/37] DMA Controller: Initial subsystem implementation --- rtl/dma/dma_channel_arbiter.sv | 32 +++++++++++++++++++++++ rtl/dma/dma_controller.sv | 45 +++++++++++++++++++++++++++++++ rtl/dma/dma_pkg.sv | 48 ++++++++++++++++++++++++++++++++++ 3 files changed, 125 insertions(+) create mode 100644 rtl/dma/dma_channel_arbiter.sv create mode 100644 rtl/dma/dma_controller.sv create mode 100644 rtl/dma/dma_pkg.sv diff --git a/rtl/dma/dma_channel_arbiter.sv b/rtl/dma/dma_channel_arbiter.sv new file mode 100644 index 0000000..646826d --- /dev/null +++ b/rtl/dma/dma_channel_arbiter.sv @@ -0,0 +1,32 @@ +//====================================================================== +// DMA Channel Arbiter +// Author: Evan Eichholz +// Description: Fixed-priority channel arbitration +//====================================================================== + +module dma_channel_arbiter import dma_pkg::*; ( + input logic clk_i, + input logic rst_ni, + input logic [N_CHANNELS-1:0] req_i, + output logic [N_CHANNELS-1:0] grant_o +); + + logic [CHANNEL_W-1:0] current_channel; + + always_ff @(posedge clk_i or negedge rst_ni) begin + if (!rst_ni) begin + current_channel <= '0; + grant_o <= '0; + end else begin + // Fixed priority arbitration (Channel 0 highest priority) + grant_o <= '0; + for (int i = 0; i < N_CHANNELS; i++) begin + if (req_i[i]) begin + grant_o[i] <= 1'b1; + break; + end + end + end + end + +endmodule \ No newline at end of file diff --git a/rtl/dma/dma_controller.sv b/rtl/dma/dma_controller.sv new file mode 100644 index 0000000..39319e0 --- /dev/null +++ b/rtl/dma/dma_controller.sv @@ -0,0 +1,45 @@ +//====================================================================== +// DMA Controller - Top Level +// Author: Evan Eichholz +// Description: Multi-channel DMA with scatter-gather support +// References: specs/registers/dma.yaml, docs/dma_operation.md +//====================================================================== + +module dma_controller import dma_pkg::*; ( + // Clock and reset + input logic clk_i, + input logic rst_ni, + + // AXI4 Memory Interface (Master) - Write address channel + output logic [ADDR_W-1:0] m_axi_awaddr_o, + output logic [7:0] m_axi_awlen_o, + // ... (other AXI ports - truncated for brevity) + + // AXI4-Lite Control Interface (Slave) + input logic [ADDR_W-1:0] s_axi_awaddr_i, + // ... (other AXI-Lite ports) + + // Interrupt outputs + output logic [N_CHANNELS-1:0] irq_done_o, + output logic [N_CHANNELS-1:0] irq_error_o, + + // Peripheral request interface + input logic [N_CHANNELS-1:0] periph_req_i, + output logic [N_CHANNELS-1:0] periph_ack_o +); + + // Internal signals + dma_regs_t regs_q, regs_d; + channel_state_e [N_CHANNELS-1:0] channel_state; + logic [N_CHANNELS-1:0] channel_grant; + + // Module instances + dma_channel_arbiter u_channel_arbiter (.*); + dma_desc_fetch u_desc_fetch (.*); + dma_xfer_engine u_xfer_engine (.*); + dma_axi_mux u_axi_mux (.*); + dma_reg_if u_reg_if (.*); + dma_irq_ctrl u_irq_ctrl (.*); + dma_status u_status (.*); + +endmodule \ No newline at end of file diff --git a/rtl/dma/dma_pkg.sv b/rtl/dma/dma_pkg.sv new file mode 100644 index 0000000..720e3ca --- /dev/null +++ b/rtl/dma/dma_pkg.sv @@ -0,0 +1,48 @@ +//====================================================================== +// DMA Package - Types and Parameters +// Author: Evan Eichholz +// Description: Common types, parameters and definitions for DMA controller +// References: specs/registers/dma.yaml +//====================================================================== + +package dma_pkg; + + // Channel count and sizing + parameter int unsigned N_CHANNELS = 4; + parameter int unsigned DATA_W = 32; + parameter int unsigned ADDR_W = 32; + parameter int unsigned DESC_ADDR_W = 32; + parameter int unsigned CHANNEL_W = $clog2(N_CHANNELS); + + // DMA channel states + typedef enum logic [2:0] { + CH_IDLE, + CH_DESC_FETCH, + CH_XFER_READ, + CH_XFER_WRITE, + CH_COMPLETE, + CH_ERROR + } channel_state_e; + + // Descriptor structure (64-bit aligned for AXI efficiency) + typedef struct packed { + logic [DESC_ADDR_W-1:0] next_desc; // 32 bits + logic [ADDR_W-1:0] src_addr; // 32 bits + logic [ADDR_W-1:0] dst_addr; // 32 bits + logic [23:0] length; // 24 bits + logic [7:0] control; // 8 bits (last + config) + } dma_desc_t; + + // Control field bit assignments + parameter int CTRL_LAST_BIT = 7; + parameter int CTRL_CONFIG_MSB = 6; + parameter int CTRL_CONFIG_LSB = 0; + + // Register structure + typedef struct packed { + logic [31:0] ctrl; + logic [31:0] status; + logic [31:0] channel_enable; + } dma_regs_t; + +endpackage \ No newline at end of file From 96c5a00dfe1ccabe1c3967bd17505a1585f32f91 Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Fri, 14 Nov 2025 23:06:36 -0500 Subject: [PATCH 20/37] feat: refined cache state machine, started with cache lookup block --- rtl/mem/cache/icache.sv | 77 ++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/rtl/mem/cache/icache.sv b/rtl/mem/cache/icache.sv index ed0d95d..fb9b0db 100644 --- a/rtl/mem/cache/icache.sv +++ b/rtl/mem/cache/icache.sv @@ -38,30 +38,58 @@ module icache #( localparam int INDEX = $clog2(SETS); // 7 bits localparam int TAG = ADDR_WIDTH - OFFSET - INDEX; // 19 bits - //main cache storage + // i-cache storage logic [TAG-1:0] icache_tags [SETS][WAYS]; logic [LINE_SIZE*8-1:0] icache_data [SETS][WAYS]; logic valid_bits [SETS][WAYS]; - //address + // hold different address portions logic [TAG-1 : 0] addr_tag_virtual; logic [INDEX-1 : 0] addr_index; logic [OFFSET-1 : 0] addr_offset; - //cache state machine - typedef enum logic [2:0] { - IDLE, - LOOKUP, - MISS, - DATA + logic [$clog2(WAYS)-1 : 0] hit_way; + logic cache_tag_hit; + + typedef enum logic [3:0] { + CACHE_IDLE, + CACHE_LOOKUP, + CACHE_HIT, + CACHE_MISS, + CACHE_FETCH, + CACHE_EVICT, + CACHE_OUTPUT } cache_state_t; cache_state_t current_state, next_state; - // main sequential loop - always_ff @(posedge clk_i) begin + // tag lookup + always_comb begin + cache_tag_hit = 1'b0; + hit_way = '0; + if(current_state == CACHE_LOOKUP) begin + for(int way = 0; way < WAYS; way++) begin + if(tlb_pa_tag_i == icache_tags[addr_index][way] + && valid_bits[addr_index][way]) begin + hit_way = way; + cache_tag_hit = 1'b1; + break; + end + end + end + end + + // VIPT address stuff + always_comb begin + addr_index = cpu_addr_i[OFFSET+INDEX-1 : OFFSET]; + addr_offset = cpu_addr_i[OFFSET-1 : 0]; + addr_tag_virtual = cpu_addr_i[ADDR_WIDTH-1 : OFFSET+INDEX]; + end + + // clear valid bits on reset or FENCE.I + always_ff @(posedge clk_i or negedge rst_ni) begin if(!rst_ni) begin - current_state <= IDLE; + current_state <= CACHE_IDLE; for(int set = 0; set < SETS; set++) begin for(int way = 0; way < WAYS; way++) begin valid_bits[set][way] <= 1'b0; @@ -69,7 +97,7 @@ module icache #( end end else if(icache_flush_i) begin - current_state <= IDLE; + current_state <= CACHE_IDLE; for(int set = 0; set < SETS; set++) begin for(int way = 0; way < WAYS; way++) begin valid_bits[set][way] <= 1'b0; @@ -81,21 +109,22 @@ module icache #( end end - // VIPT address stuff - always_comb begin - addr_index = cpu_addr_i[OFFSET+INDEX-1 : OFFSET]; - addr_offset = cpu_addr_i[OFFSET-1 : 0]; - addr_tag_virtual = cpu_addr_i[ADDR_WIDTH-1 : OFFSET+INDEX]; - end - //combinational next state control always_comb begin case (current_state) - IDLE: - LOOKUP: - MISS: - DATA: - default: next_state = IDLE; + CACHE_IDLE: + if(cpu_req_valid_i && icache_req_ready_o) next_state = CACHE_LOOKUP; + CACHE_LOOKUP: + if(cache_tag_hit) next_state = CACHE_HIT; + else next_state = CACHE_MISS; + CACHE_HIT: + if(cpu_resp_ready_i && icache_resp_valid_o) next_state = CACHE_OUTPUT; + CACHE_MISS: + if(tlb_req_ready_i && icache_tlb_resp_ready_o) next_state = CACHE_FETCH; + CACHE_FETCH: + CACHE_EVICT: + CACHE_OUTPUT: + default: next_state = CACHE_IDLE; endcase end From f246ea64befe0f2b5fba408f1dbcfa119aae94aa Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Sat, 15 Nov 2025 15:33:27 -0500 Subject: [PATCH 21/37] feat: added cache output logic --- rtl/mem/cache/icache.sv | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/rtl/mem/cache/icache.sv b/rtl/mem/cache/icache.sv index fb9b0db..9c75d25 100644 --- a/rtl/mem/cache/icache.sv +++ b/rtl/mem/cache/icache.sv @@ -79,14 +79,22 @@ module icache #( end end - // VIPT address stuff + //output data logic + always_comb begin + icache_resp_instr_o = '0; + if(current_state == CACHE_OUTPUT) begin + icache_resp_instr_o = icache_data[addr_index][hit_way][addr_offset*8+ADDR_WIDTH-1 : addr_offset*8]; + end + end + + // address slicing into offset and index always_comb begin addr_index = cpu_addr_i[OFFSET+INDEX-1 : OFFSET]; addr_offset = cpu_addr_i[OFFSET-1 : 0]; addr_tag_virtual = cpu_addr_i[ADDR_WIDTH-1 : OFFSET+INDEX]; end - // clear valid bits on reset or FENCE.I + // rst_ni invalidate all cache lines always_ff @(posedge clk_i or negedge rst_ni) begin if(!rst_ni) begin current_state <= CACHE_IDLE; @@ -96,7 +104,11 @@ module icache #( end end end - else if(icache_flush_i) begin + end + + // FENCE.I invalidate cache + always_ff @(posedge clk_i) begin + if(icache_flush_i) begin current_state <= CACHE_IDLE; for(int set = 0; set < SETS; set++) begin for(int way = 0; way < WAYS; way++) begin @@ -104,12 +116,9 @@ module icache #( end end end - else begin - current_state <= next_state; - end end - //combinational next state control + // combinational next state control always_comb begin case (current_state) CACHE_IDLE: @@ -119,11 +128,14 @@ module icache #( else next_state = CACHE_MISS; CACHE_HIT: if(cpu_resp_ready_i && icache_resp_valid_o) next_state = CACHE_OUTPUT; + else next_state = CACHE_HIT; CACHE_MISS: if(tlb_req_ready_i && icache_tlb_resp_ready_o) next_state = CACHE_FETCH; CACHE_FETCH: CACHE_EVICT: CACHE_OUTPUT: + if(!cpu_resp_ready_i) next_state = CACHE_OUTPUT; + else next_state = CACHE_IDLE; default: next_state = CACHE_IDLE; endcase end From 1259ec1d933bce586532df9ff0fa5d6e407ac749 Mon Sep 17 00:00:00 2001 From: Trevor Cannon Date: Sun, 16 Nov 2025 10:03:38 -0500 Subject: [PATCH 22/37] fix: instruction output not registered, fixed from combinational to sequential --- rtl/mem/cache/icache.sv | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/rtl/mem/cache/icache.sv b/rtl/mem/cache/icache.sv index 9c75d25..92e6695 100644 --- a/rtl/mem/cache/icache.sv +++ b/rtl/mem/cache/icache.sv @@ -48,9 +48,14 @@ module icache #( logic [INDEX-1 : 0] addr_index; logic [OFFSET-1 : 0] addr_offset; + // cache hit logic [$clog2(WAYS)-1 : 0] hit_way; logic cache_tag_hit; + // instruction output + logic [INSTR_WIDTH-1 : 0] icache_resp_instr_next; + logic icache_resp_valid_next; + typedef enum logic [3:0] { CACHE_IDLE, CACHE_LOOKUP, @@ -81,12 +86,19 @@ module icache #( //output data logic always_comb begin - icache_resp_instr_o = '0; + icache_resp_instr_next = '0; + icache_resp_valid_next = 1'b0; if(current_state == CACHE_OUTPUT) begin - icache_resp_instr_o = icache_data[addr_index][hit_way][addr_offset*8+ADDR_WIDTH-1 : addr_offset*8]; + icache_resp_instr_next = icache_data[addr_index][hit_way][addr_offset*8+ADDR_WIDTH-1 : addr_offset*8]; + icache_resp_valid_next = 1'b1; end end + always_ff @(posedge clk_i) begin + icache_resp_instr_o <= icache_resp_instr_next; + icache_resp_valid_next <= icache_resp_valid_next; + end + // address slicing into offset and index always_comb begin addr_index = cpu_addr_i[OFFSET+INDEX-1 : OFFSET]; @@ -98,6 +110,8 @@ module icache #( always_ff @(posedge clk_i or negedge rst_ni) begin if(!rst_ni) begin current_state <= CACHE_IDLE; + icache_resp_instr_o <= '0; + icache_resp_valid_o <= 1'b0; for(int set = 0; set < SETS; set++) begin for(int way = 0; way < WAYS; way++) begin valid_bits[set][way] <= 1'b0; From bcbdae499e1f03eafe8d848174a0e250e424cf9c Mon Sep 17 00:00:00 2001 From: GameBoyAdvSP <90002537+Meowcaroni@users.noreply.github.com> Date: Mon, 17 Nov 2025 11:56:36 -0500 Subject: [PATCH 23/37] Add pull request template Pull request template for consistent pull request format. --- .github/pull_request_template.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..e4c431a --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,11 @@ +## Description +Describe the changes made and why they were made. + +## Related Issue(s) +Link or list the issue(s) this PR addresses (e.g., #123). + +## Type +- [ ] Bug fix +- [ ] New feature +- [ ] Enhancement +- [ ] Documentation update From 57aa62fd89d6e3e2a95a8eabe2175de4aca53e6d Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:46:32 -0500 Subject: [PATCH 24/37] feat: updated axi_async_fifo.sv per request --- rtl/bus/axi/axi_async_fifo.sv | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rtl/bus/axi/axi_async_fifo.sv b/rtl/bus/axi/axi_async_fifo.sv index 6d5e5f9..5bf1195 100644 --- a/rtl/bus/axi/axi_async_fifo.sv +++ b/rtl/bus/axi/axi_async_fifo.sv @@ -1,16 +1,16 @@ module axi_async_fifo #( // TODO: add parameters, subject to change (widths, depth) - parameter int unsigned ADDR_WIDTH = 32; - parameter int unsigned DATA_WIDTH = 64; - parameter int unsigned ID_WIDTH = 4; - parameter int unsigned FIFO_DEPTH = 8; + parameter int unsigned ADDR_WIDTH = 32, + parameter int unsigned DATA_WIDTH = 64, + parameter int unsigned ID_WIDTH = 4, + parameter int unsigned FIFO_DEPTH = 8, )( // Source clock domain input logic s_clk_i, input logic s_rst_ni, // Destination clock domain - input logic m_clck_i, + input logic m_clk_i, input logic m_rst_ni // TODO: add AXI ports for source and destination @@ -23,3 +23,4 @@ module axi_async_fifo #( endmodule + From d67d77dad434cb48f7ad2310e0902afb9c9ab270 Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:50:51 -0500 Subject: [PATCH 25/37] feat: update axi_crossbar.sv per requests --- rtl/bus/axi/axi_crossbar.sv | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rtl/bus/axi/axi_crossbar.sv b/rtl/bus/axi/axi_crossbar.sv index b19ef77..c359138 100644 --- a/rtl/bus/axi/axi_crossbar.sv +++ b/rtl/bus/axi/axi_crossbar.sv @@ -9,15 +9,15 @@ module axi_crossbar #( // TODO: add parameters subject to change (managers/subordinates, widths) - parameter int unsigned N_M = 4; - parameter int unsigned N_S = 2; - parameter int unsigned ADDR_WIDTH = 32; - parameter int unsigned DATA_WIDTH = 64; - parameter int unsigned ID_WIDTH = 4; + parameter int unsigned N_M = 4, + parameter int unsigned N_S = 2, + parameter int unsigned ADDR_WIDTH = 32, + parameter int unsigned DATA_WIDTH = 64, + parameter int unsigned ID_WIDTH = 4, )( // TODO: add ports input logic clk_i, - input logic rst_ni + input logic rst_ni, // Manager-side AXI ports (I$, D$, DMA, PTW, etc) // Amount of Manager-side AXI ports subject to change @@ -40,3 +40,4 @@ endmodule + From e3dcd4e42a2cde188c392b363ec7934816d6548f Mon Sep 17 00:00:00 2001 From: Gavin Wiese Date: Fri, 21 Nov 2025 18:21:31 -0500 Subject: [PATCH 26/37] Update plic.sv 2 Majority of code implemented, still needs more work to fully integrate with bus --- rtl/irq/plic.sv | 139 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 115 insertions(+), 24 deletions(-) diff --git a/rtl/irq/plic.sv b/rtl/irq/plic.sv index fcd63c8..c3dcd8c 100644 --- a/rtl/irq/plic.sv +++ b/rtl/irq/plic.sv @@ -1,29 +1,120 @@ -module plic ( - input clk_i, - input rst_ni, - input[31:0] src_i, - output ext_irq_o - ); - - reg[95:0] priorities; - reg[31:0] enable; - reg[31:0] claim; - - always_ff @(negedge clk_i) begin - - if(!rst_ni) begin - for(int i = 0; i < 32; i++) - priorities[i] <= 0; - end +module plic #( +parameter NSOURCES = 32 +)( +input clk_i, +input rst_ni, +input[NSOURCES-1:0] src_i, +output logic ext_irq_o +); - if(!rst_ni) begin - for(int i = 0; i < 32; i++) - enable[i] <= 0; - end +// ------------------------- +// Registers / Internal state +// ------------------------- +logic [NSOURCES*3-1:0] priorities; // Interrupt priorities +logic [NSOURCES-1:0] enable; // Enable bits for sources +logic [$clog2(NSOURCES)-1:0] claim; // Claim/complete bits +logic [NSOURCES-1:0] pending; // Pending interrupts +logic [$clog2(NSOURCES)-1:0] highestPriorIndex; // Index of highest-priority pendin +logic [2:0] tempHighestValue; // Temporary max priority valueg +logic activeClaim; // Track if a interrupt is being handled +logic plicComplete; // Track if current interrupt has been handled + +//Bus Interface Logic +logic [31:0] cpu_rdata; // Data returned on CPU reads +logic cpu_write; // High if CPU is writing +logic cpu_read; // High if CPU is reading +logic [31:0] cpu_wdata; // Data CPU wants to write +logic [31:0] cpu_addr; // CPU address for access - if(!rst_ni) begin - for(int i = 0; i < 32; i++) - claim[i] <= 0; +// ------------------------- +// Active low reset +// ------------------------- +always_ff @(posedge clk_i) begin + if (!rst_ni) begin + priorities <= 0; + enable <= 0; + claim <= 0; + activeClaim <= 0; + plicComplete <= 0; + + cpu_read <= 0; + cpu_write <= 0; + cpu_wdata <= 0; + cpu_addr <= 0; + end +end + +// ------------------------- +// Pending interrupt latching +// ------------------------- +always_ff @(posedge clk_i) begin + for(int i = 0; i < NSOURCES; i++) begin + pending[i] <= pending[i] | (src_i[i] & enable[i]); + end +end + +// ------------------------- +// Priority selector +// ------------------------- +always_ff @(posedge clk_i) begin + tempHighestValue <= -1; + highestPriorIndex <= -1; + for (int i = 0; i < NSOURCES; i++) begin + if (pending[i] && priorities[i*3 +: 3] > tempHighestValue) begin + tempHighestValue <= priorities[i*3 +: 3]; + highestPriorIndex <= i[4:0]; end end +end + +// ------------------------- +// Claim and Complete interface +// ------------------------- +always_ff @(posedge clk_i) begin + if(highestPriorIndex != -1 && !activeClaim) begin + claim <= highestPriorIndex; + pending[highestPriorIndex] <= 0; + activeClaim <= 1; + end + + if(plicComplete) begin + activeClaim <= 0; + end +end + +// ------------------------- +// IRQ output logic +// ------------------------- +always_ff @(posedge clk_i) begin + ext_irq_o <= activeClaim; +end + +// ------------------------- +// Memory-mapped register interface +// ------------------------- +always_ff @(posedge clk_i) begin + if(cpu_read) begin + case (cpu_addr) + 32'h0: cpu_rdata <= enable; + 32'h4: cpu_rdata <= {27'd0, claim}; + 32'h8: cpu_rdata <= pending; + 32'h12: cpu_rdata <= priorities[31:0]; + 32'h16: cpu_rdata <= priorities[63:32]; + 32'h20: cpu_rdata <= priorities[95:64]; + default: cpu_rdata <= 0; + endcase + end else begin + cpu_rdata <= 0; + end + + if(cpu_write) begin + case (cpu_addr) + 32'h0: enable <= cpu_wdata[NSOURCES-1:0]; + 32'h4: plicComplete <= cpu_wdata[0]; + 32'h8: pending <= cpu_wdata[NSOURCES-1:0]; + default: plicComplete <= plicComplete; + endcase + end +end + endmodule From 0659bbaf316f1fe0dd93b09d06542729e80ee91a Mon Sep 17 00:00:00 2001 From: Gavin Wiese Date: Fri, 21 Nov 2025 18:31:00 -0500 Subject: [PATCH 27/37] Update clint.sv Initial timer interrupt logic implemented --- rtl/irq/clint.sv | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/rtl/irq/clint.sv b/rtl/irq/clint.sv index e69de29..db04d30 100644 --- a/rtl/irq/clint.sv +++ b/rtl/irq/clint.sv @@ -0,0 +1,24 @@ +module clint( + input logic clk_i, + input logic rst_ni, + output logic Timer_irq_o, + input logic [63:0] user_time, // + output logic [63:0] mtime_o, // + output logic msip +); + logic [63:0] mtimecmp; + + always_ff @(posedge clk_i) begin + if (!rst_ni) begin + mtime_o <= 16'd0; + mtimecmp <= 16'd0; + Timer_irq_o <= 1'b0; + msip <= 1'b0; + end else begin + mtime_o <= mtime_o + 1; + mtimecmp <= user_time; + Timer_irq_o <= (mtime_o >= mtimecmp); + msip <= Timer_irq_o; + end + end +endmodule From d6203e2dd843d0da990c62a979953a4eb9ccab60 Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Tue, 25 Nov 2025 19:46:21 -0500 Subject: [PATCH 28/37] feat: rtl design for axi_async_fifo.sv --- rtl/bus/axi/axi_async_fifo.sv | 223 +++++++++++++++++++++++++++++++--- 1 file changed, 209 insertions(+), 14 deletions(-) diff --git a/rtl/bus/axi/axi_async_fifo.sv b/rtl/bus/axi/axi_async_fifo.sv index 5bf1195..a732386 100644 --- a/rtl/bus/axi/axi_async_fifo.sv +++ b/rtl/bus/axi/axi_async_fifo.sv @@ -1,26 +1,221 @@ +// +// Asynchronous FIFO (First In, First Out) RTL +// +// Uses Gray codes for synchronizing pointers across asynchronous clock domains +// to prevent instability issues when calculating states (full/empty). +// Use of N + 1 bit pointers for a 2^N deep FIFO to distinguish correctly +// between full and empty states. +// + module axi_async_fifo #( - // TODO: add parameters, subject to change (widths, depth) - parameter int unsigned ADDR_WIDTH = 32, + // Width of data stored in FIFO parameter int unsigned DATA_WIDTH = 64, - parameter int unsigned ID_WIDTH = 4, - parameter int unsigned FIFO_DEPTH = 8, + + // Depth of FIFO needs to be a power of 2 (2, 4, 8, etc) + parameter int unsigned FIFO_DEPTH = 8 )( - // Source clock domain + // Write side (Source/Slave) input logic s_clk_i, - input logic s_rst_ni, + input logic s_rst_ni, // Active-low reset + input logic wr_en, // Write Enable + input logic [DATA_WIDTH-1:0] wr_data, // Write Data + output logic full, // FIFO full flag (registered) - // Destination clock domain + // Read side (Master/Sink) input logic m_clk_i, - input logic m_rst_ni - - // TODO: add AXI ports for source and destination + input logic m_rst_ni, // Active-low reset + input logic rd_en, // Read Enable + output logic [DATA_WIDTH-1:0] rd_data, // Read Data (registered) + output logic empty // FIFO Empty flag (registered) ); + // Local Parameters + localparam int PTR_WIDTH = $clog2(FIFO_DEPTH); - // TODO: - // Define request/response structs or AXI channel ports - // Implement async FIFOs between source and destination clocks - // Preserve AXI valid/ready handshake and ordering + // Pointer size (N + 1 bits) + localparam int PTR_SIZE = PTR_WIDTH + 1; + + // Memory address width (N bits) + localparam int ADDR_WIDTH = PTR_WIDTH + + // Ensure that FIFO_DEPTH is a power of 2 (for simulation) + initial begin + if ((1 << PTR_WIDTH) != FIFO_DEPTH) + begin + $error(1, "axi_async_fifo: FIFO_DEPTH (%0d) is not a power of 2", FIFO_DEPTH); + end + end + + // Memory array (Single port, written in s_clk_i domain, read in m_clk_i domain) + logic [DATA_WIDTH-1:0] memory [0:FIFO_DEPTH-1]; + + // Gray <-> Binary Conversion Functions + // These functions operate with the N + 1 bit pointers. + function automatic logic [PTR_SIZE-1:0] BinaryToGray(input logic [PTR_SIZE-1:0] binary); + BinaryToGray = (binary >> 1) ^ binary; + endfunction + + function automatic logic [PTR_SIZE-1:0] GrayToBinary(input logic [PTR_SIZE-1:0] gray); + logic [PTR_SIZE-1:0] binary; + automatic integer i; + begin + binary[PTR_WIDTH] = gray[PTR_WIDTH]; + for (i = PTR_WIDTH-1; i >= 0; i--) + begin + binary[i] = binary[i + 1] ^ gray[i]; + end + GrayToBinary = binary; + end + endfunction + + // Write Domain Signals (s_clk_i) + // Write Pointer Registers (N + 1 bits) + logic [PTR_SIZE-1:0] writePtrBinary, writePtrBinaryNext; + logic [PTR_SIZE-1:0] writePtrGray, writePtrGrayNext; + + // Syncronized read pointer (gray) into write domain (2 flop synchronizer) + logic [PTR_SIZE-1:0] readPtrGraySync1W, readPtrGraySync2W; + + logic fullNext; // Combinational Full Status + + // Write pointer next-state logic (Binary and Gray) + assign writePtrBinaryNext = (wr_en && !full) + ? (writePtrBinary + 1'b1) + : writePtrBinary; + + assign writePtrGrayNext = binaryToGray(writePtrBinaryNext); + + // Write pointer & memory update register block + always_ff @(posedge s_clk_i or negedge s_rst_ni) + begin + if (!s_rst_ni) + begin + writePtrBinary <= '0; + writePtrGray <= '0; + end else + begin + writePtrBinary <= writePtrBinaryNext; + writePtrGray <= writePtrGrayNext; + + if (wr_en && !full) + begin + memory[writePtrBinary[PTR_WIDTH-1:0]] <= wr_data; + end + end + end + + // Synchronize read pointer (Gray) into write domain (s_clk_i) + // readPtrGray is sourced from the m_clk_i domain (see the read domain below) + always_ff @(posedge s_clk_i or negedge s_rst_ni) + begin + if (!s_rst_ni) + begin + readPtrGraySync1W <= '0; + readPtrGraySync2W <= '0; + end else + begin + readPtrGraySync1W <= readPtrGray; + readPtrGraySync2W <= readPtrGraySync1W; + end + end + + // Full flag logic (Combinational) + // Full Condition: next write gray pointer matches synchronized read gray pointer, + // except for MSB and MSB - 1, which are inverted. + always_comb + begin + fullNext = + (writePtrGrayNext == { + ~readPtrGraySync2W[PTR_WIDTH], // MSB inverted + ~readPtrGraySync2W[PTR_WIDTH-1], // MSB - 1 inverted + readPtrGraySync2W[PTR_WIDTH-2:0] // Lower N - 1 bits matched + }); + end + + // Full flag register + always_ff @(posedge s_clk_i or negedge s_rst_ni) + begin + if (!s_rst_ni) + begin + full <= 1'b0; + end else + begin + full <= fullNext; + end + end + + // Read Domain Signals (m_clk_i) + // Read pointer registers (N + 1 bits) + logic [PTR_SIZE-1:0] readPtrBinary, readPtrBinaryNext; + logic [PTR_SIZE-1:0] readPtrGray, readPtrGrayNext; + + // Syncronized read pointer (gray) into write domain (2-flop synchronizer) + logic [PTR_SIZE-1:0] writePtrGraySync1R, writePtrGraySync2R; + + logic emptyNext; // Combinational Empty Status + + // Read pointer next-state logic (binary and gray) + assign readPtrBinaryNext = (rd_en && !empty) + ? (readPtrBinary + 1'b1) + : readPtrBinary; + + assign readPtrGrayNext = binaryToGray(readPtrBinaryNext); + + // Read pointer & data output register block + always_ff @(posedge m_clk_i or negedge m_rst_ni) + begin + if (!m_rst_ni) + begin + readPtrBinary <= '0; + readPtrGray <= '0; + rd_data <= '0; + end else + begin + readPtrBinary <= readPtrBinaryNext; + readPtrGray <= readPtrGrayNext; + + // Read data from the location pointed to by the current binary pointer index + // Data is registered into rd_data on the clock edge. + if (rd_en && !empty) + begin + rd_data <= memory[readPtrBinary[ADDR_WIDTH-1:0]]; + end + end + end + + // Synchronize write pointer (Gray) into read domain (m_clk_i) + // writePtrGray is sourced from the s_clk_i domain (see write domain above) + always_ff @(posedge m_clk_i or negedge m_rst_ni) + begin + if (!m_rst_ni) + begin + writePtrGraySync1R <= '0; + writePtrGraySync2R <= '0; + end else + begin + writePtrGraySync1R <= writePtrGray; + writePtrGraySync2R <= writePtrGraySync1R; + end + end + + // Empty flag logic: (Combinational) + // Empty condition: next read gray pointer equals synchronized write gray pointer. + always_comb + begin + emptyNext = (readPtrGrayNext == writePtrGraySync2R); + end + + // Empty flag register + always_ff @(posedge m_clk_i or negedge m_rst_ni) + begin + if (!m_rst_ni) begin + empty <= 1'b1; + end else + begin + empty <= emptyNext; + end + end endmodule + From 42ad5aa868cef2d32e727d0430eca7dc77683d2a Mon Sep 17 00:00:00 2001 From: GameBoyAdvSP <90002537+Meowcaroni@users.noreply.github.com> Date: Tue, 13 Jan 2026 09:38:39 -0500 Subject: [PATCH 29/37] Add CPU Documentation --- .../Gaming CPU Documentation & Style Guide.pdf | Bin 0 -> 407044 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Gaming CPU Documentation & Style Guide.pdf diff --git a/docs/Gaming CPU Documentation & Style Guide.pdf b/docs/Gaming CPU Documentation & Style Guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ffa0c494cdf4862e1cbb9e3c812c6260bc1de364 GIT binary patch literal 407044 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

QVX0wgs*AC&HU^3CX(bn98rWnLDRiVk>7R+xuE| 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 XAh^K~ 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 Date: Fri, 23 Jan 2026 17:06:59 -0500 Subject: [PATCH 30/37] Update plic.sv --- rtl/irq/plic.sv | 183 ++++++++++++++++++++++-------------------------- 1 file changed, 84 insertions(+), 99 deletions(-) diff --git a/rtl/irq/plic.sv b/rtl/irq/plic.sv index c3dcd8c..e5be350 100644 --- a/rtl/irq/plic.sv +++ b/rtl/irq/plic.sv @@ -1,120 +1,105 @@ module plic #( -parameter NSOURCES = 32 + parameter NSOURCES = 32, + parameter PRIO_WIDTH = 3 )( -input clk_i, -input rst_ni, -input[NSOURCES-1:0] src_i, -output logic ext_irq_o -); + input logic clk_i, + input logic rst_ni, + input logic [NSOURCES-1:0] src_i, // External interrupt sources -// ------------------------- -// Registers / Internal state -// ------------------------- -logic [NSOURCES*3-1:0] priorities; // Interrupt priorities -logic [NSOURCES-1:0] enable; // Enable bits for sources -logic [$clog2(NSOURCES)-1:0] claim; // Claim/complete bits -logic [NSOURCES-1:0] pending; // Pending interrupts -logic [$clog2(NSOURCES)-1:0] highestPriorIndex; // Index of highest-priority pendin -logic [2:0] tempHighestValue; // Temporary max priority valueg -logic activeClaim; // Track if a interrupt is being handled -logic plicComplete; // Track if current interrupt has been handled + // Simple register interface (bus-free) + input logic [NSOURCES*PRIO_WIDTH-1:0] priority_wdata, + input logic priority_we, + input logic [NSOURCES-1:0] enable_wdata, + input logic enable_we, + input logic [$clog2(NSOURCES)-1:0] claim_wdata, + input logic claim_we, -//Bus Interface Logic -logic [31:0] cpu_rdata; // Data returned on CPU reads -logic cpu_write; // High if CPU is writing -logic cpu_read; // High if CPU is reading -logic [31:0] cpu_wdata; // Data CPU wants to write -logic [31:0] cpu_addr; // CPU address for access + output logic ext_irq_o, + output logic [$clog2(NSOURCES)-1:0] claim_o +); -// ------------------------- -// Active low reset -// ------------------------- -always_ff @(posedge clk_i) begin - if (!rst_ni) begin - priorities <= 0; - enable <= 0; - claim <= 0; - activeClaim <= 0; - plicComplete <= 0; + // ------------------------- + // Registers / Internal state + // ------------------------- + logic [NSOURCES*PRIO_WIDTH-1:0] priorities; // Interrupt priorities + logic [NSOURCES-1:0] enable; // Enable bits for sources + logic [$clog2(NSOURCES)-1:0] claim; // Claim register + logic [NSOURCES-1:0] pending; // Pending interrupts + logic [$clog2(NSOURCES)-1:0] highestPriorIndex; + logic [PRIO_WIDTH-1:0] tempHighestValue; + logic activeClaim; - cpu_read <= 0; - cpu_write <= 0; - cpu_wdata <= 0; - cpu_addr <= 0; - end -end + assign claim_o = claim; -// ------------------------- -// Pending interrupt latching -// ------------------------- -always_ff @(posedge clk_i) begin - for(int i = 0; i < NSOURCES; i++) begin - pending[i] <= pending[i] | (src_i[i] & enable[i]); + // ------------------------- + // Active low reset + // ------------------------- + always_ff @(negedge rst_ni) begin + if (!rst_ni) begin + priorities <= 0; + enable <= 0; + claim <= 0; + pending <= 0; + highestPriorIndex <= 0; + tempHighestValue <= 0; + activeClaim <= 0; + end end -end -// ------------------------- -// Priority selector -// ------------------------- -always_ff @(posedge clk_i) begin - tempHighestValue <= -1; - highestPriorIndex <= -1; - for (int i = 0; i < NSOURCES; i++) begin - if (pending[i] && priorities[i*3 +: 3] > tempHighestValue) begin - tempHighestValue <= priorities[i*3 +: 3]; - highestPriorIndex <= i[4:0]; + // ------------------------- + // Simple register writes + // ------------------------- + always_ff @(posedge clk_i) begin + if (priority_we) begin + priorities <= priority_wdata; + end + if (enable_we) begin + enable <= enable_wdata; + end + if (claim_we) begin + activeClaim <= 0; // Claim complete end end -end -// ------------------------- -// Claim and Complete interface -// ------------------------- -always_ff @(posedge clk_i) begin - if(highestPriorIndex != -1 && !activeClaim) begin - claim <= highestPriorIndex; - pending[highestPriorIndex] <= 0; - activeClaim <= 1; + // ------------------------- + // Pending interrupt latching + // ------------------------- + always_ff @(posedge clk_i) begin + for (int i = 0; i < NSOURCES; i++) begin + pending[i] <= pending[i] | (src_i[i] & enable[i]); + end end - if(plicComplete) begin - activeClaim <= 0; + // ------------------------- + // Priority selector + // ------------------------- + always_ff @(posedge clk_i) begin + tempHighestValue <= 0; + highestPriorIndex <= 0; + for (int i = 0; i < NSOURCES; i++) begin + if (pending[i] && priorities[i*PRIO_WIDTH +: PRIO_WIDTH] > tempHighestValue) begin + tempHighestValue <= priorities[i*PRIO_WIDTH +: PRIO_WIDTH]; + highestPriorIndex <= i[$clog2(NSOURCES)-1:0]; + end + end end -end -// ------------------------- -// IRQ output logic -// ------------------------- -always_ff @(posedge clk_i) begin - ext_irq_o <= activeClaim; -end - -// ------------------------- -// Memory-mapped register interface -// ------------------------- -always_ff @(posedge clk_i) begin - if(cpu_read) begin - case (cpu_addr) - 32'h0: cpu_rdata <= enable; - 32'h4: cpu_rdata <= {27'd0, claim}; - 32'h8: cpu_rdata <= pending; - 32'h12: cpu_rdata <= priorities[31:0]; - 32'h16: cpu_rdata <= priorities[63:32]; - 32'h20: cpu_rdata <= priorities[95:64]; - default: cpu_rdata <= 0; - endcase - end else begin - cpu_rdata <= 0; + // ------------------------- + // Claim logic + // ------------------------- + always_ff @(posedge clk_i) begin + if (!activeClaim && tempHighestValue != 0) begin + claim <= highestPriorIndex; + pending[highestPriorIndex] <= 0; + activeClaim <= 1; + end end - if(cpu_write) begin - case (cpu_addr) - 32'h0: enable <= cpu_wdata[NSOURCES-1:0]; - 32'h4: plicComplete <= cpu_wdata[0]; - 32'h8: pending <= cpu_wdata[NSOURCES-1:0]; - default: plicComplete <= plicComplete; - endcase + // ------------------------- + // IRQ output + // ------------------------- + always_ff @(posedge clk_i) begin + ext_irq_o <= activeClaim; end -end endmodule From 3344a464624a9d72502cd9d2e7519543cf83df4b Mon Sep 17 00:00:00 2001 From: Gavin Wiese Date: Fri, 23 Jan 2026 17:07:42 -0500 Subject: [PATCH 31/37] Update plic_module_brief_v0.2.md --- docs/ip-briefs/plic_module_brief_v0.2.md | 50 +++++++++++++----------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/docs/ip-briefs/plic_module_brief_v0.2.md b/docs/ip-briefs/plic_module_brief_v0.2.md index e8e2cab..24f5a83 100644 --- a/docs/ip-briefs/plic_module_brief_v0.2.md +++ b/docs/ip-briefs/plic_module_brief_v0.2.md @@ -1,63 +1,69 @@ -# PLIC - Module Brief (v0.2) +# PLIC - Module Brief (v0.3) **Owner:** Gavin Wiese **RTL:** rtl/irq/plic.sv ### Purpose & Role -The Platform-Level Interrupt Controller (PLIC) is placed near the CPU core, connected via the memory-mapped AXI bus. The PLIC manages and prioritizes external interrupt requests from up to 32 sources, forwarding only the highest-priority pending interrupt to the CPU. This allows the processor to efficiently handle asynchronous external events. +The Platform-Level Interrupt Controller (PLIC) is placed near the CPU core. The PLIC manages and prioritizes external interrupt requests from up to 32 sources, forwarding only the highest-priority pending interrupt to the CPU. This allows the processor to efficiently handle asynchronous external events. ### Parameters -- Number of interrupt sources: 32 (`N_SOURCES`) -- Number of target contexts (CPU cores): 1 (`N_TARGETS`) +- Number of interrupt sources: 32 (`NSOURCES`) - Priority field width per source: 3 bits (`PRIO_WIDTH`) -- Interrupt ID width for claim/complete operations: 6 bits (`ID_WIDTH`) +- Interrupt ID width for claim/complete operations: `$clog2(NSOURCES)` ### Interfaces (Ports) -| **Signal** | **Dir** | **Width** | **Description** | -|---------------|---------|-----------|---------------------------------------------| -| clk_i | in | 1 | System clock | -| rst_ni | in | 1 | Active-low reset | -| src_i | in | 32 | External interrupt sources | -| ext_irq_o | out | 1 | Interrupt output to the CPU core | +| **Signal** | **Dir** | **Width** | **Description** | +|----------------------|---------|-----------|----------------------------------------------------| +| clk_i | in | 1 | System clock | +| rst_ni | in | 1 | Active-low asynchronous reset | +| src_i | in | 32 | External interrupt sources | +| priority_wdata | in | 96 | Data to write to all priority registers (32 × 3) | +| priority_we | in | 1 | Write enable for priority registers | +| enable_wdata | in | 32 | Data to write to enable register | +| enable_we | in | 1 | Write enable for enable register | +| claim_wdata | in | 5 | Claim complete input | +| claim_we | in | 1 | Write enable for claim completion | +| ext_irq_o | out | 1 | Interrupt output to the CPU core | +| claim_o | out | 5 | Current claimed interrupt ID | ### Reset/Init -An active-low reset (`rst_ni`) is used for the PLIC. When reset is asserted (`rst_ni = 0`), all internal registers are cleared to 0, and the output signal `ext_irq_o` reflects this reset value. All internal registers are reset synchronously with the system clock. +An active-low asynchronous reset (`rst_ni`) is used for the PLIC. When reset is asserted (`rst_ni = 0`), all internal registers—including `priorities`, `enable`, `pending`, and `claim`—are cleared to 0, and the output signal `ext_irq_o` is deasserted. ### Behavior and Timing -The PLIC continuously monitors the 32 `src_i` interrupt lines. When one or more enabled interrupts are pending, the highest-priority source is selected, and `ext_irq_o` is asserted to signal the CPU core. Once the CPU completes the interrupt, it writes back the interrupt ID, clearing the corresponding pending bit. All operations are synchronous with the system clock, and `ext_irq_o` is asserted one clock cycle after the conditions are met. +The PLIC continuously monitors the 32 `src_i` interrupt lines. When one or more enabled interrupts are pending, the highest-priority source is selected, and `ext_irq_o` is asserted to signal the CPU core. Once the CPU completes the interrupt (signaled via `claim_we`), the pending bit for that interrupt is cleared and `ext_irq_o` deasserts. All operations are synchronous with the system clock, and `ext_irq_o` asserts one clock cycle after the conditions are met. ### Programming Model -The PLIC provides three memory-mapped registers: +The PLIC provides three sets of registers controlled via simple write-enable/data inputs: -- **`priority`** – Stores the priority of each interrupt source. Higher values indicate higher priority. -- **`enable`** – Determines which interrupt sources are enabled for the target CPU core. -- **`claim`** – Used by the CPU to claim the highest-priority pending interrupt. Reading this register returns the interrupt ID, and writing the same ID back signals completion, clearing the pending bit. +- **`priority`** – Stores the priority of each interrupt source. Higher values indicate higher priority. Updated via `priority_wdata` and `priority_we`. +- **`enable`** – Determines which interrupt sources are enabled. Updated via `enable_wdata` and `enable_we`. +- **`claim`** – Contains the currently claimed interrupt ID. Writing to this register with `claim_wdata` and `claim_we` signals completion, clearing the pending bit. -All registers are accessible through the memory-mapped AXI bus at addresses defined in the SoC register map. +All registers are accessible through the `_we` / `_wdata` inputs in this bus-free implementation. ### Errors/IRQs | **IRQ** | **Source** | **Trigger** | **Clear** | |------------|-----------|----------------------------------|-------------------------------------| -| ext_irq_o | src_i | One or more enabled interrupts pending | Cleared when CPU claims/completes via claim register | +| ext_irq_o | src_i | One or more enabled interrupts pending | Cleared when CPU signals completion via claim input | The PLIC does not generate additional internal error signals; all interrupts come from external sources. ### Performance Targets - `ext_irq_o` asserts within one clock cycle of a pending, enabled interrupt being detected. -- All internal registers (priority, enable, claim/complete) update synchronously with the system clock. +- All internal registers (priority, enable, claim/complete, pending) update synchronously with the system clock. - The PLIC can handle all 32 external sources without loss of pending interrupts. ### Dependencies -The PLIC depends on `clk_i` to update internal registers and monitor interrupt sources, and on `rst_ni` to initialize registers. It also relies on the AXI memory-mapped bus to allow the CPU to access and configure priority, enable, and claim/complete registers. The external interrupt lines (`src_i`) provide all input events, and the PLIC drives the single interrupt output (`ext_irq_o`) to the CPU core. +The PLIC depends on `clk_i` to update internal registers and monitor interrupt sources, and on `rst_ni` to initialize registers. External interrupt lines (`src_i`) provide input events, and the PLIC drives the single interrupt output (`ext_irq_o`) to the CPU core. Register updates are controlled via `_we` / `_wdata` inputs. ### Verification Links -Verification for the PLIC is planned through simulation testbenches to confirm correct behavior of priority handling, enable bits, and the claim/complete mechanism. Testbenches will ensure that `ext_irq_o` asserts for the highest-priority pending interrupt, that pending bits are cleared after a claim/complete operation, and that the module responds correctly to reset (`rst_ni`). \ No newline at end of file +Verification for the PLIC is planned through simulation testbenches to confirm correct behavior of priority handling, enable bits, and the claim/complete mechanism. Testbenches will ensure that `ext_irq_o` asserts for the highest-priority pending interrupt, that pending bits are cleared after a claim/complete operation, and that the module responds correctly to reset (`rst_ni`). From 5e7936be06050c7687758e2dc8995344cf2b531f Mon Sep 17 00:00:00 2001 From: Gavin Wiese Date: Fri, 23 Jan 2026 17:07:59 -0500 Subject: [PATCH 32/37] Update clint_module_brief_v0.2.md --- docs/ip-briefs/clint_module_brief_v0.2.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/ip-briefs/clint_module_brief_v0.2.md b/docs/ip-briefs/clint_module_brief_v0.2.md index 0d03a22..ed1fa22 100644 --- a/docs/ip-briefs/clint_module_brief_v0.2.md +++ b/docs/ip-briefs/clint_module_brief_v0.2.md @@ -1,10 +1,10 @@ -# CLINT - Module Brief (v0.2) +# CLINT - Module Brief (v0.3) **Owner:** Gavin Wiese **RTL:** rtl/irq/clint.sv ### Purpose & Role -The Core Local Interruptor (CLINT) is placed near the CPU core, as interrupts are sent directly to the core via the memory-mapped AXI bus. The CLINT provides two types of interrupts: **timer-based** (`timer_irq_o`) and **software-based** (`soft_irq_o`). It ensures that events from the timer or software are recognized promptly by the CPU. +The Core Local Interruptor (CLINT) is placed near the CPU core, as interrupts are sent directly to the core via memory. The CLINT provides two types of interrupts: **timer-based** (`timer_irq_o`) and **software-based** (`soft_irq_o`). It ensures that events from the timer or software are recognized promptly by the CPU. ### Parameters @@ -22,6 +22,10 @@ The Core Local Interruptor (CLINT) is placed near the CPU core, as interrupts ar | soft_irq_o | out | 1 | Software interrupt output | | clk_i | in | 1 | System clock | | rst_ni | in | 1 | Active-low reset | +| msip_we | in | 1 | Write enable for `msip` register | +| msip_wdata | in | 1 | Data to write to `msip` | +| mtimecmp_we | in | 1 | Write enable for `mtimecmp` register | +| mtimecmp_wdata | in | 64 | Data to write to `mtimecmp` | ### Reset/Init @@ -39,7 +43,7 @@ The CLINT exposes three memory-mapped registers: - **`mtimecmp`** – Timer compare register. When the internal 64-bit counter `mtime` reaches or exceeds this value, `timer_irq_o` is asserted until a new, greater value is written. - **`mtime`** – A 64-bit free-running counter that increments at the system clock rate. Software can read this register for timing purposes. -All registers are accessible through the memory-mapped AXI bus at addresses defined in the SoC register map. +All registers are accessible via write-enable and data inputs (`*_we`, `*_wdata`). ### Errors/IRQs @@ -57,8 +61,8 @@ The CLINT does not generate additional error signals. ### Dependencies -The CLINT depends on `clk_i` to increment `mtime` and `rst_ni` to initialize internal registers. It must be connected to the CPU core so software can access the memory-mapped registers and receive the interrupt outputs. +The CLINT depends on `clk_i` to increment `mtime` and `rst_ni` to initialize internal registers. Write-enable (`*_we`) and write-data (`*_wdata`) inputs are required to update the `msip` and `mtimecmp` registers. It must be connected to the CPU core so software can receive the interrupt outputs. ### Verification Links -Verification for the CLINT is planned through simulation testbenches to confirm correct behavior of the internal 64-bit timer (`mtime`), timer compare (`mtimecmp`), and software interrupt (`msip`) functionality. Testbenches will ensure that `timer_irq_o` and `soft_irq_o` assert under the correct conditions and that the module responds correctly to reset (`rst_ni`). \ No newline at end of file +Verification for the CLINT is planned through simulation testbenches to confirm correct behavior of the internal 64-bit timer (`mtime`), timer compare (`mtimecmp`), and software interrupt (`msip`) functionality. Testbenches will ensure that `timer_irq_o` and `soft_irq_o` assert under the correct conditions and that the module responds correctly to reset (`rst_ni`). From c3603cd0259e654bf11e0fd6104e7960af50c594 Mon Sep 17 00:00:00 2001 From: GameBoyAdvSP <90002537+Meowcaroni@users.noreply.github.com> Date: Mon, 26 Jan 2026 10:20:09 -0500 Subject: [PATCH 33/37] Add negedge reset in clint module --- rtl/irq/clint.sv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtl/irq/clint.sv b/rtl/irq/clint.sv index db04d30..4e55cf2 100644 --- a/rtl/irq/clint.sv +++ b/rtl/irq/clint.sv @@ -8,7 +8,7 @@ module clint( ); logic [63:0] mtimecmp; - always_ff @(posedge clk_i) begin + always_ff @(posedge clk_i or negedge rst_ni) begin if (!rst_ni) begin mtime_o <= 16'd0; mtimecmp <= 16'd0; @@ -22,3 +22,4 @@ module clint( end end endmodule + From 1574ae0d090b1f830fdf675860c7e5b8b089b2d8 Mon Sep 17 00:00:00 2001 From: GameBoyAdvSP <90002537+Meowcaroni@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:29:15 -0500 Subject: [PATCH 34/37] Add CPU Core One-Pagers --- docs/ip-briefs/CPU_Core_Brief_(v1.0).md | 85 +++++++++++++++++++ docs/ip-briefs/Decode_Stage_Brief_(v1.0).md | 67 +++++++++++++++ docs/ip-briefs/Execute_Stage_Brief_(v1.0).md | 71 ++++++++++++++++ docs/ip-briefs/Fetch_Stage_Brief_(v1.0).md | 70 +++++++++++++++ .../ip-briefs/Writeback_Stage_Brief_(v1.0).md | 62 ++++++++++++++ 5 files changed, 355 insertions(+) create mode 100644 docs/ip-briefs/CPU_Core_Brief_(v1.0).md create mode 100644 docs/ip-briefs/Decode_Stage_Brief_(v1.0).md create mode 100644 docs/ip-briefs/Execute_Stage_Brief_(v1.0).md create mode 100644 docs/ip-briefs/Fetch_Stage_Brief_(v1.0).md create mode 100644 docs/ip-briefs/Writeback_Stage_Brief_(v1.0).md diff --git a/docs/ip-briefs/CPU_Core_Brief_(v1.0).md b/docs/ip-briefs/CPU_Core_Brief_(v1.0).md new file mode 100644 index 0000000..0924895 --- /dev/null +++ b/docs/ip-briefs/CPU_Core_Brief_(v1.0).md @@ -0,0 +1,85 @@ +**Author:** Sebastian Candelaria +**RTL:** *rtl/cpu/core/rv32_core.sv* + +--- +#### **Purpose & Role** +- The CPU Core is the main processing unit of the SoC, in charge of running all instructions from a given program and storing/loading memory data as needed + - 5-stage pipeline in RV32IMA (ISA-format) with M/S-mode (privilege levels) + - Built for a single-core system +--- +#### **Parameters** +- Parameters in Verilog/SystemVerilog are similar to constants and #define directives seen in C/C++ that are reused many times across a module to avoid magic numbers and promote reusability + +| Name | Default | Description | +| --------- | --------------- | ------------------------------------------------------------------------------------------------------ | +| HAS_M | 1 | Enable RV32M mul/div instructions | +| HAS_A | 1 | Enable LR/SC atomic instructions | + +--- +#### **Interfaces (Ports)** +- Any external input or output signal that will be used by the IF stage +- AXI, IRQ, and debug signal sizes must be defined +- Subject to change + +| Signal Name | Direction | Width | Description | +| ------------------------ | --------- | ----- | ---------------------------------------------------------------------- | +| **Global Signals** | | | | +| clk_i | In | 1 | Main clock input | +| rst_ni | In | 1 | Active-low reset | +| | | | | +| **PLIC/CLINT Interface** | | | | +| irq_ext_i | In | 1 | Interrupt request from external device(s) (controller, keyboard, etc.) | +| irq_timer_i | In | 1 | Interrupt request from timer | +| irq_soft_i | In | N/A | | +| | | | | +| **AXI Interface** | | | | +| i_axi_* | I/O | N/A | Instruction AXI: Communicates with instruction cache | +| d_axi_* | I/O | N/A | Data AXI: Communicates with data cache | +| | | | | +| **Debug Interface** | | | | +| dbg_* | I/O | N/A | JTAG Signals for checking CPU behavior (Test Clock, Test Data, etc.) | +| | | | | + +--- +#### **Reset/Init** +- When performing a reset, the signal rst_ni becomes LOW (0), the CPU enters its default program ready state + - The program counter (PC) is set to the BootROM's beginning instruction + - The control-status registers (CSRs) are set to initial values, such as # of cycles elapsed = 0 + - All data in the pipeline, including intermediate registers and the register file, is flushed (cleared) +--- +#### **Behavior & Timing** +- Instruction Execution Order: The pipeline executes the instructions in-order, or in the sequence given by the program + - Data forwarding, consisting of signals backtracking to Decode (ID) stage, is used to handle dependencies between instructions (EX: Instruction 2 needs data provided by Instruction 1) + - Hazard/flush control is needed for when hazards become issues, such as an instruction +- Control Components: The core needs to minimize cycle losses from control flow changes (i.e. jumping instructions) + - Branch Target Buffer (BTB, optional): Table of instruction addresses recently visited, indicating whether they are more likely to be visited again upon a branch (if condition is true, jump to instruction) instruction + - Trap Vector Exception: Upon encountering a trap/error (EX: Division by zero), the CPU should immediately execute a subroutine at a vector (function's address) given by a table +--- +#### **Programming Model** +- CLINT: *specs/registers/clint.yaml* +- PLIC: *specs/registers/plic.yaml* +--- +#### **Errors/IRQs** +- Trap Vector Handling +- Exception Causes +- MCAUSE/MEPC Behavior +--- +#### **Performance Targets** +- CPI: Average number of clock cycles taken to execute an instruction (>= 1) + - Goal: <= 2 cycles per instruction +- MIPS: # of millions of instructions per second + - Dependent on CPI and clock frequency + - Goal: >= 126.5 MIPS +--- +#### **Dependencies** +- AXI: *rtl/bus/axi/axi_crossbar.sv* + - AXI connection to fetch instructions and data from memory hierarchy (ideally cache, main memory upon miss) +- PLIC/CLINT: *rtl/irq/clint.sv*, *rtl/irq/plic.sv* + - PLIC/CLINT send interrupts, signals for CPU to temporarily switch to execution of a function's instructions in the program, based on controller inputs, timer values, etc. +- MMU: *rtl/cpu/mmu/sv32_mmu.sv* + - Controls where/how instructions and data are loaded and stored +- RV32 Package: *rtl/cpu/pkg/rv32_pkg.sv* +--- +#### **Verification Links** +- *sim/uvm/test_core.sv* + - SystemVerilog simulation environment to verify CPU core \ No newline at end of file diff --git a/docs/ip-briefs/Decode_Stage_Brief_(v1.0).md b/docs/ip-briefs/Decode_Stage_Brief_(v1.0).md new file mode 100644 index 0000000..1646ee7 --- /dev/null +++ b/docs/ip-briefs/Decode_Stage_Brief_(v1.0).md @@ -0,0 +1,67 @@ +**Author:** Sebastian Candelaria +**RTL:** *rtl/cpu/core/decode.sv* + +--- +#### **Purpose & Role** +- The Instruction Decode (ID) stage is the 2nd stage in a standard 5-stage RISC-V pipeline. At each clock cycle, the decode stage translates an instruction into data values and control signals to direct the rest of the pipeline + - For any instructions involving register-reading, the decode stage will retrieve the data from the register file (RF) + - Any instruction operation codes (opcodes) or encoded immediate/constant values (imm values) are translated into control signals and real, usable values + +--- +#### **Parameters** +- Parameters in Verilog/SystemVerilog are similar to constants and #define directives seen in C/C++ that are reused many times across a module to avoid magic numbers and promote reusability +- Note: Inherited from `rv32_pkg.sv` and `rv32_core` top-level. See CPU Core Brief for HAS_M/HAS_A configuration. + +| Name | Default | Description | +|-------------|---------|------------------------------------------------------| +| HAS_M | 1 | Enable RV32M instruction decoding | +| HAS_A | 1 | Enable RV32A instruction decoding | +| DATA_WIDTH | 32 | Operand width | + +--- +#### **Interfaces (Ports)** +- Any external input or output signal that will be used by the ID stage +- Subject to change + +| Signal Name | Direction | Width | Description | +| ------------------------ | --------- | ----- | ---------------------------------------------------------------------- | +| **Global Signals** | | | | +| clk_i | In | 1 | Main clock input | +| rst_ni | In | 1 | Active-low asynchronous reset | +| | | | | +| **Semi-Global Signals** | | | | +| inst_i | In | 32 | Fetched instruction | +| rf_a_i | In | 32 | Register A operand (data) from RF | +| rf_b_i | In | 32 | Register B operand (data) from RF | +| rf_a_o | Out | 32 | Register A operand to execute (EX) stage | +| rf_b_o | Out | 32 | Register B operand to execute (EX) stage | +| ctrl_*_o | Out | N/A | Control signals to execute | +| | | | | + +--- +#### **Reset/Init** +- When performing a reset, the signal rst_ni becomes LOW (0), the CPU enters its default state + - All registers are flushed + - Control signals enter default values +--- +#### **Behavior & Timing** +- One-Cycle Decode: Entire decode process should occur within one cycle + - Control Signals: Decode stage must produce control signals for following stages based on given instruction, likely through a control unit (CU) or FSM if needed +- Hazard/Flush: Upon encountering a pipeline hazard, such as branch calculation, decode should flush execute/memory stage + - Illegal instructions should raise a trap(error) cause, leading into trap subroutine execution + - Data Forwarding: Read output values from execute (EX) and memory (MM) stages and, if meant for register needed to read from, substitute values for next instruction's register data output. If data cannot be forwarded yet (EX: waiting on memory cache), stall until it can +--- +#### **Errors/IRQs** +- Illegal Instruction Trap +--- +#### **Performance Targets** +- 1-cycle execution +--- +#### **Dependencies** +- Execute (EX): *rtl/bus/core/execute.sv* +- Memory (MM): *rtl/bus/core/mem_stage.sv* +- RV32 Package: *rtl/cpu/pkg/rv32_pkg.sv* +--- +#### **Verification Links** +- *sim/uvm/test_decode.sv* + - SystemVerilog simulation environment to verify decode stage \ No newline at end of file diff --git a/docs/ip-briefs/Execute_Stage_Brief_(v1.0).md b/docs/ip-briefs/Execute_Stage_Brief_(v1.0).md new file mode 100644 index 0000000..126c149 --- /dev/null +++ b/docs/ip-briefs/Execute_Stage_Brief_(v1.0).md @@ -0,0 +1,71 @@ +**Author:** Sebastian Candelaria +**RTL:** *rtl/cpu/core/execute.sv* + +--- +#### **Purpose & Role** +- The Execute (EX) stage is the 3rd stage in a standard 5-stage RISC-V pipeline. At each clock cycle, the execute stage performs arithmetic and logic operations on operand values. + - Conditional statement evaluation (thus redirects) occurs here + - Contains Arithmetic & Logic Unit (ALU) for basic operations (add, sub, shift, etc.) + multiplier and divider + +--- +#### **Parameters** +- Parameters in Verilog/SystemVerilog are similar to constants and #define directives seen in C/C++ that are reused many times across a module to avoid magic numbers and promote reusability +- Note: Inherited from `rv32_pkg.sv` and `rv32_core` top-level. See CPU Core Brief for HAS_M/HAS_A configuration. + +| Name | Default | Description | +|-------------|---------|------------------------------------------------------| +| MUL_CYCLES | 3 | Multiplier latency in cycles | +| DIV_CYCLES | 5 | Divider latency in cycles | +| HAS_M | 1 | Enable mul/div hardware | + +--- +#### **Interfaces (Ports)** +- Any external input or output signal that will be used by the EX stage +- Subject to change + +| Signal Name | Direction | Width | Description | +| ------------------------ | --------- | ----- | ---------------------------------------------------------------------- | +| **Global Signals** | | | | +| clk_i | In | 1 | Main clock input | +| rst_ni | In | 1 | Active-low asynchronous reset | +| | | | | +| **Local Signals** | | | | +| ctrl_*_i | In | N/A | Control signals to execute | +| op_a_i | In | 32 | Register A operand (data) from RF | +| op_b_i | In | 32 | Register B operand (data) from RF | +| alu_res_o | Out | 32 | ALU result from processing operands | +| branch_taken_o | Out | 1 | Control signal for whether branch should be taken | +| branch_target_o | Out | N/A | Address for branch to redirect program counter (PC) to | +| | | | | + +--- +#### **Reset/Init** +- When performing a reset, the signal rst_ni becomes LOW (0), the CPU enters its default state + - All registers are flushed + - Control signals enter default values +--- +#### **Behavior & Timing** +- One-Cycle ALU: All ALU outputs should be available within one cycle of processing request +- Multi-Cycle Mul/Div: Multiplier and divider should take multiple cycles, requiring stalls until processing is finished + - Stalls should occur under busy/ready internal handshake signals (aka while working on operation, stall) +- Unique-Case FSM: A finite state machine (FSM), a sequential logic model for paths of outputs depending on inputs, should control output signals depending on specific operationctrl_*_os, such as initiating stalls upon multiply/divide and releasing at operation finish +- Redirect Signal: Upon determining branch output in one cycle, EX should send the result directly back to the fetch stage (IF) for the redirect to occur on the next cycle +- Memory Operations: All memory control signals and operations, unless needing execute, should bypass to MM stage on next cycle + - FENCE.I Side-Effects: Since FENCE.I replaces old instructions with new ones, this instruction should bypass to MM stage +--- +#### **Errors/IRQs** +- Division By Zero +- Overflow Handling +--- +#### **Performance Targets** +- CPU should stall for at most five cycles due to EX + - 1-cycle ALU, <= 5-cycle Mul/Div +--- +#### **Dependencies** +- Memory (MM): *rtl/bus/core/mem_stage.sv* +- Writeback (WB): *rtl/bus/core/writeback.sv* +- RV32 Package: *rtl/cpu/pkg/rv32_pkg.sv* +--- +#### **Verification Links** +- *sim/uvm/test_execute.sv* + - SystemVerilog simulation environment to verify execute stage \ No newline at end of file diff --git a/docs/ip-briefs/Fetch_Stage_Brief_(v1.0).md b/docs/ip-briefs/Fetch_Stage_Brief_(v1.0).md new file mode 100644 index 0000000..52c58c1 --- /dev/null +++ b/docs/ip-briefs/Fetch_Stage_Brief_(v1.0).md @@ -0,0 +1,70 @@ +**Author:** Sebastian Candelaria +**RTL:** *rtl/cpu/core/fetch.sv* + +--- +#### **Purpose & Role** +- The Instruction Fetch (IF) stage is the 1st stage in a standard 5-stage RISC-V pipeline. At each clock cycle, the fetch stage attempts to request an instruction from the cache via the AXI and sends that instruction down the pipeline. + - Program Counter (PC): Register holding memory address of next instruction to execute. Increments by 4 or changes to a new address given by a jump/branch instruction after each cycle. + - IF will stall if next PC address is not known yet or has not received an instruction yet. +--- +#### **Parameters** +- Parameters in Verilog/SystemVerilog are similar to constants and #define directives seen in C/C++ that are reused many times across a module to avoid magic numbers and promote reusability +- Note: Inherited from `rv32_pkg.sv` and `rv32_core` top-level. See CPU Core Brief for HAS_M/HAS_A configuration. + +| Name | Default | Description | +|-------------|----------------|-----------------------------------------------| +| RESET_ADDR | 32'h0000_0000 | PC value on reset (BootROM entry) | +| BTB_ENTRIES | 16 | Branch target buffer size (0 to disable) | +| ADDR_WIDTH | 32 | Address bus width | + +--- +#### **Interfaces (Ports)** +- Any external input or output signal that will be used by the IF stage +- AXI burst parameters must be defined later +- Subject to change + +| Signal Name | Direction | Width | Description | +| ------------------------ | --------- | ----- | ---------------------------------------------------------------------- | +| **Global Signals** | | | | +| clk_i | In | 1 | Main clock input | +| rst_ni | In | 1 | Active-low asynchronous reset | +| | | | | +| **Semi-Global Signals** | | | | +| pc_q | In | 32 | Program counter signal | +| ic_req_o | Out | N/A | Instruction cache request + valid | +| ic_rsp_i | In | N/A | Instruction cache response + valid | +| redir_i | In | 1 | Indicator to redirect PC to branch/jump address | +| inst_o | Out | 32 | Fetched instruction to decode (ID) stage | +| | | | | + +--- +#### **Reset/Init** +- When performing a reset, the signal rst_ni becomes LOW (0), the CPU enters its default state + - All registers are flushed +--- +#### **Behavior & Timing** +- Sequential Fetch: Since the pipeline executes the instructions in-order, fetch always grabs instructions in sequence from first to last address (except as directed by jump/branch instructions) + - Branch Target Buffer (BTB, optional) is used when the branch address is known but not the conditional outcome, predicting whether a branch should be taken (aka the branch address should be the next PC). + - Upon requesting an instruction from cache, it should be ready to send in the next clock cycle (therefore, the current instruction is sent out while the next instruction is requested) + - Upon miss/redirect, a one-cycle stall must happen to prevent an incorrect instruction from being sent + - Upon FENCE.I, an instruction that flushes the current instructions and inserts new ones, the instruction cache uses an invalidate hook to tell the fetch stage to wait until the new instructions are ready +--- +#### **Programming Model** +- N/A +--- +#### **Errors/IRQs** +- Instruction Access Fault +- Page Fault +--- +#### **Performance Targets** +- 1-cycle hit path: Expect instruction within one cycle always (moreso AXI and cache issue) +--- +#### **Dependencies** +- AXI: *rtl/bus/axi/axi_crossbar.sv* + - AXI connection to fetch instructions and data from memory hierarchy (ideally cache, main memory upon miss) +- Decode (ID): *rtl/bus/core/decode.sv* +- RV32 Package: *rtl/cpu/pkg/rv32_pkg.sv* +--- +#### **Verification Links** +- *sim/uvm/test_fetch.sv* + - SystemVerilog simulation environment to verify fetch stage \ No newline at end of file diff --git a/docs/ip-briefs/Writeback_Stage_Brief_(v1.0).md b/docs/ip-briefs/Writeback_Stage_Brief_(v1.0).md new file mode 100644 index 0000000..557e391 --- /dev/null +++ b/docs/ip-briefs/Writeback_Stage_Brief_(v1.0).md @@ -0,0 +1,62 @@ +**Author:** Sebastian Candelaria +**RTL:** *rtl/cpu/core/writeback.sv* + +--- +#### **Purpose & Role** +- The Writeback (WB) stage is the 5th stage in a standard 5-stage RISC-V pipeline. At each clock cycle, if given data to send, WB sends the data directly data to the register file (RF) and adjusts the control-status registers (CSRs) as needed + - Any exceptions found must take priority and be committed (noted in CSRs, handled by flushing pipeline and resetting) + +--- +#### **Parameters** +- Parameters in Verilog/SystemVerilog are similar to constants and #define directives seen in C/C++ that are reused many times across a module to avoid magic numbers and promote reusability +- Note: Inherited from `rv32_pkg.sv` and `rv32_core` top-level. See CPU Core Brief for HAS_M/HAS_A configuration. + +| Name | Default | Description | +|---------------|---------|-------------------------------------------------- | +| DATA_WIDTH | 32 | Writeback data width | +| RF_ADDR_WIDTH | 5 | Register file address width (32 regs) | + +--- +#### **Interfaces (Ports)** +- Any external input or output signal that will be used by the MM stage (subject to change) + +| Signal Name | Direction | Width | Description | +| ------------------------ | --------- | ----- | ---------------------------------------------------------------------- | +| **Global Signals** | | | | +| clk_i | In | 1 | Main clock input | +| rst_ni | In | 1 | Active-low asynchronous reset | +| | | | | +| **Local Signals** | | | | +| rd_addr_i | In | 5 | Destination register address to send data to | +| rd_data_i | In | 32 | Data for destination register | +| rd_we_o | Out | 1 | Control signal for whether register file (RF) should be written | +| csr_* | I/O | N/A | Control-status registers read/write side-effects | +| | | | | + +--- +#### **Reset/Init** +- When performing a reset, the signal rst_ni becomes LOW (0), the CPU enters its default state + - All registers are flushed + - Control signals enter default values +--- +#### **Behavior & Timing** +- 1-Cycle Commit: All values should be written back by next cycle +- CSR/exceptions are routed to trap logic in core + - Stalls should occur under busy/ready internal handshake signals (aka while working on operation, stall) +- Unique-Case FSM: A finite state machine (FSM), a sequential logic model for paths of outputs depending on inputs, should control output +--- +#### **Errors/IRQs** +- Exception Commit Behavior +- Trap Delegation +--- +#### **Performance Targets** +- Each data or exception committed in 1 cycle +--- +#### **Dependencies** +- Memory (MM): *rtl/bus/core/mem_stage.sv* +- Execute (EX): *rtl/bus/core/execute.sv* +- RV32 Package: *rtl/cpu/pkg/rv32_pkg.sv* +--- +#### **Verification Links** +- *sim/uvm/test_writeback.sv* + - SystemVerilog simulation environment to verify writeback stage \ No newline at end of file From dff810babe1c189edcba70afcf12b09db8b4509f Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 29 Jan 2026 18:19:50 -0500 Subject: [PATCH 35/37] Update to axi_crossbar.sv --- rtl/bus/axi/axi_crossbar.sv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtl/bus/axi/axi_crossbar.sv b/rtl/bus/axi/axi_crossbar.sv index c359138..6f39805 100644 --- a/rtl/bus/axi/axi_crossbar.sv +++ b/rtl/bus/axi/axi_crossbar.sv @@ -13,7 +13,7 @@ module axi_crossbar #( parameter int unsigned N_S = 2, parameter int unsigned ADDR_WIDTH = 32, parameter int unsigned DATA_WIDTH = 64, - parameter int unsigned ID_WIDTH = 4, + parameter int unsigned ID_WIDTH = 4 )( // TODO: add ports input logic clk_i, @@ -41,3 +41,4 @@ endmodule + From 0a5ca87f1d04d3a0fffbb3cfc7b32dd6376f8b8d Mon Sep 17 00:00:00 2001 From: XyzalAxel <145172488+XyzalAxel@users.noreply.github.com> Date: Thu, 29 Jan 2026 18:31:44 -0500 Subject: [PATCH 36/37] Fixes to axi_async_fifo.sv --- rtl/bus/axi/axi_async_fifo.sv | 73 +++++++++++++---------------------- 1 file changed, 26 insertions(+), 47 deletions(-) diff --git a/rtl/bus/axi/axi_async_fifo.sv b/rtl/bus/axi/axi_async_fifo.sv index a732386..8e372d4 100644 --- a/rtl/bus/axi/axi_async_fifo.sv +++ b/rtl/bus/axi/axi_async_fifo.sv @@ -35,12 +35,11 @@ module axi_async_fifo #( localparam int PTR_SIZE = PTR_WIDTH + 1; // Memory address width (N bits) - localparam int ADDR_WIDTH = PTR_WIDTH + localparam int ADDR_WIDTH = PTR_WIDTH; // Ensure that FIFO_DEPTH is a power of 2 (for simulation) initial begin - if ((1 << PTR_WIDTH) != FIFO_DEPTH) - begin + if ((1 << PTR_WIDTH) != FIFO_DEPTH) begin $error(1, "axi_async_fifo: FIFO_DEPTH (%0d) is not a power of 2", FIFO_DEPTH); end end @@ -59,8 +58,7 @@ module axi_async_fifo #( automatic integer i; begin binary[PTR_WIDTH] = gray[PTR_WIDTH]; - for (i = PTR_WIDTH-1; i >= 0; i--) - begin + for (i = PTR_WIDTH-1; i >= 0; i--) begin binary[i] = binary[i + 1] ^ gray[i]; end GrayToBinary = binary; @@ -82,22 +80,18 @@ module axi_async_fifo #( ? (writePtrBinary + 1'b1) : writePtrBinary; - assign writePtrGrayNext = binaryToGray(writePtrBinaryNext); + assign writePtrGrayNext = BinaryToGray(writePtrBinaryNext); // Write pointer & memory update register block - always_ff @(posedge s_clk_i or negedge s_rst_ni) - begin - if (!s_rst_ni) - begin + always_ff @(posedge s_clk_i or negedge s_rst_ni) begin + if (!s_rst_ni) begin writePtrBinary <= '0; writePtrGray <= '0; - end else - begin + end else begin writePtrBinary <= writePtrBinaryNext; writePtrGray <= writePtrGrayNext; - if (wr_en && !full) - begin + if (wr_en && !full) begin memory[writePtrBinary[PTR_WIDTH-1:0]] <= wr_data; end end @@ -105,14 +99,11 @@ module axi_async_fifo #( // Synchronize read pointer (Gray) into write domain (s_clk_i) // readPtrGray is sourced from the m_clk_i domain (see the read domain below) - always_ff @(posedge s_clk_i or negedge s_rst_ni) - begin - if (!s_rst_ni) - begin + always_ff @(posedge s_clk_i or negedge s_rst_ni) begin + if (!s_rst_ni) begin readPtrGraySync1W <= '0; readPtrGraySync2W <= '0; - end else - begin + end else begin readPtrGraySync1W <= readPtrGray; readPtrGraySync2W <= readPtrGraySync1W; end @@ -121,8 +112,7 @@ module axi_async_fifo #( // Full flag logic (Combinational) // Full Condition: next write gray pointer matches synchronized read gray pointer, // except for MSB and MSB - 1, which are inverted. - always_comb - begin + always_comb begin fullNext = (writePtrGrayNext == { ~readPtrGraySync2W[PTR_WIDTH], // MSB inverted @@ -132,13 +122,10 @@ module axi_async_fifo #( end // Full flag register - always_ff @(posedge s_clk_i or negedge s_rst_ni) - begin - if (!s_rst_ni) - begin + always_ff @(posedge s_clk_i or negedge s_rst_ni) begin + if (!s_rst_ni) begin full <= 1'b0; - end else - begin + end else begin full <= fullNext; end end @@ -158,25 +145,21 @@ module axi_async_fifo #( ? (readPtrBinary + 1'b1) : readPtrBinary; - assign readPtrGrayNext = binaryToGray(readPtrBinaryNext); + assign readPtrGrayNext = BinaryToGray(readPtrBinaryNext); // Read pointer & data output register block - always_ff @(posedge m_clk_i or negedge m_rst_ni) - begin - if (!m_rst_ni) - begin + always_ff @(posedge m_clk_i or negedge m_rst_ni) begin + if (!m_rst_ni) begin readPtrBinary <= '0; readPtrGray <= '0; rd_data <= '0; - end else - begin + end else begin readPtrBinary <= readPtrBinaryNext; readPtrGray <= readPtrGrayNext; // Read data from the location pointed to by the current binary pointer index // Data is registered into rd_data on the clock edge. - if (rd_en && !empty) - begin + if (rd_en && !empty) begin rd_data <= memory[readPtrBinary[ADDR_WIDTH-1:0]]; end end @@ -186,12 +169,10 @@ module axi_async_fifo #( // writePtrGray is sourced from the s_clk_i domain (see write domain above) always_ff @(posedge m_clk_i or negedge m_rst_ni) begin - if (!m_rst_ni) - begin + if (!m_rst_ni) begin writePtrGraySync1R <= '0; writePtrGraySync2R <= '0; - end else - begin + end else begin writePtrGraySync1R <= writePtrGray; writePtrGraySync2R <= writePtrGraySync1R; end @@ -199,18 +180,15 @@ module axi_async_fifo #( // Empty flag logic: (Combinational) // Empty condition: next read gray pointer equals synchronized write gray pointer. - always_comb - begin + always_comb begin emptyNext = (readPtrGrayNext == writePtrGraySync2R); end // Empty flag register - always_ff @(posedge m_clk_i or negedge m_rst_ni) - begin + always_ff @(posedge m_clk_i or negedge m_rst_ni) begin if (!m_rst_ni) begin empty <= 1'b1; - end else - begin + end else begin empty <= emptyNext; end end @@ -219,3 +197,4 @@ endmodule + From 4a37b45e8384521e7547b89e11630a40ffc29dc8 Mon Sep 17 00:00:00 2001 From: "Ryan H." Date: Thu, 19 Feb 2026 17:46:53 -0500 Subject: [PATCH 37/37] Add files via upload Added FIFO Management code --- FIFO_MANAGEMENT.txt | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 FIFO_MANAGEMENT.txt diff --git a/FIFO_MANAGEMENT.txt b/FIFO_MANAGEMENT.txt new file mode 100644 index 0000000..eebdc47 --- /dev/null +++ b/FIFO_MANAGEMENT.txt @@ -0,0 +1,34 @@ + +/***FIFO MANAGEMENT**/ +// Internal FIFO memory, pointers, and counter +localparam ADDR_WIDTH = $clog2(FIFO_DEPTH); +reg [7:0] fifo_mem [0:FIFO_DEPTH-1]; +reg [ADDR_WIDTH-1:0] waddr_ptr; +reg [ADDR_WIDTH-1:0] raddr_ptr; +reg [ADDR_WIDTH:0] count; +wire fifo_full = (count == FIFO_DEPTH); +wire fifo_empty = (count == 0); + +// FIFO Push (write) and Pop (read) logic +always @(posedge clk or posedge rst) begin + if (rst) begin + waddr_ptr <= 0; + raddr_ptr <= 0; + count <= 0; + end + else begin + // Push data to FIFO (CPU write) + if (wvalid && awvalid && !fifo_full) begin + fifo_mem[waddr_ptr] <= wdata; // Write CPU data into FIFO + waddr_ptr <= waddr_ptr + 1; // Increment write pointer + count <= count + 1; // Increment FIFO count + end + + // Pop data from FIFO (CPU read) + if (rready && arvalid && !fifo_empty) begin + RBR <= fifo_mem[raddr_ptr]; // Load data to read register + raddr_ptr <= raddr_ptr + 1; // Increment read pointer + count <= count - 1; // Decrement FIFO count + end + end +end \ No newline at end of file