summaryrefslogtreecommitdiff
path: root/rtl/gfx
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-13 16:03:28 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-14 07:48:53 -0600
commitd2498ac42ea257eb2d17eb48516c528ab539e96c (patch)
tree5f196cb45f62d5876e523c465df2fd771af0b4e8 /rtl/gfx
parentc8c488d4ef05300a2f8dfd6618fe9176a82a78ff (diff)
rtl/gfx: add typedefs for memory addresses
Diffstat (limited to 'rtl/gfx')
-rw-r--r--rtl/gfx/gfx.sv6
-rw-r--r--rtl/gfx/gfx_defs.sv9
-rw-r--r--rtl/gfx/gfx_rop.sv4
-rw-r--r--rtl/gfx/gfx_scanout.sv4
4 files changed, 16 insertions, 7 deletions
diff --git a/rtl/gfx/gfx.sv b/rtl/gfx/gfx.sv
index b127607..e708e8d 100644
--- a/rtl/gfx/gfx.sv
+++ b/rtl/gfx/gfx.sv
@@ -13,11 +13,11 @@ module gfx
input logic mem_waitrequest,
mem_readdatavalid,
- input logic[15:0] mem_readdata,
- output logic[25:0] mem_address,
+ input mem_word mem_readdata,
+ output mem_addr mem_address,
output logic mem_read,
mem_write,
- output logic[15:0] mem_writedata,
+ output mem_word mem_writedata,
input logic scan_ready,
output logic scan_valid,
diff --git a/rtl/gfx/gfx_defs.sv b/rtl/gfx/gfx_defs.sv
index e9557b9..5af45a5 100644
--- a/rtl/gfx/gfx_defs.sv
+++ b/rtl/gfx/gfx_defs.sv
@@ -154,4 +154,13 @@ typedef struct packed
`define GFX_FRAG_SHADE_STAGES (`LERP_STAGES + 1)
`define GFX_FRAG_STAGES (`GFX_FRAG_BARY_STAGES + `GFX_FRAG_SHADE_STAGES)
+`define GFX_MEM_WORD_ADDR_BITS 25
+`define GFX_MEM_DATA_BITS 16 // No puedo hacer nada al respecto
+`define GFX_MEM_SUBWORD_BITS ($clog2(`GFX_MEM_DATA_BITS / 8))
+`define GFX_MEM_ADDR_BITS (`GFX_MEM_WORD_ADDR_BITS + `GFX_MEM_SUBWORD_BITS)
+
+typedef logic[`GFX_MEM_DATA_BITS - 1:0] mem_word;
+typedef logic[`GFX_MEM_ADDR_BITS - 1:0] mem_addr;
+typedef logic[`GFX_MEM_WORD_ADDR_BITS - 1:0] mem_word_addr;
+
`endif
diff --git a/rtl/gfx/gfx_rop.sv b/rtl/gfx/gfx_rop.sv
index e055278..c0e3bf1 100644
--- a/rtl/gfx/gfx_rop.sv
+++ b/rtl/gfx/gfx_rop.sv
@@ -11,7 +11,7 @@ module gfx_rop
input logic rop_waitrequest,
output logic rop_write,
- output logic[15:0] rop_writedata,
+ output mem_word rop_writedata,
output half_coord rop_address,
output linear_coord mask_addr,
@@ -26,8 +26,8 @@ module gfx_rop
} state;
logic hi;
+ mem_word color_hi, color_lo;
frag_paint hold;
- logic[15:0] color_hi, color_lo;
assign {color_hi, color_lo} = hold.color;
diff --git a/rtl/gfx/gfx_scanout.sv b/rtl/gfx/gfx_scanout.sv
index 18b700d..b315e44 100644
--- a/rtl/gfx/gfx_scanout.sv
+++ b/rtl/gfx/gfx_scanout.sv
@@ -13,7 +13,7 @@ module gfx_scanout
input logic fb_waitrequest,
fb_readdatavalid,
- input logic[15:0] fb_readdata,
+ input mem_word fb_readdata,
output logic fb_read,
output half_coord fb_address,
@@ -35,8 +35,8 @@ module gfx_scanout
queued_dec, queued_inc, read_half, read_valid, request_flush;
rgb24 fb_pipes[`GFX_SCAN_STAGES + 1], scan_pixel;
+ mem_word half;
half_coord commit_pos, next_pos, read_pos, request_pos[`GFX_MASK_STAGES - 1:0];
- logic[15:0] half;
linear_coord scan_pos, last_pos;
assign last_pos = `GFX_LINEAR_RES - 1;