summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_cmd.sv
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/gfx/gfx_cmd.sv')
-rw-r--r--rtl/gfx/gfx_cmd.sv125
1 files changed, 0 insertions, 125 deletions
diff --git a/rtl/gfx/gfx_cmd.sv b/rtl/gfx/gfx_cmd.sv
deleted file mode 100644
index 29b6e21..0000000
--- a/rtl/gfx/gfx_cmd.sv
+++ /dev/null
@@ -1,125 +0,0 @@
-`include "gfx/gfx_defs.sv"
-
-module gfx_cmd
-(
- input logic clk,
- rst_n,
-
- input cmd_addr cmd_address,
- input logic cmd_read,
- cmd_write,
- input cmd_word cmd_writedata,
- output cmd_word cmd_readdata,
-
- input logic vsync,
-
- output logic swap_buffers,
- enable_clear,
- start_clear,
- output rgb24 clear_color,
-
- output logic program_start,
- output cmd_word program_header_base,
- program_header_size,
-
- output cmd_word fb_base_a,
- fb_base_b
-);
-
- rgb24 next_clear_color;
- logic do_start_clear, next_start_clear, next_enable_clear, next_swap_buffers;
-
- struct packed
- {
- logic[4:0] mbz;
- logic start_frame,
- enable_clear,
- swap_buffers;
- rgb24 clear_color;
- } readdata_scan, writedata_scan;
-
- assign cmd_readdata = readdata_scan;
-
- assign writedata_scan = cmd_writedata;
- assign readdata_scan.mbz = 0;
- assign readdata_scan.clear_color = clear_color;
- assign readdata_scan.enable_clear = enable_clear;
- assign readdata_scan.swap_buffers = swap_buffers;
-
- assign do_start_clear = writedata_scan.start_frame && writedata_scan.enable_clear;
-
- always_ff @(posedge clk or negedge rst_n)
- if (!rst_n) begin
- start_clear <= 0;
- enable_clear <= 0;
- swap_buffers <= 0;
-
- next_start_clear <= 0;
- next_enable_clear <= 0;
- next_swap_buffers <= 0;
-
- program_start <= 0;
-
- fb_base_a <= 0;
- fb_base_b <= 0;
- end else begin
- start_clear <= 0;
- program_start <= 0;
-
- if (vsync) begin
- start_clear <= next_start_clear;
- enable_clear <= next_enable_clear;
- swap_buffers <= next_swap_buffers;
-
- next_start_clear <= 0;
- end
-
- if (cmd_write)
- unique case (cmd_address[2:0])
- `GFX_CMD_REG_ID: ;
-
- `GFX_CMD_REG_SCAN: begin
- next_enable_clear <= writedata_scan.enable_clear;
- next_swap_buffers <= writedata_scan.swap_buffers;
-
- if (!next_start_clear)
- next_start_clear <= do_start_clear;
- end
-
- `GFX_CMD_REG_HEADER_BASE: ;
-
- `GFX_CMD_REG_HEADER_SIZE:
- program_start <= 1;
-
- `GFX_CMD_REG_FB_BASE_A:
- fb_base_a <= cmd_writedata;
-
- `GFX_CMD_REG_FB_BASE_B:
- fb_base_b <= cmd_writedata;
-
- default: ;
- endcase
- end
-
- always_ff @(posedge clk) begin
- if (vsync)
- clear_color <= next_clear_color;
-
- if (cmd_write)
- unique case (cmd_address[2:0])
- `GFX_CMD_REG_ID: ;
-
- `GFX_CMD_REG_SCAN:
- next_clear_color <= writedata_scan.clear_color;
-
- `GFX_CMD_REG_HEADER_BASE:
- program_header_base <= cmd_writedata;
-
- `GFX_CMD_REG_HEADER_SIZE:
- program_header_size <= cmd_writedata;
-
- default: ;
- endcase
- end
-
-endmodule