summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/w3d_top.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-26 11:17:19 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-26 12:51:51 -0600
commit2ea327c97ed9008f4f5a7bcbe1bfe05f1970ab50 (patch)
tree4ed99a24a4925978c8f030d039edc73e239787bd /platform/wavelet3d/w3d_top.sv
parent2e12077e682a27a159122b5676301c8c433a58fe (diff)
platform/wavelet3d: add video display controller
Diffstat (limited to 'platform/wavelet3d/w3d_top.sv')
-rw-r--r--platform/wavelet3d/w3d_top.sv32
1 files changed, 30 insertions, 2 deletions
diff --git a/platform/wavelet3d/w3d_top.sv b/platform/wavelet3d/w3d_top.sv
index e196b8f..24a81f7 100644
--- a/platform/wavelet3d/w3d_top.sv
+++ b/platform/wavelet3d/w3d_top.sv
@@ -57,6 +57,14 @@ module w3d_top
output logic mmio_rready,
input logic[31:0] mmio_rdata,
+ input logic dac_ready,
+ output logic dac_last,
+ dac_first,
+ dac_valid,
+ output logic[9:0] dac_b,
+ dac_g,
+ dac_r,
+
input logic jtag_tck,
jtag_tms,
jtag_tdi,
@@ -64,8 +72,9 @@ module w3d_top
);
if_tap host_jtag();
- if_axib dram(), gfx_vram(), host_dbus(), host_ibus(), sgdma_mem();
- if_axil mmio(), gfx_ctrl(), sgdma_ctrl();
+ if_axib dram(), gfx_vram(), host_dbus(), host_ibus(), sgdma_mem(), vdc_stream();
+ if_axil mmio(), gfx_ctrl(), sgdma_ctrl(), vdc_ctrl();
+ vdc_dac dac();
assign dram_awid = dram.s.awid;
assign dram_awlen = dram.s.awlen;
@@ -125,6 +134,14 @@ module w3d_top
assign host_jtag.m.tms = jtag_tms;
assign host_jtag.m.tdi = jtag_tdi;
+ assign dac_b = dac.rx.pix.b;
+ assign dac_g = dac.rx.pix.g;
+ assign dac_r = dac.rx.pix.r;
+ assign dac_last = dac.rx.last;
+ assign dac_first = dac.rx.first;
+ assign dac_valid = dac.rx.valid;
+ assign dac.rx.ready = dac_ready;
+
if_rst_sync rst_sync
(
.clk,
@@ -141,6 +158,15 @@ module w3d_top
.host_ctrl(gfx_ctrl.s)
);
+ vdc_top vdc
+ (
+ .clk,
+ .rst_n,
+ .dac(dac.tx),
+ .host(vdc_ctrl.s),
+ .stream(vdc_stream.m)
+ );
+
w3d_host host
(
.clk,
@@ -165,11 +191,13 @@ module w3d_top
.srst_n,
.dram(dram.m),
.gfx_ctrl(gfx_ctrl.m),
+ .vdc_ctrl(vdc_ctrl.m),
.gfx_vram(gfx_vram.s),
.host_dbus(host_dbus.s),
.host_ibus(host_ibus.s),
.sgdma_mem(sgdma_mem.s),
.sgdma_ctrl(sgdma_ctrl.m),
+ .vdc_stream(vdc_stream.s),
.external_io(mmio.m)
);