diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-10-29 15:35:42 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-10-29 16:12:33 -0600 |
| commit | adabbf5f30729092a64fa1059bbc7d7b09d6b24e (patch) | |
| tree | 4a4db581d233bcfda18d5e8f2e5606365d52852c /rtl/gfx/gfx.sv | |
| parent | 98d493f9c80f356cdbc2669150d772e451c3b80e (diff) | |
rtl/gfx: implement double-buffered scanout
Diffstat (limited to '')
| -rw-r--r-- | rtl/gfx/gfx.sv | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/rtl/gfx/gfx.sv b/rtl/gfx/gfx.sv index bae65e3..7749c50 100644 --- a/rtl/gfx/gfx.sv +++ b/rtl/gfx/gfx.sv @@ -17,7 +17,13 @@ module gfx output logic[25:0] mem_address, output logic mem_read, mem_write, - output logic[15:0] mem_writedata + output logic[15:0] mem_writedata, + + input logic scan_ready, + output logic scan_valid, + scan_endofpacket, + scan_startofpacket, + output rgb30 scan_data ); fp readdata, writedata; @@ -60,6 +66,43 @@ module gfx .* ); + logic frag_mask, scan_mask; + + gfx_masks masks + ( + .frag_mask_set(0), + .frag_mask_write(0), + .frag_mask_read_addr(), + .frag_mask_write_addr(), + .* + ); + + logic swap_buffers; + rgb24 clear_color; + + assign swap_buffers = 0; + assign clear_color.r = 255; + assign clear_color.g = 0; + assign clear_color.b = 0; + + linear_coord scan_mask_addr; + + logic scanout_read_tmp; + + gfx_scanout scanout + ( + .mask(scan_mask), + .mask_addr(scan_mask_addr), + + .fb_read(scanout_read_tmp), + .fb_address(), + .fb_readdata(), + .fb_waitrequest(0), + .fb_readdatavalid(scanout_read_tmp), + + .* + ); + logic[63:0] cnt_cycles, cnt_trans, snp_cycles, snp_trans; logic[24:0] cnt_addr; logic[31:0] cnt_done, cnt_start; |
