outputdutm0_bready,// internally generated as a slow response to dutm0_bvalid. Cn be moved to Python and made input here
output[11:0]maxigp0bid,
output[11:0]dutm0_bid,
output[1:0]maxigp0bresp,
output[1:0]dutm0_bresp,
// SATA and SATA clock I/O
// SATA and SATA clock I/O
// SATA data interface
input[3:0]dutm0_xtra_rdlag,// ready signal lag in axi read channel (0 - RDY=1, 1..15 - RDY is asserted N cycles after valid)
input[3:0]dutm0_xtra_blag,// ready signal lag in axi arete response channel (0 - RDY=1, 1..15 - RDY is asserted N cycles after valid)
// SATA data interface
inputsata_rxn,
inputsata_rxn,
inputsata_rxp,
inputsata_rxp,
outputsata_txn,
outputsata_txn,
...
@@ -103,6 +108,114 @@ module x393_dut#(
...
@@ -103,6 +108,114 @@ module x393_dut#(
);
);
// Temporary = to be moved to Python?
// MAXIGP0 AXI interface
wiremaxigp0aclk;
wiremaxigp0aresetn;
// axi ps master gp0: read address
wire[31:0]maxigp0araddr;
wiremaxigp0arvalid;
wiremaxigp0arready;
wire[11:0]maxigp0arid;
wire[1:0]maxigp0arlock;
wire[3:0]maxigp0arcache;
wire[2:0]maxigp0arprot;
wire[3:0]maxigp0arlen;
wire[1:0]maxigp0arsize;
wire[1:0]maxigp0arburst;
wire[3:0]maxigp0arqos;
// axi ps master gp0: read data
wire[31:0]maxigp0rdata;
wiremaxigp0rvalid;
wiremaxigp0rready;
wire[11:0]maxigp0rid;
wiremaxigp0rlast;
wire[1:0]maxigp0rresp;
// axi ps master gp0: write address
wire[31:0]maxigp0awaddr;
wiremaxigp0awvalid;
wiremaxigp0awready;
wire[11:0]maxigp0awid;
wire[1:0]maxigp0awlock;
wire[3:0]maxigp0awcache;
wire[2:0]maxigp0awprot;
wire[3:0]maxigp0awlen;
wire[1:0]maxigp0awsize;
wire[1:0]maxigp0awburst;
wire[3:0]maxigp0awqos;
// axi ps master gp0: write data
wire[31:0]maxigp0wdata;
wiremaxigp0wvalid;
wiremaxigp0wready;
wire[11:0]maxigp0wid;
wiremaxigp0wlast;
wire[3:0]maxigp0wstrb;
// axi ps master gp0: write response
wiremaxigp0bvalid;
wiremaxigp0bready;
wire[11:0]maxigp0bid;
wire[1:0]maxigp0bresp;
assigndutm0_aclk=maxigp0aclk;
assigndutm0_rdata=maxigp0rdata;
assigndutm0_rid=maxigp0rid;
assigndutm0_rresp=maxigp0rresp;
assigndutm0_bid=maxigp0bid;
assigndutm0_bresp=maxigp0bresp;
assigndutm0_rvalid=maxigp0rvalid;
assigndutm0_bvalid=maxigp0bvalid;
assigndutm0_rready=maxigp0rready;// temporary
assigndutm0_bready=maxigp0bready;// temporary
assigndutm0_rlast=maxigp0rlast;
reg[11:0]LAST_ARID;// last issued ARID
// SuppressWarnings VEditor : assigned in $readmem() system task
wire[SIMUL_AXI_READ_WIDTH-1:0]SIMUL_AXI_ADDR_W;
// SuppressWarnings VEditor
wireSIMUL_AXI_MISMATCH;
// SuppressWarnings VEditor
reg[31:0]SIMUL_AXI_READ;
// SuppressWarnings VEditor
reg[SIMUL_AXI_READ_WIDTH-1:0]SIMUL_AXI_ADDR;
// SuppressWarnings VEditor
regSIMUL_AXI_FULL;// some data available
// wire SIMUL_AXI_EMPTY= ~rvalid && rready && (rid==LAST_ARID); //S uppressThisWarning VEditor : may be unused, just for simulation // use it to wait for?
// reg [31:0] registered_rdata; // here read data from tasks goes
// SuppressWarnings VEditor
regWAITING_STATUS;// tasks are waiting for status
// SuppressWarnings VEditor all - these variables are just for viewing, not used anywhere else
regDEBUG1,DEBUG2,DEBUG3;
reg[11:0]GLOBAL_WRITE_ID=0;
reg[11:0]GLOBAL_READ_ID=0;
// reg [7:0] target_phase=0; // to compare/wait for phase shifter ready