commit f4350c11bb98daae85508b01892fbf5c18e19d48
parent bcafecc864f8506dbf45b6e1a6ff529ff3b048e0
Author: Brian Swetland <swetland@frotz.net>
Date: Fri, 4 Jul 2014 03:51:27 -0700
zybo_hdmi_axi: implement a framebuffer at 0x10000000
- control registers:
- 0x40000000: write any value to reset fifo
- 0x40000004: write 1 to enable framebuffer scanout
- 0x40000008: write RGB:24 value to display on fifo underrun
Diffstat:
3 files changed, 710 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
@@ -12,7 +12,10 @@ HDMI_SRCS := \
MODULE_NAME := zybo-hdmi-axi
MODULE_PART := xc7z010clg400-2
MODULE_SRCS := hdl/zybo_hdmi_axi.sv
-MODULE_SRCS += hdl/axi_ifc.sv hdl/axi_registers.sv hdl/zynq_ps_1m.sv
+MODULE_SRCS += hdl/axi_ifc.sv hdl/axi_registers.sv
+MODULE_SRCS += hdl/zynq_ps_1m_1s.sv
+MODULE_SRCS += hdl/xilinx_async_fifo.sv hdl/sync_oneway.sv
+MODULE_SRCS += hdl/axi_dma_reader.sv
MODULE_SRCS += $(HDMI_SRCS)
MODULE_SRCS += hdl/zybo_hdmi.xdc
include build/vivado-bitfile.mk
diff --git a/hdl/zybo_hdmi_axi.sv b/hdl/zybo_hdmi_axi.sv
@@ -24,7 +24,7 @@ module top(
wire pixclk, pixclkx5, pixclkx10;
wire [10:0] xpixel, ypixel;
-reg [7:0] red, grn, blu;
+wire [7:0] red, grn, blu;
mmcm_1in_3out #(
.CLKIN_PERIOD(8.0),
@@ -40,6 +40,9 @@ mmcm_1in_3out #(
.o_clk2(pixclkx10)
);
+wire rgb_ready;
+wire vsync_raw;
+
hdmi_core #(
// 640x480 @60 25MHz
//.HWIDTH(640), .HSYNC0(656), .HSYNC1(752), .HMAX(799),
@@ -57,28 +60,34 @@ hdmi_core #(
.hdmi_d_n(hdmi_d_n),
.hdmi_clk_p(hdmi_clk_p),
.hdmi_clk_n(hdmi_clk_n),
- .rgb_ready(),
+ .rgb_ready(rgb_ready),
.red(red),
.grn(grn),
.blu(blu),
.xpixel(xpixel),
- .ypixel(ypixel)
+ .ypixel(ypixel),
+ .vblank(vsync_raw)
);
-// test pattern
-always @(posedge pixclk) begin
- red <= xpixel[3] ? 8'hFF : 8'h00;
- grn <= ypixel[3] ? 8'hFF : 8'h00;
-end
-
wire axiclk;
+wire vsync;
+
+sync_oneway sync_vsync(
+ .txclk(pixclk),
+ .txdat(vsync_raw),
+ .rxclk(axiclk),
+ .rxdat(vsync)
+ );
axi_ifc #(.IWIDTH(12),.AXI3(1)) axi_ctl();
+axi_ifc #(.IWIDTH(6),.AXI3(1)) axi_dma();
zynq_ps7 zynq(
.fclk0(axiclk),
.m_axi_gp0_clk(axiclk),
- .m_axi_gp0(axi_ctl)
+ .m_axi_gp0(axi_ctl),
+ .s_axi_gp0_clk(axiclk),
+ .s_axi_gp0(axi_dma)
);
wire [31:0]wdata;
@@ -96,8 +105,53 @@ axi_registers regs(
.o_wr(wr)
);
-always @(posedge axiclk)
- if (wr)
- blu <= wdata[7:0];
+wire [31:0]fb_data;
+wire fb_valid;
+reg fb_enable = 0;
+wire fifo_ready;
+
+axi_dma_reader reader(
+ .clk(axiclk),
+ .m(axi_dma),
+ .o_data(fb_data),
+ .o_valid(fb_valid),
+ .i_start(fb_enable & vsync),
+ .i_ready(fifo_ready),
+ .i_baseaddr(32'h10000000),
+ .i_burst_count(36000)
+ );
+
+reg fifo_reset = 0;
+reg [23:0]pattern = 0;
+
+always_ff @(posedge axiclk) begin
+ if (wr) begin
+ case (wreg)
+ 0: fifo_reset <= 1;
+ 1: fb_enable <= wdata[0];
+ 2: pattern <= wdata[23:0];
+ default: ;
+ endcase
+ end else begin
+ fifo_reset <= 0;
+ end
+end
+
+wire [23:0]fifo_data;
+wire fifo_empty;
+assign {red,grn,blu} = fifo_empty ? pattern : fifo_data;
+
+xilinx_async_fifo #(.WIDTH(24)) fifo(
+ .wrclk(axiclk),
+ .rdclk(pixclk),
+ .reset(fifo_reset),
+ .wr_data(fb_data[23:0]),
+ .wr_en(fb_valid),
+ .rd_data(fifo_data),
+ .rd_en(rgb_ready),
+ .o_empty(fifo_empty),
+ .o_ready(fifo_ready),
+ .o_active()
+ );
endmodule
diff --git a/hdl/zynq_ps_1m_1s.sv b/hdl/zynq_ps_1m_1s.sv
@@ -0,0 +1,639 @@
+// machine-generated by mkzynq.go - do not edit
+`timescale 1ns / 1ps
+
+module zynq_ps7(
+ output fclk0,
+ input s_axi_gp0_clk,
+ axi_ifc.slave s_axi_gp0,
+ input m_axi_gp0_clk,
+ axi_ifc.master m_axi_gp0
+ );
+
+wire fclk0_i, fclk1_i, fclk2_i, fclk3_i;
+
+BUFG fclk0_bufg(.I(fclk0_i), .O(fclk0));
+
+PS7 ps7_i(
+ .SAXIHP3WSTRB(0),
+ .SAXIHP2WSTRB(0),
+ .SAXIHP1WSTRB(0),
+ .SAXIHP0WSTRB(0),
+ .SAXIACPWSTRB(0),
+ .EMIOENET1GMIIRXD(0),
+ .EMIOENET0GMIIRXD(0),
+ .SAXIHP3WDATA(0),
+ .SAXIHP2WDATA(0),
+ .SAXIHP1WDATA(0),
+ .SAXIHP0WDATA(0),
+ .SAXIACPWDATA(0),
+ .EMIOGPIOI(0),
+ .SAXIHP3WID(0),
+ .SAXIHP3AWID(0),
+ .SAXIHP3ARID(0),
+ .SAXIHP2WID(0),
+ .SAXIHP2AWID(0),
+ .SAXIHP2ARID(0),
+ .SAXIHP1WID(0),
+ .SAXIHP1AWID(0),
+ .SAXIHP1ARID(0),
+ .SAXIHP0WID(0),
+ .SAXIHP0AWID(0),
+ .SAXIHP0ARID(0),
+ .SAXIGP1WID(0),
+ .SAXIGP1AWID(0),
+ .SAXIGP1ARID(0),
+ .SAXIGP0WID(0),
+ .SAXIGP0AWID(s_axi_gp0.awid),
+ .SAXIGP0ARID(s_axi_gp0.arid),
+ .SAXIACPAWUSER(0),
+ .SAXIACPARUSER(0),
+ .SAXIHP3AWQOS(0),
+ .SAXIHP3AWLEN(0),
+ .SAXIHP3AWCACHE(0),
+ .SAXIHP3ARQOS(0),
+ .SAXIHP3ARLEN(0),
+ .SAXIHP3ARCACHE(0),
+ .SAXIHP2AWQOS(0),
+ .SAXIHP2AWLEN(0),
+ .SAXIHP2AWCACHE(0),
+ .SAXIHP2ARQOS(0),
+ .SAXIHP2ARLEN(0),
+ .SAXIHP2ARCACHE(0),
+ .SAXIHP1AWQOS(0),
+ .SAXIHP1AWLEN(0),
+ .SAXIHP1AWCACHE(0),
+ .SAXIHP1ARQOS(0),
+ .SAXIHP1ARLEN(0),
+ .SAXIHP1ARCACHE(0),
+ .SAXIHP0AWQOS(0),
+ .SAXIHP0AWLEN(0),
+ .SAXIHP0AWCACHE(0),
+ .SAXIHP0ARQOS(0),
+ .SAXIHP0ARLEN(0),
+ .SAXIHP0ARCACHE(0),
+ .SAXIGP1WSTRB(0),
+ .SAXIGP1AWQOS(0),
+ .SAXIGP1AWLEN(0),
+ .SAXIGP1AWCACHE(0),
+ .SAXIGP1ARQOS(0),
+ .SAXIGP1ARLEN(0),
+ .SAXIGP1ARCACHE(0),
+ .SAXIGP0WSTRB(s_axi_gp0.wstrb),
+ .SAXIGP0AWQOS(0),
+ .SAXIGP0AWLEN(s_axi_gp0.awlen),
+ .SAXIGP0AWCACHE(s_axi_gp0.awcache),
+ .SAXIGP0ARQOS(0),
+ .SAXIGP0ARLEN(s_axi_gp0.arlen),
+ .SAXIGP0ARCACHE(s_axi_gp0.arcache),
+ .SAXIACPAWQOS(0),
+ .SAXIACPAWLEN(0),
+ .SAXIACPAWCACHE(0),
+ .SAXIACPARQOS(0),
+ .SAXIACPARLEN(0),
+ .SAXIACPARCACHE(0),
+ .FTMTP2FTRIGACK(0),
+ .FTMTF2PTRIG(0),
+ .FTMDTRACEINATID(0),
+ .FCLKCLKTRIGN(0),
+ .EMIOSDIO1DATAI(0),
+ .EMIOSDIO0DATAI(0),
+ .DDRARB(0),
+ .SAXIHP3AWADDR(0),
+ .SAXIHP3ARADDR(0),
+ .SAXIHP2AWADDR(0),
+ .SAXIHP2ARADDR(0),
+ .SAXIHP1AWADDR(0),
+ .SAXIHP1ARADDR(0),
+ .SAXIHP0AWADDR(0),
+ .SAXIHP0ARADDR(0),
+ .SAXIGP1WDATA(0),
+ .SAXIGP1AWADDR(0),
+ .SAXIGP1ARADDR(0),
+ .SAXIGP0WDATA(s_axi_gp0.wdata),
+ .SAXIGP0AWADDR(s_axi_gp0.awaddr),
+ .SAXIGP0ARADDR(s_axi_gp0.araddr),
+ .SAXIACPAWADDR(0),
+ .SAXIACPARADDR(0),
+ .MAXIGP1RDATA(0),
+ .MAXIGP0RDATA(m_axi_gp0.rdata),
+ .FTMTF2PDEBUG(0),
+ .FTMDTRACEINDATA(0),
+ .SAXIHP3AWPROT(0),
+ .SAXIHP3ARPROT(0),
+ .SAXIHP2AWPROT(0),
+ .SAXIHP2ARPROT(0),
+ .SAXIHP1AWPROT(0),
+ .SAXIHP1ARPROT(0),
+ .SAXIHP0AWPROT(0),
+ .SAXIHP0ARPROT(0),
+ .SAXIGP1AWPROT(0),
+ .SAXIGP1ARPROT(0),
+ .SAXIGP0AWPROT(0),
+ .SAXIGP0ARPROT(0),
+ .SAXIACPWID(0),
+ .SAXIACPAWPROT(0),
+ .SAXIACPAWID(0),
+ .SAXIACPARPROT(0),
+ .SAXIACPARID(0),
+ .EMIOTTC1CLKI(0),
+ .EMIOTTC0CLKI(0),
+ .SAXIHP3AWSIZE(0),
+ .SAXIHP3AWLOCK(0),
+ .SAXIHP3AWBURST(0),
+ .SAXIHP3ARSIZE(0),
+ .SAXIHP3ARLOCK(0),
+ .SAXIHP3ARBURST(0),
+ .SAXIHP2AWSIZE(0),
+ .SAXIHP2AWLOCK(0),
+ .SAXIHP2AWBURST(0),
+ .SAXIHP2ARSIZE(0),
+ .SAXIHP2ARLOCK(0),
+ .SAXIHP2ARBURST(0),
+ .SAXIHP1AWSIZE(0),
+ .SAXIHP1AWLOCK(0),
+ .SAXIHP1AWBURST(0),
+ .SAXIHP1ARSIZE(0),
+ .SAXIHP1ARLOCK(0),
+ .SAXIHP1ARBURST(0),
+ .SAXIHP0AWSIZE(0),
+ .SAXIHP0AWLOCK(0),
+ .SAXIHP0AWBURST(0),
+ .SAXIHP0ARSIZE(0),
+ .SAXIHP0ARLOCK(0),
+ .SAXIHP0ARBURST(0),
+ .SAXIGP1AWSIZE(0),
+ .SAXIGP1AWLOCK(0),
+ .SAXIGP1AWBURST(0),
+ .SAXIGP1ARSIZE(0),
+ .SAXIGP1ARLOCK(0),
+ .SAXIGP1ARBURST(0),
+ .SAXIGP0AWSIZE(s_axi_gp0.awsize),
+ .SAXIGP0AWLOCK(s_axi_gp0.awlock),
+ .SAXIGP0AWBURST(s_axi_gp0.awburst),
+ .SAXIGP0ARSIZE(s_axi_gp0.arsize),
+ .SAXIGP0ARLOCK(s_axi_gp0.arlock),
+ .SAXIGP0ARBURST(s_axi_gp0.arburst),
+ .SAXIACPAWSIZE(0),
+ .SAXIACPAWLOCK(0),
+ .SAXIACPAWBURST(0),
+ .SAXIACPARSIZE(0),
+ .SAXIACPARLOCK(0),
+ .SAXIACPARBURST(0),
+ .MAXIGP1RRESP(0),
+ .MAXIGP1BRESP(0),
+ .MAXIGP0RRESP(m_axi_gp0.rresp),
+ .MAXIGP0BRESP(m_axi_gp0.bresp),
+ .DMA3DRTYPE(0),
+ .DMA2DRTYPE(0),
+ .DMA1DRTYPE(0),
+ .DMA0DRTYPE(0),
+ .IRQF2P(0),
+ .MAXIGP1RID(0),
+ .MAXIGP1BID(0),
+ .MAXIGP0RID(m_axi_gp0.rid),
+ .MAXIGP0BID(m_axi_gp0.bid),
+ .SAXIHP3WVALID(0),
+ .SAXIHP3WRISSUECAP1EN(0),
+ .SAXIHP3WLAST(0),
+ .SAXIHP3RREADY(0),
+ .SAXIHP3RDISSUECAP1EN(0),
+ .SAXIHP3BREADY(0),
+ .SAXIHP3AWVALID(0),
+ .SAXIHP3ARVALID(0),
+ .SAXIHP3ACLK(0),
+ .SAXIHP2WVALID(0),
+ .SAXIHP2WRISSUECAP1EN(0),
+ .SAXIHP2WLAST(0),
+ .SAXIHP2RREADY(0),
+ .SAXIHP2RDISSUECAP1EN(0),
+ .SAXIHP2BREADY(0),
+ .SAXIHP2AWVALID(0),
+ .SAXIHP2ARVALID(0),
+ .SAXIHP2ACLK(0),
+ .SAXIHP1WVALID(0),
+ .SAXIHP1WRISSUECAP1EN(0),
+ .SAXIHP1WLAST(0),
+ .SAXIHP1RREADY(0),
+ .SAXIHP1RDISSUECAP1EN(0),
+ .SAXIHP1BREADY(0),
+ .SAXIHP1AWVALID(0),
+ .SAXIHP1ARVALID(0),
+ .SAXIHP1ACLK(0),
+ .SAXIHP0WVALID(0),
+ .SAXIHP0WRISSUECAP1EN(0),
+ .SAXIHP0WLAST(0),
+ .SAXIHP0RREADY(0),
+ .SAXIHP0RDISSUECAP1EN(0),
+ .SAXIHP0BREADY(0),
+ .SAXIHP0AWVALID(0),
+ .SAXIHP0ARVALID(0),
+ .SAXIHP0ACLK(0),
+ .SAXIGP1WVALID(0),
+ .SAXIGP1WLAST(0),
+ .SAXIGP1RREADY(0),
+ .SAXIGP1BREADY(0),
+ .SAXIGP1AWVALID(0),
+ .SAXIGP1ARVALID(0),
+ .SAXIGP1ACLK(0),
+ .SAXIGP0WVALID(s_axi_gp0.wvalid),
+ .SAXIGP0WLAST(s_axi_gp0.wlast),
+ .SAXIGP0RREADY(s_axi_gp0.rready),
+ .SAXIGP0BREADY(s_axi_gp0.bready),
+ .SAXIGP0AWVALID(s_axi_gp0.awvalid),
+ .SAXIGP0ARVALID(s_axi_gp0.arvalid),
+ .SAXIGP0ACLK(s_axi_gp0_clk),
+ .SAXIACPWVALID(0),
+ .SAXIACPWLAST(0),
+ .SAXIACPRREADY(0),
+ .SAXIACPBREADY(0),
+ .SAXIACPAWVALID(0),
+ .SAXIACPARVALID(0),
+ .SAXIACPACLK(0),
+ .MAXIGP1WREADY(0),
+ .MAXIGP1RVALID(0),
+ .MAXIGP1RLAST(0),
+ .MAXIGP1BVALID(0),
+ .MAXIGP1AWREADY(0),
+ .MAXIGP1ARREADY(0),
+ .MAXIGP1ACLK(0),
+ .MAXIGP0WREADY(m_axi_gp0.wready),
+ .MAXIGP0RVALID(m_axi_gp0.rvalid),
+ .MAXIGP0RLAST(m_axi_gp0.rlast),
+ .MAXIGP0BVALID(m_axi_gp0.bvalid),
+ .MAXIGP0AWREADY(m_axi_gp0.awready),
+ .MAXIGP0ARREADY(m_axi_gp0.arready),
+ .MAXIGP0ACLK(m_axi_gp0_clk),
+ .FTMDTRACEINVALID(0),
+ .FTMDTRACEINCLOCK(0),
+ .FPGAIDLEN(0),
+ .EVENTEVENTI(0),
+ .EMIOWDTCLKI(0),
+ .EMIOUSB1VBUSPWRFAULT(0),
+ .EMIOUSB0VBUSPWRFAULT(0),
+ .EMIOUART1RX(0),
+ .EMIOUART1RIN(0),
+ .EMIOUART1DSRN(0),
+ .EMIOUART1DCDN(0),
+ .EMIOUART1CTSN(0),
+ .EMIOUART0RX(0),
+ .EMIOUART0RIN(0),
+ .EMIOUART0DSRN(0),
+ .EMIOUART0DCDN(0),
+ .EMIOUART0CTSN(0),
+ .EMIOTRACECLK(0),
+ .EMIOSRAMINTIN(0),
+ .EMIOSPI1SSIN(0),
+ .EMIOSPI1SI(0),
+ .EMIOSPI1SCLKI(0),
+ .EMIOSPI1MI(0),
+ .EMIOSPI0SSIN(0),
+ .EMIOSPI0SI(0),
+ .EMIOSPI0SCLKI(0),
+ .EMIOSPI0MI(0),
+ .EMIOSDIO1WP(0),
+ .EMIOSDIO1CMDI(0),
+ .EMIOSDIO1CLKFB(0),
+ .EMIOSDIO1CDN(0),
+ .EMIOSDIO0WP(0),
+ .EMIOSDIO0CMDI(0),
+ .EMIOSDIO0CLKFB(0),
+ .EMIOSDIO0CDN(0),
+ .EMIOPJTAGTMS(0),
+ .EMIOPJTAGTDI(0),
+ .EMIOPJTAGTCK(0),
+ .EMIOI2C1SDAI(0),
+ .EMIOI2C1SCLI(0),
+ .EMIOI2C0SDAI(0),
+ .EMIOI2C0SCLI(0),
+ .EMIOENET1MDIOI(0),
+ .EMIOENET1GMIITXCLK(0),
+ .EMIOENET1GMIIRXER(0),
+ .EMIOENET1GMIIRXDV(0),
+ .EMIOENET1GMIIRXCLK(0),
+ .EMIOENET1GMIICRS(0),
+ .EMIOENET1GMIICOL(0),
+ .EMIOENET1EXTINTIN(0),
+ .EMIOENET0MDIOI(0),
+ .EMIOENET0GMIITXCLK(0),
+ .EMIOENET0GMIIRXER(0),
+ .EMIOENET0GMIIRXDV(0),
+ .EMIOENET0GMIIRXCLK(0),
+ .EMIOENET0GMIICRS(0),
+ .EMIOENET0GMIICOL(0),
+ .EMIOENET0EXTINTIN(0),
+ .EMIOCAN1PHYRX(0),
+ .EMIOCAN0PHYRX(0),
+ .DMA3DRVALID(0),
+ .DMA3DRLAST(0),
+ .DMA3DAREADY(0),
+ .DMA3ACLK(0),
+ .DMA2DRVALID(0),
+ .DMA2DRLAST(0),
+ .DMA2DAREADY(0),
+ .DMA2ACLK(0),
+ .DMA1DRVALID(0),
+ .DMA1DRLAST(0),
+ .DMA1DAREADY(0),
+ .DMA1ACLK(0),
+ .DMA0DRVALID(0),
+ .DMA0DRLAST(0),
+ .DMA0DAREADY(0),
+ .DMA0ACLK(0),
+ .MIO(),
+ .DDRDQSP(),
+ .DDRDQSN(),
+ .DDRDM(),
+ .DDRDQ(),
+ .DDRBA(),
+ .DDRA(),
+ .PSSRSTB(),
+ .PSPORB(),
+ .PSCLK(),
+ .DDRWEB(),
+ .DDRVRP(),
+ .DDRVRN(),
+ .DDRRASB(),
+ .DDRODT(),
+ .DDRDRSTB(),
+ .DDRCSB(),
+ .DDRCKP(),
+ .DDRCKN(),
+ .DDRCKE(),
+ .DDRCASB(),
+ .SAXIHP3WCOUNT(),
+ .SAXIHP3RCOUNT(),
+ .SAXIHP2WCOUNT(),
+ .SAXIHP2RCOUNT(),
+ .SAXIHP1WCOUNT(),
+ .SAXIHP1RCOUNT(),
+ .SAXIHP0WCOUNT(),
+ .SAXIHP0RCOUNT(),
+ .EMIOENET1GMIITXD(),
+ .EMIOENET0GMIITXD(),
+ .SAXIHP3RDATA(),
+ .SAXIHP2RDATA(),
+ .SAXIHP1RDATA(),
+ .SAXIHP0RDATA(),
+ .SAXIACPRDATA(),
+ .EMIOGPIOTN(),
+ .EMIOGPIOO(),
+ .SAXIHP3WACOUNT(),
+ .SAXIHP3RID(),
+ .SAXIHP3BID(),
+ .SAXIHP2WACOUNT(),
+ .SAXIHP2RID(),
+ .SAXIHP2BID(),
+ .SAXIHP1WACOUNT(),
+ .SAXIHP1RID(),
+ .SAXIHP1BID(),
+ .SAXIHP0WACOUNT(),
+ .SAXIHP0RID(),
+ .SAXIHP0BID(),
+ .SAXIGP1RID(),
+ .SAXIGP1BID(),
+ .SAXIGP0RID(s_axi_gp0.rid),
+ .SAXIGP0BID(s_axi_gp0.bid),
+ .MAXIGP1WSTRB(),
+ .MAXIGP1AWQOS(),
+ .MAXIGP1AWLEN(),
+ .MAXIGP1AWCACHE(),
+ .MAXIGP1ARQOS(),
+ .MAXIGP1ARLEN(),
+ .MAXIGP1ARCACHE(),
+ .MAXIGP0WSTRB(m_axi_gp0.wstrb),
+ .MAXIGP0AWQOS(),
+ .MAXIGP0AWLEN(m_axi_gp0.awlen),
+ .MAXIGP0AWCACHE(m_axi_gp0.awcache),
+ .MAXIGP0ARQOS(),
+ .MAXIGP0ARLEN(m_axi_gp0.arlen),
+ .MAXIGP0ARCACHE(m_axi_gp0.arcache),
+ .FTMTP2FTRIG(),
+ .FTMTF2PTRIGACK(),
+ .FCLKRESETN(),
+ .FCLKCLK({ fclk3_i, fclk2_i, fclk1_i, fclk0_i }),
+ .EMIOSDIO1DATATN(),
+ .EMIOSDIO1DATAO(),
+ .EMIOSDIO0DATATN(),
+ .EMIOSDIO0DATAO(),
+ .SAXIGP1RDATA(),
+ .SAXIGP0RDATA(s_axi_gp0.rdata),
+ .MAXIGP1WDATA(),
+ .MAXIGP1AWADDR(),
+ .MAXIGP1ARADDR(),
+ .MAXIGP0WDATA(m_axi_gp0.wdata),
+ .MAXIGP0AWADDR(m_axi_gp0.awaddr),
+ .MAXIGP0ARADDR(m_axi_gp0.araddr),
+ .FTMTP2FDEBUG(),
+ .EMIOTRACEDATA(),
+ .SAXIHP3RACOUNT(),
+ .SAXIHP2RACOUNT(),
+ .SAXIHP1RACOUNT(),
+ .SAXIHP0RACOUNT(),
+ .SAXIACPRID(),
+ .SAXIACPBID(),
+ .MAXIGP1AWPROT(),
+ .MAXIGP1ARPROT(),
+ .MAXIGP0AWPROT(),
+ .MAXIGP0ARPROT(),
+ .EMIOTTC1WAVEO(),
+ .EMIOTTC0WAVEO(),
+ .EMIOSPI1SSON(),
+ .EMIOSPI0SSON(),
+ .EMIOSDIO1BUSVOLT(),
+ .EMIOSDIO0BUSVOLT(),
+ .IRQP2F(),
+ .SAXIHP3RRESP(),
+ .SAXIHP3BRESP(),
+ .SAXIHP2RRESP(),
+ .SAXIHP2BRESP(),
+ .SAXIHP1RRESP(),
+ .SAXIHP1BRESP(),
+ .SAXIHP0RRESP(),
+ .SAXIHP0BRESP(),
+ .SAXIGP1RRESP(),
+ .SAXIGP1BRESP(),
+ .SAXIGP0RRESP(s_axi_gp0.rresp),
+ .SAXIGP0BRESP(s_axi_gp0.bresp),
+ .SAXIACPRRESP(),
+ .SAXIACPBRESP(),
+ .MAXIGP1AWSIZE(),
+ .MAXIGP1AWLOCK(),
+ .MAXIGP1AWBURST(),
+ .MAXIGP1ARSIZE(),
+ .MAXIGP1ARLOCK(),
+ .MAXIGP1ARBURST(),
+ .MAXIGP0AWSIZE(m_axi_gp0.awsize),
+ .MAXIGP0AWLOCK(m_axi_gp0.awlock),
+ .MAXIGP0AWBURST(m_axi_gp0.awburst),
+ .MAXIGP0ARSIZE(m_axi_gp0.arsize),
+ .MAXIGP0ARLOCK(m_axi_gp0.arlock),
+ .MAXIGP0ARBURST(m_axi_gp0.arburst),
+ .EVENTSTANDBYWFI(),
+ .EVENTSTANDBYWFE(),
+ .EMIOUSB1PORTINDCTL(),
+ .EMIOUSB0PORTINDCTL(),
+ .DMA3DATYPE(),
+ .DMA2DATYPE(),
+ .DMA1DATYPE(),
+ .DMA0DATYPE(),
+ .MAXIGP1WID(),
+ .MAXIGP1AWID(),
+ .MAXIGP1ARID(),
+ .MAXIGP0WID(),
+ .MAXIGP0AWID(m_axi_gp0.awid),
+ .MAXIGP0ARID(m_axi_gp0.arid),
+ .SAXIHP3WREADY(),
+ .SAXIHP3RVALID(),
+ .SAXIHP3RLAST(),
+ .SAXIHP3BVALID(),
+ .SAXIHP3AWREADY(),
+ .SAXIHP3ARREADY(),
+ .SAXIHP3ARESETN(),
+ .SAXIHP2WREADY(),
+ .SAXIHP2RVALID(),
+ .SAXIHP2RLAST(),
+ .SAXIHP2BVALID(),
+ .SAXIHP2AWREADY(),
+ .SAXIHP2ARREADY(),
+ .SAXIHP2ARESETN(),
+ .SAXIHP1WREADY(),
+ .SAXIHP1RVALID(),
+ .SAXIHP1RLAST(),
+ .SAXIHP1BVALID(),
+ .SAXIHP1AWREADY(),
+ .SAXIHP1ARREADY(),
+ .SAXIHP1ARESETN(),
+ .SAXIHP0WREADY(),
+ .SAXIHP0RVALID(),
+ .SAXIHP0RLAST(),
+ .SAXIHP0BVALID(),
+ .SAXIHP0AWREADY(),
+ .SAXIHP0ARREADY(),
+ .SAXIHP0ARESETN(),
+ .SAXIGP1WREADY(),
+ .SAXIGP1RVALID(),
+ .SAXIGP1RLAST(),
+ .SAXIGP1BVALID(),
+ .SAXIGP1AWREADY(),
+ .SAXIGP1ARREADY(),
+ .SAXIGP1ARESETN(),
+ .SAXIGP0WREADY(s_axi_gp0.wready),
+ .SAXIGP0RVALID(s_axi_gp0.rvalid),
+ .SAXIGP0RLAST(s_axi_gp0.rlast),
+ .SAXIGP0BVALID(s_axi_gp0.bvalid),
+ .SAXIGP0AWREADY(s_axi_gp0.awready),
+ .SAXIGP0ARREADY(s_axi_gp0.arready),
+ .SAXIGP0ARESETN(),
+ .SAXIACPWREADY(),
+ .SAXIACPRVALID(),
+ .SAXIACPRLAST(),
+ .SAXIACPBVALID(),
+ .SAXIACPAWREADY(),
+ .SAXIACPARREADY(),
+ .SAXIACPARESETN(),
+ .MAXIGP1WVALID(),
+ .MAXIGP1WLAST(),
+ .MAXIGP1RREADY(),
+ .MAXIGP1BREADY(),
+ .MAXIGP1AWVALID(),
+ .MAXIGP1ARVALID(),
+ .MAXIGP1ARESETN(),
+ .MAXIGP0WVALID(m_axi_gp0.wvalid),
+ .MAXIGP0WLAST(m_axi_gp0.wlast),
+ .MAXIGP0RREADY(m_axi_gp0.rready),
+ .MAXIGP0BREADY(m_axi_gp0.bready),
+ .MAXIGP0AWVALID(m_axi_gp0.awvalid),
+ .MAXIGP0ARVALID(m_axi_gp0.arvalid),
+ .MAXIGP0ARESETN(),
+ .EVENTEVENTO(),
+ .EMIOWDTRSTO(),
+ .EMIOUSB1VBUSPWRSELECT(),
+ .EMIOUSB0VBUSPWRSELECT(),
+ .EMIOUART1TX(),
+ .EMIOUART1RTSN(),
+ .EMIOUART1DTRN(),
+ .EMIOUART0TX(),
+ .EMIOUART0RTSN(),
+ .EMIOUART0DTRN(),
+ .EMIOTRACECTL(),
+ .EMIOSPI1STN(),
+ .EMIOSPI1SSNTN(),
+ .EMIOSPI1SO(),
+ .EMIOSPI1SCLKTN(),
+ .EMIOSPI1SCLKO(),
+ .EMIOSPI1MOTN(),
+ .EMIOSPI1MO(),
+ .EMIOSPI0STN(),
+ .EMIOSPI0SSNTN(),
+ .EMIOSPI0SO(),
+ .EMIOSPI0SCLKTN(),
+ .EMIOSPI0SCLKO(),
+ .EMIOSPI0MOTN(),
+ .EMIOSPI0MO(),
+ .EMIOSDIO1LED(),
+ .EMIOSDIO1CMDTN(),
+ .EMIOSDIO1CMDO(),
+ .EMIOSDIO1CLK(),
+ .EMIOSDIO1BUSPOW(),
+ .EMIOSDIO0LED(),
+ .EMIOSDIO0CMDTN(),
+ .EMIOSDIO0CMDO(),
+ .EMIOSDIO0CLK(),
+ .EMIOSDIO0BUSPOW(),
+ .EMIOPJTAGTDTN(),
+ .EMIOPJTAGTDO(),
+ .EMIOI2C1SDATN(),
+ .EMIOI2C1SDAO(),
+ .EMIOI2C1SCLTN(),
+ .EMIOI2C1SCLO(),
+ .EMIOI2C0SDATN(),
+ .EMIOI2C0SDAO(),
+ .EMIOI2C0SCLTN(),
+ .EMIOI2C0SCLO(),
+ .EMIOENET1SOFTX(),
+ .EMIOENET1SOFRX(),
+ .EMIOENET1PTPSYNCFRAMETX(),
+ .EMIOENET1PTPSYNCFRAMERX(),
+ .EMIOENET1PTPPDELAYRESPTX(),
+ .EMIOENET1PTPPDELAYRESPRX(),
+ .EMIOENET1PTPPDELAYREQTX(),
+ .EMIOENET1PTPPDELAYREQRX(),
+ .EMIOENET1PTPDELAYREQTX(),
+ .EMIOENET1PTPDELAYREQRX(),
+ .EMIOENET1MDIOTN(),
+ .EMIOENET1MDIOO(),
+ .EMIOENET1MDIOMDC(),
+ .EMIOENET1GMIITXER(),
+ .EMIOENET1GMIITXEN(),
+ .EMIOENET0SOFTX(),
+ .EMIOENET0SOFRX(),
+ .EMIOENET0PTPSYNCFRAMETX(),
+ .EMIOENET0PTPSYNCFRAMERX(),
+ .EMIOENET0PTPPDELAYRESPTX(),
+ .EMIOENET0PTPPDELAYRESPRX(),
+ .EMIOENET0PTPPDELAYREQTX(),
+ .EMIOENET0PTPPDELAYREQRX(),
+ .EMIOENET0PTPDELAYREQTX(),
+ .EMIOENET0PTPDELAYREQRX(),
+ .EMIOENET0MDIOTN(),
+ .EMIOENET0MDIOO(),
+ .EMIOENET0MDIOMDC(),
+ .EMIOENET0GMIITXER(),
+ .EMIOENET0GMIITXEN(),
+ .EMIOCAN1PHYTX(),
+ .EMIOCAN0PHYTX(),
+ .DMA3RSTN(),
+ .DMA3DRREADY(),
+ .DMA3DAVALID(),
+ .DMA2RSTN(),
+ .DMA2DRREADY(),
+ .DMA2DAVALID(),
+ .DMA1RSTN(),
+ .DMA1DRREADY(),
+ .DMA1DAVALID(),
+ .DMA0RSTN(),
+ .DMA0DRREADY(),
+ .DMA0DAVALID()
+ );
+
+endmodule