diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-11-19 20:23:17 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-11-20 16:46:29 -0600 |
| commit | 2d3c392de957db2252f935a4f2eb3f9a76943966 (patch) | |
| tree | 305cfb53ef33739055481b45bc9c5188b7cd4392 /rtl/gfx/gfx_defs.sv | |
| parent | 33794ca29db5670bc140686ae6e6d3b7832ad406 (diff) | |
rtl/gfx: implement SP batch input stream
Diffstat (limited to 'rtl/gfx/gfx_defs.sv')
| -rw-r--r-- | rtl/gfx/gfx_defs.sv | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/rtl/gfx/gfx_defs.sv b/rtl/gfx/gfx_defs.sv index 0aa4055..08710a9 100644 --- a/rtl/gfx/gfx_defs.sv +++ b/rtl/gfx/gfx_defs.sv @@ -171,9 +171,14 @@ 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) +`define GFX_LANE_BITS $bits(mat4) +`define GFX_LANE_ADDR_BITS (`GFX_MEM_WORD_ADDR_BITS - $clog2(`GFX_LANE_BITS / `GFX_MEM_DATA_BITS)) +`define GFX_LANE_SUBWORD_BITS (`GFX_MEM_ADDR_BITS - `GFX_LANE_ADDR_BITS) typedef logic[`GFX_INSN_BITS - 1:0] insn_word; +typedef logic[`GFX_LANE_BITS - 1:0] lane_word; typedef logic[`GFX_INSN_ADDR_BITS - 1:0] vram_insn_addr; +typedef logic[`GFX_LANE_ADDR_BITS - 1:0] vram_lane_addr; typedef logic[5:0] cmd_addr; typedef logic[31:0] cmd_word; @@ -185,6 +190,18 @@ typedef struct packed logic[`GFX_INSN_SUBWORD_BITS - 1:0] sub; } cmd_insn_ptr; +typedef struct packed +{ + logic[$bits(cmd_word) - $bits(vram_lane_addr) - `GFX_LANE_SUBWORD_BITS - 1:0] pad; + vram_lane_addr addr; + logic[`GFX_LANE_SUBWORD_BITS - 1:0] sub; +} cmd_lane_ptr; + `define GFX_FETCH_FIFO_DEPTH 8 +`define GFX_BATCH_FIFO_DEPTH 4 +`define GFX_SP_LANES `VECS_PER_MAT + +typedef logic[`GFX_SP_LANES - 1:0] lane_mask; + `endif |
