summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_defs.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-19 17:16:58 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-20 16:46:28 -0600
commit33794ca29db5670bc140686ae6e6d3b7832ad406 (patch)
treec9d66a2aea3d7c725b9b088896e74c6eed751d71 /rtl/gfx/gfx_defs.sv
parent6658a8b5c179682866c89c891b493d05d13a50be (diff)
rtl/gfx: implement SP fetch
Diffstat (limited to '')
-rw-r--r--rtl/gfx/gfx_defs.sv16
1 files changed, 16 insertions, 0 deletions
diff --git a/rtl/gfx/gfx_defs.sv b/rtl/gfx/gfx_defs.sv
index 34fef4d..0aa4055 100644
--- a/rtl/gfx/gfx_defs.sv
+++ b/rtl/gfx/gfx_defs.sv
@@ -168,7 +168,23 @@ typedef logic[`GFX_MEM_DATA_BITS - 1:0] vram_word;
typedef logic[`GFX_MEM_ADDR_BITS - 1:0] vram_byte_addr;
typedef logic[`GFX_MEM_WORD_ADDR_BITS - 1:0] vram_addr;
+`define GFX_INSN_BITS 32
+`define GFX_INSN_ADDR_BITS (`GFX_MEM_WORD_ADDR_BITS - $clog2(`GFX_INSN_BITS / `GFX_MEM_DATA_BITS))
+`define GFX_INSN_SUBWORD_BITS (`GFX_MEM_ADDR_BITS - `GFX_INSN_ADDR_BITS)
+
+typedef logic[`GFX_INSN_BITS - 1:0] insn_word;
+typedef logic[`GFX_INSN_ADDR_BITS - 1:0] vram_insn_addr;
+
typedef logic[5:0] cmd_addr;
typedef logic[31:0] cmd_word;
+typedef struct packed
+{
+ logic[$bits(cmd_word) - $bits(vram_insn_addr) - `GFX_INSN_SUBWORD_BITS - 1:0] pad;
+ vram_insn_addr addr;
+ logic[`GFX_INSN_SUBWORD_BITS - 1:0] sub;
+} cmd_insn_ptr;
+
+`define GFX_FETCH_FIFO_DEPTH 8
+
`endif