diff --git a/docs/riffa_documentation.pdf b/docs/riffa_documentation.pdf
index a49e78d..fc7a062 100644
Binary files a/docs/riffa_documentation.pdf and b/docs/riffa_documentation.pdf differ
diff --git a/fpga/altera/Makefile b/fpga/altera/Makefile
index 3fa5722..d2987d7 100644
--- a/fpga/altera/Makefile
+++ b/fpga/altera/Makefile
@@ -39,7 +39,7 @@
# Author: Dustin Richmond (@darichmond)
#-----------------------------------------------------------------------
VENDOR:=altera
-BOARDS:=de5 de4 de2i c4dev
+BOARDS:=de5 de4 de2i
CURRENT_PATH := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
.DEFAULT_GOAL := all
diff --git a/fpga/altera/c4dev/C4DevGen1x4If64/Makefile b/fpga/altera/c4dev/C4DevGen1x4If64/Makefile
deleted file mode 100644
index 39be211..0000000
--- a/fpga/altera/c4dev/C4DevGen1x4If64/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=64
-TYPE=classic
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/ALTGXPCIeGen1x4.qip ip/ALTPLL50I50O125O250O.qip ip/PCIeGen1x4If64.qip
diff --git a/fpga/altera/c4dev/C4DevGen1x4If64/bit/C4DevGen1x4If64.sof b/fpga/altera/c4dev/C4DevGen1x4If64/bit/C4DevGen1x4If64.sof
deleted file mode 100644
index 9181b71..0000000
Binary files a/fpga/altera/c4dev/C4DevGen1x4If64/bit/C4DevGen1x4If64.sof and /dev/null differ
diff --git a/fpga/altera/c4dev/C4DevGen1x4If64/constr/C4DevGen1x4If64.sdc b/fpga/altera/c4dev/C4DevGen1x4If64/constr/C4DevGen1x4If64.sdc
deleted file mode 100644
index 82c42d5..0000000
--- a/fpga/altera/c4dev/C4DevGen1x4If64/constr/C4DevGen1x4If64.sdc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Oscillator Clocks
-create_clock -name CLK1_50 -period 20 [get_ports {CLK1_50}]
-create_clock -name CLK2_50 -period 20 [get_ports {CLK2_50}]
-create_clock -name CLK3_50 -period 20 [get_ports {CLK3_50}]
-
-# Refclk (100 MHz differential input)
-create_clock -period "100 MHz" -name {refclk} [get_ports {PCIE_REFCLK}]
-
-# 50 MHZ PLL Clock
-create_generated_clock -name clk50 -source [get_ports {CLK1_50}] [get_nets {*|altpll_component|auto_generated|wire_pll1_clk[0]}]
-
-# 125 MHZ PLL Clock
-create_generated_clock -name clk125 -multiply_by 5 -divide_by 2 -source [get_ports {CLK1_50}] [get_nets {*|altpll_component|auto_generated|wire_pll1_clk[1]}]
-
-# 250 MHZ PLL Clock
-create_generated_clock -name clk250 -multiply_by 5 -source [get_ports {CLK1_50}] [get_nets {*|altpll_component|auto_generated|wire_pll1_clk[2]}]
-
-derive_pll_clocks
-derive_clock_uncertainty
-
-# Imported from IP Compiler user guide
-set_clock_groups -exclusive -group [get_clocks { refclk*clkout }] -group [get_clocks { *div0*coreclkout}]
-set_clock_groups -exclusive -group [get_clocks { *central_clk_div0* }] -group [get_clocks { *_hssi_pcie_hip* }] -group [get_clocks { *central_clk_div1* }]
diff --git a/fpga/altera/c4dev/C4DevGen1x4If64/hdl/C4DevGen1x4If64.v b/fpga/altera/c4dev/C4DevGen1x4If64/hdl/C4DevGen1x4If64.v
deleted file mode 100644
index a7a64cf..0000000
--- a/fpga/altera/c4dev/C4DevGen1x4If64/hdl/C4DevGen1x4If64.v
+++ /dev/null
@@ -1,394 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: C4DevGen1x4If64.v
-// Version:
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Altera Cyclone IV IP Compiler for PCI Express
-// module and the Terasic DE2i Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "altera.vh"
-module C4DevGen1x4If64
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 4,
- // Settings from Quartus IP Library
- parameter C_PCI_DATA_WIDTH = 64,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 5)
- (input CLK1_50,
- input PCIE_RESET_N,
- input PCIE_REFCLK,
- input [C_NUM_LANES-1:0] PCIE_RX_IN,
- output [C_NUM_LANES-1:0] PCIE_TX_OUT,
- // ----------LEDs ----------
- output [7:0] LED_G);
- // ----------PLL Signals----------
- wire clk50;
- wire clk125;
- wire clk250;
- wire locked;
- wire inclk0;
-
- // ----------PCIe Core Signals----------
- // ----------PCIe Clocks----------
- wire pld_clk;
- wire reconfig_clk;
- wire core_clk_out;
- wire fixedclk_serdes;
- wire refclk;
- wire rc_pll_locked;
- wire cal_blk_clk;
-
- // ----------PCIe Resets----------
- wire [ 4: 0] pex_msi_num;
- wire pll_powerdown;
- wire reset_status;
- wire crst;
- wire npor;
- wire srst;
- wire gxb_powerdown;
-
- // ----------PCIe Transaction layer configuration ----------
- wire [ 3: 0] tl_cfg_add;
- wire [ 31: 0] tl_cfg_ctl;
- wire tl_cfg_ctl_wr;
- wire [ 52: 0] tl_cfg_sts;
- wire tl_cfg_sts_wr;
- wire [ 19: 0] ko_cpl_spc_vc0;
-
- // ----------PCIe Local Management Interface----------
- wire lmi_ack;
- wire [ 31: 0] lmi_dout;
- wire [ 11: 0] lmi_addr;
- wire [ 31: 0] lmi_din;
- wire lmi_rden;
- wire lmi_wren;
-
- // ----------PCIe Interrupt Interface ----------
- wire app_int_ack;
- wire app_msi_ack;
- wire app_int_sts;
- wire app_msi_req;
-
- // ----------PCIe Status Signals----------
- wire hotrst_exit;
- wire l2_exit;
- wire [3:0] lane_act;
- wire [4:0] ltssm;
- wire pme_to_sr;
- wire suc_spd_neg;
-
- // ----------PCIe RX Interface----------
- wire rx_st_mask0;
- wire [ 7: 0] rx_st_bardec0;
- wire [ 15: 0] rx_st_be0;
- wire [0:0] rx_st_sop0;
- wire [0:0] rx_st_eop0;
- wire [0:0] rx_st_err0;
- wire [0:0] rx_st_valid0;
- wire [0:0] rx_st_empty0;
- wire rx_st_ready0;
- wire [C_PCI_DATA_WIDTH-1:0] rx_st_data0;
-
- // ----------PCIe TX Interface----------
- wire [0:0] tx_st_sop0;
- wire [0:0] tx_st_eop0;
- wire [0:0] tx_st_err0;
- wire [0:0] tx_st_valid0;
- wire [0:0] tx_st_empty0;
- wire tx_st_ready0;
- wire [C_PCI_DATA_WIDTH-1:0] tx_st_data0;
-
- // ----------ALTGX Signals----------
- wire busy;
- wire busy_altgxb_reconfig;
- wire [4:0] reconfig_fromgxb;
- wire [3:0] reconfig_togxb;
-
- // ----------Resets ----------
- reg [4:0] rRstCtr,_rRstCtr;
- reg [2:0] rRstSync,_rRstSync;
- wire wSyncRst;
-
- always @(*) begin
- _rRstSync = {rRstSync[1:0], ~npor};
- _rRstCtr = rRstCtr;
- if (rRstSync[2]) begin
- _rRstCtr = 0;
- end else if (~rRstCtr[4]) begin
- _rRstCtr = rRstCtr + 1;
- end
- end
-
- always @(posedge pld_clk) begin
- rRstSync <= _rRstSync;
- rRstCtr <= _rRstCtr;
- end
-
- assign wSyncRst = ~ rRstCtr[4];
- assign srst = wSyncRst;
- assign crst = wSyncRst;
-
- // ----------PLL assignments----------
- assign inclk0 = CLK1_50;
- assign fixedclk_serdes = clk125;
- assign reconfig_clk = clk50;
-
- // ----------PCIe Resets----------
- assign npor = PCIE_RESET_N;
- assign gxb_powerdown = ~ npor;
- assign pll_powerdown = ~ npor;
-
- // ----------PCIe Clocks / PLLs----------
- assign refclk = PCIE_REFCLK;
- assign pld_clk = core_clk_out;
- assign cal_blk_clk = reconfig_clk;
-
- // ----------ALTGX----------
- assign busy = busy_altgxb_reconfig;
-
- // -------------------- BEGIN ALTERA IP INSTANTIATION --------------------
- ALTPLL50I50O125O250O ALTPLL50I50O125O250O_inst
- (
- // Outputs
- .c0 (clk50),
- .c1 (clk125),
- .c2 (clk250),
- .locked (locked),
- // Inputs
- .inclk0 (inclk0));
-
- ALTGXPCIeGen1x4
- altgx_inst
- (
- // Outputs
- .busy (busy),
- .reconfig_togxb (reconfig_togxb[3:0]),
- // Inputs
- .reconfig_clk (reconfig_clk),
- .reconfig_fromgxb (reconfig_fromgxb[4:0]));
-
- PCIeGen1x4If64
- pcie_inst
- (
- // Outputs
- .app_int_ack (app_int_ack),
- .app_msi_ack (app_msi_ack),
- .core_clk_out (core_clk_out),
- .hotrst_exit (hotrst_exit),
- .l2_exit (l2_exit),
- .lane_act (lane_act[3:0]),
- .lmi_ack (lmi_ack),
- .lmi_dout (lmi_dout[31:0]),
- .ltssm (ltssm[4:0]),
- .rc_pll_locked (rc_pll_locked),
- .reconfig_fromgxb (reconfig_fromgxb[4:0]),
- .reset_status (reset_status),
- .rx_st_bardec0 (rx_st_bardec0[7:0]),
- .rx_st_be0 (rx_st_be0[7:0]),
- .rx_st_data0 (rx_st_data0[C_PCI_DATA_WIDTH-1:0]),
- .rx_st_eop0 (rx_st_eop0),
- .rx_st_err0 (rx_st_err0),
- .rx_st_sop0 (rx_st_sop0),
- .rx_st_valid0 (rx_st_valid0),
- .suc_spd_neg (suc_spd_neg),// Gen 2 successful
- .tl_cfg_add (tl_cfg_add[3:0]),
- .tl_cfg_ctl (tl_cfg_ctl[31:0]),
- .tl_cfg_ctl_wr (tl_cfg_ctl_wr),
- .tl_cfg_sts (tl_cfg_sts[52:0]),
- .tl_cfg_sts_wr (tl_cfg_sts_wr),
- .ko_cpl_spc_vc0 (ko_cpl_spc_vc0),
- .tx_out0 (PCIE_TX_OUT[0]),
- .tx_out1 (PCIE_TX_OUT[1]),
- .tx_out2 (PCIE_TX_OUT[2]),
- .tx_out3 (PCIE_TX_OUT[3]),
- .tx_st_ready0 (tx_st_ready0),
- // Inputs
- .app_int_sts (app_int_sts),
- .app_msi_num (5'b00000),
- .app_msi_req (app_msi_req),
- .app_msi_tc (3'b000),
- .busy_altgxb_reconfig (busy_altgxb_reconfig),
- .cal_blk_clk (cal_blk_clk),
- .crst (crst),
- .fixedclk_serdes (fixedclk_serdes),
- .gxb_powerdown (gxb_powerdown),
- .pll_powerdown (pll_powerdown),
- .lmi_addr (lmi_addr[11:0]),
- .lmi_din (lmi_din[31:0]),
- .lmi_rden (lmi_rden),
- .lmi_wren (lmi_wren),
- .npor (npor),
- .pex_msi_num (pex_msi_num[4:0]),
- .pld_clk (pld_clk),
- .reconfig_clk (reconfig_clk),
- .reconfig_togxb (reconfig_togxb[3:0]),
- .refclk (refclk),
- .rx_in0 (PCIE_RX_IN[0]),
- .rx_in1 (PCIE_RX_IN[1]),
- .rx_in2 (PCIE_RX_IN[2]),
- .rx_in3 (PCIE_RX_IN[3]),
- .rx_st_ready0 (rx_st_ready0),
- .srst (srst),
- .tx_st_data0 (tx_st_data0[C_PCI_DATA_WIDTH-1:0]),
- .tx_st_eop0 (tx_st_eop0),
- .tx_st_err0 (tx_st_err0),
- .tx_st_sop0 (tx_st_sop0),
- .tx_st_valid0 (tx_st_valid0));
-
- // -------------------- END ALTERA IP INSTANTIATION --------------------
- // -------------------- BEGIN RIFFA INSTANTAION --------------------
-
- // ----------RIFFA channel interface----------
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*32)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*31)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*32)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*31)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- wire chnl_reset;
- wire chnl_clk;
- wire rst_out;
-
- assign chnl_clk = pld_clk;
- assign chnl_reset = rst_out;
-
- riffa_wrapper_c4dev
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .RX_ST_READY (rx_st_ready0),
- .TX_ST_DATA (tx_st_data0[C_PCI_DATA_WIDTH-1:0]),
- .TX_ST_VALID (tx_st_valid0[0:0]),
- .TX_ST_EOP (tx_st_eop0[0:0]),
- .TX_ST_SOP (tx_st_sop0[0:0]),
- .TX_ST_EMPTY (tx_st_empty0[0:0]),
- .APP_MSI_REQ (app_msi_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .RX_ST_DATA (rx_st_data0[C_PCI_DATA_WIDTH-1:0]),
- .RX_ST_EOP (rx_st_eop0[0:0]),
- .RX_ST_SOP (rx_st_sop0[0:0]),
- .RX_ST_VALID (rx_st_valid0[0:0]),
- .RX_ST_EMPTY (rx_st_empty0[0:0]),
- .TX_ST_READY (tx_st_ready0),
- .TL_CFG_CTL (tl_cfg_ctl[`SIG_CFG_CTL_W-1:0]),
- .TL_CFG_ADD (tl_cfg_add[`SIG_CFG_ADD_W-1:0]),
- .TL_CFG_STS (tl_cfg_sts[`SIG_CFG_STS_W-1:0]),
- .KO_CPL_SPC_HEADER (ko_cpl_spc_vc0[7:0]),
- .KO_CPL_SPC_DATA (ko_cpl_spc_vc0[19:8]),
- .APP_MSI_ACK (app_msi_ack),
- .PLD_CLK (pld_clk),
- .RESET_STATUS (reset_status),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- // -------------------- END RIFFA INSTANTAION --------------------
- // -------------------- BEGIN USER CODE --------------------
- genvar i;
- generate
- for (i = 0; i < C_NUM_CHNL; i = i + 1) begin : test_channels
- // Instantiate and assign modules to RIFFA channels. Users should
- // replace the chnl_tester instantiation with their own core.
- chnl_tester
- #(.C_PCI_DATA_WIDTH(C_PCI_DATA_WIDTH))
- chnl_tester_i
- (.CLK(chnl_clk),
- .RST(chnl_reset), // chnl_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[i]),
- .CHNL_RX(chnl_rx[i]),
- .CHNL_RX_ACK(chnl_rx_ack[i]),
- .CHNL_RX_LAST(chnl_rx_last[i]),
- .CHNL_RX_LEN(chnl_rx_len[`SIG_CHNL_LENGTH_W*i +:`SIG_CHNL_LENGTH_W]),
- .CHNL_RX_OFF(chnl_rx_off[`SIG_CHNL_OFFSET_W*i +:`SIG_CHNL_OFFSET_W]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*i +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[i]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[i]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[i]),
- .CHNL_TX(chnl_tx[i]),
- .CHNL_TX_ACK(chnl_tx_ack[i]),
- .CHNL_TX_LAST(chnl_tx_last[i]),
- .CHNL_TX_LEN(chnl_tx_len[`SIG_CHNL_LENGTH_W*i +:`SIG_CHNL_LENGTH_W]),
- .CHNL_TX_OFF(chnl_tx_off[`SIG_CHNL_OFFSET_W*i +:`SIG_CHNL_OFFSET_W]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*i +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[i]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[i]));
- end
- endgenerate
- // -------------------- END USER CODE --------------------
-endmodule // DE2i_PCIe
diff --git a/fpga/altera/c4dev/C4DevGen1x4If64/prj/C4DevGen1x4If64.qpf b/fpga/altera/c4dev/C4DevGen1x4If64/prj/C4DevGen1x4If64.qpf
deleted file mode 100644
index d095759..0000000
--- a/fpga/altera/c4dev/C4DevGen1x4If64/prj/C4DevGen1x4If64.qpf
+++ /dev/null
@@ -1,30 +0,0 @@
-# -------------------------------------------------------------------------- #
-#
-# Copyright (C) 1991-2013 Altera Corporation
-# Your use of Altera Corporation's design tools, logic functions
-# and other software and tools, and its AMPP partner logic
-# functions, and any output files from any of the foregoing
-# (including device programming or simulation files), and any
-# associated documentation or information are expressly subject
-# to the terms and conditions of the Altera Program License
-# Subscription Agreement, Altera MegaCore Function License
-# Agreement, or other applicable license agreement, including,
-# without limitation, that your use is for the sole purpose of
-# programming logic devices manufactured by Altera and sold by
-# Altera or its authorized distributors. Please refer to the
-# applicable agreement for further details.
-#
-# -------------------------------------------------------------------------- #
-#
-# Quartus II 64-Bit
-# Version 13.1.0 Build 162 10/23/2013 SJ Full Version
-# Date created = 12:52:42 March 20, 2014
-#
-# -------------------------------------------------------------------------- #
-
-QUARTUS_VERSION = "13.1"
-DATE = "12:52:42 March 20, 2014"
-
-# Revisions
-
-PROJECT_REVISION = "C4DevGen1x4If64"
diff --git a/fpga/altera/c4dev/C4DevGen1x4If64/prj/C4DevGen1x4If64.qsf b/fpga/altera/c4dev/C4DevGen1x4If64/prj/C4DevGen1x4If64.qsf
deleted file mode 100644
index 90ba35e..0000000
--- a/fpga/altera/c4dev/C4DevGen1x4If64/prj/C4DevGen1x4If64.qsf
+++ /dev/null
@@ -1,278 +0,0 @@
-# -------------------------------------------------------------------------- #
-#
-# Copyright (C) 1991-2013 Altera Corporation
-# Your use of Altera Corporation's design tools, logic functions
-# and other software and tools, and its AMPP partner logic
-# functions, and any output files from any of the foregoing
-# (including device programming or simulation files), and any
-# associated documentation or information are expressly subject
-# to the terms and conditions of the Altera Program License
-# Subscription Agreement, Altera MegaCore Function License
-# Agreement, or other applicable license agreement, including,
-# without limitation, that your use is for the sole purpose of
-# programming logic devices manufactured by Altera and sold by
-# Altera or its authorized distributors. Please refer to the
-# applicable agreement for further details.
-#
-# -------------------------------------------------------------------------- #
-#
-# Quartus II 64-Bit
-# Version 13.1.0 Build 162 10/23/2013 SJ Full Version
-# Date created = 12:52:42 March 20, 2014
-#
-# -------------------------------------------------------------------------- #
-#
-# Notes:
-#
-# 1) The default values for assignments are stored in the file:
-# C4DevGen1x4If64_assignment_defaults.qdf
-# If this file doesn't exist, see file:
-# assignment_defaults.qdf
-#
-# 2) Altera recommends that you do not modify this file. This
-# file is updated automatically by the Quartus II software
-# and any changes you make may be lost or overwritten.
-#
-# -------------------------------------------------------------------------- #
-
-
-set_global_assignment -name FAMILY "Cyclone IV GX"
-set_global_assignment -name DEVICE EP4CGX150DF31C7
-set_global_assignment -name TOP_LEVEL_ENTITY C4DevGen1x4If64
-set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1
-set_global_assignment -name PROJECT_CREATION_TIME_DATE "12:52:42 MARCH 20, 2014"
-set_global_assignment -name LAST_QUARTUS_VERSION 15.1.0
-set_global_assignment -name PROJECT_OUTPUT_DIRECTORY ../bit/
-set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
-set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
-set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
-set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (Verilog)"
-set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_simulation
-
-################################################################################
-#Clocks
-################################################################################
-set_instance_assignment -name IO_STANDARD "1.8 V" -to CLK1_50
-set_location_assignment PIN_AK16 -to CLK1_50
-
-################################################################################
-#PCIE -- Clocks, Resets
-################################################################################
-
-set_instance_assignment -name IO_STANDARD "1.8 V" -to PCIE_RESET_N
-set_location_assignment PIN_A7 -to PCIE_RESET_N
-
-set_instance_assignment -name IO_STANDARD HCSL -to PCIE_REFCLK
-set_location_assignment PIN_V15 -to PCIE_REFCLK
-
-set_instance_assignment -name IO_STANDARD "1.8 V" -to PCIE_WAKE
-set_location_assignment IOBANK8 -to PCIE_WAKE
-
-################################################################################
-#PCIE RX_IN 0
-################################################################################
-
-set_location_assignment PIN_AC2 -to PCIE_RX_IN[0]
-set_location_assignment PIN_AC1 -to "PCIE_RX_IN[0](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_RX_IN[0]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_RX_IN[0](n)"
-
-################################################################################
-#PCIE RX_IN 1
-################################################################################
-
-set_location_assignment PIN_AA2 -to PCIE_RX_IN[1]
-set_location_assignment PIN_AA1 -to "PCIE_RX_IN[1](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_RX_IN[1]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_RX_IN[1](n)"
-
-################################################################################
-#PCIE RX_IN 2
-################################################################################
-
-set_location_assignment PIN_W2 -to PCIE_RX_IN[2]
-set_location_assignment PIN_W1 -to "PCIE_RX_IN[2](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_RX_IN[2]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_RX_IN[2](n)"
-
-################################################################################
-#PCIE RX_IN 3
-################################################################################
-
-set_location_assignment PIN_U2 -to PCIE_RX_IN[3]
-set_location_assignment PIN_U1 -to "PCIE_RX_IN[3](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_RX_IN[3]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_RX_IN[3](n)"
-
-################################################################################
-#PCIE TX_OUT 0
-################################################################################
-
-set_location_assignment PIN_AB4 -to PCIE_TX_OUT[0]
-set_location_assignment PIN_AB3 -to "PCIE_TX_OUT[0](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_TX_OUT[0]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_TX_OUT[0](n)"
-
-################################################################################
-#PCIE TX_OUT 1
-################################################################################
-
-set_location_assignment PIN_Y4 -to PCIE_TX_OUT[1]
-set_location_assignment PIN_Y3 -to "PCIE_TX_OUT[1](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_TX_OUT[1]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_TX_OUT[1](n)"
-
-################################################################################
-#PCIE TX_OUT 2
-################################################################################
-
-set_location_assignment PIN_V4 -to PCIE_TX_OUT[2]
-set_location_assignment PIN_V3 -to "PCIE_TX_OUT[2](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_TX_OUT[2]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_TX_OUT[2](n)"
-
-################################################################################
-#PCIE TX_OUT 3
-################################################################################
-
-set_location_assignment PIN_T4 -to PCIE_TX_OUT[3]
-set_location_assignment PIN_T3 -to "PCIE_TX_OUT[3](n)"
-
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to PCIE_TX_OUT[3]
-set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to "PCIE_TX_OUT[3](n)"
-
-################################################################################
-# Green LED's
-################################################################################
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[0]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[1]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[2]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[3]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[4]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[5]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[6]
-set_instance_assignment -name IO_STANDARD "1.8 V" -to LED_G[7]
-set_location_assignment PIN_E4 -to LED_G[0]
-set_location_assignment PIN_C7 -to LED_G[1]
-set_location_assignment PIN_A4 -to LED_G[2]
-set_location_assignment PIN_F6 -to LED_G[3]
-set_location_assignment PIN_D4 -to LED_G[4]
-set_location_assignment PIN_J9 -to LED_G[5]
-set_location_assignment PIN_D12 -to LED_G[6]
-set_location_assignment PIN_B6 -to LED_G[7]
-
-set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
-set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
-set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
-set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
-set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
-
-set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005
-set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF
-
-set_global_assignment -name QIP_FILE ../ip/PCIeGen1x4If64.qip
-set_global_assignment -name QIP_FILE ../ip/ALTPLL50I50O125O250O.qip
-set_global_assignment -name QIP_FILE ../ip/ALTGXPCIeGen1x4.qip
-set_global_assignment -name VERILOG_FILE ../../riffa_wrapper_c4dev.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/reset_extender.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/txr_engine_ultrascale.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/txr_engine_classic.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/txc_engine_ultrascale.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/txc_engine_classic.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_writer.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_monitor_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_monitor_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_monitor_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_channel_gate_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_channel_gate_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_channel_gate_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_buffer_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_buffer_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_buffer_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_port_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_multiplexer_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_multiplexer_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_multiplexer_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_multiplexer.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_hdr_fifo.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_engine_ultrascale.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_engine_selector.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_engine_classic.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_engine.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_data_shift.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_data_pipeline.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_data_fifo.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/tx_alignment_pipeline.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/translation_xilinx.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/translation_altera.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/syncff.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/sync_fifo.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/shiftreg.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/sg_list_requester.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/sg_list_reader_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/sg_list_reader_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/sg_list_reader_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/scsdpram.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rxr_engine_ultrascale.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rxr_engine_classic.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rxr_engine_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rxc_engine_ultrascale.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rxc_engine_classic.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rxc_engine_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_port_requester_mux.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_port_reader.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_port_channel_gate.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_port_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_port_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_port_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_engine_ultrascale.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rx_engine_classic.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/rotate.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/riffa.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/reset_controller.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/reorder_queue_output.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/reorder_queue_input.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/reorder_queue.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/registers.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/register.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/recv_credit_flow_ctrl.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/ram_2clk_1w_1r.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/ram_1clk_1w_1r.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/pipeline.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/one_hot_mux.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/offset_to_mask.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/offset_flag_to_one_hot.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/mux.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/interrupt_controller.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/interrupt.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/fifo_packer_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/fifo_packer_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/fifo_packer_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/fifo.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/ff.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/engine_layer.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/demux.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/cross_domain_signal.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/counter.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/chnl_tester.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/channel_128.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/channel_64.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/channel_32.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/channel.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/async_fifo_fwft.v
-set_global_assignment -name VERILOG_FILE ../../../../riffa_hdl/async_fifo.v
-set_global_assignment -name SEARCH_PATH ../../../../riffa_hdl
-set_global_assignment -name SDC_FILE ../constr/C4DevGen1x4If64.sdc
-set_global_assignment -name VERILOG_FILE ../hdl/C4DevGen1x4If64.v
-set_global_assignment -name SOURCE_FILE db/C4DevGen1x4If64.cmp.rdb
-set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "2.5 V"
-set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
diff --git a/fpga/altera/c4dev/Makefile b/fpga/altera/c4dev/Makefile
deleted file mode 100644
index 566f905..0000000
--- a/fpga/altera/c4dev/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Top-level makefile for building the example
-# projects in a board
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-BOARD=c4dev
-BOARD_PROJECTS:=C4DevGen1x4If64
-BOARD_TYPE:=classic
-VENDOR:=altera
-include ../vendor.mk
diff --git a/fpga/altera/c4dev/board.mk b/fpga/altera/c4dev/board.mk
deleted file mode 100644
index becba70..0000000
--- a/fpga/altera/c4dev/board.mk
+++ /dev/null
@@ -1,105 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: board.mk
-# Version: 1.0
-# Description: Board-specific include makefile
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-include $(RIFFA_ROOT_PATH)/release.mk
-.DEFAULT_GOAL=all
-
-BOARD_HDL:= $(BOARD_PATH)/riffa_wrapper_$(BOARD).v
-
-PROJECT_IP=
-PROJECT_BIT:= bit/$(PROJECT).sof
-PROJECT_HDL=hdl/$(PROJECT).v $(BOARD_HDL) $(patsubst %, $(RIFFA_HDL_PATH)/%,$(RIFFA_HDL))
-PROJECT_CONSTR=constr/$(PROJECT).sdc
-PROJECT_FILE=prj/$(PROJECT).qsf prj/$(PROJECT).qpf
-PROJECT_FILES=$(PROJECT_IP) $(PROJECT_CONSTR) $(PROJECT_QSRCS) $(PROJECT_HDL)
-
-RELEASE_BIT:=$(PROJECT_BIT)
-RELEASE_IP:=$(PROJECT_IP)
-RELEASE_HDL:=hdl/$(PROJECT).v
-RELEASE_CONSTR:=$(PROJECT_CONSTR)
-RELEASE_FILE:=$(PROJECT_FILE)
-RELEASE_PROJECT_PATH:=$(RELEASE_SRC_PATH)/fpga/$(VENDOR)/$(BOARD)/$(PROJECT)
-copy-files = $(foreach file, $1, cp $(file) $2;)
-
-.PHONY:$(PROJECT) all synthesis implementation clean clobber $(TYPE) $(VENDOR) $(BOARD)
-$(PROJECT): $(PROJECT_BIT)
- @echo Compiling Project $@
-
-$(PROJECT_BIT): $(PROJECT_FILES)
- quartus_sh --flow compile prj/$(PROJECT).qpf
-
-synthesis: bit/$(PROJECT).map.rpt
-bit/$(PROJECT).map.rpt: $(PROJECT_FILES)
- quartus_sh --flow analysis_and_synthesis prj/$(PROJECT).qpf
-
-
-implementation:bit/$(PROJECT).fit.rpt
-bit/$(PROJECT).fit.rpt: $(PROJECT_FILES)
- quartus_sh --flow fitter prj/$(PROJECT).qpf
-
-all $(TYPE) $(VENDOR) $(BOARD):$(PROJECT)
-clean:
- rm -rf ip/.qsys_edit ip/*~
- rm -rf prj/db prj/incremental_db prj/*txt prj/*.sopcinfo prj/*.qws prj/*~
- rm -rf bit/*.done bit/*.smsg bit/*.rpt bit/*.summary bit/*.sld bit/*.pin bit/*.jdi bit/*~
- rm -rf hdl/*~
- rm -rf constr/*~
- rm -rf *~
-
-clobber:
- rm -rf $(PROJECT_BIT)
-
-destination: $(RELEASE_PROJECT_PATH)
- mkdir $(RELEASE_PROJECT_PATH)/bit
- mkdir $(RELEASE_PROJECT_PATH)/constr
- mkdir $(RELEASE_PROJECT_PATH)/ip
- mkdir $(RELEASE_PROJECT_PATH)/hdl
- mkdir $(RELEASE_PROJECT_PATH)/prj
-
-$(RELEASE_PROJECT_PATH): check-release-src
- mkdir $@
-
-release:check-release-src destination
- $(call copy-files, $(RELEASE_BIT), $(RELEASE_PROJECT_PATH)/bit)
- $(call copy-files, $(RELEASE_CONSTR), $(RELEASE_PROJECT_PATH)/constr)
- $(call copy-files, $(RELEASE_IP), $(RELEASE_PROJECT_PATH)/ip)
- $(call copy-files, $(RELEASE_HDL), $(RELEASE_PROJECT_PATH)/hdl)
- $(call copy-files, $(RELEASE_FILE), $(RELEASE_PROJECT_PATH)/prj)
-
diff --git a/fpga/altera/c4dev/riffa_wrapper_c4dev.v b/fpga/altera/c4dev/riffa_wrapper_c4dev.v
deleted file mode 100644
index 6ca2132..0000000
--- a/fpga/altera/c4dev/riffa_wrapper_c4dev.v
+++ /dev/null
@@ -1,627 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: riffa_wrapper_de2i.v
-// Version: 1.00a
-// Verilog Standard: Verilog-2001
-// Description: Wrapper file for all riffa logic for Altera DE2I boards
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "trellis.vh"
-`include "riffa.vh"
-`include "altera.vh"
-`include "ultrascale.vh"
-`include "functions.vh"
-`timescale 1ps / 1ps
-module riffa_wrapper_c4dev
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Bit-Width from Quartus IP Generator
- parameter C_PCI_DATA_WIDTH = 64,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 5,
- parameter C_FPGA_ID = "C4DE")
- (// Interface: Altera RX
- input [C_PCI_DATA_WIDTH-1:0] RX_ST_DATA,
- input [0:0] RX_ST_EOP,
- input [0:0] RX_ST_SOP,
- input [0:0] RX_ST_VALID,
- output RX_ST_READY,
- input [0:0] RX_ST_EMPTY,
-
- // Interface: Altera TX
- output [C_PCI_DATA_WIDTH-1:0] TX_ST_DATA,
- output [0:0] TX_ST_VALID,
- input TX_ST_READY,
- output [0:0] TX_ST_EOP,
- output [0:0] TX_ST_SOP,
- output [0:0] TX_ST_EMPTY,
-
- // Interface: Altera Config
- input [`SIG_CFG_CTL_W-1:0] TL_CFG_CTL,
- input [`SIG_CFG_ADD_W-1:0] TL_CFG_ADD,
- input [`SIG_CFG_STS_W-1:0] TL_CFG_STS,
-
- // Interface: Altera Flow Control
- input [`SIG_KO_CPLH_W-1:0] KO_CPL_SPC_HEADER,
- input [`SIG_KO_CPLD_W-1:0] KO_CPL_SPC_DATA,
-
- // Interface: Altera Interrupt
- input APP_MSI_ACK,
- output APP_MSI_REQ,
-
- // Interface: Altera CLK/RESET
- input PLD_CLK,
- input RESET_STATUS,
-
- // RIFFA Interface Signals
- output RST_OUT,
- input [C_NUM_CHNL-1:0] CHNL_RX_CLK, // Channel read clock
- output [C_NUM_CHNL-1:0] CHNL_RX, // Channel read receive signal
- input [C_NUM_CHNL-1:0] CHNL_RX_ACK, // Channel read received signal
- output [C_NUM_CHNL-1:0] CHNL_RX_LAST, // Channel last read
- output [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_RX_LEN, // Channel read length
- output [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_RX_OFF, // Channel read offset
- output [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_RX_DATA, // Channel read data
- output [C_NUM_CHNL-1:0] CHNL_RX_DATA_VALID, // Channel read data valid
- input [C_NUM_CHNL-1:0] CHNL_RX_DATA_REN, // Channel read data has been recieved
-
- input [C_NUM_CHNL-1:0] CHNL_TX_CLK, // Channel write clock
- input [C_NUM_CHNL-1:0] CHNL_TX, // Channel write receive signal
- output [C_NUM_CHNL-1:0] CHNL_TX_ACK, // Channel write acknowledgement signal
- input [C_NUM_CHNL-1:0] CHNL_TX_LAST, // Channel last write
- input [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_TX_LEN, // Channel write length (in 32 bit words)
- input [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_TX_OFF, // Channel write offset
- input [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_TX_DATA, // Channel write data
- input [C_NUM_CHNL-1:0] CHNL_TX_DATA_VALID, // Channel write data valid
- output [C_NUM_CHNL-1:0] CHNL_TX_DATA_REN); // Channel write data has been recieved
-
- localparam C_FPGA_NAME = "REGT"; // This is not yet exposed in the driver
- localparam C_MAX_READ_REQ_BYTES = C_MAX_PAYLOAD_BYTES * 2;
- localparam C_VENDOR = "ALTERA";
-
- localparam C_ALTERA_TX_READY_LATENCY = 2;
- localparam C_KEEP_WIDTH = C_PCI_DATA_WIDTH / 32;
- localparam C_PIPELINE_OUTPUT = 1;
- localparam C_PIPELINE_INPUT = 1;
- localparam C_DEPTH_PACKETS = 4;
-
- wire clk;
- wire rst_in;
- wire done_txc_rst;
- wire done_txr_rst;
- wire done_rxr_rst;
- wire done_rxc_rst;
- // Interface: RXC Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxc_data;
- wire rxc_data_valid;
- wire rxc_data_start_flag;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_word_enable;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxc_meta_fdwbe;
- wire rxc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxc_meta_ldwbe;
- wire [`SIG_TAG_W-1:0] rxc_meta_tag;
- wire [`SIG_LOWADDR_W-1:0] rxc_meta_addr;
- wire [`SIG_TYPE_W-1:0] rxc_meta_type;
- wire [`SIG_LEN_W-1:0] rxc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] rxc_meta_bytes_remaining;
- wire [`SIG_CPLID_W-1:0] rxc_meta_completer_id;
- wire rxc_meta_ep;
-
- // Interface: RXR Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxr_data;
- wire rxr_data_valid;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_word_enable;
- wire rxr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxr_meta_fdwbe;
- wire rxr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxr_meta_ldwbe;
- wire [`SIG_TC_W-1:0] rxr_meta_tc;
- wire [`SIG_ATTR_W-1:0] rxr_meta_attr;
- wire [`SIG_TAG_W-1:0] rxr_meta_tag;
- wire [`SIG_TYPE_W-1:0] rxr_meta_type;
- wire [`SIG_ADDR_W-1:0] rxr_meta_addr;
- wire [`SIG_BARDECODE_W-1:0] rxr_meta_bar_decoded;
- wire [`SIG_REQID_W-1:0] rxr_meta_requester_id;
- wire [`SIG_LEN_W-1:0] rxr_meta_length;
- wire rxr_meta_ep;
-
- // interface: TXC Engine
- wire txc_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txc_data;
- wire txc_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_start_offset;
- wire txc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_end_offset;
- wire txc_data_ready;
-
- wire txc_meta_valid;
- wire [`SIG_FBE_W-1:0] txc_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txc_meta_ldwbe;
- wire [`SIG_LOWADDR_W-1:0] txc_meta_addr;
- wire [`SIG_TYPE_W-1:0] txc_meta_type;
- wire [`SIG_LEN_W-1:0] txc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] txc_meta_byte_count;
- wire [`SIG_TAG_W-1:0] txc_meta_tag;
- wire [`SIG_REQID_W-1:0] txc_meta_requester_id;
- wire [`SIG_TC_W-1:0] txc_meta_tc;
- wire [`SIG_ATTR_W-1:0] txc_meta_attr;
- wire txc_meta_ep;
- wire txc_meta_ready;
- wire txc_sent;
-
- // Interface: TXR Engine
- wire txr_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txr_data;
- wire txr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_start_offset;
- wire txr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_end_offset;
- wire txr_data_ready;
-
- wire txr_meta_valid;
- wire [`SIG_FBE_W-1:0] txr_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txr_meta_ldwbe;
- wire [`SIG_ADDR_W-1:0] txr_meta_addr;
- wire [`SIG_LEN_W-1:0] txr_meta_length;
- wire [`SIG_TAG_W-1:0] txr_meta_tag;
- wire [`SIG_TC_W-1:0] txr_meta_tc;
- wire [`SIG_ATTR_W-1:0] txr_meta_attr;
- wire [`SIG_TYPE_W-1:0] txr_meta_type;
- wire txr_meta_ep;
- wire txr_meta_ready;
- wire txr_sent;
-
- // Classic Interface Wires
- wire rx_tlp_ready;
- wire [C_PCI_DATA_WIDTH-1:0] rx_tlp;
- wire rx_tlp_end_flag;
- wire [`SIG_OFFSET_W-1:0] rx_tlp_end_offset;
- wire rx_tlp_start_flag;
- wire [`SIG_OFFSET_W-1:0] rx_tlp_start_offset;
- wire rx_tlp_valid;
- wire [`SIG_BARDECODE_W-1:0] rx_tlp_bar_decode;
-
- wire tx_tlp_ready;
- wire [C_PCI_DATA_WIDTH-1:0] tx_tlp;
- wire tx_tlp_end_flag;
- wire [`SIG_OFFSET_W-1:0] tx_tlp_end_offset;
- wire tx_tlp_start_flag;
- wire [`SIG_OFFSET_W-1:0] tx_tlp_start_offset;
- wire tx_tlp_valid;
-
- // Unconnected Wires (Used in ultrascale interface)
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast_nc;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata_nc;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser_nc;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep_nc;
- wire s_axis_rq_tready_nc = 0;
- wire s_axis_rq_tvalid_nc;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata_nc = 0;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser_nc = 0;
- wire m_axis_rc_tlast_nc = 0;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep_nc = 0;
- wire m_axis_rc_tvalid_nc = 0;
- wire m_axis_rc_tready_nc;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata_nc = 0;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser_nc = 0;
- wire m_axis_cq_tlast_nc = 0;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep_nc = 0;
- wire m_axis_cq_tvalid_nc = 0;
- wire m_axis_cq_tready_nc = 0;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata_nc;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser_nc;
- wire s_axis_cc_tlast_nc;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep_nc;
- wire s_axis_cc_tvalid_nc;
- wire s_axis_cc_tready_nc = 0;
-
- // Interface: Configuration
- wire config_bus_master_enable;
- wire [`SIG_CPLID_W-1:0] config_completer_id;
- wire config_cpl_boundary_sel;
- wire config_interrupt_msienable;
- wire [`SIG_LINKRATE_W-1:0] config_link_rate;
- wire [`SIG_LINKWIDTH_W-1:0] config_link_width;
- wire [`SIG_MAXPAYLOAD_W-1:0] config_max_payload_size;
- wire [`SIG_MAXREAD_W-1:0] config_max_read_request_size;
- wire [`SIG_FC_CPLD_W-1:0] config_max_cpl_data;
- wire [`SIG_FC_CPLH_W-1:0] config_max_cpl_hdr;
-
- wire intr_msi_request;
- wire intr_msi_rdy;
-
- genvar chnl;
-
- assign clk = PLD_CLK;
- assign rst_in = RESET_STATUS;
-
- translation_altera
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- trans
- (
- // Outputs
- .RX_TLP (rx_tlp[C_PCI_DATA_WIDTH-1:0]),
- .RX_TLP_VALID (rx_tlp_valid),
- .RX_TLP_START_FLAG (rx_tlp_start_flag),
- .RX_TLP_START_OFFSET (rx_tlp_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RX_TLP_END_FLAG (rx_tlp_end_flag),
- .RX_TLP_END_OFFSET (rx_tlp_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RX_TLP_BAR_DECODE (rx_tlp_bar_decode[`SIG_BARDECODE_W-1:0]),
- .TX_TLP_READY (tx_tlp_ready),
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
- .CONFIG_BUS_MASTER_ENABLE (config_bus_master_enable),
- .CONFIG_LINK_WIDTH (config_link_width[`SIG_LINKWIDTH_W-1:0]),
- .CONFIG_LINK_RATE (config_link_rate[`SIG_LINKRATE_W-1:0]),
- .CONFIG_MAX_READ_REQUEST_SIZE (config_max_read_request_size[`SIG_MAXREAD_W-1:0]),
- .CONFIG_MAX_PAYLOAD_SIZE (config_max_payload_size[`SIG_MAXPAYLOAD_W-1:0]),
- .CONFIG_INTERRUPT_MSIENABLE (config_interrupt_msienable),
- .CONFIG_CPL_BOUNDARY_SEL (config_cpl_boundary_sel),
- .CONFIG_MAX_CPL_DATA (config_max_cpl_data[`SIG_FC_CPLD_W-1:0]),
- .CONFIG_MAX_CPL_HDR (config_max_cpl_hdr[`SIG_FC_CPLH_W-1:0]),
- .INTR_MSI_RDY (intr_msi_rdy),
- // Inputs
- .CLK (clk),
- .RST_IN (rst_in),
- .RX_TLP_READY (rx_tlp_ready),
- .TX_TLP (tx_tlp[C_PCI_DATA_WIDTH-1:0]),
- .TX_TLP_VALID (tx_tlp_valid),
- .TX_TLP_START_FLAG (tx_tlp_start_flag),
- .TX_TLP_START_OFFSET (tx_tlp_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TX_TLP_END_FLAG (tx_tlp_end_flag),
- .TX_TLP_END_OFFSET (tx_tlp_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .INTR_MSI_REQUEST (intr_msi_request),
- /*AUTOINST*/
- // Outputs
- .RX_ST_READY (RX_ST_READY),
- .TX_ST_DATA (TX_ST_DATA[C_PCI_DATA_WIDTH-1:0]),
- .TX_ST_VALID (TX_ST_VALID[0:0]),
- .TX_ST_EOP (TX_ST_EOP[0:0]),
- .TX_ST_SOP (TX_ST_SOP[0:0]),
- .TX_ST_EMPTY (TX_ST_EMPTY[0:0]),
- .APP_MSI_REQ (APP_MSI_REQ),
- // Inputs
- .RX_ST_DATA (RX_ST_DATA[C_PCI_DATA_WIDTH-1:0]),
- .RX_ST_EOP (RX_ST_EOP[0:0]),
- .RX_ST_SOP (RX_ST_SOP[0:0]),
- .RX_ST_VALID (RX_ST_VALID[0:0]),
- .RX_ST_EMPTY (RX_ST_EMPTY[0:0]),
- .TX_ST_READY (TX_ST_READY),
- .TL_CFG_CTL (TL_CFG_CTL[`SIG_CFG_CTL_W-1:0]),
- .TL_CFG_ADD (TL_CFG_ADD[`SIG_CFG_ADD_W-1:0]),
- .TL_CFG_STS (TL_CFG_STS[`SIG_CFG_STS_W-1:0]),
- .KO_CPL_SPC_HEADER (KO_CPL_SPC_HEADER[`SIG_FC_CPLH_W-1:0]),
- .KO_CPL_SPC_DATA (KO_CPL_SPC_DATA[`SIG_FC_CPLD_W-1:0]),
- .APP_MSI_ACK (APP_MSI_ACK));
-
- engine_layer
- #(// Parameters
- .C_MAX_PAYLOAD_DWORDS (C_MAX_PAYLOAD_BYTES/4),
- /*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_PIPELINE_INPUT (C_PIPELINE_INPUT),
- .C_PIPELINE_OUTPUT (C_PIPELINE_OUTPUT),
- .C_VENDOR (C_VENDOR))
- engine_layer_inst
- (// Outputs
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .RST_LOGIC (RST_OUT),
- // Unconnected Outputs
- .TX_TLP (tx_tlp),
- .TX_TLP_VALID (tx_tlp_valid),
- .TX_TLP_START_FLAG (tx_tlp_start_flag),
- .TX_TLP_START_OFFSET (tx_tlp_start_offset),
- .TX_TLP_END_FLAG (tx_tlp_end_flag),
- .TX_TLP_END_OFFSET (tx_tlp_end_offset),
-
- .RX_TLP_READY (rx_tlp_ready),
- // Inputs
- .CLK_BUS (clk),
- .RST_BUS (rst_in),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
-
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
- // Unconnected Inputs
- .RX_TLP (rx_tlp),
- .RX_TLP_VALID (rx_tlp_valid),
- .RX_TLP_START_FLAG (rx_tlp_start_flag),
- .RX_TLP_START_OFFSET (rx_tlp_start_offset),
- .RX_TLP_END_FLAG (rx_tlp_end_flag),
- .RX_TLP_END_OFFSET (rx_tlp_end_offset),
- .RX_TLP_BAR_DECODE (rx_tlp_bar_decode),
-
- .TX_TLP_READY (tx_tlp_ready),
- .DONE_TXC_RST (done_txc_rst),
- .DONE_TXR_RST (done_txr_rst),
- .DONE_RXR_RST (done_rxc_rst),
- .DONE_RXC_RST (done_rxr_rst),
- // Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready_nc),
- .M_AXIS_RC_TREADY (m_axis_rc_tready_nc),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid_nc),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast_nc),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser_nc[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid_nc),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast_nc),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser_nc[`SIG_RQ_TUSER_W-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid_nc),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast_nc),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser_nc[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid_nc),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast_nc),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser_nc[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready_nc),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready_nc)
- /*AUTOINST*/);
-
- riffa
- #(.C_TAG_WIDTH (C_LOG_NUM_TAGS),/* TODO: Standardize declaration*/
- /*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_MAX_READ_REQ_BYTES (C_MAX_READ_REQ_BYTES),
- .C_VENDOR (C_VENDOR),
- .C_FPGA_NAME (C_FPGA_NAME),
- .C_FPGA_ID (C_FPGA_ID),
- .C_DEPTH_PACKETS (C_DEPTH_PACKETS))
- riffa_inst
- (// Outputs
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
-
- .INTR_MSI_REQUEST (intr_msi_request),
- // Inputs
- .CLK (clk),
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
- .CONFIG_BUS_MASTER_ENABLE (config_bus_master_enable),
- .CONFIG_LINK_WIDTH (config_link_width[`SIG_LINKWIDTH_W-1:0]),
- .CONFIG_LINK_RATE (config_link_rate[`SIG_LINKRATE_W-1:0]),
- .CONFIG_MAX_READ_REQUEST_SIZE (config_max_read_request_size[`SIG_MAXREAD_W-1:0]),
- .CONFIG_MAX_PAYLOAD_SIZE (config_max_payload_size[`SIG_MAXPAYLOAD_W-1:0]),
- .CONFIG_INTERRUPT_MSIENABLE (config_interrupt_msienable),
- .CONFIG_CPL_BOUNDARY_SEL (config_cpl_boundary_sel),
- .CONFIG_MAX_CPL_DATA (config_max_cpl_data[`SIG_FC_CPLD_W-1:0]),
- .CONFIG_MAX_CPL_HDR (config_max_cpl_hdr[`SIG_FC_CPLH_W-1:0]),
-
- .INTR_MSI_RDY (intr_msi_rdy),
-
- .DONE_TXC_RST (done_txc_rst),
- .DONE_TXR_RST (done_txr_rst),
- .RST_BUS (rst_in),
- /*AUTOINST*/
- // Outputs
- .RST_OUT (RST_OUT),
- .CHNL_RX (CHNL_RX[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (CHNL_RX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (CHNL_RX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_RX_OFF (CHNL_RX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_RX_DATA (CHNL_RX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (CHNL_RX_DATA_VALID[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (CHNL_TX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (CHNL_TX_DATA_REN[C_NUM_CHNL-1:0]),
- // Inputs
- .CHNL_RX_CLK (CHNL_RX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (CHNL_RX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (CHNL_RX_DATA_REN[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (CHNL_TX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_TX (CHNL_TX[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (CHNL_TX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (CHNL_TX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_TX_OFF (CHNL_TX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_TX_DATA (CHNL_TX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (CHNL_TX_DATA_VALID[C_NUM_CHNL-1:0]));
-
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../riffa_hdl/")
-// End:
-
diff --git a/fpga/xilinx/Makefile b/fpga/xilinx/Makefile
index 891bd65..1b4bfe5 100644
--- a/fpga/xilinx/Makefile
+++ b/fpga/xilinx/Makefile
@@ -39,8 +39,8 @@
# Author: Dustin Richmond (@darichmond)
#-----------------------------------------------------------------------
VENDOR:=xilinx
-ULTRASCALE:=NetFPGA adm7V3 kcu105 vc709 vcu108
-CLASSIC:=ac701 kc705 vc707 zc706
+ULTRASCALE:=NetFPGA adm7V3 vc709
+CLASSIC:=vc707 zc706
BOARDS:=$(CLASSIC) $(ULTRASCALE)
CURRENT_PATH := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
.DEFAULT_GOAL=all
diff --git a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/Makefile b/fpga/xilinx/kcu105/KCU105_Gen1x8If64/Makefile
deleted file mode 100644
index 795546b..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=64
-TYPE=ultrascale
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/PCIeGen1x8If64.xci
diff --git a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/bit/KCU105_Gen1x8If64.bit b/fpga/xilinx/kcu105/KCU105_Gen1x8If64/bit/KCU105_Gen1x8If64.bit
deleted file mode 100644
index ffe60f0..0000000
Binary files a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/bit/KCU105_Gen1x8If64.bit and /dev/null differ
diff --git a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/constr/KCU105_Gen1x8If64.xdc b/fpga/xilinx/kcu105/KCU105_Gen1x8If64/constr/KCU105_Gen1x8If64.xdc
deleted file mode 100644
index 019982a..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/constr/KCU105_Gen1x8If64.xdc
+++ /dev/null
@@ -1,119 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#----------------------------------------------------------------------------
-# Filename: KCU105_Top.xdc
-# Version: 1.00.a
-# Verilog Standard: Verilog-2001
-# Description: Xilinx Design Constraints for the KCU105 board.
-# These constrain the PCIE_REFCLK, its DSBUF, LED Pins, and PCIE_RESET_N pin
-#
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------------
-#
-#########################################################################################################################
-# User Constraints
-#########################################################################################################################
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-set_property PACKAGE_PIN AP8 [get_ports {LED[0]}]
-set_property PACKAGE_PIN H23 [get_ports {LED[1]}]
-set_property PACKAGE_PIN P20 [get_ports {LED[2]}]
-set_property PACKAGE_PIN P21 [get_ports {LED[3]}]
-set_property PACKAGE_PIN N22 [get_ports {LED[4]}]
-set_property PACKAGE_PIN M22 [get_ports {LED[5]}]
-set_property PACKAGE_PIN R23 [get_ports {LED[6]}]
-set_property PACKAGE_PIN P23 [get_ports {LED[7]}]
-
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[0]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[1]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[2]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[3]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[4]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[5]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[6]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[7]}]
-
-set_false_path -to [get_ports -filter NAME=~LED*]
-
-#########################################################################################################################
-# End User Constraints
-#########################################################################################################################
-#
-#
-#
-#########################################################################################################################
-# PCIE Core Constraints
-#########################################################################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-# Some 7 series devices do not have 3.3 V I/Os available.
-# Therefore the appropriate level shift is required to operate
-# with these devices that contain only 1.8 V banks.
-#
-
-set_property LOC [get_package_pins -filter {PIN_FUNC == IO_T3U_N12_PERSTN0_65}] [get_ports PCIE_RESET_N]
-set_property IOSTANDARD LVCMOS18 [get_ports PCIE_RESET_N]
-set_property PULLUP true [get_ports PCIE_RESET_N]
-
-set_property LOC AB6 [get_cells refclk_ibuf]
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-create_clock -period 10.000 -name pcie_refclk [get_pins refclk_ibuf/O]
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-set_false_path -from [get_ports PCIE_RESET_N]
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/hdl/KCU105_Gen1x8If64.v b/fpga/xilinx/kcu105/KCU105_Gen1x8If64/hdl/KCU105_Gen1x8If64.v
deleted file mode 100644
index 55f4681..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/hdl/KCU105_Gen1x8If64.v
+++ /dev/null
@@ -1,491 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: KCU105_Gen1x8If64.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx KCU105 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`timescale 1ps / 1ps
-module KCU105_Gen1x8If64
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 8,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 64,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 6)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
-
- output [7:0] LED,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- // Clocks, etc
- wire user_lnk_up;
- wire user_clk;
- wire user_reset;
- wire pcie_refclk;
- wire pcie_refclk_by2;
- wire pcie_reset_n;
-
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep;
- wire s_axis_rq_tready;
- wire s_axis_rq_tvalid;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser;
- wire m_axis_rc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep;
- wire m_axis_rc_tvalid;
- wire m_axis_rc_tready;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser;
- wire m_axis_cq_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep;
- wire m_axis_cq_tvalid;
- wire m_axis_cq_tready;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser;
- wire s_axis_cc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep;
- wire s_axis_cc_tvalid;
- wire s_axis_cc_tready;
-
- // Configuration (CFG) Interface
- wire [3:0] pcie_rq_seq_num;
- wire pcie_rq_seq_num_vld;
- wire [5:0] pcie_rq_tag;
- wire pcie_rq_tag_vld;
- wire pcie_cq_np_req;
- wire [5:0] pcie_cq_np_req_count;
-
- wire cfg_phy_link_down;
- wire [3:0] cfg_negotiated_width; // CONFIG_LINK_WIDTH
- wire [2:0] cfg_current_speed; // CONFIG_LINK_RATE
- wire [2:0] cfg_max_payload; // CONFIG_MAX_PAYLOAD
- wire [2:0] cfg_max_read_req; // CONFIG_MAX_READ_REQUEST
- wire [7:0] cfg_function_status; // [2] = CONFIG_BUS_MASTER_ENABLE
- wire [5:0] cfg_function_power_state; // Ignorable but not removable
- wire [11:0] cfg_vf_status; // Ignorable but not removable
- wire [17:0] cfg_vf_power_state; // Ignorable but not removable
- wire [1:0] cfg_link_power_state; // Ignorable but not removable
-
- // Error Reporting Interface
- wire cfg_err_cor_out;
- wire cfg_err_nonfatal_out;
- wire cfg_err_fatal_out;
-
- wire cfg_ltr_enable;
- wire [5:0] cfg_ltssm_state;
- wire [1:0] cfg_rcb_status;
- wire [1:0] cfg_dpa_substate_change;
- wire [1:0] cfg_obff_enable;
- wire cfg_pl_status_change;
-
- wire [1:0] cfg_tph_requester_enable;
- wire [5:0] cfg_tph_st_mode;
- wire [5:0] cfg_vf_tph_requester_enable;
- wire [17:0] cfg_vf_tph_st_mode;
- wire [7:0] cfg_fc_ph;
- wire [11:0] cfg_fc_pd;
- wire [7:0] cfg_fc_nph;
- wire [11:0] cfg_fc_npd;
- wire [7:0] cfg_fc_cplh;
- wire [11:0] cfg_fc_cpld;
- wire [2:0] cfg_fc_sel;
-
- // Interrupt Interface Signals
- wire [3:0] cfg_interrupt_int;
- wire [1:0] cfg_interrupt_pending;
- wire cfg_interrupt_sent;
- wire [1:0] cfg_interrupt_msi_enable;
- wire [5:0] cfg_interrupt_msi_vf_enable;
- wire [5:0] cfg_interrupt_msi_mmenable;
- wire cfg_interrupt_msi_mask_update;
- wire [31:0] cfg_interrupt_msi_data;
- wire [3:0] cfg_interrupt_msi_select;
- wire [31:0] cfg_interrupt_msi_int;
- wire [63:0] cfg_interrupt_msi_pending_status;
- wire cfg_interrupt_msi_sent;
- wire cfg_interrupt_msi_fail;
- wire [2:0] cfg_interrupt_msi_attr;
- wire cfg_interrupt_msi_tph_present;
- wire [1:0] cfg_interrupt_msi_tph_type;
- wire [8:0] cfg_interrupt_msi_tph_st_tag;
- wire [2:0] cfg_interrupt_msi_function_number;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
-
- IBUF
- #()
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTE3
- #()
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(pcie_refclk_by2),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- OBUF
- #()
- led_0_obuf
- (.O(LED[0]),
- .I(cfg_ltssm_state[0]));
- OBUF
- #()
- led_1_obuf
- (.O(LED[1]),
- .I(cfg_ltssm_state[1]));
- OBUF
- #()
- led_2_obuf
- (.O(LED[2]),
- .I(cfg_ltssm_state[2]));
- OBUF
- #()
- led_3_obuf
- (.O(LED[3]),
- .I(cfg_ltssm_state[3]));
- OBUF
- #()
- led_4_obuf
- (.O(LED[4]),
- .I(cfg_ltssm_state[4]));
- OBUF
- #()
- led_5_obuf
- (.O(LED[5]),
- .I(cfg_ltssm_state[5]));
- OBUF
- #()
- led_6_obuf
- (.O(LED[6]),
- .I(user_reset));
- OBUF
- #()
- led_7_obuf
- (.O(LED[7]),
- .I(rst_out));
-
- // Core Top Level Wrapper
- PCIeGen1x8If64
- #()
- pcie3_7x_0_i
- (//---------------------------------------------------------------------
- // PCI Express (pci_exp) Interface
- //---------------------------------------------------------------------
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- //---------------------------------------------------------------------
- // AXI Interface
- //---------------------------------------------------------------------
- .user_clk ( user_clk ),
- .user_reset ( user_reset ),
- .user_lnk_up ( user_lnk_up ),
-
- .s_axis_rq_tlast ( s_axis_rq_tlast ),
- .s_axis_rq_tdata ( s_axis_rq_tdata ),
- .s_axis_rq_tuser ( s_axis_rq_tuser ),
- .s_axis_rq_tkeep ( s_axis_rq_tkeep ),
- .s_axis_rq_tready ( s_axis_rq_tready ),
- .s_axis_rq_tvalid ( s_axis_rq_tvalid ),
-
- .m_axis_rc_tdata ( m_axis_rc_tdata ),
- .m_axis_rc_tuser ( m_axis_rc_tuser ),
- .m_axis_rc_tlast ( m_axis_rc_tlast ),
- .m_axis_rc_tkeep ( m_axis_rc_tkeep ),
- .m_axis_rc_tvalid ( m_axis_rc_tvalid ),
- .m_axis_rc_tready ( {22{m_axis_rc_tready}} ),
-
- .m_axis_cq_tdata ( m_axis_cq_tdata ),
- .m_axis_cq_tuser ( m_axis_cq_tuser ),
- .m_axis_cq_tlast ( m_axis_cq_tlast ),
- .m_axis_cq_tkeep ( m_axis_cq_tkeep ),
- .m_axis_cq_tvalid ( m_axis_cq_tvalid ),
- .m_axis_cq_tready ( {22{m_axis_cq_tready}} ),
-
- .s_axis_cc_tdata ( s_axis_cc_tdata ),
- .s_axis_cc_tuser ( s_axis_cc_tuser ),
- .s_axis_cc_tlast ( s_axis_cc_tlast ),
- .s_axis_cc_tkeep ( s_axis_cc_tkeep ),
- .s_axis_cc_tvalid ( s_axis_cc_tvalid ),
- .s_axis_cc_tready ( s_axis_cc_tready ),
-
- //---------------------------------------------------------------------
- // Configuration (CFG) Interface
- //---------------------------------------------------------------------
- .pcie_rq_seq_num ( pcie_rq_seq_num ),
- .pcie_rq_seq_num_vld ( pcie_rq_seq_num_vld ),
- .pcie_rq_tag ( pcie_rq_tag ),
- .pcie_rq_tag_vld ( pcie_rq_tag_vld ),
- .pcie_cq_np_req ( pcie_cq_np_req ),
- .pcie_cq_np_req_count ( pcie_cq_np_req_count ),
- .cfg_phy_link_down ( cfg_phy_link_down ),
- .cfg_phy_link_status ( cfg_phy_link_status),
- .cfg_negotiated_width ( cfg_negotiated_width ),
- .cfg_current_speed ( cfg_current_speed ),
- .cfg_max_payload ( cfg_max_payload ),
- .cfg_max_read_req ( cfg_max_read_req ),
- .cfg_function_status ( cfg_function_status ),
- .cfg_function_power_state ( cfg_function_power_state ),
- .cfg_vf_status ( cfg_vf_status ),
- .cfg_vf_power_state ( cfg_vf_power_state ),
- .cfg_link_power_state ( cfg_link_power_state ),
- // Error Reporting Interface
- .cfg_err_cor_out ( cfg_err_cor_out ),
- .cfg_err_nonfatal_out ( cfg_err_nonfatal_out ),
- .cfg_err_fatal_out ( cfg_err_fatal_out ),
- .cfg_ltr_enable ( cfg_ltr_enable ),
- .cfg_ltssm_state ( cfg_ltssm_state ),
- .cfg_rcb_status ( cfg_rcb_status ),
- .cfg_dpa_substate_change ( cfg_dpa_substate_change ),
- .cfg_obff_enable ( cfg_obff_enable ),
- .cfg_pl_status_change ( cfg_pl_status_change ),
- .cfg_tph_requester_enable ( cfg_tph_requester_enable ),
- .cfg_tph_st_mode ( cfg_tph_st_mode ),
- .cfg_vf_tph_requester_enable ( cfg_vf_tph_requester_enable ),
- .cfg_vf_tph_st_mode ( cfg_vf_tph_st_mode ),
- .cfg_fc_ph ( cfg_fc_ph ),
- .cfg_fc_pd ( cfg_fc_pd ),
- .cfg_fc_nph ( cfg_fc_nph ),
- .cfg_fc_npd ( cfg_fc_npd ),
- .cfg_fc_cplh ( cfg_fc_cplh ),
- .cfg_fc_cpld ( cfg_fc_cpld ),
- .cfg_fc_sel ( cfg_fc_sel ),
- //---------------------------------------------------------------------
- // EP Only
- //---------------------------------------------------------------------
- // Interrupt Interface Signals
- .cfg_interrupt_int ( cfg_interrupt_int ),
- .cfg_interrupt_pending ( cfg_interrupt_pending ),
- .cfg_interrupt_sent ( cfg_interrupt_sent ),
- .cfg_interrupt_msi_enable ( cfg_interrupt_msi_enable ),
- .cfg_interrupt_msi_vf_enable ( cfg_interrupt_msi_vf_enable ),
- .cfg_interrupt_msi_mmenable ( cfg_interrupt_msi_mmenable ),
- .cfg_interrupt_msi_mask_update ( cfg_interrupt_msi_mask_update ),
- .cfg_interrupt_msi_data ( cfg_interrupt_msi_data ),
- .cfg_interrupt_msi_select ( cfg_interrupt_msi_select ),
- .cfg_interrupt_msi_int ( cfg_interrupt_msi_int ),
- .cfg_interrupt_msi_pending_status ( cfg_interrupt_msi_pending_status ),
- .cfg_interrupt_msi_sent ( cfg_interrupt_msi_sent ),
- .cfg_interrupt_msi_fail ( cfg_interrupt_msi_fail ),
- .cfg_interrupt_msi_attr ( cfg_interrupt_msi_attr ),
- .cfg_interrupt_msi_tph_present ( cfg_interrupt_msi_tph_present ),
- .cfg_interrupt_msi_tph_type ( cfg_interrupt_msi_tph_type ),
- .cfg_interrupt_msi_tph_st_tag ( cfg_interrupt_msi_tph_st_tag ),
- .cfg_interrupt_msi_function_number ( cfg_interrupt_msi_function_number ),
- .cfg_interrupt_msi_pending_status_function_num ( 4'b0),
- .cfg_interrupt_msi_pending_status_data_enable ( 1'b0),
-
-
- //--------------------------------------------------------------------------------------//
- // Reset Pass Through Signals
- // - Only used for PCIe_X0Y0
- //--------------------------------------------------------------------------------------//
- .pcie_perstn0_out (pcie_reset_n_core),
- .pcie_perstn1_in (1'b0),
- .pcie_perstn1_out (),
-
- //---------------------------------------------------------------------
- // System(SYS) Interface
- //---------------------------------------------------------------------
- .sys_clk (pcie_refclk_by2),
- .sys_clk_gt (pcie_refclk),
- .sys_reset (pcie_reset_n));
-
- riffa_wrapper_kcu105
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready),
- .M_AXIS_RC_TREADY (m_axis_rc_tready),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser[`SIG_RQ_TUSER_W-1:0]),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CFG_INTERRUPT_INT (cfg_interrupt_int[3:0]),
- .CFG_INTERRUPT_PENDING (cfg_interrupt_pending[1:0]),
- .CFG_INTERRUPT_MSI_SELECT (cfg_interrupt_msi_select[3:0]),
- .CFG_INTERRUPT_MSI_INT (cfg_interrupt_msi_int[31:0]),
- .CFG_INTERRUPT_MSI_PENDING_STATUS(cfg_interrupt_msi_pending_status[63:0]),
- .CFG_INTERRUPT_MSI_ATTR (cfg_interrupt_msi_attr[2:0]),
- .CFG_INTERRUPT_MSI_TPH_PRESENT (cfg_interrupt_msi_tph_present),
- .CFG_INTERRUPT_MSI_TPH_TYPE (cfg_interrupt_msi_tph_type[1:0]),
- .CFG_INTERRUPT_MSI_TPH_ST_TAG (cfg_interrupt_msi_tph_st_tag[8:0]),
- .CFG_INTERRUPT_MSI_FUNCTION_NUMBER(cfg_interrupt_msi_function_number[2:0]),
- .CFG_FC_SEL (cfg_fc_sel[2:0]),
- .PCIE_CQ_NP_REQ (pcie_cq_np_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready),
- .CFG_INTERRUPT_MSI_ENABLE (cfg_interrupt_msi_enable[1:0]),
- .CFG_INTERRUPT_MSI_MASK_UPDATE (cfg_interrupt_msi_mask_update),
- .CFG_INTERRUPT_MSI_DATA (cfg_interrupt_msi_data[31:0]),
- .CFG_INTERRUPT_MSI_SENT (cfg_interrupt_msi_sent),
- .CFG_INTERRUPT_MSI_FAIL (cfg_interrupt_msi_fail),
- .CFG_FC_CPLH (cfg_fc_cplh[7:0]),
- .CFG_FC_CPLD (cfg_fc_cpld[11:0]),
- .CFG_NEGOTIATED_WIDTH (cfg_negotiated_width[3:0]),
- .CFG_CURRENT_SPEED (cfg_current_speed[2:0]),
- .CFG_MAX_PAYLOAD (cfg_max_payload[2:0]),
- .CFG_MAX_READ_REQ (cfg_max_read_req[2:0]),
- .CFG_FUNCTION_STATUS (cfg_function_status[7:0]),
- .CFG_RCB_STATUS (cfg_rcb_status[1:0]),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl])
- /*AUTOINST*/);
- end
- endgenerate
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../../../riffa_hdl/" "../../")
-// End:
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/ip/PCIeGen1x8If64.xci b/fpga/xilinx/kcu105/KCU105_Gen1x8If64/ip/PCIeGen1x8If64.xci
deleted file mode 100644
index d27e2bd..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/ip/PCIeGen1x8If64.xci
+++ /dev/null
@@ -1,729 +0,0 @@
-
-
- xilinx.com
- xci
- unknown
- 1.0
-
-
- PCIeGen1x8If64
-
-
- FALSE
- FALSE
- FALSE
- TRUE
- 0x00000
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- TRUE
- FALSE
- 16KB
- 1
- 64
- TRUE
- 0
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- NONE
- FALSE
- TRUE
- FALSE
- FALSE
- NONE
- 2
- 2.0
- FALSE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x03
- 0x4
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8018
- FALSE
- FALSE
- FALSE
- FALSE
- 0x0
- FALSE
- TRUE
- FALSE
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0
- TRUE
- 0x000
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0xC0
- 0x000
- 0x90
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0000
- 0x00000553
- 0x0000
- 0x0007
- 0x10EE
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0x10EE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8011
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- 0x000
- 0x00
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0001
- 0x00000553
- 0x0000
- 0x0007
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 4
- FALSE
- 0
- FALSE
- 1
- 8
- TRUE
- FALSE
- 0
- 0
- GTH_Quad_224
- 1
- 0x00000000
- FALSE
- 0
- 0x000
- 0x00
- 0x028
- 0x20
- 0x198
- 0x20
- FALSE
- FALSE
- 0x0
- FALSE
- FALSE
- 3
- 0x000
- 0x80
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- FALSE
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- Production
- 1
- true
- false
- PCIeGen1x8If64
- 15
- false
- false
- 058000
- 8018
- false
- false
- false
- 00_Not_Supported
- false
- false
- NONE
- true
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- false
- false
- false
- false
- 00
- 0
- N/A
- 0000
- 00000553
- 0000
- 0007
- 10EE
- false
- false
- false
- 058000
- 8011
- NONE
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- 00
- 0
- 0
- N/A
- 0001
- 00000553
- 0000
- 0007
- false
- 4
- 2.5_GT/s
- X8
- 100_MHz
- Default
- 0
- 0
- false
- false
- 1
- false
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- DWORD_Aligned
- No_ASPM
- 250
- true
- 2FFFF
- false
- 64_bit
- false
- false
- true
- false
- true
- false
- 250
- true
- PCI_Express_Endpoint_device
- false
- false
- true
- false
- false
- false
- false
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- None
- Advanced
- X0Y0
- false
- Extreme
- false
- true
- false
- false
- true
- false
- Kilobytes
- 1
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- false
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- 0
- Generic_XT_compatible_serial_controller
- false
- false
- true
- false
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Generic_XT_compatible_serial_controller
- false
- false
- CPLL
- false
- GTH_Quad_224
- ACTIVE LOW
- None
- true
- false
- 10EE
- KCU105
- kintexu
- xilinx.com:kcu105:part0:1.0
- xcku040
- ffva1156
- VERILOG
-
- MIXED
- -2
- E
- TRUE
- TRUE
- IP_Flow
- 1
- TRUE
- .
-
- .
- 2015.4
- OUT_OF_CONTEXT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/prj/KCU105_Gen1x8If64.xpr b/fpga/xilinx/kcu105/KCU105_Gen1x8If64/prj/KCU105_Gen1x8If64.xpr
deleted file mode 100644
index 73033ce..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen1x8If64/prj/KCU105_Gen1x8If64.xpr
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/Makefile b/fpga/xilinx/kcu105/KCU105_Gen2x8If128/Makefile
deleted file mode 100644
index d760cff..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=128
-TYPE=ultrascale
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/PCIeGen2x8If128.xci
diff --git a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/bit/KCU105_Gen2x8If128.bit b/fpga/xilinx/kcu105/KCU105_Gen2x8If128/bit/KCU105_Gen2x8If128.bit
deleted file mode 100644
index a64d46e..0000000
Binary files a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/bit/KCU105_Gen2x8If128.bit and /dev/null differ
diff --git a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/constr/KCU105_Gen2x8If128.xdc b/fpga/xilinx/kcu105/KCU105_Gen2x8If128/constr/KCU105_Gen2x8If128.xdc
deleted file mode 100644
index 019982a..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/constr/KCU105_Gen2x8If128.xdc
+++ /dev/null
@@ -1,119 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#----------------------------------------------------------------------------
-# Filename: KCU105_Top.xdc
-# Version: 1.00.a
-# Verilog Standard: Verilog-2001
-# Description: Xilinx Design Constraints for the KCU105 board.
-# These constrain the PCIE_REFCLK, its DSBUF, LED Pins, and PCIE_RESET_N pin
-#
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------------
-#
-#########################################################################################################################
-# User Constraints
-#########################################################################################################################
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-set_property PACKAGE_PIN AP8 [get_ports {LED[0]}]
-set_property PACKAGE_PIN H23 [get_ports {LED[1]}]
-set_property PACKAGE_PIN P20 [get_ports {LED[2]}]
-set_property PACKAGE_PIN P21 [get_ports {LED[3]}]
-set_property PACKAGE_PIN N22 [get_ports {LED[4]}]
-set_property PACKAGE_PIN M22 [get_ports {LED[5]}]
-set_property PACKAGE_PIN R23 [get_ports {LED[6]}]
-set_property PACKAGE_PIN P23 [get_ports {LED[7]}]
-
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[0]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[1]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[2]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[3]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[4]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[5]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[6]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[7]}]
-
-set_false_path -to [get_ports -filter NAME=~LED*]
-
-#########################################################################################################################
-# End User Constraints
-#########################################################################################################################
-#
-#
-#
-#########################################################################################################################
-# PCIE Core Constraints
-#########################################################################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-# Some 7 series devices do not have 3.3 V I/Os available.
-# Therefore the appropriate level shift is required to operate
-# with these devices that contain only 1.8 V banks.
-#
-
-set_property LOC [get_package_pins -filter {PIN_FUNC == IO_T3U_N12_PERSTN0_65}] [get_ports PCIE_RESET_N]
-set_property IOSTANDARD LVCMOS18 [get_ports PCIE_RESET_N]
-set_property PULLUP true [get_ports PCIE_RESET_N]
-
-set_property LOC AB6 [get_cells refclk_ibuf]
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-create_clock -period 10.000 -name pcie_refclk [get_pins refclk_ibuf/O]
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-set_false_path -from [get_ports PCIE_RESET_N]
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/hdl/KCU105_Gen2x8If128.v b/fpga/xilinx/kcu105/KCU105_Gen2x8If128/hdl/KCU105_Gen2x8If128.v
deleted file mode 100644
index c8efb2b..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/hdl/KCU105_Gen2x8If128.v
+++ /dev/null
@@ -1,491 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: KCU105_Gen2x8If128.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx KCU105 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`timescale 1ps / 1ps
-module KCU105_Gen2x8If128
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 8,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 6)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
-
- output [7:0] LED,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- // Clocks, etc
- wire user_lnk_up;
- wire user_clk;
- wire user_reset;
- wire pcie_refclk;
- wire pcie_refclk_by2;
- wire pcie_reset_n;
-
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep;
- wire s_axis_rq_tready;
- wire s_axis_rq_tvalid;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser;
- wire m_axis_rc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep;
- wire m_axis_rc_tvalid;
- wire m_axis_rc_tready;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser;
- wire m_axis_cq_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep;
- wire m_axis_cq_tvalid;
- wire m_axis_cq_tready;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser;
- wire s_axis_cc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep;
- wire s_axis_cc_tvalid;
- wire s_axis_cc_tready;
-
- // Configuration (CFG) Interface
- wire [3:0] pcie_rq_seq_num;
- wire pcie_rq_seq_num_vld;
- wire [5:0] pcie_rq_tag;
- wire pcie_rq_tag_vld;
- wire pcie_cq_np_req;
- wire [5:0] pcie_cq_np_req_count;
-
- wire cfg_phy_link_down;
- wire [3:0] cfg_negotiated_width; // CONFIG_LINK_WIDTH
- wire [2:0] cfg_current_speed; // CONFIG_LINK_RATE
- wire [2:0] cfg_max_payload; // CONFIG_MAX_PAYLOAD
- wire [2:0] cfg_max_read_req; // CONFIG_MAX_READ_REQUEST
- wire [7:0] cfg_function_status; // [2] = CONFIG_BUS_MASTER_ENABLE
- wire [5:0] cfg_function_power_state; // Ignorable but not removable
- wire [11:0] cfg_vf_status; // Ignorable but not removable
- wire [17:0] cfg_vf_power_state; // Ignorable but not removable
- wire [1:0] cfg_link_power_state; // Ignorable but not removable
-
- // Error Reporting Interface
- wire cfg_err_cor_out;
- wire cfg_err_nonfatal_out;
- wire cfg_err_fatal_out;
-
- wire cfg_ltr_enable;
- wire [5:0] cfg_ltssm_state;
- wire [1:0] cfg_rcb_status;
- wire [1:0] cfg_dpa_substate_change;
- wire [1:0] cfg_obff_enable;
- wire cfg_pl_status_change;
-
- wire [1:0] cfg_tph_requester_enable;
- wire [5:0] cfg_tph_st_mode;
- wire [5:0] cfg_vf_tph_requester_enable;
- wire [17:0] cfg_vf_tph_st_mode;
- wire [7:0] cfg_fc_ph;
- wire [11:0] cfg_fc_pd;
- wire [7:0] cfg_fc_nph;
- wire [11:0] cfg_fc_npd;
- wire [7:0] cfg_fc_cplh;
- wire [11:0] cfg_fc_cpld;
- wire [2:0] cfg_fc_sel;
-
- // Interrupt Interface Signals
- wire [3:0] cfg_interrupt_int;
- wire [1:0] cfg_interrupt_pending;
- wire cfg_interrupt_sent;
- wire [1:0] cfg_interrupt_msi_enable;
- wire [5:0] cfg_interrupt_msi_vf_enable;
- wire [5:0] cfg_interrupt_msi_mmenable;
- wire cfg_interrupt_msi_mask_update;
- wire [31:0] cfg_interrupt_msi_data;
- wire [3:0] cfg_interrupt_msi_select;
- wire [31:0] cfg_interrupt_msi_int;
- wire [63:0] cfg_interrupt_msi_pending_status;
- wire cfg_interrupt_msi_sent;
- wire cfg_interrupt_msi_fail;
- wire [2:0] cfg_interrupt_msi_attr;
- wire cfg_interrupt_msi_tph_present;
- wire [1:0] cfg_interrupt_msi_tph_type;
- wire [8:0] cfg_interrupt_msi_tph_st_tag;
- wire [2:0] cfg_interrupt_msi_function_number;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
-
- IBUF
- #()
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTE3
- #()
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(pcie_refclk_by2),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- OBUF
- #()
- led_0_obuf
- (.O(LED[0]),
- .I(cfg_ltssm_state[0]));
- OBUF
- #()
- led_1_obuf
- (.O(LED[1]),
- .I(cfg_ltssm_state[1]));
- OBUF
- #()
- led_2_obuf
- (.O(LED[2]),
- .I(cfg_ltssm_state[2]));
- OBUF
- #()
- led_3_obuf
- (.O(LED[3]),
- .I(cfg_ltssm_state[3]));
- OBUF
- #()
- led_4_obuf
- (.O(LED[4]),
- .I(cfg_ltssm_state[4]));
- OBUF
- #()
- led_5_obuf
- (.O(LED[5]),
- .I(cfg_ltssm_state[5]));
- OBUF
- #()
- led_6_obuf
- (.O(LED[6]),
- .I(user_reset));
- OBUF
- #()
- led_7_obuf
- (.O(LED[7]),
- .I(rst_out));
-
- // Core Top Level Wrapper
- PCIeGen2x8If128
- #()
- pcie3_7x_0_i
- (//---------------------------------------------------------------------
- // PCI Express (pci_exp) Interface
- //---------------------------------------------------------------------
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- //---------------------------------------------------------------------
- // AXI Interface
- //---------------------------------------------------------------------
- .user_clk ( user_clk ),
- .user_reset ( user_reset ),
- .user_lnk_up ( user_lnk_up ),
-
- .s_axis_rq_tlast ( s_axis_rq_tlast ),
- .s_axis_rq_tdata ( s_axis_rq_tdata ),
- .s_axis_rq_tuser ( s_axis_rq_tuser ),
- .s_axis_rq_tkeep ( s_axis_rq_tkeep ),
- .s_axis_rq_tready ( s_axis_rq_tready ),
- .s_axis_rq_tvalid ( s_axis_rq_tvalid ),
-
- .m_axis_rc_tdata ( m_axis_rc_tdata ),
- .m_axis_rc_tuser ( m_axis_rc_tuser ),
- .m_axis_rc_tlast ( m_axis_rc_tlast ),
- .m_axis_rc_tkeep ( m_axis_rc_tkeep ),
- .m_axis_rc_tvalid ( m_axis_rc_tvalid ),
- .m_axis_rc_tready ( {22{m_axis_rc_tready}} ),
-
- .m_axis_cq_tdata ( m_axis_cq_tdata ),
- .m_axis_cq_tuser ( m_axis_cq_tuser ),
- .m_axis_cq_tlast ( m_axis_cq_tlast ),
- .m_axis_cq_tkeep ( m_axis_cq_tkeep ),
- .m_axis_cq_tvalid ( m_axis_cq_tvalid ),
- .m_axis_cq_tready ( {22{m_axis_cq_tready}} ),
-
- .s_axis_cc_tdata ( s_axis_cc_tdata ),
- .s_axis_cc_tuser ( s_axis_cc_tuser ),
- .s_axis_cc_tlast ( s_axis_cc_tlast ),
- .s_axis_cc_tkeep ( s_axis_cc_tkeep ),
- .s_axis_cc_tvalid ( s_axis_cc_tvalid ),
- .s_axis_cc_tready ( s_axis_cc_tready ),
-
- //---------------------------------------------------------------------
- // Configuration (CFG) Interface
- //---------------------------------------------------------------------
- .pcie_rq_seq_num ( pcie_rq_seq_num ),
- .pcie_rq_seq_num_vld ( pcie_rq_seq_num_vld ),
- .pcie_rq_tag ( pcie_rq_tag ),
- .pcie_rq_tag_vld ( pcie_rq_tag_vld ),
- .pcie_cq_np_req ( pcie_cq_np_req ),
- .pcie_cq_np_req_count ( pcie_cq_np_req_count ),
- .cfg_phy_link_down ( cfg_phy_link_down ),
- .cfg_phy_link_status ( cfg_phy_link_status),
- .cfg_negotiated_width ( cfg_negotiated_width ),
- .cfg_current_speed ( cfg_current_speed ),
- .cfg_max_payload ( cfg_max_payload ),
- .cfg_max_read_req ( cfg_max_read_req ),
- .cfg_function_status ( cfg_function_status ),
- .cfg_function_power_state ( cfg_function_power_state ),
- .cfg_vf_status ( cfg_vf_status ),
- .cfg_vf_power_state ( cfg_vf_power_state ),
- .cfg_link_power_state ( cfg_link_power_state ),
- // Error Reporting Interface
- .cfg_err_cor_out ( cfg_err_cor_out ),
- .cfg_err_nonfatal_out ( cfg_err_nonfatal_out ),
- .cfg_err_fatal_out ( cfg_err_fatal_out ),
- .cfg_ltr_enable ( cfg_ltr_enable ),
- .cfg_ltssm_state ( cfg_ltssm_state ),
- .cfg_rcb_status ( cfg_rcb_status ),
- .cfg_dpa_substate_change ( cfg_dpa_substate_change ),
- .cfg_obff_enable ( cfg_obff_enable ),
- .cfg_pl_status_change ( cfg_pl_status_change ),
- .cfg_tph_requester_enable ( cfg_tph_requester_enable ),
- .cfg_tph_st_mode ( cfg_tph_st_mode ),
- .cfg_vf_tph_requester_enable ( cfg_vf_tph_requester_enable ),
- .cfg_vf_tph_st_mode ( cfg_vf_tph_st_mode ),
- .cfg_fc_ph ( cfg_fc_ph ),
- .cfg_fc_pd ( cfg_fc_pd ),
- .cfg_fc_nph ( cfg_fc_nph ),
- .cfg_fc_npd ( cfg_fc_npd ),
- .cfg_fc_cplh ( cfg_fc_cplh ),
- .cfg_fc_cpld ( cfg_fc_cpld ),
- .cfg_fc_sel ( cfg_fc_sel ),
- //---------------------------------------------------------------------
- // EP Only
- //---------------------------------------------------------------------
- // Interrupt Interface Signals
- .cfg_interrupt_int ( cfg_interrupt_int ),
- .cfg_interrupt_pending ( cfg_interrupt_pending ),
- .cfg_interrupt_sent ( cfg_interrupt_sent ),
- .cfg_interrupt_msi_enable ( cfg_interrupt_msi_enable ),
- .cfg_interrupt_msi_vf_enable ( cfg_interrupt_msi_vf_enable ),
- .cfg_interrupt_msi_mmenable ( cfg_interrupt_msi_mmenable ),
- .cfg_interrupt_msi_mask_update ( cfg_interrupt_msi_mask_update ),
- .cfg_interrupt_msi_data ( cfg_interrupt_msi_data ),
- .cfg_interrupt_msi_select ( cfg_interrupt_msi_select ),
- .cfg_interrupt_msi_int ( cfg_interrupt_msi_int ),
- .cfg_interrupt_msi_pending_status ( cfg_interrupt_msi_pending_status ),
- .cfg_interrupt_msi_sent ( cfg_interrupt_msi_sent ),
- .cfg_interrupt_msi_fail ( cfg_interrupt_msi_fail ),
- .cfg_interrupt_msi_attr ( cfg_interrupt_msi_attr ),
- .cfg_interrupt_msi_tph_present ( cfg_interrupt_msi_tph_present ),
- .cfg_interrupt_msi_tph_type ( cfg_interrupt_msi_tph_type ),
- .cfg_interrupt_msi_tph_st_tag ( cfg_interrupt_msi_tph_st_tag ),
- .cfg_interrupt_msi_function_number ( cfg_interrupt_msi_function_number ),
- .cfg_interrupt_msi_pending_status_function_num ( 4'b0),
- .cfg_interrupt_msi_pending_status_data_enable ( 1'b0),
-
-
- //--------------------------------------------------------------------------------------//
- // Reset Pass Through Signals
- // - Only used for PCIe_X0Y0
- //--------------------------------------------------------------------------------------//
- .pcie_perstn0_out (pcie_reset_n_core),
- .pcie_perstn1_in (1'b0),
- .pcie_perstn1_out (),
-
- //---------------------------------------------------------------------
- // System(SYS) Interface
- //---------------------------------------------------------------------
- .sys_clk (pcie_refclk_by2),
- .sys_clk_gt (pcie_refclk),
- .sys_reset (pcie_reset_n));
-
- riffa_wrapper_kcu105
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready),
- .M_AXIS_RC_TREADY (m_axis_rc_tready),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser[`SIG_RQ_TUSER_W-1:0]),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CFG_INTERRUPT_INT (cfg_interrupt_int[3:0]),
- .CFG_INTERRUPT_PENDING (cfg_interrupt_pending[1:0]),
- .CFG_INTERRUPT_MSI_SELECT (cfg_interrupt_msi_select[3:0]),
- .CFG_INTERRUPT_MSI_INT (cfg_interrupt_msi_int[31:0]),
- .CFG_INTERRUPT_MSI_PENDING_STATUS(cfg_interrupt_msi_pending_status[63:0]),
- .CFG_INTERRUPT_MSI_ATTR (cfg_interrupt_msi_attr[2:0]),
- .CFG_INTERRUPT_MSI_TPH_PRESENT (cfg_interrupt_msi_tph_present),
- .CFG_INTERRUPT_MSI_TPH_TYPE (cfg_interrupt_msi_tph_type[1:0]),
- .CFG_INTERRUPT_MSI_TPH_ST_TAG (cfg_interrupt_msi_tph_st_tag[8:0]),
- .CFG_INTERRUPT_MSI_FUNCTION_NUMBER(cfg_interrupt_msi_function_number[2:0]),
- .CFG_FC_SEL (cfg_fc_sel[2:0]),
- .PCIE_CQ_NP_REQ (pcie_cq_np_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready),
- .CFG_INTERRUPT_MSI_ENABLE (cfg_interrupt_msi_enable[1:0]),
- .CFG_INTERRUPT_MSI_MASK_UPDATE (cfg_interrupt_msi_mask_update),
- .CFG_INTERRUPT_MSI_DATA (cfg_interrupt_msi_data[31:0]),
- .CFG_INTERRUPT_MSI_SENT (cfg_interrupt_msi_sent),
- .CFG_INTERRUPT_MSI_FAIL (cfg_interrupt_msi_fail),
- .CFG_FC_CPLH (cfg_fc_cplh[7:0]),
- .CFG_FC_CPLD (cfg_fc_cpld[11:0]),
- .CFG_NEGOTIATED_WIDTH (cfg_negotiated_width[3:0]),
- .CFG_CURRENT_SPEED (cfg_current_speed[2:0]),
- .CFG_MAX_PAYLOAD (cfg_max_payload[2:0]),
- .CFG_MAX_READ_REQ (cfg_max_read_req[2:0]),
- .CFG_FUNCTION_STATUS (cfg_function_status[7:0]),
- .CFG_RCB_STATUS (cfg_rcb_status[1:0]),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl])
- /*AUTOINST*/);
- end
- endgenerate
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../../../riffa_hdl/" "../../")
-// End:
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/ip/PCIeGen2x8If128.xci b/fpga/xilinx/kcu105/KCU105_Gen2x8If128/ip/PCIeGen2x8If128.xci
deleted file mode 100644
index c0aa3d0..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/ip/PCIeGen2x8If128.xci
+++ /dev/null
@@ -1,730 +0,0 @@
-
-
- xilinx.com
- xci
- unknown
- 1.0
-
-
- PCIeGen2x8If128
-
-
- FALSE
- FALSE
- FALSE
- TRUE
- 0x00000
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- TRUE
- FALSE
- 16KB
- 1
- 128
- TRUE
- 0
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- NONE
- FALSE
- TRUE
- FALSE
- FALSE
- NONE
- 3
- 2.0
- FALSE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x03
- 0x4
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8028
- FALSE
- FALSE
- FALSE
- FALSE
- 0x0
- FALSE
- TRUE
- FALSE
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0
- TRUE
- 0x000
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0xC0
- 0x000
- 0x90
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0000
- 0x00000553
- 0x0000
- 0x0007
- 0x10EE
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0x10EE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8011
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- 0x000
- 0x00
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0001
- 0x00000553
- 0x0000
- 0x0007
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 4
- FALSE
- 2
- FALSE
- 2
- 8
- TRUE
- FALSE
- 0
- 0
- GTH_Quad_224
- 1
- 0x00000000
- FALSE
- 0
- 0x000
- 0x00
- 0x028
- 0x20
- 0x198
- 0x20
- FALSE
- FALSE
- 0x0
- FALSE
- FALSE
- 3
- 0x000
- 0x80
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- FALSE
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- Production
- 1
- true
- false
- PCIeGen2x8If128
- 15
- false
- false
- 058000
- 8028
- false
- false
- false
- 00_Not_Supported
- false
- false
- NONE
- true
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- false
- false
- false
- false
- 00
- 0
- N/A
- 0000
- 00000553
- 0000
- 0007
- 10EE
- false
- false
- false
- 058000
- 8011
- NONE
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- 00
- 0
- 0
- N/A
- 0001
- 00000553
- 0000
- 0007
- false
- 4
- 5.0_GT/s
- X8
- 100_MHz
- Default
- 0
- 0
- false
- false
- 1
- false
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- DWORD_Aligned
- No_ASPM
- 250
- true
- 2FFFF
- false
- 128_bit
- false
- false
- true
- false
- true
- false
- 250
- true
- PCI_Express_Endpoint_device
- false
- false
- true
- false
- false
- false
- false
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- None
- Advanced
- X0Y0
- false
- Extreme
- false
- true
- false
- false
- true
- false
- Kilobytes
- 1
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- false
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- 0
- Generic_XT_compatible_serial_controller
- false
- false
- true
- false
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Generic_XT_compatible_serial_controller
- false
- false
- QPLL1
- false
- GTH_Quad_224
- ACTIVE LOW
- None
- true
- false
- 10EE
- KCU105
- kintexu
- xilinx.com:kcu105:part0:1.0
- xcku040
- ffva1156
- VERILOG
-
- MIXED
- -2
- E
- TRUE
- TRUE
- IP_Flow
- 1
- TRUE
- .
-
- .
- 2015.4
- OUT_OF_CONTEXT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/prj/KCU105_Gen2x8If128.xpr b/fpga/xilinx/kcu105/KCU105_Gen2x8If128/prj/KCU105_Gen2x8If128.xpr
deleted file mode 100644
index 6abecc1..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen2x8If128/prj/KCU105_Gen2x8If128.xpr
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/Makefile b/fpga/xilinx/kcu105/KCU105_Gen3x4If128/Makefile
deleted file mode 100644
index 5ddddf7..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=128
-TYPE=ultrascale
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/PCIeGen3x4If128.xci
diff --git a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/bit/KCU105_Gen3x4If128.bit b/fpga/xilinx/kcu105/KCU105_Gen3x4If128/bit/KCU105_Gen3x4If128.bit
deleted file mode 100644
index 5810881..0000000
Binary files a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/bit/KCU105_Gen3x4If128.bit and /dev/null differ
diff --git a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/constr/KCU105_Gen3x4If128.xdc b/fpga/xilinx/kcu105/KCU105_Gen3x4If128/constr/KCU105_Gen3x4If128.xdc
deleted file mode 100644
index 019982a..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/constr/KCU105_Gen3x4If128.xdc
+++ /dev/null
@@ -1,119 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#----------------------------------------------------------------------------
-# Filename: KCU105_Top.xdc
-# Version: 1.00.a
-# Verilog Standard: Verilog-2001
-# Description: Xilinx Design Constraints for the KCU105 board.
-# These constrain the PCIE_REFCLK, its DSBUF, LED Pins, and PCIE_RESET_N pin
-#
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------------
-#
-#########################################################################################################################
-# User Constraints
-#########################################################################################################################
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-set_property PACKAGE_PIN AP8 [get_ports {LED[0]}]
-set_property PACKAGE_PIN H23 [get_ports {LED[1]}]
-set_property PACKAGE_PIN P20 [get_ports {LED[2]}]
-set_property PACKAGE_PIN P21 [get_ports {LED[3]}]
-set_property PACKAGE_PIN N22 [get_ports {LED[4]}]
-set_property PACKAGE_PIN M22 [get_ports {LED[5]}]
-set_property PACKAGE_PIN R23 [get_ports {LED[6]}]
-set_property PACKAGE_PIN P23 [get_ports {LED[7]}]
-
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[0]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[1]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[2]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[3]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[4]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[5]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[6]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[7]}]
-
-set_false_path -to [get_ports -filter NAME=~LED*]
-
-#########################################################################################################################
-# End User Constraints
-#########################################################################################################################
-#
-#
-#
-#########################################################################################################################
-# PCIE Core Constraints
-#########################################################################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-# Some 7 series devices do not have 3.3 V I/Os available.
-# Therefore the appropriate level shift is required to operate
-# with these devices that contain only 1.8 V banks.
-#
-
-set_property LOC [get_package_pins -filter {PIN_FUNC == IO_T3U_N12_PERSTN0_65}] [get_ports PCIE_RESET_N]
-set_property IOSTANDARD LVCMOS18 [get_ports PCIE_RESET_N]
-set_property PULLUP true [get_ports PCIE_RESET_N]
-
-set_property LOC AB6 [get_cells refclk_ibuf]
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-create_clock -period 10.000 -name pcie_refclk [get_pins refclk_ibuf/O]
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-set_false_path -from [get_ports PCIE_RESET_N]
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/hdl/KCU105_Gen3x4If128.v b/fpga/xilinx/kcu105/KCU105_Gen3x4If128/hdl/KCU105_Gen3x4If128.v
deleted file mode 100644
index c7b4106..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/hdl/KCU105_Gen3x4If128.v
+++ /dev/null
@@ -1,491 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: KCU105_Gen3x4If128.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx KCU105 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`timescale 1ps / 1ps
-module KCU105_Gen3x4If128
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 4,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 6)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
-
- output [7:0] LED,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- // Clocks, etc
- wire user_lnk_up;
- wire user_clk;
- wire user_reset;
- wire pcie_refclk;
- wire pcie_refclk_by2;
- wire pcie_reset_n;
-
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep;
- wire s_axis_rq_tready;
- wire s_axis_rq_tvalid;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser;
- wire m_axis_rc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep;
- wire m_axis_rc_tvalid;
- wire m_axis_rc_tready;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser;
- wire m_axis_cq_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep;
- wire m_axis_cq_tvalid;
- wire m_axis_cq_tready;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser;
- wire s_axis_cc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep;
- wire s_axis_cc_tvalid;
- wire s_axis_cc_tready;
-
- // Configuration (CFG) Interface
- wire [3:0] pcie_rq_seq_num;
- wire pcie_rq_seq_num_vld;
- wire [5:0] pcie_rq_tag;
- wire pcie_rq_tag_vld;
- wire pcie_cq_np_req;
- wire [5:0] pcie_cq_np_req_count;
-
- wire cfg_phy_link_down;
- wire [3:0] cfg_negotiated_width; // CONFIG_LINK_WIDTH
- wire [2:0] cfg_current_speed; // CONFIG_LINK_RATE
- wire [2:0] cfg_max_payload; // CONFIG_MAX_PAYLOAD
- wire [2:0] cfg_max_read_req; // CONFIG_MAX_READ_REQUEST
- wire [7:0] cfg_function_status; // [2] = CONFIG_BUS_MASTER_ENABLE
- wire [5:0] cfg_function_power_state; // Ignorable but not removable
- wire [11:0] cfg_vf_status; // Ignorable but not removable
- wire [17:0] cfg_vf_power_state; // Ignorable but not removable
- wire [1:0] cfg_link_power_state; // Ignorable but not removable
-
- // Error Reporting Interface
- wire cfg_err_cor_out;
- wire cfg_err_nonfatal_out;
- wire cfg_err_fatal_out;
-
- wire cfg_ltr_enable;
- wire [5:0] cfg_ltssm_state;
- wire [1:0] cfg_rcb_status;
- wire [1:0] cfg_dpa_substate_change;
- wire [1:0] cfg_obff_enable;
- wire cfg_pl_status_change;
-
- wire [1:0] cfg_tph_requester_enable;
- wire [5:0] cfg_tph_st_mode;
- wire [5:0] cfg_vf_tph_requester_enable;
- wire [17:0] cfg_vf_tph_st_mode;
- wire [7:0] cfg_fc_ph;
- wire [11:0] cfg_fc_pd;
- wire [7:0] cfg_fc_nph;
- wire [11:0] cfg_fc_npd;
- wire [7:0] cfg_fc_cplh;
- wire [11:0] cfg_fc_cpld;
- wire [2:0] cfg_fc_sel;
-
- // Interrupt Interface Signals
- wire [3:0] cfg_interrupt_int;
- wire [1:0] cfg_interrupt_pending;
- wire cfg_interrupt_sent;
- wire [1:0] cfg_interrupt_msi_enable;
- wire [5:0] cfg_interrupt_msi_vf_enable;
- wire [5:0] cfg_interrupt_msi_mmenable;
- wire cfg_interrupt_msi_mask_update;
- wire [31:0] cfg_interrupt_msi_data;
- wire [3:0] cfg_interrupt_msi_select;
- wire [31:0] cfg_interrupt_msi_int;
- wire [63:0] cfg_interrupt_msi_pending_status;
- wire cfg_interrupt_msi_sent;
- wire cfg_interrupt_msi_fail;
- wire [2:0] cfg_interrupt_msi_attr;
- wire cfg_interrupt_msi_tph_present;
- wire [1:0] cfg_interrupt_msi_tph_type;
- wire [8:0] cfg_interrupt_msi_tph_st_tag;
- wire [2:0] cfg_interrupt_msi_function_number;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
-
- IBUF
- #()
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTE3
- #()
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(pcie_refclk_by2),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- OBUF
- #()
- led_0_obuf
- (.O(LED[0]),
- .I(cfg_ltssm_state[0]));
- OBUF
- #()
- led_1_obuf
- (.O(LED[1]),
- .I(cfg_ltssm_state[1]));
- OBUF
- #()
- led_2_obuf
- (.O(LED[2]),
- .I(cfg_ltssm_state[2]));
- OBUF
- #()
- led_3_obuf
- (.O(LED[3]),
- .I(cfg_ltssm_state[3]));
- OBUF
- #()
- led_4_obuf
- (.O(LED[4]),
- .I(cfg_ltssm_state[4]));
- OBUF
- #()
- led_5_obuf
- (.O(LED[5]),
- .I(cfg_ltssm_state[5]));
- OBUF
- #()
- led_6_obuf
- (.O(LED[6]),
- .I(user_reset));
- OBUF
- #()
- led_7_obuf
- (.O(LED[7]),
- .I(rst_out));
-
- // Core Top Level Wrapper
- PCIeGen3x4If128
- #()
- pcie3_7x_0_i
- (//---------------------------------------------------------------------
- // PCI Express (pci_exp) Interface
- //---------------------------------------------------------------------
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- //---------------------------------------------------------------------
- // AXI Interface
- //---------------------------------------------------------------------
- .user_clk ( user_clk ),
- .user_reset ( user_reset ),
- .user_lnk_up ( user_lnk_up ),
-
- .s_axis_rq_tlast ( s_axis_rq_tlast ),
- .s_axis_rq_tdata ( s_axis_rq_tdata ),
- .s_axis_rq_tuser ( s_axis_rq_tuser ),
- .s_axis_rq_tkeep ( s_axis_rq_tkeep ),
- .s_axis_rq_tready ( s_axis_rq_tready ),
- .s_axis_rq_tvalid ( s_axis_rq_tvalid ),
-
- .m_axis_rc_tdata ( m_axis_rc_tdata ),
- .m_axis_rc_tuser ( m_axis_rc_tuser ),
- .m_axis_rc_tlast ( m_axis_rc_tlast ),
- .m_axis_rc_tkeep ( m_axis_rc_tkeep ),
- .m_axis_rc_tvalid ( m_axis_rc_tvalid ),
- .m_axis_rc_tready ( {22{m_axis_rc_tready}} ),
-
- .m_axis_cq_tdata ( m_axis_cq_tdata ),
- .m_axis_cq_tuser ( m_axis_cq_tuser ),
- .m_axis_cq_tlast ( m_axis_cq_tlast ),
- .m_axis_cq_tkeep ( m_axis_cq_tkeep ),
- .m_axis_cq_tvalid ( m_axis_cq_tvalid ),
- .m_axis_cq_tready ( {22{m_axis_cq_tready}} ),
-
- .s_axis_cc_tdata ( s_axis_cc_tdata ),
- .s_axis_cc_tuser ( s_axis_cc_tuser ),
- .s_axis_cc_tlast ( s_axis_cc_tlast ),
- .s_axis_cc_tkeep ( s_axis_cc_tkeep ),
- .s_axis_cc_tvalid ( s_axis_cc_tvalid ),
- .s_axis_cc_tready ( s_axis_cc_tready ),
-
- //---------------------------------------------------------------------
- // Configuration (CFG) Interface
- //---------------------------------------------------------------------
- .pcie_rq_seq_num ( pcie_rq_seq_num ),
- .pcie_rq_seq_num_vld ( pcie_rq_seq_num_vld ),
- .pcie_rq_tag ( pcie_rq_tag ),
- .pcie_rq_tag_vld ( pcie_rq_tag_vld ),
- .pcie_cq_np_req ( pcie_cq_np_req ),
- .pcie_cq_np_req_count ( pcie_cq_np_req_count ),
- .cfg_phy_link_down ( cfg_phy_link_down ),
- .cfg_phy_link_status ( cfg_phy_link_status),
- .cfg_negotiated_width ( cfg_negotiated_width ),
- .cfg_current_speed ( cfg_current_speed ),
- .cfg_max_payload ( cfg_max_payload ),
- .cfg_max_read_req ( cfg_max_read_req ),
- .cfg_function_status ( cfg_function_status ),
- .cfg_function_power_state ( cfg_function_power_state ),
- .cfg_vf_status ( cfg_vf_status ),
- .cfg_vf_power_state ( cfg_vf_power_state ),
- .cfg_link_power_state ( cfg_link_power_state ),
- // Error Reporting Interface
- .cfg_err_cor_out ( cfg_err_cor_out ),
- .cfg_err_nonfatal_out ( cfg_err_nonfatal_out ),
- .cfg_err_fatal_out ( cfg_err_fatal_out ),
- .cfg_ltr_enable ( cfg_ltr_enable ),
- .cfg_ltssm_state ( cfg_ltssm_state ),
- .cfg_rcb_status ( cfg_rcb_status ),
- .cfg_dpa_substate_change ( cfg_dpa_substate_change ),
- .cfg_obff_enable ( cfg_obff_enable ),
- .cfg_pl_status_change ( cfg_pl_status_change ),
- .cfg_tph_requester_enable ( cfg_tph_requester_enable ),
- .cfg_tph_st_mode ( cfg_tph_st_mode ),
- .cfg_vf_tph_requester_enable ( cfg_vf_tph_requester_enable ),
- .cfg_vf_tph_st_mode ( cfg_vf_tph_st_mode ),
- .cfg_fc_ph ( cfg_fc_ph ),
- .cfg_fc_pd ( cfg_fc_pd ),
- .cfg_fc_nph ( cfg_fc_nph ),
- .cfg_fc_npd ( cfg_fc_npd ),
- .cfg_fc_cplh ( cfg_fc_cplh ),
- .cfg_fc_cpld ( cfg_fc_cpld ),
- .cfg_fc_sel ( cfg_fc_sel ),
- //---------------------------------------------------------------------
- // EP Only
- //---------------------------------------------------------------------
- // Interrupt Interface Signals
- .cfg_interrupt_int ( cfg_interrupt_int ),
- .cfg_interrupt_pending ( cfg_interrupt_pending ),
- .cfg_interrupt_sent ( cfg_interrupt_sent ),
- .cfg_interrupt_msi_enable ( cfg_interrupt_msi_enable ),
- .cfg_interrupt_msi_vf_enable ( cfg_interrupt_msi_vf_enable ),
- .cfg_interrupt_msi_mmenable ( cfg_interrupt_msi_mmenable ),
- .cfg_interrupt_msi_mask_update ( cfg_interrupt_msi_mask_update ),
- .cfg_interrupt_msi_data ( cfg_interrupt_msi_data ),
- .cfg_interrupt_msi_select ( cfg_interrupt_msi_select ),
- .cfg_interrupt_msi_int ( cfg_interrupt_msi_int ),
- .cfg_interrupt_msi_pending_status ( cfg_interrupt_msi_pending_status ),
- .cfg_interrupt_msi_sent ( cfg_interrupt_msi_sent ),
- .cfg_interrupt_msi_fail ( cfg_interrupt_msi_fail ),
- .cfg_interrupt_msi_attr ( cfg_interrupt_msi_attr ),
- .cfg_interrupt_msi_tph_present ( cfg_interrupt_msi_tph_present ),
- .cfg_interrupt_msi_tph_type ( cfg_interrupt_msi_tph_type ),
- .cfg_interrupt_msi_tph_st_tag ( cfg_interrupt_msi_tph_st_tag ),
- .cfg_interrupt_msi_function_number ( cfg_interrupt_msi_function_number ),
- .cfg_interrupt_msi_pending_status_function_num ( 4'b0),
- .cfg_interrupt_msi_pending_status_data_enable ( 1'b0),
-
-
- //--------------------------------------------------------------------------------------//
- // Reset Pass Through Signals
- // - Only used for PCIe_X0Y0
- //--------------------------------------------------------------------------------------//
- .pcie_perstn0_out (pcie_reset_n_core),
- .pcie_perstn1_in (1'b0),
- .pcie_perstn1_out (),
-
- //---------------------------------------------------------------------
- // System(SYS) Interface
- //---------------------------------------------------------------------
- .sys_clk (pcie_refclk_by2),
- .sys_clk_gt (pcie_refclk),
- .sys_reset (pcie_reset_n));
-
- riffa_wrapper_kcu105
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready),
- .M_AXIS_RC_TREADY (m_axis_rc_tready),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser[`SIG_RQ_TUSER_W-1:0]),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CFG_INTERRUPT_INT (cfg_interrupt_int[3:0]),
- .CFG_INTERRUPT_PENDING (cfg_interrupt_pending[1:0]),
- .CFG_INTERRUPT_MSI_SELECT (cfg_interrupt_msi_select[3:0]),
- .CFG_INTERRUPT_MSI_INT (cfg_interrupt_msi_int[31:0]),
- .CFG_INTERRUPT_MSI_PENDING_STATUS(cfg_interrupt_msi_pending_status[63:0]),
- .CFG_INTERRUPT_MSI_ATTR (cfg_interrupt_msi_attr[2:0]),
- .CFG_INTERRUPT_MSI_TPH_PRESENT (cfg_interrupt_msi_tph_present),
- .CFG_INTERRUPT_MSI_TPH_TYPE (cfg_interrupt_msi_tph_type[1:0]),
- .CFG_INTERRUPT_MSI_TPH_ST_TAG (cfg_interrupt_msi_tph_st_tag[8:0]),
- .CFG_INTERRUPT_MSI_FUNCTION_NUMBER(cfg_interrupt_msi_function_number[2:0]),
- .CFG_FC_SEL (cfg_fc_sel[2:0]),
- .PCIE_CQ_NP_REQ (pcie_cq_np_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready),
- .CFG_INTERRUPT_MSI_ENABLE (cfg_interrupt_msi_enable[1:0]),
- .CFG_INTERRUPT_MSI_MASK_UPDATE (cfg_interrupt_msi_mask_update),
- .CFG_INTERRUPT_MSI_DATA (cfg_interrupt_msi_data[31:0]),
- .CFG_INTERRUPT_MSI_SENT (cfg_interrupt_msi_sent),
- .CFG_INTERRUPT_MSI_FAIL (cfg_interrupt_msi_fail),
- .CFG_FC_CPLH (cfg_fc_cplh[7:0]),
- .CFG_FC_CPLD (cfg_fc_cpld[11:0]),
- .CFG_NEGOTIATED_WIDTH (cfg_negotiated_width[3:0]),
- .CFG_CURRENT_SPEED (cfg_current_speed[2:0]),
- .CFG_MAX_PAYLOAD (cfg_max_payload[2:0]),
- .CFG_MAX_READ_REQ (cfg_max_read_req[2:0]),
- .CFG_FUNCTION_STATUS (cfg_function_status[7:0]),
- .CFG_RCB_STATUS (cfg_rcb_status[1:0]),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl])
- /*AUTOINST*/);
- end
- endgenerate
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../../../riffa_hdl/" "../../")
-// End:
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/ip/PCIeGen3x4If128.xci b/fpga/xilinx/kcu105/KCU105_Gen3x4If128/ip/PCIeGen3x4If128.xci
deleted file mode 100644
index 663243e..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/ip/PCIeGen3x4If128.xci
+++ /dev/null
@@ -1,731 +0,0 @@
-
-
- xilinx.com
- xci
- unknown
- 1.0
-
-
- PCIeGen3x4If128
-
-
- FALSE
- FALSE
- FALSE
- TRUE
- 0x00000
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- TRUE
- FALSE
- 16KB
- 1
- 128
- TRUE
- 0
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- NONE
- FALSE
- TRUE
- FALSE
- FALSE
- NONE
- 3
- 2.0
- FALSE
- FALSE
- FALSE
- 0x300
- 0x000
- 0x00
- 0x03
- 0x4
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8034
- FALSE
- FALSE
- FALSE
- FALSE
- 0x0
- FALSE
- TRUE
- FALSE
- 0x2
- 0x300
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x300
- 0x00
- FALSE
- 0x0
- 0
- TRUE
- 0x300
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0xC0
- 0x274
- 0x90
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- 0x300
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x300
- 0x0000
- 0x0
- 0x0000
- 0x0000
- 0x00000553
- 0x0000
- 0x0007
- 0x10EE
- TRUE
- FALSE
- FALSE
- 0x300
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0x10EE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8011
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- 0x000
- 0x00
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0001
- 0x00000553
- 0x0000
- 0x0007
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 4
- FALSE
- 2
- FALSE
- 4
- 4
- TRUE
- FALSE
- 0
- 0
- GTH_Quad_224
- 1
- 0x00000000
- FALSE
- 0
- 0x000
- 0x00
- 0x028
- 0x20
- 0x198
- 0x20
- FALSE
- FALSE
- 0x0
- FALSE
- FALSE
- 3
- 0x000
- 0x80
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- FALSE
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- Production
- 1
- true
- false
- PCIeGen3x4If128
- 15
- false
- false
- 058000
- 8034
- false
- false
- false
- 00_Not_Supported
- false
- false
- NONE
- true
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- false
- false
- false
- false
- 00
- 0
- N/A
- 0000
- 00000553
- 0000
- 0007
- 10EE
- false
- false
- false
- 058000
- 8011
- NONE
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- 00
- 0
- 0
- N/A
- 0001
- 00000553
- 0000
- 0007
- false
- 4
- 8.0_GT/s
- X4
- 100_MHz
- Default
- 0
- 0
- false
- false
- 1
- false
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- DWORD_Aligned
- No_ASPM
- 250
- true
- 2FFFF
- false
- 128_bit
- false
- false
- true
- false
- true
- false
- 250
- true
- PCI_Express_Endpoint_device
- false
- false
- true
- false
- false
- false
- false
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- None
- Advanced
- X0Y0
- false
- Extreme
- false
- true
- false
- false
- true
- false
- Kilobytes
- 1
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- false
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- 0
- Generic_XT_compatible_serial_controller
- false
- false
- true
- false
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Generic_XT_compatible_serial_controller
- false
- false
- QPLL1
- false
- GTH_Quad_224
- ACTIVE LOW
- None
- true
- false
- 10EE
- KCU105
- kintexu
- xilinx.com:kcu105:part0:1.0
- xcku040
- ffva1156
- VERILOG
-
- MIXED
- -2
- E
- TRUE
- TRUE
- IP_Flow
- 1
- TRUE
- .
-
- .
- 2015.4
- OUT_OF_CONTEXT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/prj/KCU105_Gen3x4If128.xpr b/fpga/xilinx/kcu105/KCU105_Gen3x4If128/prj/KCU105_Gen3x4If128.xpr
deleted file mode 100644
index c2c52f0..0000000
--- a/fpga/xilinx/kcu105/KCU105_Gen3x4If128/prj/KCU105_Gen3x4If128.xpr
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/kcu105/Makefile b/fpga/xilinx/kcu105/Makefile
deleted file mode 100644
index 337451c..0000000
--- a/fpga/xilinx/kcu105/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Top-level makefile for building the example
-# projects in a board
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-BOARD:=kcu105
-BOARD_PROJECTS:=KCU105_Gen1x8If64 KCU105_Gen2x8If128 KCU105_Gen3x4If128
-BOARD_TYPE:=ultrascale
-VENDOR:=xilinx
-include ../vendor.mk
diff --git a/fpga/xilinx/kcu105/board.mk b/fpga/xilinx/kcu105/board.mk
deleted file mode 100644
index 0d6b7bf..0000000
--- a/fpga/xilinx/kcu105/board.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: board.mk
-# Version: 1.0
-# Description: Board-specific include makefile
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-include $(RIFFA_ROOT_PATH)/release.mk
-.DEFAULT_GOAL=all
-
-BOARD_HDL:= $(BOARD_PATH)/riffa_wrapper_$(BOARD).v
-
-PROJECT_IP=
-PROJECT_BIT:= bit/$(PROJECT).bit
-PROJECT_HDL=hdl/$(PROJECT).v $(BOARD_HDL) $(patsubst %, $(RIFFA_HDL_PATH)/%,$(RIFFA_HDL))
-PROJECT_CONSTR=constr/$(PROJECT).xdc
-PROJECT_FILE=prj/$(PROJECT).xpr
-PROJECT_FILES=$(PROJECT_IP) $(PROJECT_CONSTR) $(PROJECT_QSRCS) $(PROJECT_HDL)
-
-RELEASE_BIT:=$(PROJECT_BIT)
-RELEASE_IP=$(PROJECT_IP) # Note the difference between this and the other assignments (Projects add their own IP)
-RELEASE_HDL:=hdl/$(PROJECT).v
-RELEASE_CONSTR:=$(PROJECT_CONSTR)
-RELEASE_FILE:=$(PROJECT_FILE)
-RELEASE_PROJECT_PATH:=$(RELEASE_SRC_PATH)/fpga/$(VENDOR)/$(BOARD)/$(PROJECT)
-copy-files = $(foreach file, $1, cp $(file) $2;)
-
-.PHONY:$(PROJECT) all synthesis implementation clean clobber $(TYPE) $(VENDOR) $(BOARD)
-$(PROJECT): $(PROJECT_BIT)
- @echo Compiling Project $@
-
-$(PROJECT_BIT): $(PROJECT_FILES)
- echo "launch_runs impl_1 -to_step write_bitstream -jobs $(JOBS); wait_on_run impl_1" | vivado -mode tcl prj/$(PROJECT).xpr
- mv prj/$(PROJECT).runs/impl_1/$(PROJECT).bit bit/
-
-synthesis: prj/$(PROJECT).runs/synth_1
-prj/$(PROJECT).runs/synth_1: $(PROJECT_FILES)
- echo "launch_runs synth_1 -jobs $(JOBS); wait_on_run synth_1" | vivado -mode tcl prj/$(PROJECT).xpr
-
-implementation:prj/$(PROJECT).runs/impl_1
-prj/$(PROJECT).runs/impl_1: $(PROJECT_FILES)
- echo "launch_runs impl_1 -jobs $(JOBS); wait_on_run impl1" | vivado -mode tcl prj/$(PROJECT).xpr
-
-all $(TYPE) $(VENDOR) $(BOARD):$(PROJECT)
-clean:
- echo "reset_run impl_1; reset_run synth_1;" | vivado -mode tcl prj/$(PROJECT).xpr
- rm -rf *.log *.jou *~ .Xil
- rm -rf ip/doc ip/sim ip/source ip/synth ip/*.dcp ip/*.v ip/*.xml ip/*.vhdl ip/*.veo ip/*~
- rm -rf prj/*.hw prj/*.runs prj/*.cache prj/*~
-
-clobber:
- rm -rf $(PROJECT_BIT)
-
-destination: $(RELEASE_PROJECT_PATH)
- mkdir $(RELEASE_PROJECT_PATH)/bit
- mkdir $(RELEASE_PROJECT_PATH)/constr
- mkdir $(RELEASE_PROJECT_PATH)/ip
- mkdir $(RELEASE_PROJECT_PATH)/hdl
- mkdir $(RELEASE_PROJECT_PATH)/prj
-
-$(RELEASE_PROJECT_PATH): check-release-src
- mkdir $@
-
-release:check-release-src destination
- $(call copy-files, $(RELEASE_BIT), $(RELEASE_PROJECT_PATH)/bit)
- $(call copy-files, $(RELEASE_CONSTR), $(RELEASE_PROJECT_PATH)/constr)
- $(call copy-files, $(RELEASE_IP), $(RELEASE_PROJECT_PATH)/ip)
- $(call copy-files, $(RELEASE_HDL), $(RELEASE_PROJECT_PATH)/hdl)
- $(call copy-files, $(RELEASE_FILE), $(RELEASE_PROJECT_PATH)/prj)
-
diff --git a/fpga/xilinx/kcu105/riffa_wrapper_kcu105.v b/fpga/xilinx/kcu105/riffa_wrapper_kcu105.v
deleted file mode 100644
index 93a06c3..0000000
--- a/fpga/xilinx/kcu105/riffa_wrapper_kcu105.v
+++ /dev/null
@@ -1,592 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: riffa_wrapper_vc709.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: RIFFA wrapper for the KCU105 Development board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "trellis.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`include "functions.vh"
-`timescale 1ps / 1ps
-module riffa_wrapper_kcu105
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Bit-Width from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- // 4-Byte Name for this FPGA
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 5,
- parameter C_FPGA_ID = "7V30")
- (//Interface: CQ Ultrascale (RXR)
- input M_AXIS_CQ_TVALID,
- input M_AXIS_CQ_TLAST,
- input [C_PCI_DATA_WIDTH-1:0] M_AXIS_CQ_TDATA,
- input [(C_PCI_DATA_WIDTH/32)-1:0] M_AXIS_CQ_TKEEP,
- input [`SIG_CQ_TUSER_W-1:0] M_AXIS_CQ_TUSER,
- output M_AXIS_CQ_TREADY,
-
- //Interface: RC Ultrascale (RXC)
- input M_AXIS_RC_TVALID,
- input M_AXIS_RC_TLAST,
- input [C_PCI_DATA_WIDTH-1:0] M_AXIS_RC_TDATA,
- input [(C_PCI_DATA_WIDTH/32)-1:0] M_AXIS_RC_TKEEP,
- input [`SIG_RC_TUSER_W-1:0] M_AXIS_RC_TUSER,
- output M_AXIS_RC_TREADY,
-
- //Interface: CC Ultrascale (TXC)
- input S_AXIS_CC_TREADY,
- output S_AXIS_CC_TVALID,
- output S_AXIS_CC_TLAST,
- output [C_PCI_DATA_WIDTH-1:0] S_AXIS_CC_TDATA,
- output [(C_PCI_DATA_WIDTH/32)-1:0] S_AXIS_CC_TKEEP,
- output [`SIG_CC_TUSER_W-1:0] S_AXIS_CC_TUSER,
-
- //Interface: RQ Ultrascale (TXR)
- input S_AXIS_RQ_TREADY,
- output S_AXIS_RQ_TVALID,
- output S_AXIS_RQ_TLAST,
- output [C_PCI_DATA_WIDTH-1:0] S_AXIS_RQ_TDATA,
- output [(C_PCI_DATA_WIDTH/32)-1:0] S_AXIS_RQ_TKEEP,
- output [`SIG_RQ_TUSER_W-1:0] S_AXIS_RQ_TUSER,
-
- input USER_CLK,
- input USER_RESET,
-
- output [3:0] CFG_INTERRUPT_INT,
- output [1:0] CFG_INTERRUPT_PENDING,
- input [1:0] CFG_INTERRUPT_MSI_ENABLE,
- input CFG_INTERRUPT_MSI_MASK_UPDATE,
- input [31:0] CFG_INTERRUPT_MSI_DATA,
- output [3:0] CFG_INTERRUPT_MSI_SELECT,
- output [31:0] CFG_INTERRUPT_MSI_INT,
- output [63:0] CFG_INTERRUPT_MSI_PENDING_STATUS,
- input CFG_INTERRUPT_MSI_SENT,
- input CFG_INTERRUPT_MSI_FAIL,
- output [2:0] CFG_INTERRUPT_MSI_ATTR,
- output CFG_INTERRUPT_MSI_TPH_PRESENT,
- output [1:0] CFG_INTERRUPT_MSI_TPH_TYPE,
- output [8:0] CFG_INTERRUPT_MSI_TPH_ST_TAG,
- output [2:0] CFG_INTERRUPT_MSI_FUNCTION_NUMBER,
-
- input [7:0] CFG_FC_CPLH,
- input [11:0] CFG_FC_CPLD,
- output [2:0] CFG_FC_SEL,
-
- input [3:0] CFG_NEGOTIATED_WIDTH, // CONFIG_LINK_WIDTH
- input [2:0] CFG_CURRENT_SPEED, // CONFIG_LINK_RATE
- input [2:0] CFG_MAX_PAYLOAD, // CONFIG_MAX_PAYLOAD
- input [2:0] CFG_MAX_READ_REQ, // CONFIG_MAX_READ_REQUEST
- input [7:0] CFG_FUNCTION_STATUS, // [2] = CONFIG_BUS_MASTER_ENABLE
- input [1:0] CFG_RCB_STATUS,
-
- output PCIE_CQ_NP_REQ,
-
- // RIFFA Interface Signals
- output RST_OUT,
- input [C_NUM_CHNL-1:0] CHNL_RX_CLK, // Channel read clock
- output [C_NUM_CHNL-1:0] CHNL_RX, // Channel read receive signal
- input [C_NUM_CHNL-1:0] CHNL_RX_ACK, // Channel read received signal
- output [C_NUM_CHNL-1:0] CHNL_RX_LAST, // Channel last read
- output [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_RX_LEN, // Channel read length
- output [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_RX_OFF, // Channel read offset
- output [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_RX_DATA, // Channel read data
- output [C_NUM_CHNL-1:0] CHNL_RX_DATA_VALID, // Channel read data valid
- input [C_NUM_CHNL-1:0] CHNL_RX_DATA_REN, // Channel read data has been recieved
-
- input [C_NUM_CHNL-1:0] CHNL_TX_CLK, // Channel write clock
- input [C_NUM_CHNL-1:0] CHNL_TX, // Channel write receive signal
- output [C_NUM_CHNL-1:0] CHNL_TX_ACK, // Channel write acknowledgement signal
- input [C_NUM_CHNL-1:0] CHNL_TX_LAST, // Channel last write
- input [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_TX_LEN, // Channel write length (in 32 bit words)
- input [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_TX_OFF, // Channel write offset
- input [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_TX_DATA, // Channel write data
- input [C_NUM_CHNL-1:0] CHNL_TX_DATA_VALID, // Channel write data valid
- output [C_NUM_CHNL-1:0] CHNL_TX_DATA_REN); // Channel write data has been recieved
-
- localparam C_FPGA_NAME = "REGT"; // This is not yet exposed in the driver
- localparam C_MAX_READ_REQ_BYTES = C_MAX_PAYLOAD_BYTES * 2;
- // ALTERA, XILINX or ULTRASCALE
- localparam C_VENDOR = "ULTRASCALE";
-
- localparam C_KEEP_WIDTH = C_PCI_DATA_WIDTH / 32;
- localparam C_PIPELINE_OUTPUT = 1;
- localparam C_PIPELINE_INPUT = 1;
- localparam C_DEPTH_PACKETS = 4;
-
- wire clk;
- wire rst_in;
- wire done_txc_rst;
- wire done_txr_rst;
- wire done_rxr_rst;
- wire done_rxc_rst;
- // Interface: RXC Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxc_data;
- wire rxc_data_valid;
- wire rxc_data_start_flag;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_word_enable;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxc_meta_fdwbe;
- wire rxc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxc_meta_ldwbe;
- wire [`SIG_TAG_W-1:0] rxc_meta_tag;
- wire [`SIG_LOWADDR_W-1:0] rxc_meta_addr;
- wire [`SIG_TYPE_W-1:0] rxc_meta_type;
- wire [`SIG_LEN_W-1:0] rxc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] rxc_meta_bytes_remaining;
- wire [`SIG_CPLID_W-1:0] rxc_meta_completer_id;
- wire rxc_meta_ep;
-
- // Interface: RXR Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxr_data;
- wire rxr_data_valid;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_word_enable;
- wire rxr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxr_meta_fdwbe;
- wire rxr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxr_meta_ldwbe;
- wire [`SIG_TC_W-1:0] rxr_meta_tc;
- wire [`SIG_ATTR_W-1:0] rxr_meta_attr;
- wire [`SIG_TAG_W-1:0] rxr_meta_tag;
- wire [`SIG_TYPE_W-1:0] rxr_meta_type;
- wire [`SIG_ADDR_W-1:0] rxr_meta_addr;
- wire [`SIG_BARDECODE_W-1:0] rxr_meta_bar_decoded;
- wire [`SIG_REQID_W-1:0] rxr_meta_requester_id;
- wire [`SIG_LEN_W-1:0] rxr_meta_length;
- wire rxr_meta_ep;
-
- // interface: TXC Engine
- wire txc_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txc_data;
- wire txc_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_start_offset;
- wire txc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_end_offset;
- wire txc_data_ready;
-
- wire txc_meta_valid;
- wire [`SIG_FBE_W-1:0] txc_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txc_meta_ldwbe;
- wire [`SIG_LOWADDR_W-1:0] txc_meta_addr;
- wire [`SIG_TYPE_W-1:0] txc_meta_type;
- wire [`SIG_LEN_W-1:0] txc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] txc_meta_byte_count;
- wire [`SIG_TAG_W-1:0] txc_meta_tag;
- wire [`SIG_REQID_W-1:0] txc_meta_requester_id;
- wire [`SIG_TC_W-1:0] txc_meta_tc;
- wire [`SIG_ATTR_W-1:0] txc_meta_attr;
- wire txc_meta_ep;
- wire txc_meta_ready;
- wire txc_sent;
-
- // Interface: TXR Engine
- wire txr_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txr_data;
- wire txr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_start_offset;
- wire txr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_end_offset;
- wire txr_data_ready;
-
- wire txr_meta_valid;
- wire [`SIG_FBE_W-1:0] txr_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txr_meta_ldwbe;
- wire [`SIG_ADDR_W-1:0] txr_meta_addr;
- wire [`SIG_LEN_W-1:0] txr_meta_length;
- wire [`SIG_TAG_W-1:0] txr_meta_tag;
- wire [`SIG_TC_W-1:0] txr_meta_tc;
- wire [`SIG_ATTR_W-1:0] txr_meta_attr;
- wire [`SIG_TYPE_W-1:0] txr_meta_type;
- wire txr_meta_ep;
- wire txr_meta_ready;
- wire txr_sent;
-
- // Unconnected Wires (Used in classic interface)
- wire wRxTlpReady_nc;
- wire [C_PCI_DATA_WIDTH-1:0] wRxTlp_nc = 0;
- wire wRxTlpEndFlag_nc = 0;
- wire [`SIG_OFFSET_W-1:0] wRxTlpEndOffset_nc = 0;
- wire wRxTlpStartFlag_nc = 0;
- wire [`SIG_OFFSET_W-1:0] wRxTlpStartOffset_nc = 0;
- wire wRxTlpValid_nc = 0;
- wire [`SIG_BARDECODE_W-1:0] wRxTlpBarDecode_nc = 0;
-
- wire wTxTlpReady_nc = 0;
- wire [C_PCI_DATA_WIDTH-1:0] wTxTlp_nc;
- wire wTxTlpEndFlag_nc;
- wire [`SIG_OFFSET_W-1:0] wTxTlpEndOffset_nc;
- wire wTxTlpStartFlag_nc;
- wire [`SIG_OFFSET_W-1:0] wTxTlpStartOffset_nc;
- wire wTxTlpValid_nc;
-
- //--------------------------------------------------------------------------
-
- // Interface: Configuration
- wire config_bus_master_enable;
- wire [`SIG_CPLID_W-1:0] config_completer_id;
- wire config_cpl_boundary_sel;
- wire config_interrupt_msienable;
- wire [`SIG_LINKRATE_W-1:0] config_link_rate;
- wire [`SIG_LINKWIDTH_W-1:0] config_link_width;
- wire [`SIG_MAXPAYLOAD_W-1:0] config_max_payload_size;
- wire [`SIG_MAXREAD_W-1:0] config_max_read_request_size;
- wire [`SIG_FC_CPLD_W-1:0] config_max_cpl_data;
- wire [`SIG_FC_CPLH_W-1:0] config_max_cpl_hdr;
-
- wire intr_msi_request;
- wire intr_msi_rdy;
-
- genvar chnl;
-
- assign clk = USER_CLK;
- assign rst_in = USER_RESET;
-
- assign config_completer_id = 0; // Not used in ULTRASCALE implementation
- assign config_bus_master_enable = CFG_FUNCTION_STATUS[2];
- assign config_link_width = {2'b00,CFG_NEGOTIATED_WIDTH}; // CONFIG_LINK_WIDTH
- assign config_link_rate = CFG_CURRENT_SPEED[2]? 2'b11 : CFG_CURRENT_SPEED[2] ? 2'b10 : 2'b01;
- assign config_max_payload_size = CFG_MAX_PAYLOAD; // CONFIG_MAX_PAYLOAD
- assign config_max_read_request_size = CFG_MAX_READ_REQ; // CONFIG_MAX_READ_REQUEST
- assign config_cpl_boundary_sel = CFG_RCB_STATUS[0];
- assign config_interrupt_msienable = CFG_INTERRUPT_MSI_ENABLE[0];
- assign config_max_cpl_data = CFG_FC_CPLD;
- assign config_max_cpl_hdr = CFG_FC_CPLH;
-
- assign CFG_FC_SEL = 3'b001; // Always display credit maximum for the signals below
- assign CFG_INTERRUPT_MSI_INT = {31'b0,intr_msi_request};
- assign CFG_INTERRUPT_MSI_SELECT = 0;
- assign CFG_INTERRUPT_INT = 0;
- assign CFG_INTERRUPT_PENDING = 0;
- assign CFG_INTERRUPT_MSI_SELECT = 0;
- assign CFG_INTERRUPT_MSI_PENDING_STATUS = {63'b0,intr_msi_request};
- assign CFG_INTERRUPT_MSI_ATTR = 0;
- assign CFG_INTERRUPT_MSI_TPH_PRESENT = 0;
- assign CFG_INTERRUPT_MSI_TPH_ST_TAG = 0;
- assign CFG_INTERRUPT_MSI_TPH_TYPE = 0;
- assign CFG_INTERRUPT_MSI_FUNCTION_NUMBER = 0;
-
- assign intr_msi_rdy = CFG_INTERRUPT_MSI_SENT & ~CFG_INTERRUPT_MSI_FAIL;
-
- assign PCIE_CQ_NP_REQ = 1;
-
- engine_layer
- #(// Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_PIPELINE_INPUT (C_PIPELINE_INPUT),
- .C_PIPELINE_OUTPUT (C_PIPELINE_OUTPUT),
- .C_MAX_PAYLOAD_DWORDS (C_MAX_PAYLOAD_BYTES/4),
- .C_VENDOR (C_VENDOR))
- engine_layer_inst
- (// Outputs
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .RST_LOGIC (RST_OUT),
- // Unconnected Outputs
- .TX_TLP (wTxTlp_nc),
- .TX_TLP_VALID (wTxTlpValid_nc),
- .TX_TLP_START_FLAG (wTxTlpStartFlag_nc),
- .TX_TLP_START_OFFSET (wTxTlpStartOffset_nc),
- .TX_TLP_END_FLAG (wTxTlpEndFlag_nc),
- .TX_TLP_END_OFFSET (wTxTlpEndOffset_nc),
-
- .RX_TLP_READY (wRxTlpReady_nc),
- // Inputs
- .CLK_BUS (clk),
- .RST_BUS (rst_in),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
-
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
- // Unconnected Inputs
- .RX_TLP (wRxTlp_nc),
- .RX_TLP_VALID (wRxTlpValid_nc),
- .RX_TLP_START_FLAG (wRxTlpStartFlag_nc),
- .RX_TLP_START_OFFSET (wRxTlpStartOffset_nc),
- .RX_TLP_END_FLAG (wRxTlpEndFlag_nc),
- .RX_TLP_END_OFFSET (wRxTlpEndOffset_nc),
- .RX_TLP_BAR_DECODE (wRxTlpBarDecode_nc),
-
- .TX_TLP_READY (wTxTlpReady_nc),
- /*AUTOINST*/
- // Outputs
- .M_AXIS_CQ_TREADY (M_AXIS_CQ_TREADY),
- .M_AXIS_RC_TREADY (M_AXIS_RC_TREADY),
- .S_AXIS_CC_TVALID (S_AXIS_CC_TVALID),
- .S_AXIS_CC_TLAST (S_AXIS_CC_TLAST),
- .S_AXIS_CC_TDATA (S_AXIS_CC_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (S_AXIS_CC_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (S_AXIS_CC_TUSER[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (S_AXIS_RQ_TVALID),
- .S_AXIS_RQ_TLAST (S_AXIS_RQ_TLAST),
- .S_AXIS_RQ_TDATA (S_AXIS_RQ_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (S_AXIS_RQ_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (S_AXIS_RQ_TUSER[`SIG_RQ_TUSER_W-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (M_AXIS_CQ_TVALID),
- .M_AXIS_CQ_TLAST (M_AXIS_CQ_TLAST),
- .M_AXIS_CQ_TDATA (M_AXIS_CQ_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (M_AXIS_CQ_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (M_AXIS_CQ_TUSER[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (M_AXIS_RC_TVALID),
- .M_AXIS_RC_TLAST (M_AXIS_RC_TLAST),
- .M_AXIS_RC_TDATA (M_AXIS_RC_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (M_AXIS_RC_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (M_AXIS_RC_TUSER[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (S_AXIS_CC_TREADY),
- .S_AXIS_RQ_TREADY (S_AXIS_RQ_TREADY));
-
- riffa
- #(.C_TAG_WIDTH (C_LOG_NUM_TAGS),/* TODO: Standardize declaration*/
- /*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_MAX_READ_REQ_BYTES (C_MAX_READ_REQ_BYTES),
- .C_VENDOR (C_VENDOR),
- .C_FPGA_NAME (C_FPGA_NAME),
- .C_FPGA_ID (C_FPGA_ID),
- .C_DEPTH_PACKETS (C_DEPTH_PACKETS))
- riffa_inst
- (// Outputs
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
-
- .INTR_MSI_REQUEST (intr_msi_request),
- // Inputs
- .CLK (clk),
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
- .CONFIG_BUS_MASTER_ENABLE (config_bus_master_enable),
- .CONFIG_LINK_WIDTH (config_link_width[`SIG_LINKWIDTH_W-1:0]),
- .CONFIG_LINK_RATE (config_link_rate[`SIG_LINKRATE_W-1:0]),
- .CONFIG_MAX_READ_REQUEST_SIZE (config_max_read_request_size[`SIG_MAXREAD_W-1:0]),
- .CONFIG_MAX_PAYLOAD_SIZE (config_max_payload_size[`SIG_MAXPAYLOAD_W-1:0]),
- .CONFIG_INTERRUPT_MSIENABLE (config_interrupt_msienable),
- .CONFIG_CPL_BOUNDARY_SEL (config_cpl_boundary_sel),
- .CONFIG_MAX_CPL_DATA (config_max_cpl_data[`SIG_FC_CPLD_W-1:0]),
- .CONFIG_MAX_CPL_HDR (config_max_cpl_hdr[`SIG_FC_CPLH_W-1:0]),
-
- .INTR_MSI_RDY (intr_msi_rdy),
-
- .DONE_TXC_RST (done_txc_rst),
- .DONE_TXR_RST (done_txr_rst),
- .RST_BUS (rst_in),
- /*AUTOINST*/
- // Outputs
- .RST_OUT (RST_OUT),
- .CHNL_RX (CHNL_RX[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (CHNL_RX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (CHNL_RX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_RX_OFF (CHNL_RX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_RX_DATA (CHNL_RX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (CHNL_RX_DATA_VALID[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (CHNL_TX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (CHNL_TX_DATA_REN[C_NUM_CHNL-1:0]),
- // Inputs
- .CHNL_RX_CLK (CHNL_RX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (CHNL_RX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (CHNL_RX_DATA_REN[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (CHNL_TX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_TX (CHNL_TX[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (CHNL_TX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (CHNL_TX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_TX_OFF (CHNL_TX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_TX_DATA (CHNL_TX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (CHNL_TX_DATA_VALID[C_NUM_CHNL-1:0]));
-
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../riffa_hdl/")
-// End:
-
diff --git a/fpga/xilinx/ml605/ML605Gen2x4If128/bit/PLACEHOLDER.txt b/fpga/xilinx/ml605/ML605Gen2x4If128/bit/PLACEHOLDER.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/fpga/xilinx/ml605/ML605Gen2x4If128/constr/ML605_Top.ucf b/fpga/xilinx/ml605/ML605Gen2x4If128/constr/ML605_Top.ucf
deleted file mode 100644
index 6d3d5f4..0000000
--- a/fpga/xilinx/ml605/ML605Gen2x4If128/constr/ML605_Top.ucf
+++ /dev/null
@@ -1,112 +0,0 @@
-###############################################################################
-# Define Device, Package And Speed Grade
-###############################################################################
-
-CONFIG PART = xc6vlx240t-ff1156-1;
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-###############################################################################
-# Pinout and Related I/O Constraints
-###############################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-#
-
-NET "PCIE_RESET_N" TIG;
-NET "PCIE_RESET_N" LOC = AE13 | IOSTANDARD = LVCMOS25 | PULLUP | NODELAY ;
-
-#
-#
-# SYS clock 100 MHz (input) signal. The sys_clk_p and sys_clk_n
-# signals are the PCI Express reference clock. Virtex-6 GT
-# Transceiver architecture requires the use of a dedicated clock
-# resources (FPGA input pins) associated with each GT Transceiver.
-# To use these pins an IBUFDS primitive (refclk_ibuf) is
-# instantiated in user's design.
-# Please refer to the Virtex-6 GT Transceiver User Guide
-# (UG) for guidelines regarding clock resource selection.
-#
-
-#NET "PCIE_REFCLK_P" LOC = P6;
-#NET "PCIE_REFCLK_N" LOC = P5;
-INST "refclk_ibuf" LOC = IBUFDS_GTXE1_X0Y6;
-
-#
-# Transceiver instance placement. This constraint selects the
-# transceivers to be used, which also dictates the pinout for the
-# transmit and receive differential pairs. Please refer to the
-# Virtex-6 GT Transceiver User Guide (UG) for more information.
-#
-
-# PCIe Lane 0
-INST "PCIeGen*/pcie_2_0_i/pcie_gt_i/gtx_v6_i/no_of_lanes.GTXD[0].GTX" LOC = GTXE1_X0Y15;
-
-# PCIe Lane 1
-INST "PCIeGen*/pcie_2_0_i/pcie_gt_i/gtx_v6_i/no_of_lanes.GTXD[1].GTX" LOC = GTXE1_X0Y14;
-
-# PCIe Lane 2
-INST "PCIeGen*/pcie_2_0_i/pcie_gt_i/gtx_v6_i/no_of_lanes.GTXD[2].GTX" LOC = GTXE1_X0Y13;
-
-# PCIe Lane 3
-INST "PCIeGen*/pcie_2_0_i/pcie_gt_i/gtx_v6_i/no_of_lanes.GTXD[3].GTX" LOC = GTXE1_X0Y12;
-
-#
-# PCI Express Block placement. This constraint selects the PCI Express
-# Block to be used.
-#
-
-INST "PCIe*/pcie_2_0_i/pcie_block_i" LOC = PCIE_X0Y1;
-
-#
-# MMCM Placment. This constraint selects the MMCM Placement
-#
-INST "PCIe*/pcie_clocking_i/mmcm_adv_i" LOC = MMCM_ADV_X0Y7;
-
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-
-#
-# Timing requirements and related constraints.
-#
-
-NET "pcie_refclk" TNM_NET = "SYSCLK" ;
-NET "PCIeGen*/pcie_clocking_i/clk_125" TNM_NET = "CLK_125" ;
-NET "PCIeGen*/TxOutClk_bufg" TNM_NET = "TXOUTCLKBUFG";
-NET "PCIeGen*/pcie_clocking_i/clk_250" TNM_NET = "CLK_250" ;
-
-TIMESPEC "TS_SYSCLK" = PERIOD "SYSCLK" 100 MHz HIGH 50 % ;
-TIMESPEC "TS_CLK_125" = PERIOD "CLK_125" TS_SYSCLK*1.25 HIGH 50 % PRIORITY 100 ;
-TIMESPEC "TS_TXOUTCLKBUFG" = PERIOD "TXOUTCLKBUFG" 100 MHz HIGH 50 % PRIORITY 100 ;
-TIMESPEC "TS_CLK_250" = PERIOD "CLK_250" TS_SYSCLK*2.5 HIGH 50 % PRIORITY 1;
-
-NET "PCIeGen*/pcie_clocking_i/sel_lnk_rate_d" TIG ;
-PIN "PCIeGen*/trn_reset_n_int_i.CLR" TIG ;
-PIN "PCIeGen*/trn_reset_n_i.CLR" TIG ;
-PIN "PCIeGen*/pcie_clocking_i/mmcm_adv_i.RST" TIG ;
-
-TIMESPEC "TS_RESETN" = FROM FFS(*) TO FFS(user_reset_n_i) 8 ns;
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/ml605/ML605Gen2x4If128/hdl/ML605Gen2x4If128.v b/fpga/xilinx/ml605/ML605Gen2x4If128/hdl/ML605Gen2x4If128.v
deleted file mode 100644
index cac8179..0000000
--- a/fpga/xilinx/ml605/ML605Gen2x4If128/hdl/ML605Gen2x4If128.v
+++ /dev/null
@@ -1,346 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: ML605_Gen2x4If128.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx ML605 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "trellis.vh"
-`include "riffa.vh"
-`include "tlp.vh"
-`include "xilinx.vh"
-`timescale 1ps / 1ps
-module ML605Gen2x4If128
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 4,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 64,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 5)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- wire pcie_refclk;
- wire pcie_reset_n;
-
- wire user_clk;
- wire user_reset;
- wire user_reset_int;
- wire user_lnk_up;
-
- wire s_axis_tx_tready;
- wire [C_PCI_DATA_WIDTH-1 : 0] s_axis_tx_tdata;
- wire [(C_PCI_DATA_WIDTH/8)-1 : 0] s_axis_tx_tkeep;
- wire s_axis_tx_tlast;
- wire s_axis_tx_tvalid;
- wire [`SIG_XIL_TX_TUSER_W : 0] s_axis_tx_tuser;
-
- wire [C_PCI_DATA_WIDTH-1 : 0] m_axis_rx_tdata;
- wire [(C_PCI_DATA_WIDTH/8)-1 : 0] m_axis_rx_tkeep;
- wire m_axis_rx_tlast;
- wire m_axis_rx_tvalid;
- wire m_axis_rx_tready;
- wire [`SIG_XIL_RX_TUSER_W - 1 : 0] m_axis_rx_tuser;
-
- wire tx_cfg_gnt;
- wire rx_np_ok;
- wire tx_cfg_req;
- wire cfg_trn_pending;
-
- wire [11 : 0] fc_cpld;
- wire [7 : 0] fc_cplh;
- wire [11 : 0] fc_npd;
- wire [7 : 0] fc_nph;
- wire [11 : 0] fc_pd;
- wire [7 : 0] fc_ph;
- wire [2 : 0] fc_sel;
-
- wire [15 : 0] cfg_status;
- wire [15 : 0] cfg_command;
- wire [15 : 0] cfg_dstatus;
- wire [15 : 0] cfg_dcommand;
- wire [15 : 0] cfg_lstatus;
- wire [15 : 0] cfg_lcommand;
- wire [15 : 0] cfg_dcommand2;
-
- wire [2 : 0] cfg_pcie_link_state;
- wire cfg_pmcsr_pme_en;
- wire [1 : 0] cfg_pmcsr_powerstate;
- wire cfg_pmcsr_pme_status;
- wire cfg_received_func_lvl_rst;
- wire [4 : 0] cfg_pciecap_interrupt_msgnum;
- wire cfg_to_turnoff;
- wire [7 : 0] cfg_bus_number;
- wire [4 : 0] cfg_device_number;
- wire [2 : 0] cfg_function_number;
-
- wire cfg_interrupt;
- wire cfg_interrupt_rdy;
- wire cfg_interrupt_assert;
- wire [7 : 0] cfg_interrupt_di;
- wire [7 : 0] cfg_interrupt_do;
- wire [2 : 0] cfg_interrupt_mmenable;
- wire cfg_interrupt_msienable;
- wire cfg_interrupt_msixenable;
- wire cfg_interrupt_msixfm;
- wire cfg_interrupt_stat;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
- assign cfg_turnoff_ok = 0;
- assign cfg_trn_pending = 0;
- assign cfg_interrupt_assert = 0;
- assign cfg_interrupt_di = 0;
- assign cfg_interrupt_stat = 0;
- assign cfg_turnoff_ok = 0;
- assign cfg_pm_wake = 0;
-
- IBUF
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTXE1
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- FDCP
- #(.INIT(1'b1))
- user_reset_n_i
- (.Q (user_reset),
- .D (user_reset_int),
- .C (user_clk),
- .CLR (1'b0),
- .PRE (1'b0));
-
-
- // Core Top Level Wrapper
- PCIeGen2x4If128 PCIeGen2x4If128_inst
- (// Tx
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
-
- // Rx
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- // Common
- .user_clk_out ( user_clk ),
- .user_reset_out ( user_reset_int ),
-
- // TX
- .s_axis_tx_tready ( s_axis_tx_tready ),
- .s_axis_tx_tdata ( s_axis_tx_tdata ),
- .s_axis_tx_tkeep ( s_axis_tx_tkeep ),
- .s_axis_tx_tuser ( s_axis_tx_tuser ),
- .s_axis_tx_tlast ( s_axis_tx_tlast ),
- .s_axis_tx_tvalid ( s_axis_tx_tvalid ),
-
- // Rx
- .m_axis_rx_tdata ( m_axis_rx_tdata ),
- .m_axis_rx_tkeep ( m_axis_rx_tkeep ),
- .m_axis_rx_tlast ( m_axis_rx_tlast ),
- .m_axis_rx_tvalid ( m_axis_rx_tvalid ),
- .m_axis_rx_tready ( m_axis_rx_tready ),
- .m_axis_rx_tuser ( m_axis_rx_tuser ),
-
- .tx_cfg_gnt ( tx_cfg_gnt ),
- .rx_np_ok ( rx_np_ok ),
- .tx_cfg_req ( tx_cfg_req ),
-
- .fc_cpld ( fc_cpld ),
- .fc_cplh ( fc_cplh ),
- .fc_npd ( fc_npd ),
- .fc_nph ( fc_nph ),
- .fc_pd ( fc_pd ),
- .fc_ph ( fc_ph ),
- .fc_sel ( fc_sel ),
-
- .cfg_trn_pending ( cfg_trn_pending ),
- .cfg_turnoff_ok ( cfg_turnoff_ok ),
- .cfg_pm_wake ( cfg_pm_wake ),
-
- .cfg_device_number ( cfg_device_number ),
- .cfg_dcommand2 ( cfg_dcommand2 ),
- .cfg_pmcsr_pme_status ( cfg_pmcsr_pme_status ),
- .cfg_status ( cfg_status ),
- .cfg_dcommand ( cfg_dcommand ),
- .cfg_bus_number ( cfg_bus_number ),
- .cfg_function_number ( cfg_function_number ),
- .cfg_command ( cfg_command ),
- .cfg_dstatus ( cfg_dstatus ),
- .cfg_lstatus ( cfg_lstatus ),
- .cfg_pcie_link_state ( cfg_pcie_link_state ),
- .cfg_lcommand ( cfg_lcommand ),
- .cfg_pmcsr_pme_en ( cfg_pmcsr_pme_en ),
- .cfg_pmcsr_powerstate ( cfg_pmcsr_powerstate ),
-
- .cfg_interrupt ( cfg_interrupt ),
- .cfg_interrupt_rdy ( cfg_interrupt_rdy ),
- .cfg_interrupt_assert ( cfg_interrupt_assert ),
- .cfg_interrupt_di ( cfg_interrupt_di ),
- .cfg_interrupt_do ( cfg_interrupt_do ),
- .cfg_interrupt_mmenable ( cfg_interrupt_mmenable ),
- .cfg_interrupt_msienable ( cfg_interrupt_msienable ),
- .cfg_interrupt_msixenable ( cfg_interrupt_msixenable ),
- .cfg_interrupt_msixfm ( cfg_interrupt_msixfm ),
-
- .sys_clk ( pcie_refclk ),
- .sys_reset ( ~pcie_reset_n ));
-
- riffa_wrapper_ml605
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .CFG_INTERRUPT (cfg_interrupt),
- .M_AXIS_RX_TREADY (m_axis_rx_tready),
- .S_AXIS_TX_TDATA (s_axis_tx_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_TX_TKEEP (s_axis_tx_tkeep[(C_PCI_DATA_WIDTH/8)-1:0]),
- .S_AXIS_TX_TLAST (s_axis_tx_tlast),
- .S_AXIS_TX_TVALID (s_axis_tx_tvalid),
- .S_AXIS_TX_TUSER (s_axis_tx_tuser[`SIG_XIL_TX_TUSER_W-1:0]),
- .FC_SEL (fc_sel[`SIG_FC_SEL_W-1:0]),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_RX_TDATA (m_axis_rx_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RX_TKEEP (m_axis_rx_tkeep[(C_PCI_DATA_WIDTH/8)-1:0]),
- .M_AXIS_RX_TLAST (m_axis_rx_tlast),
- .M_AXIS_RX_TVALID (m_axis_rx_tvalid),
- .M_AXIS_RX_TUSER (m_axis_rx_tuser[`SIG_XIL_RX_TUSER_W-1:0]),
- .S_AXIS_TX_TREADY (s_axis_tx_tready),
- .CFG_BUS_NUMBER (cfg_bus_number[`SIG_BUSID_W-1:0]),
- .CFG_DEVICE_NUMBER (cfg_device_number[`SIG_DEVID_W-1:0]),
- .CFG_FUNCTION_NUMBER (cfg_function_number[`SIG_FNID_W-1:0]),
- .CFG_COMMAND (cfg_command[`SIG_CFGREG_W-1:0]),
- .CFG_DCOMMAND (cfg_dcommand[`SIG_CFGREG_W-1:0]),
- .CFG_LSTATUS (cfg_lstatus[`SIG_CFGREG_W-1:0]),
- .CFG_LCOMMAND (cfg_lcommand[`SIG_CFGREG_W-1:0]),
- .FC_CPLD (fc_cpld[`SIG_FC_CPLD_W-1:0]),
- .FC_CPLH (fc_cplh[`SIG_FC_CPLH_W-1:0]),
- .CFG_INTERRUPT_MSIEN (cfg_interrupt_msien),
- .CFG_INTERRUPT_RDY (cfg_interrupt_rdy),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]),
- .RX_NP_OK (rx_np_ok),
- .TX_CFG_GNT (tx_cfg_gnt)
- /*AUTOINST*/);
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(.C_PCI_DATA_WIDTH(C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl]));
- end
- endgenerate
-endmodule
diff --git a/fpga/xilinx/ml605/ML605Gen2x4If128/ip/PCIeGen2x4If128.xco b/fpga/xilinx/ml605/ML605Gen2x4If128/ip/PCIeGen2x4If128.xco
deleted file mode 100644
index 5584a80..0000000
--- a/fpga/xilinx/ml605/ML605Gen2x4If128/ip/PCIeGen2x4If128.xco
+++ /dev/null
@@ -1,208 +0,0 @@
-##############################################################
-#
-# Xilinx Core Generator version 14.7
-# Date: Fri Aug 14 21:28:34 2015
-#
-##############################################################
-#
-# This file contains the customisation parameters for a
-# Xilinx CORE Generator IP GUI. It is strongly recommended
-# that you do not manually alter this file as it may cause
-# unexpected and unsupported behavior.
-#
-##############################################################
-#
-# Generated from component: xilinx.com:ip:v6_pcie:2.5
-#
-##############################################################
-#
-# BEGIN Project Options
-SET addpads = false
-SET asysymbol = true
-SET busformat = BusFormatAngleBracketNotRipped
-SET createndf = false
-SET designentry = Verilog
-SET device = xc6vlx240t
-SET devicefamily = virtex6
-SET flowvendor = Other
-SET formalverification = false
-SET foundationsym = false
-SET implementationfiletype = Ngc
-SET package = ff1156
-SET removerpms = false
-SET simulationfiles = Behavioral
-SET speedgrade = -1
-SET verilogsim = true
-SET vhdlsim = false
-# END Project Options
-# BEGIN Select
-SELECT Virtex-6_Integrated_Block_for_PCI_Express xilinx.com:ip:v6_pcie:2.5
-# END Select
-# BEGIN Parameters
-CSET acceptable_l0s_latency=Maximum_of_64_ns
-CSET acceptable_l1_latency=No_limit
-CSET ack_nak_timeout_func=Absolute
-CSET ack_nak_timeout_value=0000
-CSET bar0_64bit=false
-CSET bar0_enabled=true
-CSET bar0_prefetchable=false
-CSET bar0_scale=Kilobytes
-CSET bar0_size=1
-CSET bar0_type=Memory
-CSET bar1_64bit=false
-CSET bar1_enabled=false
-CSET bar1_prefetchable=false
-CSET bar1_scale=Kilobytes
-CSET bar1_size=2
-CSET bar1_type=N/A
-CSET bar2_64bit=false
-CSET bar2_enabled=false
-CSET bar2_prefetchable=false
-CSET bar2_scale=Bytes
-CSET bar2_size=128
-CSET bar2_type=N/A
-CSET bar3_64bit=false
-CSET bar3_enabled=false
-CSET bar3_prefetchable=false
-CSET bar3_scale=Kilobytes
-CSET bar3_size=2
-CSET bar3_type=N/A
-CSET bar4_64bit=false
-CSET bar4_enabled=false
-CSET bar4_prefetchable=false
-CSET bar4_scale=Kilobytes
-CSET bar4_size=2
-CSET bar4_type=N/A
-CSET bar5_enabled=false
-CSET bar5_prefetchable=false
-CSET bar5_scale=Kilobytes
-CSET bar5_size=2
-CSET bar5_type=N/A
-CSET base_class_menu=Simple_communication_controllers
-CSET buf_opt_bma=true
-CSET cardbus_cis_pointer=00000000
-CSET class_code_base=05
-CSET class_code_interface=00
-CSET class_code_sub=00
-CSET component_name=PCIeGen2x4If128
-CSET cost_table=1
-CSET cpl_finite=false
-CSET cpl_timeout_disable_sup=false
-CSET cpl_timeout_range=Range_B
-CSET d0_pme_support=true
-CSET d0_power_consumed=0
-CSET d0_power_consumed_factor=0
-CSET d0_power_dissipated=0
-CSET d0_power_dissipated_factor=0
-CSET d1_pme_support=true
-CSET d1_power_consumed=0
-CSET d1_power_consumed_factor=0
-CSET d1_power_dissipated=0
-CSET d1_power_dissipated_factor=0
-CSET d1_support=false
-CSET d2_pme_support=true
-CSET d2_power_consumed=0
-CSET d2_power_consumed_factor=0
-CSET d2_power_dissipated=0
-CSET d2_power_dissipated_factor=0
-CSET d2_support=false
-CSET d3_power_consumed=0
-CSET d3_power_consumed_factor=0
-CSET d3_power_dissipated=0
-CSET d3_power_dissipated_factor=0
-CSET d3cold_pme_support=false
-CSET d3hot_pme_support=true
-CSET de_emph=0
-CSET device_id=6024
-CSET device_port_type=PCI_Express_Endpoint_device
-CSET device_specific_initialization=false
-CSET disable_tx_aspm_l0s=false
-CSET dll_link_active_cap=false
-CSET downstream_link_num=00
-CSET dsn_enabled=false
-CSET en_route_err_cor=false
-CSET en_route_err_ftl=false
-CSET en_route_err_nfl=false
-CSET en_route_inta=false
-CSET en_route_intb=false
-CSET en_route_intc=false
-CSET en_route_intd=false
-CSET en_route_pm_pme=false
-CSET en_route_pme_to=false
-CSET en_route_pme_to_ack=false
-CSET en_route_unlock=false
-CSET enable_ack_nak_timer=false
-CSET enable_lane_reversal=false
-CSET enable_replay_timer=true
-CSET enable_slot_clock_cfg=false
-CSET expansion_rom_enabled=false
-CSET expansion_rom_scale=Kilobytes
-CSET expansion_rom_size=2
-CSET ext_pci_cfg_space=false
-CSET ext_pci_cfg_space_addr=3FF
-CSET extended_tag_field=true
-CSET force_no_scrambling=false
-CSET hw_auton_spd_disable=false
-CSET intx_generation=false
-CSET io_base_limit_registers=Disabled
-CSET legacy_interrupt=NONE
-CSET link_speed=5.0_GT/s
-CSET max_payload_size=512_bytes
-CSET maximum_link_width=X4
-CSET msi_64b=true
-CSET msi_enabled=true
-CSET msi_vec_mask=false
-CSET msix_enabled=false
-CSET msix_pba_bir=BAR_0
-CSET msix_pba_offset=0
-CSET msix_table_bir=BAR_0
-CSET msix_table_offset=0
-CSET msix_table_size=1
-CSET multiple_message_capable=1_vector
-CSET no_soft_reset=true
-CSET pci_cfg_space=false
-CSET pci_cfg_space_addr=3F
-CSET pcie_blk_locn=X0Y0
-CSET pcie_cap_slot_implemented=false
-CSET pcie_debug_ports=false
-CSET perf_level=High
-CSET phantom_functions=No_function_number_bits_used
-CSET pipe_pipeline=None
-CSET prefetchable_memory_base_limit_registers=Disabled
-CSET rcb=64_byte
-CSET ref_clk_freq=100_MHz
-CSET replay_timeout_func=Add
-CSET replay_timeout_value=0026
-CSET revision_id=00
-CSET root_cap_crs=false
-CSET slot_cap_attn_butn=false
-CSET slot_cap_attn_ind=false
-CSET slot_cap_elec_interlock=false
-CSET slot_cap_hotplug_cap=false
-CSET slot_cap_hotplug_surprise=false
-CSET slot_cap_mrl=false
-CSET slot_cap_no_cmd_comp_sup=false
-CSET slot_cap_physical_slot_num=0
-CSET slot_cap_pwr_ctrl=false
-CSET slot_cap_pwr_ind=false
-CSET slot_cap_pwr_limit_scale=0
-CSET slot_cap_pwr_limit_value=0
-CSET sub_class_interface_menu=Generic_XT_compatible_serial_controller
-CSET subsystem_id=0007
-CSET subsystem_vendor_id=10EE
-CSET trans_buf_pipeline=None
-CSET trgt_link_speed=4'h2
-CSET trim_tlp_digest=false
-CSET upconfigure_capable=true
-CSET user_clk_freq=250_default
-CSET vc_cap_enabled=false
-CSET vc_cap_reject_snoop=false
-CSET vendor_id=10EE
-CSET vsec_enabled=false
-CSET xlnx_ref_board=ML_605
-# END Parameters
-# BEGIN Extra information
-MISC pkg_timestamp=2013-10-13T18:30:52Z
-# END Extra information
-GENERATE
-# CRC: a826f31d
diff --git a/fpga/xilinx/ml605/ML605Gen2x4If128/prj/ML605Gen2x4If128/ML605Gen2x4If128.xise b/fpga/xilinx/ml605/ML605Gen2x4If128/prj/ML605Gen2x4If128/ML605Gen2x4If128.xise
deleted file mode 100644
index a04cb01..0000000
--- a/fpga/xilinx/ml605/ML605Gen2x4If128/prj/ML605Gen2x4If128/ML605Gen2x4If128.xise
+++ /dev/null
@@ -1,742 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/ml605/riffa_wrapper_ml605.v b/fpga/xilinx/ml605/riffa_wrapper_ml605.v
deleted file mode 100644
index e59f1c9..0000000
--- a/fpga/xilinx/ml605/riffa_wrapper_ml605.v
+++ /dev/null
@@ -1,647 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: riffa_wrapper_ml605.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: RIFFA wrapper for the ml605 Development board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "trellis.vh"
-`include "riffa.vh"
-`include "xilinx.vh"
-`include "ultrascale.vh"
-`include "functions.vh"
-`timescale 1ps / 1ps
-module riffa_wrapper_ml605
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Bit-Width from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- // 4-Byte Name for this FPGA
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 5,
- parameter C_FPGA_ID = "M605")
- (// Interface: Xilinx RX
- input [C_PCI_DATA_WIDTH-1:0] M_AXIS_RX_TDATA,
- input [(C_PCI_DATA_WIDTH/8)-1:0] M_AXIS_RX_TKEEP,
- input M_AXIS_RX_TLAST,
- input M_AXIS_RX_TVALID,
- output M_AXIS_RX_TREADY,
- input [`SIG_XIL_RX_TUSER_W-1:0] M_AXIS_RX_TUSER,
- output RX_NP_OK,
- output RX_NP_REQ,
-
- // Interface: Xilinx TX
- output [C_PCI_DATA_WIDTH-1:0] S_AXIS_TX_TDATA,
- output [(C_PCI_DATA_WIDTH/8)-1:0] S_AXIS_TX_TKEEP,
- output S_AXIS_TX_TLAST,
- output S_AXIS_TX_TVALID,
- input S_AXIS_TX_TREADY,
- output [`SIG_XIL_TX_TUSER_W-1:0] S_AXIS_TX_TUSER,
- output TX_CFG_GNT,
-
- // Interface: Xilinx Configuration
- input [`SIG_BUSID_W-1:0] CFG_BUS_NUMBER,
- input [`SIG_DEVID_W-1:0] CFG_DEVICE_NUMBER,
- input [`SIG_FNID_W-1:0] CFG_FUNCTION_NUMBER,
- input [`SIG_CFGREG_W-1:0] CFG_COMMAND,
- input [`SIG_CFGREG_W-1:0] CFG_DCOMMAND,
- input [`SIG_CFGREG_W-1:0] CFG_LSTATUS,
- input [`SIG_CFGREG_W-1:0] CFG_LCOMMAND,
-
- // Interface: Xilinx Flow Control
- input [`SIG_FC_CPLD_W-1:0] FC_CPLD,
- input [`SIG_FC_CPLH_W-1:0] FC_CPLH,
- output [`SIG_FC_SEL_W-1:0] FC_SEL,
-
- // Interface: Xilinx Interrupt
- input CFG_INTERRUPT_MSIEN,
- input CFG_INTERRUPT_RDY,
- output CFG_INTERRUPT,
-
- input USER_CLK,
- input USER_RESET,
-
- // RIFFA Interface Signals
- output RST_OUT,
- input [C_NUM_CHNL-1:0] CHNL_RX_CLK, // Channel read clock
- output [C_NUM_CHNL-1:0] CHNL_RX, // Channel read receive signal
- input [C_NUM_CHNL-1:0] CHNL_RX_ACK, // Channel read received signal
- output [C_NUM_CHNL-1:0] CHNL_RX_LAST, // Channel last read
- output [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_RX_LEN, // Channel read length
- output [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_RX_OFF, // Channel read offset
- output [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_RX_DATA, // Channel read data
- output [C_NUM_CHNL-1:0] CHNL_RX_DATA_VALID, // Channel read data valid
- input [C_NUM_CHNL-1:0] CHNL_RX_DATA_REN, // Channel read data has been recieved
-
- input [C_NUM_CHNL-1:0] CHNL_TX_CLK, // Channel write clock
- input [C_NUM_CHNL-1:0] CHNL_TX, // Channel write receive signal
- output [C_NUM_CHNL-1:0] CHNL_TX_ACK, // Channel write acknowledgement signal
- input [C_NUM_CHNL-1:0] CHNL_TX_LAST, // Channel last write
- input [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_TX_LEN, // Channel write length (in 32 bit words)
- input [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_TX_OFF, // Channel write offset
- input [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_TX_DATA, // Channel write data
- input [C_NUM_CHNL-1:0] CHNL_TX_DATA_VALID, // Channel write data valid
- output [C_NUM_CHNL-1:0] CHNL_TX_DATA_REN); // Channel write data has been recieved
-
- localparam C_FPGA_NAME = "REGT"; // This is not yet exposed in the driver
- localparam C_MAX_READ_REQ_BYTES = C_MAX_PAYLOAD_BYTES * 2;
- // ALTERA, XILINX or ULTRASCALE
- localparam C_VENDOR = "XILINX";
-
- localparam C_KEEP_WIDTH = C_PCI_DATA_WIDTH / 32;
- localparam C_PIPELINE_OUTPUT = 1;
- localparam C_PIPELINE_INPUT = 1;
- localparam C_DEPTH_PACKETS = 4;
-
- wire clk;
- wire rst_in;
- wire done_txc_rst;
- wire done_txr_rst;
- wire done_rxr_rst;
- wire done_rxc_rst;
- // Interface: RXC Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxc_data;
- wire rxc_data_valid;
- wire rxc_data_start_flag;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_word_enable;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxc_meta_fdwbe;
- wire rxc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxc_meta_ldwbe;
- wire [`SIG_TAG_W-1:0] rxc_meta_tag;
- wire [`SIG_LOWADDR_W-1:0] rxc_meta_addr;
- wire [`SIG_TYPE_W-1:0] rxc_meta_type;
- wire [`SIG_LEN_W-1:0] rxc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] rxc_meta_bytes_remaining;
- wire [`SIG_CPLID_W-1:0] rxc_meta_completer_id;
- wire rxc_meta_ep;
-
- // Interface: RXR Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxr_data;
- wire rxr_data_valid;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_word_enable;
- wire rxr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxr_meta_fdwbe;
- wire rxr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxr_meta_ldwbe;
- wire [`SIG_TC_W-1:0] rxr_meta_tc;
- wire [`SIG_ATTR_W-1:0] rxr_meta_attr;
- wire [`SIG_TAG_W-1:0] rxr_meta_tag;
- wire [`SIG_TYPE_W-1:0] rxr_meta_type;
- wire [`SIG_ADDR_W-1:0] rxr_meta_addr;
- wire [`SIG_BARDECODE_W-1:0] rxr_meta_bar_decoded;
- wire [`SIG_REQID_W-1:0] rxr_meta_requester_id;
- wire [`SIG_LEN_W-1:0] rxr_meta_length;
- wire rxr_meta_ep;
-
- // interface: TXC Engine
- wire txc_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txc_data;
- wire txc_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_start_offset;
- wire txc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_end_offset;
- wire txc_data_ready;
-
- wire txc_meta_valid;
- wire [`SIG_FBE_W-1:0] txc_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txc_meta_ldwbe;
- wire [`SIG_LOWADDR_W-1:0] txc_meta_addr;
- wire [`SIG_TYPE_W-1:0] txc_meta_type;
- wire [`SIG_LEN_W-1:0] txc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] txc_meta_byte_count;
- wire [`SIG_TAG_W-1:0] txc_meta_tag;
- wire [`SIG_REQID_W-1:0] txc_meta_requester_id;
- wire [`SIG_TC_W-1:0] txc_meta_tc;
- wire [`SIG_ATTR_W-1:0] txc_meta_attr;
- wire txc_meta_ep;
- wire txc_meta_ready;
- wire txc_sent;
-
- // Interface: TXR Engine
- wire txr_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txr_data;
- wire txr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_start_offset;
- wire txr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_end_offset;
- wire txr_data_ready;
-
- wire txr_meta_valid;
- wire [`SIG_FBE_W-1:0] txr_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txr_meta_ldwbe;
- wire [`SIG_ADDR_W-1:0] txr_meta_addr;
- wire [`SIG_LEN_W-1:0] txr_meta_length;
- wire [`SIG_TAG_W-1:0] txr_meta_tag;
- wire [`SIG_TC_W-1:0] txr_meta_tc;
- wire [`SIG_ATTR_W-1:0] txr_meta_attr;
- wire [`SIG_TYPE_W-1:0] txr_meta_type;
- wire txr_meta_ep;
- wire txr_meta_ready;
- wire txr_sent;
-
- // Classic Interface Wires
- wire rx_tlp_ready;
- wire [C_PCI_DATA_WIDTH-1:0] rx_tlp;
- wire rx_tlp_end_flag;
- wire [`SIG_OFFSET_W-1:0] rx_tlp_end_offset;
- wire rx_tlp_start_flag;
- wire [`SIG_OFFSET_W-1:0] rx_tlp_start_offset;
- wire rx_tlp_valid;
- wire [`SIG_BARDECODE_W-1:0] rx_tlp_bar_decode;
-
- wire tx_tlp_ready;
- wire [C_PCI_DATA_WIDTH-1:0] tx_tlp;
- wire tx_tlp_end_flag;
- wire [`SIG_OFFSET_W-1:0] tx_tlp_end_offset;
- wire tx_tlp_start_flag;
- wire [`SIG_OFFSET_W-1:0] tx_tlp_start_offset;
- wire tx_tlp_valid;
-
- // Unconnected Wires (Used in ultrascale interface)
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast_nc;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata_nc;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser_nc;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep_nc;
- wire s_axis_rq_tready_nc = 0;
- wire s_axis_rq_tvalid_nc;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata_nc = 0;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser_nc = 0;
- wire m_axis_rc_tlast_nc = 0;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep_nc = 0;
- wire m_axis_rc_tvalid_nc = 0;
- wire m_axis_rc_tready_nc;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata_nc = 0;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser_nc = 0;
- wire m_axis_cq_tlast_nc = 0;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep_nc = 0;
- wire m_axis_cq_tvalid_nc = 0;
- wire m_axis_cq_tready_nc = 0;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata_nc;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser_nc;
- wire s_axis_cc_tlast_nc;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep_nc;
- wire s_axis_cc_tvalid_nc;
- wire s_axis_cc_tready_nc = 0;
-
- // Interface: Configuration
- wire config_bus_master_enable;
- wire [`SIG_CPLID_W-1:0] config_completer_id;
- wire config_cpl_boundary_sel;
- wire config_interrupt_msienable;
- wire [`SIG_LINKRATE_W-1:0] config_link_rate;
- wire [`SIG_LINKWIDTH_W-1:0] config_link_width;
- wire [`SIG_MAXPAYLOAD_W-1:0] config_max_payload_size;
- wire [`SIG_MAXREAD_W-1:0] config_max_read_request_size;
- wire [`SIG_FC_CPLD_W-1:0] config_max_cpl_data;
- wire [`SIG_FC_CPLH_W-1:0] config_max_cpl_hdr;
-
- wire intr_msi_request;
- wire intr_msi_rdy;
-
- genvar chnl;
-
- reg rRxTlpValid;
- reg rRxTlpEndFlag;
-
- assign clk = USER_CLK;
- assign rst_in = USER_RESET;
-
- translation_xilinx
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- trans
- (// Outputs
- .RX_TLP (rx_tlp[C_PCI_DATA_WIDTH-1:0]),
- .RX_TLP_VALID (rx_tlp_valid),
- .RX_TLP_START_FLAG (rx_tlp_start_flag),
- .RX_TLP_START_OFFSET (rx_tlp_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RX_TLP_END_FLAG (rx_tlp_end_flag),
- .RX_TLP_END_OFFSET (rx_tlp_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RX_TLP_BAR_DECODE (rx_tlp_bar_decode[`SIG_BARDECODE_W-1:0]),
- .TX_TLP_READY (tx_tlp_ready),
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
- .CONFIG_BUS_MASTER_ENABLE (config_bus_master_enable),
- .CONFIG_LINK_WIDTH (config_link_width[`SIG_LINKWIDTH_W-1:0]),
- .CONFIG_LINK_RATE (config_link_rate[`SIG_LINKRATE_W-1:0]),
- .CONFIG_MAX_READ_REQUEST_SIZE (config_max_read_request_size[`SIG_MAXREAD_W-1:0]),
- .CONFIG_MAX_PAYLOAD_SIZE (config_max_payload_size[`SIG_MAXPAYLOAD_W-1:0]),
- .CONFIG_INTERRUPT_MSIENABLE (config_interrupt_msienable),
- .CONFIG_CPL_BOUNDARY_SEL (config_cpl_boundary_sel),
- .CONFIG_MAX_CPL_DATA (config_max_cpl_data[`SIG_FC_CPLD_W-1:0]),
- .CONFIG_MAX_CPL_HDR (config_max_cpl_hdr[`SIG_FC_CPLH_W-1:0]),
- .INTR_MSI_RDY (intr_msi_rdy),
- // Inputs
- .CLK (clk),
- .RST_IN (rst_in),
- .RX_TLP_READY (rx_tlp_ready),
- .TX_TLP (tx_tlp[C_PCI_DATA_WIDTH-1:0]),
- .TX_TLP_VALID (tx_tlp_valid),
- .TX_TLP_START_FLAG (tx_tlp_start_flag),
- .TX_TLP_START_OFFSET (tx_tlp_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TX_TLP_END_FLAG (tx_tlp_end_flag),
- .TX_TLP_END_OFFSET (tx_tlp_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .INTR_MSI_REQUEST (intr_msi_request),
- /*AUTOINST*/
- // Outputs
- .M_AXIS_RX_TREADY (M_AXIS_RX_TREADY),
- .RX_NP_OK (RX_NP_OK),
- .RX_NP_REQ (RX_NP_REQ),
- .S_AXIS_TX_TDATA (S_AXIS_TX_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_TX_TKEEP (S_AXIS_TX_TKEEP[(C_PCI_DATA_WIDTH/8)-1:0]),
- .S_AXIS_TX_TLAST (S_AXIS_TX_TLAST),
- .S_AXIS_TX_TVALID (S_AXIS_TX_TVALID),
- .S_AXIS_TX_TUSER (S_AXIS_TX_TUSER[`SIG_XIL_TX_TUSER_W-1:0]),
- .TX_CFG_GNT (TX_CFG_GNT),
- .FC_SEL (FC_SEL[`SIG_FC_SEL_W-1:0]),
- .CFG_INTERRUPT (CFG_INTERRUPT),
- // Inputs
- .M_AXIS_RX_TDATA (M_AXIS_RX_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RX_TKEEP (M_AXIS_RX_TKEEP[(C_PCI_DATA_WIDTH/8)-1:0]),
- .M_AXIS_RX_TLAST (M_AXIS_RX_TLAST),
- .M_AXIS_RX_TVALID (M_AXIS_RX_TVALID),
- .M_AXIS_RX_TUSER (M_AXIS_RX_TUSER[`SIG_XIL_RX_TUSER_W-1:0]),
- .S_AXIS_TX_TREADY (S_AXIS_TX_TREADY),
- .CFG_BUS_NUMBER (CFG_BUS_NUMBER[`SIG_BUSID_W-1:0]),
- .CFG_DEVICE_NUMBER (CFG_DEVICE_NUMBER[`SIG_DEVID_W-1:0]),
- .CFG_FUNCTION_NUMBER (CFG_FUNCTION_NUMBER[`SIG_FNID_W-1:0]),
- .CFG_COMMAND (CFG_COMMAND[`SIG_CFGREG_W-1:0]),
- .CFG_DCOMMAND (CFG_DCOMMAND[`SIG_CFGREG_W-1:0]),
- .CFG_LSTATUS (CFG_LSTATUS[`SIG_CFGREG_W-1:0]),
- .CFG_LCOMMAND (CFG_LCOMMAND[`SIG_CFGREG_W-1:0]),
- .FC_CPLD (FC_CPLD[`SIG_FC_CPLD_W-1:0]),
- .FC_CPLH (FC_CPLH[`SIG_FC_CPLH_W-1:0]),
- .CFG_INTERRUPT_MSIEN (CFG_INTERRUPT_MSIEN),
- .CFG_INTERRUPT_RDY (CFG_INTERRUPT_RDY));
-
- engine_layer
- #(// Parameters
- .C_MAX_PAYLOAD_DWORDS (C_MAX_PAYLOAD_BYTES/4),
- /*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_PIPELINE_INPUT (C_PIPELINE_INPUT),
- .C_PIPELINE_OUTPUT (C_PIPELINE_OUTPUT),
- .C_VENDOR (C_VENDOR))
- engine_layer_inst
- (// Outputs
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .RST_LOGIC (RST_OUT),
- // Unconnected Outputs
- .TX_TLP (tx_tlp),
- .TX_TLP_VALID (tx_tlp_valid),
- .TX_TLP_START_FLAG (tx_tlp_start_flag),
- .TX_TLP_START_OFFSET (tx_tlp_start_offset),
- .TX_TLP_END_FLAG (tx_tlp_end_flag),
- .TX_TLP_END_OFFSET (tx_tlp_end_offset),
-
- .RX_TLP_READY (rx_tlp_ready),
- // Inputs
- .CLK_BUS (clk),
- .RST_BUS (rst_in),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
-
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
- // Unconnected Inputs
- .RX_TLP (rx_tlp),
- .RX_TLP_VALID (rx_tlp_valid),
- .RX_TLP_START_FLAG (rx_tlp_start_flag),
- .RX_TLP_START_OFFSET (rx_tlp_start_offset),
- .RX_TLP_END_FLAG (rx_tlp_end_flag),
- .RX_TLP_END_OFFSET (rx_tlp_end_offset),
- .RX_TLP_BAR_DECODE (rx_tlp_bar_decode),
-
- .TX_TLP_READY (tx_tlp_ready),
- .DONE_TXC_RST (done_txc_rst),
- .DONE_TXR_RST (done_txr_rst),
- .DONE_RXR_RST (done_rxc_rst),
- .DONE_RXC_RST (done_rxr_rst),
- // Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready_nc),
- .M_AXIS_RC_TREADY (m_axis_rc_tready_nc),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid_nc),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast_nc),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser_nc[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid_nc),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast_nc),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser_nc[`SIG_RQ_TUSER_W-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid_nc),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast_nc),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser_nc[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid_nc),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast_nc),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata_nc[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep_nc[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser_nc[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready_nc),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready_nc)
- /*AUTOINST*/);
-
- riffa
- #(.C_TAG_WIDTH (C_LOG_NUM_TAGS),/* TODO: Standardize declaration*/
- /*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_MAX_READ_REQ_BYTES (C_MAX_READ_REQ_BYTES),
- .C_VENDOR (C_VENDOR),
- .C_FPGA_NAME (C_FPGA_NAME),
- .C_FPGA_ID (C_FPGA_ID),
- .C_DEPTH_PACKETS (C_DEPTH_PACKETS))
- riffa_inst
- (// Outputs
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
-
- .INTR_MSI_REQUEST (intr_msi_request),
- // Inputs
- .CLK (clk),
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
- .CONFIG_BUS_MASTER_ENABLE (config_bus_master_enable),
- .CONFIG_LINK_WIDTH (config_link_width[`SIG_LINKWIDTH_W-1:0]),
- .CONFIG_LINK_RATE (config_link_rate[`SIG_LINKRATE_W-1:0]),
- .CONFIG_MAX_READ_REQUEST_SIZE (config_max_read_request_size[`SIG_MAXREAD_W-1:0]),
- .CONFIG_MAX_PAYLOAD_SIZE (config_max_payload_size[`SIG_MAXPAYLOAD_W-1:0]),
- .CONFIG_INTERRUPT_MSIENABLE (config_interrupt_msienable),
- .CONFIG_CPL_BOUNDARY_SEL (config_cpl_boundary_sel),
- .CONFIG_MAX_CPL_DATA (config_max_cpl_data[`SIG_FC_CPLD_W-1:0]),
- .CONFIG_MAX_CPL_HDR (config_max_cpl_hdr[`SIG_FC_CPLH_W-1:0]),
-
- .INTR_MSI_RDY (intr_msi_rdy),
-
- .DONE_TXC_RST (done_txc_rst),
- .DONE_TXR_RST (done_txr_rst),
- .RST_BUS (rst_in),
- /*AUTOINST*/
- // Outputs
- .RST_OUT (RST_OUT),
- .CHNL_RX (CHNL_RX[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (CHNL_RX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (CHNL_RX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_RX_OFF (CHNL_RX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_RX_DATA (CHNL_RX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (CHNL_RX_DATA_VALID[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (CHNL_TX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (CHNL_TX_DATA_REN[C_NUM_CHNL-1:0]),
- // Inputs
- .CHNL_RX_CLK (CHNL_RX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (CHNL_RX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (CHNL_RX_DATA_REN[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (CHNL_TX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_TX (CHNL_TX[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (CHNL_TX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (CHNL_TX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_TX_OFF (CHNL_TX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_TX_DATA (CHNL_TX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (CHNL_TX_DATA_VALID[C_NUM_CHNL-1:0]));
-
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../riffa_hdl/")
-// End:
-
diff --git a/fpga/xilinx/vcu108/Makefile b/fpga/xilinx/vcu108/Makefile
deleted file mode 100644
index 5306be7..0000000
--- a/fpga/xilinx/vcu108/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Top-level makefile for building the example
-# projects in a board
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-BOARD:=vcu108
-BOARD_PROJECTS:=VCU108_Gen1x8If64 VCU108_Gen2x8If128 VCU108_Gen3x4If128
-BOARD_TYPE:=ultrascale
-VENDOR:=xilinx
-include ../vendor.mk
diff --git a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/Makefile b/fpga/xilinx/vcu108/VCU108_Gen1x8If64/Makefile
deleted file mode 100644
index 795546b..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=64
-TYPE=ultrascale
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/PCIeGen1x8If64.xci
diff --git a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/bit/VCU108_Gen1x8If64.bit b/fpga/xilinx/vcu108/VCU108_Gen1x8If64/bit/VCU108_Gen1x8If64.bit
deleted file mode 100644
index b63d6fb..0000000
Binary files a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/bit/VCU108_Gen1x8If64.bit and /dev/null differ
diff --git a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/constr/VCU108_Gen1x8If64.xdc b/fpga/xilinx/vcu108/VCU108_Gen1x8If64/constr/VCU108_Gen1x8If64.xdc
deleted file mode 100644
index e478e68..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/constr/VCU108_Gen1x8If64.xdc
+++ /dev/null
@@ -1,120 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#----------------------------------------------------------------------------
-# Filename: VCU108_Top.xdc
-# Version: 1.00.a
-# Verilog Standard: Verilog-2001
-# Description: Xilinx Design Constraints for the VCU108 board.
-# These constrain the PCIE_REFCLK, its DSBUF, LED Pins, and PCIE_RESET_N pin
-#
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------------
-#
-#########################################################################################################################
-# User Constraints
-#########################################################################################################################
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-set_property PACKAGE_PIN AT32 [get_ports {LED[0]}]
-set_property PACKAGE_PIN AV34 [get_ports {LED[1]}]
-set_property PACKAGE_PIN AY30 [get_ports {LED[2]}]
-set_property PACKAGE_PIN BB32 [get_ports {LED[3]}]
-set_property PACKAGE_PIN BF32 [get_ports {LED[4]}]
-set_property PACKAGE_PIN AV36 [get_ports {LED[5]}]
-set_property PACKAGE_PIN AY35 [get_ports {LED[6]}]
-set_property PACKAGE_PIN BA37 [get_ports {LED[7]}]
-
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[0]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[1]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[2]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[3]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[4]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[5]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[6]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[7]}]
-
-set_false_path -to [get_ports -filter NAME=~LED*]
-
-#########################################################################################################################
-# End User Constraints
-#########################################################################################################################
-#
-#
-#
-#########################################################################################################################
-# PCIE Core Constraints
-#########################################################################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-# Some 7 series devices do not have 3.3 V I/Os available.
-# Therefore the appropriate level shift is required to operate
-# with these devices that contain only 1.8 V banks.
-#
-
-set_property LOC [get_package_pins -filter {PIN_FUNC == IO_T3U_N12_PERSTN0_65}] [get_ports PCIE_RESET_N]
-set_property IOSTANDARD LVCMOS15 [get_ports PCIE_RESET_N]
-set_property PULLUP true [get_ports PCIE_RESET_N]
-
-#set_property LOC [get_package_pins -filter {PIN_FUNC == MGTREFCLK0P_225}] [get_ports refclk_ibuf]
-set_property LOC AN9 [get_cells refclk_ibuf]
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-create_clock -period 10.000 -name pcie_refclk [get_pins refclk_ibuf/O]
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-set_false_path -from [get_ports PCIE_RESET_N]
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/hdl/VCU108_Gen1x8If64.v b/fpga/xilinx/vcu108/VCU108_Gen1x8If64/hdl/VCU108_Gen1x8If64.v
deleted file mode 100644
index 7362017..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/hdl/VCU108_Gen1x8If64.v
+++ /dev/null
@@ -1,491 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: VCU108_Gen1x8If64.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx VCU108 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`timescale 1ps / 1ps
-module VCU108_Gen1x8If64
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 8,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 64,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 6)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
-
- output [7:0] LED,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- // Clocks, etc
- wire user_lnk_up;
- wire user_clk;
- wire user_reset;
- wire pcie_refclk;
- wire pcie_refclk_by2;
- wire pcie_reset_n;
-
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep;
- wire s_axis_rq_tready;
- wire s_axis_rq_tvalid;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser;
- wire m_axis_rc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep;
- wire m_axis_rc_tvalid;
- wire m_axis_rc_tready;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser;
- wire m_axis_cq_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep;
- wire m_axis_cq_tvalid;
- wire m_axis_cq_tready;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser;
- wire s_axis_cc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep;
- wire s_axis_cc_tvalid;
- wire s_axis_cc_tready;
-
- // Configuration (CFG) Interface
- wire [3:0] pcie_rq_seq_num;
- wire pcie_rq_seq_num_vld;
- wire [5:0] pcie_rq_tag;
- wire pcie_rq_tag_vld;
- wire pcie_cq_np_req;
- wire [5:0] pcie_cq_np_req_count;
-
- wire cfg_phy_link_down;
- wire [3:0] cfg_negotiated_width; // CONFIG_LINK_WIDTH
- wire [2:0] cfg_current_speed; // CONFIG_LINK_RATE
- wire [2:0] cfg_max_payload; // CONFIG_MAX_PAYLOAD
- wire [2:0] cfg_max_read_req; // CONFIG_MAX_READ_REQUEST
- wire [7:0] cfg_function_status; // [2] = CONFIG_BUS_MASTER_ENABLE
- wire [5:0] cfg_function_power_state; // Ignorable but not removable
- wire [11:0] cfg_vf_status; // Ignorable but not removable
- wire [17:0] cfg_vf_power_state; // Ignorable but not removable
- wire [1:0] cfg_link_power_state; // Ignorable but not removable
-
- // Error Reporting Interface
- wire cfg_err_cor_out;
- wire cfg_err_nonfatal_out;
- wire cfg_err_fatal_out;
-
- wire cfg_ltr_enable;
- wire [5:0] cfg_ltssm_state;
- wire [1:0] cfg_rcb_status;
- wire [1:0] cfg_dpa_substate_change;
- wire [1:0] cfg_obff_enable;
- wire cfg_pl_status_change;
-
- wire [1:0] cfg_tph_requester_enable;
- wire [5:0] cfg_tph_st_mode;
- wire [5:0] cfg_vf_tph_requester_enable;
- wire [17:0] cfg_vf_tph_st_mode;
- wire [7:0] cfg_fc_ph;
- wire [11:0] cfg_fc_pd;
- wire [7:0] cfg_fc_nph;
- wire [11:0] cfg_fc_npd;
- wire [7:0] cfg_fc_cplh;
- wire [11:0] cfg_fc_cpld;
- wire [2:0] cfg_fc_sel;
-
- // Interrupt Interface Signals
- wire [3:0] cfg_interrupt_int;
- wire [1:0] cfg_interrupt_pending;
- wire cfg_interrupt_sent;
- wire [1:0] cfg_interrupt_msi_enable;
- wire [5:0] cfg_interrupt_msi_vf_enable;
- wire [5:0] cfg_interrupt_msi_mmenable;
- wire cfg_interrupt_msi_mask_update;
- wire [31:0] cfg_interrupt_msi_data;
- wire [3:0] cfg_interrupt_msi_select;
- wire [31:0] cfg_interrupt_msi_int;
- wire [63:0] cfg_interrupt_msi_pending_status;
- wire cfg_interrupt_msi_sent;
- wire cfg_interrupt_msi_fail;
- wire [2:0] cfg_interrupt_msi_attr;
- wire cfg_interrupt_msi_tph_present;
- wire [1:0] cfg_interrupt_msi_tph_type;
- wire [8:0] cfg_interrupt_msi_tph_st_tag;
- wire [2:0] cfg_interrupt_msi_function_number;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
-
- IBUF
- #()
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTE3
- #()
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(pcie_refclk_by2),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- OBUF
- #()
- led_0_obuf
- (.O(LED[0]),
- .I(cfg_ltssm_state[0]));
- OBUF
- #()
- led_1_obuf
- (.O(LED[1]),
- .I(cfg_ltssm_state[1]));
- OBUF
- #()
- led_2_obuf
- (.O(LED[2]),
- .I(cfg_ltssm_state[2]));
- OBUF
- #()
- led_3_obuf
- (.O(LED[3]),
- .I(cfg_ltssm_state[3]));
- OBUF
- #()
- led_4_obuf
- (.O(LED[4]),
- .I(cfg_ltssm_state[4]));
- OBUF
- #()
- led_5_obuf
- (.O(LED[5]),
- .I(cfg_ltssm_state[5]));
- OBUF
- #()
- led_6_obuf
- (.O(LED[6]),
- .I(user_reset));
- OBUF
- #()
- led_7_obuf
- (.O(LED[7]),
- .I(rst_out));
-
- // Core Top Level Wrapper
- PCIeGen1x8If64
- #()
- pcie3_7x_0_i
- (//---------------------------------------------------------------------
- // PCI Express (pci_exp) Interface
- //---------------------------------------------------------------------
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- //---------------------------------------------------------------------
- // AXI Interface
- //---------------------------------------------------------------------
- .user_clk ( user_clk ),
- .user_reset ( user_reset ),
- .user_lnk_up ( user_lnk_up ),
-
- .s_axis_rq_tlast ( s_axis_rq_tlast ),
- .s_axis_rq_tdata ( s_axis_rq_tdata ),
- .s_axis_rq_tuser ( s_axis_rq_tuser ),
- .s_axis_rq_tkeep ( s_axis_rq_tkeep ),
- .s_axis_rq_tready ( s_axis_rq_tready ),
- .s_axis_rq_tvalid ( s_axis_rq_tvalid ),
-
- .m_axis_rc_tdata ( m_axis_rc_tdata ),
- .m_axis_rc_tuser ( m_axis_rc_tuser ),
- .m_axis_rc_tlast ( m_axis_rc_tlast ),
- .m_axis_rc_tkeep ( m_axis_rc_tkeep ),
- .m_axis_rc_tvalid ( m_axis_rc_tvalid ),
- .m_axis_rc_tready ( {22{m_axis_rc_tready}} ),
-
- .m_axis_cq_tdata ( m_axis_cq_tdata ),
- .m_axis_cq_tuser ( m_axis_cq_tuser ),
- .m_axis_cq_tlast ( m_axis_cq_tlast ),
- .m_axis_cq_tkeep ( m_axis_cq_tkeep ),
- .m_axis_cq_tvalid ( m_axis_cq_tvalid ),
- .m_axis_cq_tready ( {22{m_axis_cq_tready}} ),
-
- .s_axis_cc_tdata ( s_axis_cc_tdata ),
- .s_axis_cc_tuser ( s_axis_cc_tuser ),
- .s_axis_cc_tlast ( s_axis_cc_tlast ),
- .s_axis_cc_tkeep ( s_axis_cc_tkeep ),
- .s_axis_cc_tvalid ( s_axis_cc_tvalid ),
- .s_axis_cc_tready ( s_axis_cc_tready ),
-
- //---------------------------------------------------------------------
- // Configuration (CFG) Interface
- //---------------------------------------------------------------------
- .pcie_rq_seq_num ( pcie_rq_seq_num ),
- .pcie_rq_seq_num_vld ( pcie_rq_seq_num_vld ),
- .pcie_rq_tag ( pcie_rq_tag ),
- .pcie_rq_tag_vld ( pcie_rq_tag_vld ),
- .pcie_cq_np_req ( pcie_cq_np_req ),
- .pcie_cq_np_req_count ( pcie_cq_np_req_count ),
- .cfg_phy_link_down ( cfg_phy_link_down ),
- .cfg_phy_link_status ( cfg_phy_link_status),
- .cfg_negotiated_width ( cfg_negotiated_width ),
- .cfg_current_speed ( cfg_current_speed ),
- .cfg_max_payload ( cfg_max_payload ),
- .cfg_max_read_req ( cfg_max_read_req ),
- .cfg_function_status ( cfg_function_status ),
- .cfg_function_power_state ( cfg_function_power_state ),
- .cfg_vf_status ( cfg_vf_status ),
- .cfg_vf_power_state ( cfg_vf_power_state ),
- .cfg_link_power_state ( cfg_link_power_state ),
- // Error Reporting Interface
- .cfg_err_cor_out ( cfg_err_cor_out ),
- .cfg_err_nonfatal_out ( cfg_err_nonfatal_out ),
- .cfg_err_fatal_out ( cfg_err_fatal_out ),
- .cfg_ltr_enable ( cfg_ltr_enable ),
- .cfg_ltssm_state ( cfg_ltssm_state ),
- .cfg_rcb_status ( cfg_rcb_status ),
- .cfg_dpa_substate_change ( cfg_dpa_substate_change ),
- .cfg_obff_enable ( cfg_obff_enable ),
- .cfg_pl_status_change ( cfg_pl_status_change ),
- .cfg_tph_requester_enable ( cfg_tph_requester_enable ),
- .cfg_tph_st_mode ( cfg_tph_st_mode ),
- .cfg_vf_tph_requester_enable ( cfg_vf_tph_requester_enable ),
- .cfg_vf_tph_st_mode ( cfg_vf_tph_st_mode ),
- .cfg_fc_ph ( cfg_fc_ph ),
- .cfg_fc_pd ( cfg_fc_pd ),
- .cfg_fc_nph ( cfg_fc_nph ),
- .cfg_fc_npd ( cfg_fc_npd ),
- .cfg_fc_cplh ( cfg_fc_cplh ),
- .cfg_fc_cpld ( cfg_fc_cpld ),
- .cfg_fc_sel ( cfg_fc_sel ),
- //---------------------------------------------------------------------
- // EP Only
- //---------------------------------------------------------------------
- // Interrupt Interface Signals
- .cfg_interrupt_int ( cfg_interrupt_int ),
- .cfg_interrupt_pending ( cfg_interrupt_pending ),
- .cfg_interrupt_sent ( cfg_interrupt_sent ),
- .cfg_interrupt_msi_enable ( cfg_interrupt_msi_enable ),
- .cfg_interrupt_msi_vf_enable ( cfg_interrupt_msi_vf_enable ),
- .cfg_interrupt_msi_mmenable ( cfg_interrupt_msi_mmenable ),
- .cfg_interrupt_msi_mask_update ( cfg_interrupt_msi_mask_update ),
- .cfg_interrupt_msi_data ( cfg_interrupt_msi_data ),
- .cfg_interrupt_msi_select ( cfg_interrupt_msi_select ),
- .cfg_interrupt_msi_int ( cfg_interrupt_msi_int ),
- .cfg_interrupt_msi_pending_status ( cfg_interrupt_msi_pending_status ),
- .cfg_interrupt_msi_sent ( cfg_interrupt_msi_sent ),
- .cfg_interrupt_msi_fail ( cfg_interrupt_msi_fail ),
- .cfg_interrupt_msi_attr ( cfg_interrupt_msi_attr ),
- .cfg_interrupt_msi_tph_present ( cfg_interrupt_msi_tph_present ),
- .cfg_interrupt_msi_tph_type ( cfg_interrupt_msi_tph_type ),
- .cfg_interrupt_msi_tph_st_tag ( cfg_interrupt_msi_tph_st_tag ),
- .cfg_interrupt_msi_function_number ( cfg_interrupt_msi_function_number ),
- .cfg_interrupt_msi_pending_status_function_num ( 4'b0),
- .cfg_interrupt_msi_pending_status_data_enable ( 1'b0),
-
-
- //--------------------------------------------------------------------------------------//
- // Reset Pass Through Signals
- // - Only used for PCIe_X0Y0
- //--------------------------------------------------------------------------------------//
- .pcie_perstn0_out (),
- .pcie_perstn1_in (1'b0),
- .pcie_perstn1_out (),
-
- //---------------------------------------------------------------------
- // System(SYS) Interface
- //---------------------------------------------------------------------
- .sys_clk (pcie_refclk_by2),
- .sys_clk_gt (pcie_refclk),
- .sys_reset (pcie_reset_n));
-
- riffa_wrapper_vcu108
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready),
- .M_AXIS_RC_TREADY (m_axis_rc_tready),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser[`SIG_RQ_TUSER_W-1:0]),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CFG_INTERRUPT_INT (cfg_interrupt_int[3:0]),
- .CFG_INTERRUPT_PENDING (cfg_interrupt_pending[1:0]),
- .CFG_INTERRUPT_MSI_SELECT (cfg_interrupt_msi_select[3:0]),
- .CFG_INTERRUPT_MSI_INT (cfg_interrupt_msi_int[31:0]),
- .CFG_INTERRUPT_MSI_PENDING_STATUS(cfg_interrupt_msi_pending_status[63:0]),
- .CFG_INTERRUPT_MSI_ATTR (cfg_interrupt_msi_attr[2:0]),
- .CFG_INTERRUPT_MSI_TPH_PRESENT (cfg_interrupt_msi_tph_present),
- .CFG_INTERRUPT_MSI_TPH_TYPE (cfg_interrupt_msi_tph_type[1:0]),
- .CFG_INTERRUPT_MSI_TPH_ST_TAG (cfg_interrupt_msi_tph_st_tag[8:0]),
- .CFG_INTERRUPT_MSI_FUNCTION_NUMBER(cfg_interrupt_msi_function_number[2:0]),
- .CFG_FC_SEL (cfg_fc_sel[2:0]),
- .PCIE_CQ_NP_REQ (pcie_cq_np_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready),
- .CFG_INTERRUPT_MSI_ENABLE (cfg_interrupt_msi_enable[1:0]),
- .CFG_INTERRUPT_MSI_MASK_UPDATE (cfg_interrupt_msi_mask_update),
- .CFG_INTERRUPT_MSI_DATA (cfg_interrupt_msi_data[31:0]),
- .CFG_INTERRUPT_MSI_SENT (cfg_interrupt_msi_sent),
- .CFG_INTERRUPT_MSI_FAIL (cfg_interrupt_msi_fail),
- .CFG_FC_CPLH (cfg_fc_cplh[7:0]),
- .CFG_FC_CPLD (cfg_fc_cpld[11:0]),
- .CFG_NEGOTIATED_WIDTH (cfg_negotiated_width[3:0]),
- .CFG_CURRENT_SPEED (cfg_current_speed[2:0]),
- .CFG_MAX_PAYLOAD (cfg_max_payload[2:0]),
- .CFG_MAX_READ_REQ (cfg_max_read_req[2:0]),
- .CFG_FUNCTION_STATUS (cfg_function_status[7:0]),
- .CFG_RCB_STATUS (cfg_rcb_status[1:0]),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl])
- /*AUTOINST*/);
- end
- endgenerate
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../../../riffa_hdl/" "../../")
-// End:
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/ip/PCIeGen1x8If64.xci b/fpga/xilinx/vcu108/VCU108_Gen1x8If64/ip/PCIeGen1x8If64.xci
deleted file mode 100644
index f1060e1..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/ip/PCIeGen1x8If64.xci
+++ /dev/null
@@ -1,729 +0,0 @@
-
-
- xilinx.com
- xci
- unknown
- 1.0
-
-
- PCIeGen1x8If64
-
-
- FALSE
- FALSE
- FALSE
- TRUE
- 0x00000
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- TRUE
- FALSE
- 16KB
- 1
- 64
- TRUE
- 0
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- NONE
- FALSE
- TRUE
- FALSE
- FALSE
- NONE
- 2
- 2.0
- FALSE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x03
- 0x4
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8018
- FALSE
- FALSE
- FALSE
- FALSE
- 0x0
- FALSE
- TRUE
- FALSE
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0
- TRUE
- 0x000
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0xC0
- 0x000
- 0x90
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0000
- 0x00000553
- 0x0000
- 0x0007
- 0x10EE
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0x10EE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8011
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- 0x000
- 0x00
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0001
- 0x00000553
- 0x0000
- 0x0007
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 4
- FALSE
- 0
- FALSE
- 1
- 8
- TRUE
- FALSE
- 0
- 0
- GTH_Quad_224
- 1
- 0x00000000
- FALSE
- 0
- 0x000
- 0x00
- 0x028
- 0x20
- 0x198
- 0x20
- FALSE
- FALSE
- 0x0
- FALSE
- FALSE
- 3
- 0x000
- 0x80
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- FALSE
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- ES2
- 0
- true
- false
- PCIeGen1x8If64
- 15
- false
- false
- 058000
- 8018
- false
- false
- false
- 00_Not_Supported
- false
- false
- NONE
- true
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- false
- false
- false
- false
- 00
- 0
- N/A
- 0000
- 00000553
- 0000
- 0007
- 10EE
- false
- false
- false
- 058000
- 8011
- NONE
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- 00
- 0
- 0
- N/A
- 0001
- 00000553
- 0000
- 0007
- false
- 4
- 2.5_GT/s
- X8
- 100_MHz
- Default
- 0
- 0
- false
- false
- 1
- false
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- DWORD_Aligned
- No_ASPM
- 250
- true
- 2FFFF
- false
- 64_bit
- false
- false
- true
- false
- true
- false
- 250
- true
- PCI_Express_Endpoint_device
- false
- false
- true
- false
- false
- false
- false
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- None
- Advanced
- X0Y0
- false
- Extreme
- false
- true
- false
- false
- true
- false
- Kilobytes
- 1
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- false
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- 0
- Generic_XT_compatible_serial_controller
- false
- false
- true
- false
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Generic_XT_compatible_serial_controller
- false
- false
- CPLL
- false
- GTH_Quad_224
- ACTIVE LOW
- None
- true
- false
- 10EE
- None
- virtexu
-
- xcvu095
- ffva2104
- VERILOG
- es2
- MIXED
- -2
- E
- TRUE
- TRUE
- IP_Flow
- 1
- TRUE
- .
-
- .
- 2015.4
- OUT_OF_CONTEXT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/prj/VCU108_Gen1x8If64.xpr b/fpga/xilinx/vcu108/VCU108_Gen1x8If64/prj/VCU108_Gen1x8If64.xpr
deleted file mode 100644
index f7f7de3..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen1x8If64/prj/VCU108_Gen1x8If64.xpr
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/Makefile b/fpga/xilinx/vcu108/VCU108_Gen2x8If128/Makefile
deleted file mode 100644
index d760cff..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=128
-TYPE=ultrascale
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/PCIeGen2x8If128.xci
diff --git a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/bit/VCU108_Gen2x8If128.bit b/fpga/xilinx/vcu108/VCU108_Gen2x8If128/bit/VCU108_Gen2x8If128.bit
deleted file mode 100644
index f688f55..0000000
Binary files a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/bit/VCU108_Gen2x8If128.bit and /dev/null differ
diff --git a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/constr/VCU108_Gen2x8If128.xdc b/fpga/xilinx/vcu108/VCU108_Gen2x8If128/constr/VCU108_Gen2x8If128.xdc
deleted file mode 100644
index e478e68..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/constr/VCU108_Gen2x8If128.xdc
+++ /dev/null
@@ -1,120 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#----------------------------------------------------------------------------
-# Filename: VCU108_Top.xdc
-# Version: 1.00.a
-# Verilog Standard: Verilog-2001
-# Description: Xilinx Design Constraints for the VCU108 board.
-# These constrain the PCIE_REFCLK, its DSBUF, LED Pins, and PCIE_RESET_N pin
-#
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------------
-#
-#########################################################################################################################
-# User Constraints
-#########################################################################################################################
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-set_property PACKAGE_PIN AT32 [get_ports {LED[0]}]
-set_property PACKAGE_PIN AV34 [get_ports {LED[1]}]
-set_property PACKAGE_PIN AY30 [get_ports {LED[2]}]
-set_property PACKAGE_PIN BB32 [get_ports {LED[3]}]
-set_property PACKAGE_PIN BF32 [get_ports {LED[4]}]
-set_property PACKAGE_PIN AV36 [get_ports {LED[5]}]
-set_property PACKAGE_PIN AY35 [get_ports {LED[6]}]
-set_property PACKAGE_PIN BA37 [get_ports {LED[7]}]
-
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[0]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[1]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[2]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[3]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[4]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[5]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[6]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[7]}]
-
-set_false_path -to [get_ports -filter NAME=~LED*]
-
-#########################################################################################################################
-# End User Constraints
-#########################################################################################################################
-#
-#
-#
-#########################################################################################################################
-# PCIE Core Constraints
-#########################################################################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-# Some 7 series devices do not have 3.3 V I/Os available.
-# Therefore the appropriate level shift is required to operate
-# with these devices that contain only 1.8 V banks.
-#
-
-set_property LOC [get_package_pins -filter {PIN_FUNC == IO_T3U_N12_PERSTN0_65}] [get_ports PCIE_RESET_N]
-set_property IOSTANDARD LVCMOS15 [get_ports PCIE_RESET_N]
-set_property PULLUP true [get_ports PCIE_RESET_N]
-
-#set_property LOC [get_package_pins -filter {PIN_FUNC == MGTREFCLK0P_225}] [get_ports refclk_ibuf]
-set_property LOC AN9 [get_cells refclk_ibuf]
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-create_clock -period 10.000 -name pcie_refclk [get_pins refclk_ibuf/O]
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-set_false_path -from [get_ports PCIE_RESET_N]
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/hdl/VCU108_Gen2x8If128.v b/fpga/xilinx/vcu108/VCU108_Gen2x8If128/hdl/VCU108_Gen2x8If128.v
deleted file mode 100644
index 09a39cb..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/hdl/VCU108_Gen2x8If128.v
+++ /dev/null
@@ -1,491 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: VCU108_Gen2x8If128.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx VCU108 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`timescale 1ps / 1ps
-module VCU108_Gen2x8If128
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 8,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 6)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
-
- output [7:0] LED,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- // Clocks, etc
- wire user_lnk_up;
- wire user_clk;
- wire user_reset;
- wire pcie_refclk;
- wire pcie_refclk_by2;
- wire pcie_reset_n;
-
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep;
- wire s_axis_rq_tready;
- wire s_axis_rq_tvalid;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser;
- wire m_axis_rc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep;
- wire m_axis_rc_tvalid;
- wire m_axis_rc_tready;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser;
- wire m_axis_cq_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep;
- wire m_axis_cq_tvalid;
- wire m_axis_cq_tready;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser;
- wire s_axis_cc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep;
- wire s_axis_cc_tvalid;
- wire s_axis_cc_tready;
-
- // Configuration (CFG) Interface
- wire [3:0] pcie_rq_seq_num;
- wire pcie_rq_seq_num_vld;
- wire [5:0] pcie_rq_tag;
- wire pcie_rq_tag_vld;
- wire pcie_cq_np_req;
- wire [5:0] pcie_cq_np_req_count;
-
- wire cfg_phy_link_down;
- wire [3:0] cfg_negotiated_width; // CONFIG_LINK_WIDTH
- wire [2:0] cfg_current_speed; // CONFIG_LINK_RATE
- wire [2:0] cfg_max_payload; // CONFIG_MAX_PAYLOAD
- wire [2:0] cfg_max_read_req; // CONFIG_MAX_READ_REQUEST
- wire [7:0] cfg_function_status; // [2] = CONFIG_BUS_MASTER_ENABLE
- wire [5:0] cfg_function_power_state; // Ignorable but not removable
- wire [11:0] cfg_vf_status; // Ignorable but not removable
- wire [17:0] cfg_vf_power_state; // Ignorable but not removable
- wire [1:0] cfg_link_power_state; // Ignorable but not removable
-
- // Error Reporting Interface
- wire cfg_err_cor_out;
- wire cfg_err_nonfatal_out;
- wire cfg_err_fatal_out;
-
- wire cfg_ltr_enable;
- wire [5:0] cfg_ltssm_state;
- wire [1:0] cfg_rcb_status;
- wire [1:0] cfg_dpa_substate_change;
- wire [1:0] cfg_obff_enable;
- wire cfg_pl_status_change;
-
- wire [1:0] cfg_tph_requester_enable;
- wire [5:0] cfg_tph_st_mode;
- wire [5:0] cfg_vf_tph_requester_enable;
- wire [17:0] cfg_vf_tph_st_mode;
- wire [7:0] cfg_fc_ph;
- wire [11:0] cfg_fc_pd;
- wire [7:0] cfg_fc_nph;
- wire [11:0] cfg_fc_npd;
- wire [7:0] cfg_fc_cplh;
- wire [11:0] cfg_fc_cpld;
- wire [2:0] cfg_fc_sel;
-
- // Interrupt Interface Signals
- wire [3:0] cfg_interrupt_int;
- wire [1:0] cfg_interrupt_pending;
- wire cfg_interrupt_sent;
- wire [1:0] cfg_interrupt_msi_enable;
- wire [5:0] cfg_interrupt_msi_vf_enable;
- wire [5:0] cfg_interrupt_msi_mmenable;
- wire cfg_interrupt_msi_mask_update;
- wire [31:0] cfg_interrupt_msi_data;
- wire [3:0] cfg_interrupt_msi_select;
- wire [31:0] cfg_interrupt_msi_int;
- wire [63:0] cfg_interrupt_msi_pending_status;
- wire cfg_interrupt_msi_sent;
- wire cfg_interrupt_msi_fail;
- wire [2:0] cfg_interrupt_msi_attr;
- wire cfg_interrupt_msi_tph_present;
- wire [1:0] cfg_interrupt_msi_tph_type;
- wire [8:0] cfg_interrupt_msi_tph_st_tag;
- wire [2:0] cfg_interrupt_msi_function_number;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
-
- IBUF
- #()
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTE3
- #()
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(pcie_refclk_by2),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- OBUF
- #()
- led_0_obuf
- (.O(LED[0]),
- .I(cfg_ltssm_state[0]));
- OBUF
- #()
- led_1_obuf
- (.O(LED[1]),
- .I(cfg_ltssm_state[1]));
- OBUF
- #()
- led_2_obuf
- (.O(LED[2]),
- .I(cfg_ltssm_state[2]));
- OBUF
- #()
- led_3_obuf
- (.O(LED[3]),
- .I(cfg_ltssm_state[3]));
- OBUF
- #()
- led_4_obuf
- (.O(LED[4]),
- .I(cfg_ltssm_state[4]));
- OBUF
- #()
- led_5_obuf
- (.O(LED[5]),
- .I(cfg_ltssm_state[5]));
- OBUF
- #()
- led_6_obuf
- (.O(LED[6]),
- .I(user_reset));
- OBUF
- #()
- led_7_obuf
- (.O(LED[7]),
- .I(rst_out));
-
- // Core Top Level Wrapper
- PCIeGen2x8If128
- #()
- pcie3_7x_0_i
- (//---------------------------------------------------------------------
- // PCI Express (pci_exp) Interface
- //---------------------------------------------------------------------
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- //---------------------------------------------------------------------
- // AXI Interface
- //---------------------------------------------------------------------
- .user_clk ( user_clk ),
- .user_reset ( user_reset ),
- .user_lnk_up ( user_lnk_up ),
-
- .s_axis_rq_tlast ( s_axis_rq_tlast ),
- .s_axis_rq_tdata ( s_axis_rq_tdata ),
- .s_axis_rq_tuser ( s_axis_rq_tuser ),
- .s_axis_rq_tkeep ( s_axis_rq_tkeep ),
- .s_axis_rq_tready ( s_axis_rq_tready ),
- .s_axis_rq_tvalid ( s_axis_rq_tvalid ),
-
- .m_axis_rc_tdata ( m_axis_rc_tdata ),
- .m_axis_rc_tuser ( m_axis_rc_tuser ),
- .m_axis_rc_tlast ( m_axis_rc_tlast ),
- .m_axis_rc_tkeep ( m_axis_rc_tkeep ),
- .m_axis_rc_tvalid ( m_axis_rc_tvalid ),
- .m_axis_rc_tready ( {22{m_axis_rc_tready}} ),
-
- .m_axis_cq_tdata ( m_axis_cq_tdata ),
- .m_axis_cq_tuser ( m_axis_cq_tuser ),
- .m_axis_cq_tlast ( m_axis_cq_tlast ),
- .m_axis_cq_tkeep ( m_axis_cq_tkeep ),
- .m_axis_cq_tvalid ( m_axis_cq_tvalid ),
- .m_axis_cq_tready ( {22{m_axis_cq_tready}} ),
-
- .s_axis_cc_tdata ( s_axis_cc_tdata ),
- .s_axis_cc_tuser ( s_axis_cc_tuser ),
- .s_axis_cc_tlast ( s_axis_cc_tlast ),
- .s_axis_cc_tkeep ( s_axis_cc_tkeep ),
- .s_axis_cc_tvalid ( s_axis_cc_tvalid ),
- .s_axis_cc_tready ( s_axis_cc_tready ),
-
- //---------------------------------------------------------------------
- // Configuration (CFG) Interface
- //---------------------------------------------------------------------
- .pcie_rq_seq_num ( pcie_rq_seq_num ),
- .pcie_rq_seq_num_vld ( pcie_rq_seq_num_vld ),
- .pcie_rq_tag ( pcie_rq_tag ),
- .pcie_rq_tag_vld ( pcie_rq_tag_vld ),
- .pcie_cq_np_req ( pcie_cq_np_req ),
- .pcie_cq_np_req_count ( pcie_cq_np_req_count ),
- .cfg_phy_link_down ( cfg_phy_link_down ),
- .cfg_phy_link_status ( cfg_phy_link_status),
- .cfg_negotiated_width ( cfg_negotiated_width ),
- .cfg_current_speed ( cfg_current_speed ),
- .cfg_max_payload ( cfg_max_payload ),
- .cfg_max_read_req ( cfg_max_read_req ),
- .cfg_function_status ( cfg_function_status ),
- .cfg_function_power_state ( cfg_function_power_state ),
- .cfg_vf_status ( cfg_vf_status ),
- .cfg_vf_power_state ( cfg_vf_power_state ),
- .cfg_link_power_state ( cfg_link_power_state ),
- // Error Reporting Interface
- .cfg_err_cor_out ( cfg_err_cor_out ),
- .cfg_err_nonfatal_out ( cfg_err_nonfatal_out ),
- .cfg_err_fatal_out ( cfg_err_fatal_out ),
- .cfg_ltr_enable ( cfg_ltr_enable ),
- .cfg_ltssm_state ( cfg_ltssm_state ),
- .cfg_rcb_status ( cfg_rcb_status ),
- .cfg_dpa_substate_change ( cfg_dpa_substate_change ),
- .cfg_obff_enable ( cfg_obff_enable ),
- .cfg_pl_status_change ( cfg_pl_status_change ),
- .cfg_tph_requester_enable ( cfg_tph_requester_enable ),
- .cfg_tph_st_mode ( cfg_tph_st_mode ),
- .cfg_vf_tph_requester_enable ( cfg_vf_tph_requester_enable ),
- .cfg_vf_tph_st_mode ( cfg_vf_tph_st_mode ),
- .cfg_fc_ph ( cfg_fc_ph ),
- .cfg_fc_pd ( cfg_fc_pd ),
- .cfg_fc_nph ( cfg_fc_nph ),
- .cfg_fc_npd ( cfg_fc_npd ),
- .cfg_fc_cplh ( cfg_fc_cplh ),
- .cfg_fc_cpld ( cfg_fc_cpld ),
- .cfg_fc_sel ( cfg_fc_sel ),
- //---------------------------------------------------------------------
- // EP Only
- //---------------------------------------------------------------------
- // Interrupt Interface Signals
- .cfg_interrupt_int ( cfg_interrupt_int ),
- .cfg_interrupt_pending ( cfg_interrupt_pending ),
- .cfg_interrupt_sent ( cfg_interrupt_sent ),
- .cfg_interrupt_msi_enable ( cfg_interrupt_msi_enable ),
- .cfg_interrupt_msi_vf_enable ( cfg_interrupt_msi_vf_enable ),
- .cfg_interrupt_msi_mmenable ( cfg_interrupt_msi_mmenable ),
- .cfg_interrupt_msi_mask_update ( cfg_interrupt_msi_mask_update ),
- .cfg_interrupt_msi_data ( cfg_interrupt_msi_data ),
- .cfg_interrupt_msi_select ( cfg_interrupt_msi_select ),
- .cfg_interrupt_msi_int ( cfg_interrupt_msi_int ),
- .cfg_interrupt_msi_pending_status ( cfg_interrupt_msi_pending_status ),
- .cfg_interrupt_msi_sent ( cfg_interrupt_msi_sent ),
- .cfg_interrupt_msi_fail ( cfg_interrupt_msi_fail ),
- .cfg_interrupt_msi_attr ( cfg_interrupt_msi_attr ),
- .cfg_interrupt_msi_tph_present ( cfg_interrupt_msi_tph_present ),
- .cfg_interrupt_msi_tph_type ( cfg_interrupt_msi_tph_type ),
- .cfg_interrupt_msi_tph_st_tag ( cfg_interrupt_msi_tph_st_tag ),
- .cfg_interrupt_msi_function_number ( cfg_interrupt_msi_function_number ),
- .cfg_interrupt_msi_pending_status_function_num ( 4'b0),
- .cfg_interrupt_msi_pending_status_data_enable ( 1'b0),
-
-
- //--------------------------------------------------------------------------------------//
- // Reset Pass Through Signals
- // - Only used for PCIe_X0Y0
- //--------------------------------------------------------------------------------------//
- .pcie_perstn0_out (),
- .pcie_perstn1_in (1'b0),
- .pcie_perstn1_out (),
-
- //---------------------------------------------------------------------
- // System(SYS) Interface
- //---------------------------------------------------------------------
- .sys_clk (pcie_refclk_by2),
- .sys_clk_gt (pcie_refclk),
- .sys_reset (pcie_reset_n));
-
- riffa_wrapper_vcu108
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready),
- .M_AXIS_RC_TREADY (m_axis_rc_tready),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser[`SIG_RQ_TUSER_W-1:0]),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CFG_INTERRUPT_INT (cfg_interrupt_int[3:0]),
- .CFG_INTERRUPT_PENDING (cfg_interrupt_pending[1:0]),
- .CFG_INTERRUPT_MSI_SELECT (cfg_interrupt_msi_select[3:0]),
- .CFG_INTERRUPT_MSI_INT (cfg_interrupt_msi_int[31:0]),
- .CFG_INTERRUPT_MSI_PENDING_STATUS(cfg_interrupt_msi_pending_status[63:0]),
- .CFG_INTERRUPT_MSI_ATTR (cfg_interrupt_msi_attr[2:0]),
- .CFG_INTERRUPT_MSI_TPH_PRESENT (cfg_interrupt_msi_tph_present),
- .CFG_INTERRUPT_MSI_TPH_TYPE (cfg_interrupt_msi_tph_type[1:0]),
- .CFG_INTERRUPT_MSI_TPH_ST_TAG (cfg_interrupt_msi_tph_st_tag[8:0]),
- .CFG_INTERRUPT_MSI_FUNCTION_NUMBER(cfg_interrupt_msi_function_number[2:0]),
- .CFG_FC_SEL (cfg_fc_sel[2:0]),
- .PCIE_CQ_NP_REQ (pcie_cq_np_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready),
- .CFG_INTERRUPT_MSI_ENABLE (cfg_interrupt_msi_enable[1:0]),
- .CFG_INTERRUPT_MSI_MASK_UPDATE (cfg_interrupt_msi_mask_update),
- .CFG_INTERRUPT_MSI_DATA (cfg_interrupt_msi_data[31:0]),
- .CFG_INTERRUPT_MSI_SENT (cfg_interrupt_msi_sent),
- .CFG_INTERRUPT_MSI_FAIL (cfg_interrupt_msi_fail),
- .CFG_FC_CPLH (cfg_fc_cplh[7:0]),
- .CFG_FC_CPLD (cfg_fc_cpld[11:0]),
- .CFG_NEGOTIATED_WIDTH (cfg_negotiated_width[3:0]),
- .CFG_CURRENT_SPEED (cfg_current_speed[2:0]),
- .CFG_MAX_PAYLOAD (cfg_max_payload[2:0]),
- .CFG_MAX_READ_REQ (cfg_max_read_req[2:0]),
- .CFG_FUNCTION_STATUS (cfg_function_status[7:0]),
- .CFG_RCB_STATUS (cfg_rcb_status[1:0]),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl])
- /*AUTOINST*/);
- end
- endgenerate
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../../../riffa_hdl/" "../../")
-// End:
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/ip/PCIeGen2x8If128.xci b/fpga/xilinx/vcu108/VCU108_Gen2x8If128/ip/PCIeGen2x8If128.xci
deleted file mode 100644
index 9b2c14a..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/ip/PCIeGen2x8If128.xci
+++ /dev/null
@@ -1,730 +0,0 @@
-
-
- xilinx.com
- xci
- unknown
- 1.0
-
-
- PCIeGen2x8If128
-
-
- FALSE
- FALSE
- FALSE
- TRUE
- 0x00000
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- TRUE
- FALSE
- 16KB
- 1
- 128
- TRUE
- 0
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- NONE
- FALSE
- TRUE
- FALSE
- FALSE
- NONE
- 3
- 2.0
- FALSE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x03
- 0x4
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8028
- FALSE
- FALSE
- FALSE
- FALSE
- 0x0
- FALSE
- TRUE
- FALSE
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0
- TRUE
- 0x000
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0xC0
- 0x000
- 0x90
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0000
- 0x00000553
- 0x0000
- 0x0007
- 0x10EE
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0x10EE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8011
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- 0x000
- 0x00
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0001
- 0x00000553
- 0x0000
- 0x0007
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 4
- FALSE
- 2
- FALSE
- 2
- 8
- TRUE
- FALSE
- 0
- 0
- GTH_Quad_224
- 1
- 0x00000000
- FALSE
- 0
- 0x000
- 0x00
- 0x028
- 0x20
- 0x198
- 0x20
- FALSE
- FALSE
- 0x0
- FALSE
- FALSE
- 3
- 0x000
- 0x80
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- FALSE
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- ES2
- 0
- true
- false
- PCIeGen2x8If128
- 15
- false
- false
- 058000
- 8028
- false
- false
- false
- 00_Not_Supported
- false
- false
- NONE
- true
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- false
- false
- false
- false
- 00
- 0
- N/A
- 0000
- 00000553
- 0000
- 0007
- 10EE
- false
- false
- false
- 058000
- 8011
- NONE
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- 00
- 0
- 0
- N/A
- 0001
- 00000553
- 0000
- 0007
- false
- 4
- 5.0_GT/s
- X8
- 100_MHz
- Default
- 0
- 0
- false
- false
- 1
- false
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- DWORD_Aligned
- No_ASPM
- 250
- true
- 2FFFF
- false
- 128_bit
- false
- false
- true
- false
- true
- false
- 250
- true
- PCI_Express_Endpoint_device
- false
- false
- true
- false
- false
- false
- false
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- None
- Advanced
- X0Y0
- false
- Extreme
- false
- true
- false
- false
- true
- false
- Kilobytes
- 1
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- false
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- 0
- Generic_XT_compatible_serial_controller
- false
- false
- true
- false
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Generic_XT_compatible_serial_controller
- false
- false
- QPLL1
- false
- GTH_Quad_224
- ACTIVE LOW
- None
- true
- false
- 10EE
- None
- virtexu
-
- xcvu095
- ffva2104
- VERILOG
- es2
- MIXED
- -2
- E
- TRUE
- TRUE
- IP_Flow
- 1
- TRUE
- .
-
- .
- 2015.4
- OUT_OF_CONTEXT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/prj/VCU108_Gen2x8If128.xpr b/fpga/xilinx/vcu108/VCU108_Gen2x8If128/prj/VCU108_Gen2x8If128.xpr
deleted file mode 100644
index 2728e15..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen2x8If128/prj/VCU108_Gen2x8If128.xpr
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/Makefile b/fpga/xilinx/vcu108/VCU108_Gen3x4If128/Makefile
deleted file mode 100644
index 5ddddf7..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: Makefile
-# Version: 1.0
-# Description: Project-level makefile for building an example project
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-# This make file expects the following variables to be set:
-# RIFFA_HDL_PATH -- Path to the riffa_hdl directory in the corresponding RIFFA directory.
-# BOARD_PATH -- Path to the $(BOARD) directory, the board this project corresponds to
-# BOARD_HDL -- A list of an board-specific HDL files not in the riffa_hdl directory
-WIDTH=128
-TYPE=ultrascale
-CURRENT_PATH := $(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
-PROJECT=$(shell basename $(CURRENT_PATH))
-
-ifndef RIFFA_HDL_PATH
- RIFFA_HDL_PATH:=../../../riffa_hdl
-endif
-ifndef BOARD_PATH
- BOARD_PATH:=..
-endif
-ifndef JOBS
- JOBS=1
-endif
-include $(RIFFA_HDL_PATH)/riffa.mk
-include $(BOARD_PATH)/board.mk
-
-PROJECT_IP+=ip/PCIeGen3x4If128.xci
diff --git a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/bit/VCU108_Gen3x4If128.bit b/fpga/xilinx/vcu108/VCU108_Gen3x4If128/bit/VCU108_Gen3x4If128.bit
deleted file mode 100644
index a312791..0000000
Binary files a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/bit/VCU108_Gen3x4If128.bit and /dev/null differ
diff --git a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/constr/VCU108_Gen3x4If128.xdc b/fpga/xilinx/vcu108/VCU108_Gen3x4If128/constr/VCU108_Gen3x4If128.xdc
deleted file mode 100644
index e478e68..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/constr/VCU108_Gen3x4If128.xdc
+++ /dev/null
@@ -1,120 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#----------------------------------------------------------------------------
-# Filename: VCU108_Top.xdc
-# Version: 1.00.a
-# Verilog Standard: Verilog-2001
-# Description: Xilinx Design Constraints for the VCU108 board.
-# These constrain the PCIE_REFCLK, its DSBUF, LED Pins, and PCIE_RESET_N pin
-#
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------------
-#
-#########################################################################################################################
-# User Constraints
-#########################################################################################################################
-
-###############################################################################
-# User Time Names / User Time Groups / Time Specs
-###############################################################################
-
-###############################################################################
-# User Physical Constraints
-###############################################################################
-
-set_property PACKAGE_PIN AT32 [get_ports {LED[0]}]
-set_property PACKAGE_PIN AV34 [get_ports {LED[1]}]
-set_property PACKAGE_PIN AY30 [get_ports {LED[2]}]
-set_property PACKAGE_PIN BB32 [get_ports {LED[3]}]
-set_property PACKAGE_PIN BF32 [get_ports {LED[4]}]
-set_property PACKAGE_PIN AV36 [get_ports {LED[5]}]
-set_property PACKAGE_PIN AY35 [get_ports {LED[6]}]
-set_property PACKAGE_PIN BA37 [get_ports {LED[7]}]
-
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[0]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[1]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[2]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[3]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[4]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[5]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[6]}]
-set_property IOSTANDARD LVCMOS18 [get_ports {LED[7]}]
-
-set_false_path -to [get_ports -filter NAME=~LED*]
-
-#########################################################################################################################
-# End User Constraints
-#########################################################################################################################
-#
-#
-#
-#########################################################################################################################
-# PCIE Core Constraints
-#########################################################################################################################
-
-#
-# SYS reset (input) signal. The sys_reset_n signal should be
-# obtained from the PCI Express interface if possible. For
-# slot based form factors, a system reset signal is usually
-# present on the connector. For cable based form factors, a
-# system reset signal may not be available. In this case, the
-# system reset signal must be generated locally by some form of
-# supervisory circuit. You may change the IOSTANDARD and LOC
-# to suit your requirements and VCCO voltage banking rules.
-# Some 7 series devices do not have 3.3 V I/Os available.
-# Therefore the appropriate level shift is required to operate
-# with these devices that contain only 1.8 V banks.
-#
-
-set_property LOC [get_package_pins -filter {PIN_FUNC == IO_T3U_N12_PERSTN0_65}] [get_ports PCIE_RESET_N]
-set_property IOSTANDARD LVCMOS15 [get_ports PCIE_RESET_N]
-set_property PULLUP true [get_ports PCIE_RESET_N]
-
-#set_property LOC [get_package_pins -filter {PIN_FUNC == MGTREFCLK0P_225}] [get_ports refclk_ibuf]
-set_property LOC AN9 [get_cells refclk_ibuf]
-
-###############################################################################
-# Timing Constraints
-###############################################################################
-create_clock -period 10.000 -name pcie_refclk [get_pins refclk_ibuf/O]
-
-###############################################################################
-# Physical Constraints
-###############################################################################
-
-set_false_path -from [get_ports PCIE_RESET_N]
-###############################################################################
-# End
-###############################################################################
diff --git a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/hdl/VCU108_Gen3x4If128.v b/fpga/xilinx/vcu108/VCU108_Gen3x4If128/hdl/VCU108_Gen3x4If128.v
deleted file mode 100644
index e9de990..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/hdl/VCU108_Gen3x4If128.v
+++ /dev/null
@@ -1,491 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: VCU108_Gen3x4If128.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: Top level module for RIFFA 2.2 reference design for the
-// the Xilinx VCU108 Development Board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "functions.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`timescale 1ps / 1ps
-module VCU108_Gen3x4If128
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Number of PCIe Lanes
- parameter C_NUM_LANES = 4,
- // Settings from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 6)
- (output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXP,
- output [(C_NUM_LANES - 1) : 0] PCI_EXP_TXN,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXP,
- input [(C_NUM_LANES - 1) : 0] PCI_EXP_RXN,
-
- output [7:0] LED,
- input PCIE_REFCLK_P,
- input PCIE_REFCLK_N,
- input PCIE_RESET_N);
-
- // Clocks, etc
- wire user_lnk_up;
- wire user_clk;
- wire user_reset;
- wire pcie_refclk;
- wire pcie_refclk_by2;
- wire pcie_reset_n;
-
- // Interface: RQ (TXC)
- wire s_axis_rq_tlast;
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_rq_tdata;
- wire [`SIG_RQ_TUSER_W-1:0] s_axis_rq_tuser;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_rq_tkeep;
- wire s_axis_rq_tready;
- wire s_axis_rq_tvalid;
- // Interface: RC (RXC)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_rc_tdata;
- wire [`SIG_RC_TUSER_W-1:0] m_axis_rc_tuser;
- wire m_axis_rc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_rc_tkeep;
- wire m_axis_rc_tvalid;
- wire m_axis_rc_tready;
- // Interface: CQ (RXR)
- wire [C_PCI_DATA_WIDTH-1:0] m_axis_cq_tdata;
- wire [`SIG_CQ_TUSER_W-1:0] m_axis_cq_tuser;
- wire m_axis_cq_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] m_axis_cq_tkeep;
- wire m_axis_cq_tvalid;
- wire m_axis_cq_tready;
- // Interface: CC (TXC)
- wire [C_PCI_DATA_WIDTH-1:0] s_axis_cc_tdata;
- wire [`SIG_CC_TUSER_W-1:0] s_axis_cc_tuser;
- wire s_axis_cc_tlast;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] s_axis_cc_tkeep;
- wire s_axis_cc_tvalid;
- wire s_axis_cc_tready;
-
- // Configuration (CFG) Interface
- wire [3:0] pcie_rq_seq_num;
- wire pcie_rq_seq_num_vld;
- wire [5:0] pcie_rq_tag;
- wire pcie_rq_tag_vld;
- wire pcie_cq_np_req;
- wire [5:0] pcie_cq_np_req_count;
-
- wire cfg_phy_link_down;
- wire [3:0] cfg_negotiated_width; // CONFIG_LINK_WIDTH
- wire [2:0] cfg_current_speed; // CONFIG_LINK_RATE
- wire [2:0] cfg_max_payload; // CONFIG_MAX_PAYLOAD
- wire [2:0] cfg_max_read_req; // CONFIG_MAX_READ_REQUEST
- wire [7:0] cfg_function_status; // [2] = CONFIG_BUS_MASTER_ENABLE
- wire [5:0] cfg_function_power_state; // Ignorable but not removable
- wire [11:0] cfg_vf_status; // Ignorable but not removable
- wire [17:0] cfg_vf_power_state; // Ignorable but not removable
- wire [1:0] cfg_link_power_state; // Ignorable but not removable
-
- // Error Reporting Interface
- wire cfg_err_cor_out;
- wire cfg_err_nonfatal_out;
- wire cfg_err_fatal_out;
-
- wire cfg_ltr_enable;
- wire [5:0] cfg_ltssm_state;
- wire [1:0] cfg_rcb_status;
- wire [1:0] cfg_dpa_substate_change;
- wire [1:0] cfg_obff_enable;
- wire cfg_pl_status_change;
-
- wire [1:0] cfg_tph_requester_enable;
- wire [5:0] cfg_tph_st_mode;
- wire [5:0] cfg_vf_tph_requester_enable;
- wire [17:0] cfg_vf_tph_st_mode;
- wire [7:0] cfg_fc_ph;
- wire [11:0] cfg_fc_pd;
- wire [7:0] cfg_fc_nph;
- wire [11:0] cfg_fc_npd;
- wire [7:0] cfg_fc_cplh;
- wire [11:0] cfg_fc_cpld;
- wire [2:0] cfg_fc_sel;
-
- // Interrupt Interface Signals
- wire [3:0] cfg_interrupt_int;
- wire [1:0] cfg_interrupt_pending;
- wire cfg_interrupt_sent;
- wire [1:0] cfg_interrupt_msi_enable;
- wire [5:0] cfg_interrupt_msi_vf_enable;
- wire [5:0] cfg_interrupt_msi_mmenable;
- wire cfg_interrupt_msi_mask_update;
- wire [31:0] cfg_interrupt_msi_data;
- wire [3:0] cfg_interrupt_msi_select;
- wire [31:0] cfg_interrupt_msi_int;
- wire [63:0] cfg_interrupt_msi_pending_status;
- wire cfg_interrupt_msi_sent;
- wire cfg_interrupt_msi_fail;
- wire [2:0] cfg_interrupt_msi_attr;
- wire cfg_interrupt_msi_tph_present;
- wire [1:0] cfg_interrupt_msi_tph_type;
- wire [8:0] cfg_interrupt_msi_tph_st_tag;
- wire [2:0] cfg_interrupt_msi_function_number;
-
- wire rst_out;
- wire [C_NUM_CHNL-1:0] chnl_rx_clk;
- wire [C_NUM_CHNL-1:0] chnl_rx;
- wire [C_NUM_CHNL-1:0] chnl_rx_ack;
- wire [C_NUM_CHNL-1:0] chnl_rx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_rx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_rx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_rx_data;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_rx_data_ren;
-
- wire [C_NUM_CHNL-1:0] chnl_tx_clk;
- wire [C_NUM_CHNL-1:0] chnl_tx;
- wire [C_NUM_CHNL-1:0] chnl_tx_ack;
- wire [C_NUM_CHNL-1:0] chnl_tx_last;
- wire [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] chnl_tx_len;
- wire [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] chnl_tx_off;
- wire [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] chnl_tx_data;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_valid;
- wire [C_NUM_CHNL-1:0] chnl_tx_data_ren;
-
- genvar chnl;
-
- IBUF
- #()
- pci_reset_n_ibuf
- (.O(pcie_reset_n),
- .I(PCIE_RESET_N));
-
- IBUFDS_GTE3
- #()
- refclk_ibuf
- (.O(pcie_refclk),
- .ODIV2(pcie_refclk_by2),
- .I(PCIE_REFCLK_P),
- .CEB(1'b0),
- .IB(PCIE_REFCLK_N));
-
- OBUF
- #()
- led_0_obuf
- (.O(LED[0]),
- .I(cfg_ltssm_state[0]));
- OBUF
- #()
- led_1_obuf
- (.O(LED[1]),
- .I(cfg_ltssm_state[1]));
- OBUF
- #()
- led_2_obuf
- (.O(LED[2]),
- .I(cfg_ltssm_state[2]));
- OBUF
- #()
- led_3_obuf
- (.O(LED[3]),
- .I(cfg_ltssm_state[3]));
- OBUF
- #()
- led_4_obuf
- (.O(LED[4]),
- .I(cfg_ltssm_state[4]));
- OBUF
- #()
- led_5_obuf
- (.O(LED[5]),
- .I(cfg_ltssm_state[5]));
- OBUF
- #()
- led_6_obuf
- (.O(LED[6]),
- .I(user_reset));
- OBUF
- #()
- led_7_obuf
- (.O(LED[7]),
- .I(rst_out));
-
- // Core Top Level Wrapper
- PCIeGen3x4If128
- #()
- pcie3_7x_0_i
- (//---------------------------------------------------------------------
- // PCI Express (pci_exp) Interface
- //---------------------------------------------------------------------
- .pci_exp_txn ( PCI_EXP_TXN ),
- .pci_exp_txp ( PCI_EXP_TXP ),
- .pci_exp_rxn ( PCI_EXP_RXN ),
- .pci_exp_rxp ( PCI_EXP_RXP ),
-
- //---------------------------------------------------------------------
- // AXI Interface
- //---------------------------------------------------------------------
- .user_clk ( user_clk ),
- .user_reset ( user_reset ),
- .user_lnk_up ( user_lnk_up ),
-
- .s_axis_rq_tlast ( s_axis_rq_tlast ),
- .s_axis_rq_tdata ( s_axis_rq_tdata ),
- .s_axis_rq_tuser ( s_axis_rq_tuser ),
- .s_axis_rq_tkeep ( s_axis_rq_tkeep ),
- .s_axis_rq_tready ( s_axis_rq_tready ),
- .s_axis_rq_tvalid ( s_axis_rq_tvalid ),
-
- .m_axis_rc_tdata ( m_axis_rc_tdata ),
- .m_axis_rc_tuser ( m_axis_rc_tuser ),
- .m_axis_rc_tlast ( m_axis_rc_tlast ),
- .m_axis_rc_tkeep ( m_axis_rc_tkeep ),
- .m_axis_rc_tvalid ( m_axis_rc_tvalid ),
- .m_axis_rc_tready ( {22{m_axis_rc_tready}} ),
-
- .m_axis_cq_tdata ( m_axis_cq_tdata ),
- .m_axis_cq_tuser ( m_axis_cq_tuser ),
- .m_axis_cq_tlast ( m_axis_cq_tlast ),
- .m_axis_cq_tkeep ( m_axis_cq_tkeep ),
- .m_axis_cq_tvalid ( m_axis_cq_tvalid ),
- .m_axis_cq_tready ( {22{m_axis_cq_tready}} ),
-
- .s_axis_cc_tdata ( s_axis_cc_tdata ),
- .s_axis_cc_tuser ( s_axis_cc_tuser ),
- .s_axis_cc_tlast ( s_axis_cc_tlast ),
- .s_axis_cc_tkeep ( s_axis_cc_tkeep ),
- .s_axis_cc_tvalid ( s_axis_cc_tvalid ),
- .s_axis_cc_tready ( s_axis_cc_tready ),
-
- //---------------------------------------------------------------------
- // Configuration (CFG) Interface
- //---------------------------------------------------------------------
- .pcie_rq_seq_num ( pcie_rq_seq_num ),
- .pcie_rq_seq_num_vld ( pcie_rq_seq_num_vld ),
- .pcie_rq_tag ( pcie_rq_tag ),
- .pcie_rq_tag_vld ( pcie_rq_tag_vld ),
- .pcie_cq_np_req ( pcie_cq_np_req ),
- .pcie_cq_np_req_count ( pcie_cq_np_req_count ),
- .cfg_phy_link_down ( cfg_phy_link_down ),
- .cfg_phy_link_status ( cfg_phy_link_status),
- .cfg_negotiated_width ( cfg_negotiated_width ),
- .cfg_current_speed ( cfg_current_speed ),
- .cfg_max_payload ( cfg_max_payload ),
- .cfg_max_read_req ( cfg_max_read_req ),
- .cfg_function_status ( cfg_function_status ),
- .cfg_function_power_state ( cfg_function_power_state ),
- .cfg_vf_status ( cfg_vf_status ),
- .cfg_vf_power_state ( cfg_vf_power_state ),
- .cfg_link_power_state ( cfg_link_power_state ),
- // Error Reporting Interface
- .cfg_err_cor_out ( cfg_err_cor_out ),
- .cfg_err_nonfatal_out ( cfg_err_nonfatal_out ),
- .cfg_err_fatal_out ( cfg_err_fatal_out ),
- .cfg_ltr_enable ( cfg_ltr_enable ),
- .cfg_ltssm_state ( cfg_ltssm_state ),
- .cfg_rcb_status ( cfg_rcb_status ),
- .cfg_dpa_substate_change ( cfg_dpa_substate_change ),
- .cfg_obff_enable ( cfg_obff_enable ),
- .cfg_pl_status_change ( cfg_pl_status_change ),
- .cfg_tph_requester_enable ( cfg_tph_requester_enable ),
- .cfg_tph_st_mode ( cfg_tph_st_mode ),
- .cfg_vf_tph_requester_enable ( cfg_vf_tph_requester_enable ),
- .cfg_vf_tph_st_mode ( cfg_vf_tph_st_mode ),
- .cfg_fc_ph ( cfg_fc_ph ),
- .cfg_fc_pd ( cfg_fc_pd ),
- .cfg_fc_nph ( cfg_fc_nph ),
- .cfg_fc_npd ( cfg_fc_npd ),
- .cfg_fc_cplh ( cfg_fc_cplh ),
- .cfg_fc_cpld ( cfg_fc_cpld ),
- .cfg_fc_sel ( cfg_fc_sel ),
- //---------------------------------------------------------------------
- // EP Only
- //---------------------------------------------------------------------
- // Interrupt Interface Signals
- .cfg_interrupt_int ( cfg_interrupt_int ),
- .cfg_interrupt_pending ( cfg_interrupt_pending ),
- .cfg_interrupt_sent ( cfg_interrupt_sent ),
- .cfg_interrupt_msi_enable ( cfg_interrupt_msi_enable ),
- .cfg_interrupt_msi_vf_enable ( cfg_interrupt_msi_vf_enable ),
- .cfg_interrupt_msi_mmenable ( cfg_interrupt_msi_mmenable ),
- .cfg_interrupt_msi_mask_update ( cfg_interrupt_msi_mask_update ),
- .cfg_interrupt_msi_data ( cfg_interrupt_msi_data ),
- .cfg_interrupt_msi_select ( cfg_interrupt_msi_select ),
- .cfg_interrupt_msi_int ( cfg_interrupt_msi_int ),
- .cfg_interrupt_msi_pending_status ( cfg_interrupt_msi_pending_status ),
- .cfg_interrupt_msi_sent ( cfg_interrupt_msi_sent ),
- .cfg_interrupt_msi_fail ( cfg_interrupt_msi_fail ),
- .cfg_interrupt_msi_attr ( cfg_interrupt_msi_attr ),
- .cfg_interrupt_msi_tph_present ( cfg_interrupt_msi_tph_present ),
- .cfg_interrupt_msi_tph_type ( cfg_interrupt_msi_tph_type ),
- .cfg_interrupt_msi_tph_st_tag ( cfg_interrupt_msi_tph_st_tag ),
- .cfg_interrupt_msi_function_number ( cfg_interrupt_msi_function_number ),
- .cfg_interrupt_msi_pending_status_function_num ( 4'b0),
- .cfg_interrupt_msi_pending_status_data_enable ( 1'b0),
-
-
- //--------------------------------------------------------------------------------------//
- // Reset Pass Through Signals
- // - Only used for PCIe_X0Y0
- //--------------------------------------------------------------------------------------//
- .pcie_perstn0_out (),
- .pcie_perstn1_in (1'b0),
- .pcie_perstn1_out (),
-
- //---------------------------------------------------------------------
- // System(SYS) Interface
- //---------------------------------------------------------------------
- .sys_clk (pcie_refclk_by2),
- .sys_clk_gt (pcie_refclk),
- .sys_reset (pcie_reset_n));
-
- riffa_wrapper_vcu108
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_MAX_PAYLOAD_BYTES (C_MAX_PAYLOAD_BYTES))
- riffa
- (// Outputs
- .M_AXIS_CQ_TREADY (m_axis_cq_tready),
- .M_AXIS_RC_TREADY (m_axis_rc_tready),
- .S_AXIS_CC_TVALID (s_axis_cc_tvalid),
- .S_AXIS_CC_TLAST (s_axis_cc_tlast),
- .S_AXIS_CC_TDATA (s_axis_cc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (s_axis_cc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (s_axis_cc_tuser[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (s_axis_rq_tvalid),
- .S_AXIS_RQ_TLAST (s_axis_rq_tlast),
- .S_AXIS_RQ_TDATA (s_axis_rq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (s_axis_rq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (s_axis_rq_tuser[`SIG_RQ_TUSER_W-1:0]),
- .USER_CLK (user_clk),
- .USER_RESET (user_reset),
- .CFG_INTERRUPT_INT (cfg_interrupt_int[3:0]),
- .CFG_INTERRUPT_PENDING (cfg_interrupt_pending[1:0]),
- .CFG_INTERRUPT_MSI_SELECT (cfg_interrupt_msi_select[3:0]),
- .CFG_INTERRUPT_MSI_INT (cfg_interrupt_msi_int[31:0]),
- .CFG_INTERRUPT_MSI_PENDING_STATUS(cfg_interrupt_msi_pending_status[63:0]),
- .CFG_INTERRUPT_MSI_ATTR (cfg_interrupt_msi_attr[2:0]),
- .CFG_INTERRUPT_MSI_TPH_PRESENT (cfg_interrupt_msi_tph_present),
- .CFG_INTERRUPT_MSI_TPH_TYPE (cfg_interrupt_msi_tph_type[1:0]),
- .CFG_INTERRUPT_MSI_TPH_ST_TAG (cfg_interrupt_msi_tph_st_tag[8:0]),
- .CFG_INTERRUPT_MSI_FUNCTION_NUMBER(cfg_interrupt_msi_function_number[2:0]),
- .CFG_FC_SEL (cfg_fc_sel[2:0]),
- .PCIE_CQ_NP_REQ (pcie_cq_np_req),
- .RST_OUT (rst_out),
- .CHNL_RX (chnl_rx[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (chnl_rx_last[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (chnl_rx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_RX_OFF (chnl_rx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_RX_DATA (chnl_rx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (chnl_rx_data_valid[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (chnl_tx_ack[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (chnl_tx_data_ren[C_NUM_CHNL-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (m_axis_cq_tvalid),
- .M_AXIS_CQ_TLAST (m_axis_cq_tlast),
- .M_AXIS_CQ_TDATA (m_axis_cq_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (m_axis_cq_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (m_axis_cq_tuser[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (m_axis_rc_tvalid),
- .M_AXIS_RC_TLAST (m_axis_rc_tlast),
- .M_AXIS_RC_TDATA (m_axis_rc_tdata[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (m_axis_rc_tkeep[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (m_axis_rc_tuser[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (s_axis_cc_tready),
- .S_AXIS_RQ_TREADY (s_axis_rq_tready),
- .CFG_INTERRUPT_MSI_ENABLE (cfg_interrupt_msi_enable[1:0]),
- .CFG_INTERRUPT_MSI_MASK_UPDATE (cfg_interrupt_msi_mask_update),
- .CFG_INTERRUPT_MSI_DATA (cfg_interrupt_msi_data[31:0]),
- .CFG_INTERRUPT_MSI_SENT (cfg_interrupt_msi_sent),
- .CFG_INTERRUPT_MSI_FAIL (cfg_interrupt_msi_fail),
- .CFG_FC_CPLH (cfg_fc_cplh[7:0]),
- .CFG_FC_CPLD (cfg_fc_cpld[11:0]),
- .CFG_NEGOTIATED_WIDTH (cfg_negotiated_width[3:0]),
- .CFG_CURRENT_SPEED (cfg_current_speed[2:0]),
- .CFG_MAX_PAYLOAD (cfg_max_payload[2:0]),
- .CFG_MAX_READ_REQ (cfg_max_read_req[2:0]),
- .CFG_FUNCTION_STATUS (cfg_function_status[7:0]),
- .CFG_RCB_STATUS (cfg_rcb_status[1:0]),
- .CHNL_RX_CLK (chnl_rx_clk[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (chnl_rx_ack[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (chnl_rx_data_ren[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (chnl_tx_clk[C_NUM_CHNL-1:0]),
- .CHNL_TX (chnl_tx[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (chnl_tx_last[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (chnl_tx_len[(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0]),
- .CHNL_TX_OFF (chnl_tx_off[(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0]),
- .CHNL_TX_DATA (chnl_tx_data[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (chnl_tx_data_valid[C_NUM_CHNL-1:0]));
-
- generate
- for (chnl = 0; chnl < C_NUM_CHNL; chnl = chnl + 1) begin : test_channels
- chnl_tester
- #(/*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH))
- module1
- (.CLK(user_clk),
- .RST(rst_out), // riffa_reset includes riffa_endpoint resets
- // Rx interface
- .CHNL_RX_CLK(chnl_rx_clk[chnl]),
- .CHNL_RX(chnl_rx[chnl]),
- .CHNL_RX_ACK(chnl_rx_ack[chnl]),
- .CHNL_RX_LAST(chnl_rx_last[chnl]),
- .CHNL_RX_LEN(chnl_rx_len[32*chnl +:32]),
- .CHNL_RX_OFF(chnl_rx_off[31*chnl +:31]),
- .CHNL_RX_DATA(chnl_rx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_RX_DATA_VALID(chnl_rx_data_valid[chnl]),
- .CHNL_RX_DATA_REN(chnl_rx_data_ren[chnl]),
- // Tx interface
- .CHNL_TX_CLK(chnl_tx_clk[chnl]),
- .CHNL_TX(chnl_tx[chnl]),
- .CHNL_TX_ACK(chnl_tx_ack[chnl]),
- .CHNL_TX_LAST(chnl_tx_last[chnl]),
- .CHNL_TX_LEN(chnl_tx_len[32*chnl +:32]),
- .CHNL_TX_OFF(chnl_tx_off[31*chnl +:31]),
- .CHNL_TX_DATA(chnl_tx_data[C_PCI_DATA_WIDTH*chnl +:C_PCI_DATA_WIDTH]),
- .CHNL_TX_DATA_VALID(chnl_tx_data_valid[chnl]),
- .CHNL_TX_DATA_REN(chnl_tx_data_ren[chnl])
- /*AUTOINST*/);
- end
- endgenerate
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../../../riffa_hdl/" "../../")
-// End:
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/ip/PCIeGen3x4If128.xci b/fpga/xilinx/vcu108/VCU108_Gen3x4If128/ip/PCIeGen3x4If128.xci
deleted file mode 100644
index 6a1d41b..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/ip/PCIeGen3x4If128.xci
+++ /dev/null
@@ -1,730 +0,0 @@
-
-
- xilinx.com
- xci
- unknown
- 1.0
-
-
- PCIeGen3x4If128
-
-
- FALSE
- FALSE
- FALSE
- TRUE
- 0x00000
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- TRUE
- FALSE
- TRUE
- FALSE
- 16KB
- 1
- 128
- TRUE
- 0
- FALSE
- FALSE
- FALSE
- FALSE
- 0x000
- NONE
- FALSE
- TRUE
- FALSE
- FALSE
- NONE
- 3
- 2.0
- FALSE
- FALSE
- FALSE
- 0x300
- 0x000
- 0x00
- 0x03
- 0x4
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8034
- FALSE
- FALSE
- FALSE
- FALSE
- 0x0
- FALSE
- TRUE
- FALSE
- 0x2
- 0x300
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x300
- 0x00
- FALSE
- 0x0
- 0
- TRUE
- 0x300
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0xC0
- 0x274
- 0x90
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- 0x300
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x300
- 0x0000
- 0x0
- 0x0000
- 0x0000
- 0x00000553
- 0x0000
- 0x0007
- 0x10EE
- TRUE
- FALSE
- FALSE
- 0x300
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0x10EE
- FALSE
- FALSE
- 0x000
- 0x000
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x80
- 0x058000
- 0x8011
- 0x2
- 0x000
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x00
- 0x000
- 0x00
- FALSE
- 0x0
- 0x00
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- 0x000
- 0x00
- FALSE
- 0x000
- 0x00000
- 0x00000
- 0x00000
- 0x00
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x00
- 0x0
- 0x0000
- 0x000
- 0x0000
- 0x0
- 0x0000
- 0x0001
- 0x00000553
- 0x0000
- 0x0007
- TRUE
- FALSE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 4
- FALSE
- 2
- FALSE
- 4
- 4
- TRUE
- FALSE
- 0
- 0
- GTH_Quad_224
- 1
- 0x00000000
- FALSE
- 0
- 0x000
- 0x00
- 0x028
- 0x20
- 0x198
- 0x20
- FALSE
- FALSE
- 0x0
- FALSE
- FALSE
- 3
- 0x000
- 0x80
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- 0x000
- 0
- 0x00000000
- 0
- 0x00000000
- 0x000
- 0
- 0x00
- TRUE
- FALSE
- 0x000
- 0x0
- 0x0
- 0x000
- 0x1
- FALSE
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- ES2
- 0
- true
- false
- PCIeGen3x4If128
- 15
- false
- false
- 058000
- 8034
- false
- false
- false
- 00_Not_Supported
- false
- false
- NONE
- true
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- false
- false
- false
- false
- 00
- 0
- N/A
- 0000
- 00000553
- 0000
- 0007
- 10EE
- false
- false
- false
- 058000
- 8011
- NONE
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- 00
- 0
- 0
- N/A
- 0001
- 00000553
- 0000
- 0007
- false
- 4
- 8.0_GT/s
- X4
- 100_MHz
- Default
- 0
- 0
- false
- false
- 1
- false
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- BAR_0
- 00000000
- BAR_0
- 00000000
- 000
- 1_vector
- DWORD_Aligned
- No_ASPM
- 250
- true
- 2FFFF
- false
- 128_bit
- false
- false
- true
- false
- true
- false
- 250
- true
- PCI_Express_Endpoint_device
- false
- false
- true
- false
- false
- false
- false
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- None
- Advanced
- X0Y0
- false
- Extreme
- false
- true
- false
- false
- true
- false
- Kilobytes
- 1
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- false
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- 0
- Generic_XT_compatible_serial_controller
- false
- false
- true
- false
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Simple_communication_controllers
- 05
- 00
- 80
- 512_bytes
- false
- false
- false
- Kilobytes
- 2
- true
- false
- false
- false
- false
- true
- false
- Kilobytes
- 2
- Memory
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- false
- Kilobytes
- 2
- N/A
- false
- false
- Kilobytes
- 2
- N/A
- Generic_XT_compatible_serial_controller
- false
- false
- QPLL1
- false
- GTH_Quad_224
- ACTIVE LOW
- None
- true
- false
- 10EE
- None
- virtexu
-
- xcvu095
- ffva2104
- VERILOG
- es2
- MIXED
- -2
- E
- TRUE
- TRUE
- IP_Flow
- 1
- TRUE
- .
-
- .
- 2015.4
- OUT_OF_CONTEXT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/prj/VCU108_Gen3x4If128.xpr b/fpga/xilinx/vcu108/VCU108_Gen3x4If128/prj/VCU108_Gen3x4If128.xpr
deleted file mode 100644
index a7104d1..0000000
--- a/fpga/xilinx/vcu108/VCU108_Gen3x4If128/prj/VCU108_Gen3x4If128.xpr
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/fpga/xilinx/vcu108/board.mk b/fpga/xilinx/vcu108/board.mk
deleted file mode 100644
index 0d6b7bf..0000000
--- a/fpga/xilinx/vcu108/board.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-# ----------------------------------------------------------------------
-# Copyright (c) 2016, The Regents of the University of California All
-# rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# * Neither the name of The Regents of the University of California
-# nor the names of its contributors may be used to endorse or
-# promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-# UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-# ----------------------------------------------------------------------
-#-----------------------------------------------------------------------
-# Filename: board.mk
-# Version: 1.0
-# Description: Board-specific include makefile
-# Author: Dustin Richmond (@darichmond)
-#-----------------------------------------------------------------------
-include $(RIFFA_ROOT_PATH)/release.mk
-.DEFAULT_GOAL=all
-
-BOARD_HDL:= $(BOARD_PATH)/riffa_wrapper_$(BOARD).v
-
-PROJECT_IP=
-PROJECT_BIT:= bit/$(PROJECT).bit
-PROJECT_HDL=hdl/$(PROJECT).v $(BOARD_HDL) $(patsubst %, $(RIFFA_HDL_PATH)/%,$(RIFFA_HDL))
-PROJECT_CONSTR=constr/$(PROJECT).xdc
-PROJECT_FILE=prj/$(PROJECT).xpr
-PROJECT_FILES=$(PROJECT_IP) $(PROJECT_CONSTR) $(PROJECT_QSRCS) $(PROJECT_HDL)
-
-RELEASE_BIT:=$(PROJECT_BIT)
-RELEASE_IP=$(PROJECT_IP) # Note the difference between this and the other assignments (Projects add their own IP)
-RELEASE_HDL:=hdl/$(PROJECT).v
-RELEASE_CONSTR:=$(PROJECT_CONSTR)
-RELEASE_FILE:=$(PROJECT_FILE)
-RELEASE_PROJECT_PATH:=$(RELEASE_SRC_PATH)/fpga/$(VENDOR)/$(BOARD)/$(PROJECT)
-copy-files = $(foreach file, $1, cp $(file) $2;)
-
-.PHONY:$(PROJECT) all synthesis implementation clean clobber $(TYPE) $(VENDOR) $(BOARD)
-$(PROJECT): $(PROJECT_BIT)
- @echo Compiling Project $@
-
-$(PROJECT_BIT): $(PROJECT_FILES)
- echo "launch_runs impl_1 -to_step write_bitstream -jobs $(JOBS); wait_on_run impl_1" | vivado -mode tcl prj/$(PROJECT).xpr
- mv prj/$(PROJECT).runs/impl_1/$(PROJECT).bit bit/
-
-synthesis: prj/$(PROJECT).runs/synth_1
-prj/$(PROJECT).runs/synth_1: $(PROJECT_FILES)
- echo "launch_runs synth_1 -jobs $(JOBS); wait_on_run synth_1" | vivado -mode tcl prj/$(PROJECT).xpr
-
-implementation:prj/$(PROJECT).runs/impl_1
-prj/$(PROJECT).runs/impl_1: $(PROJECT_FILES)
- echo "launch_runs impl_1 -jobs $(JOBS); wait_on_run impl1" | vivado -mode tcl prj/$(PROJECT).xpr
-
-all $(TYPE) $(VENDOR) $(BOARD):$(PROJECT)
-clean:
- echo "reset_run impl_1; reset_run synth_1;" | vivado -mode tcl prj/$(PROJECT).xpr
- rm -rf *.log *.jou *~ .Xil
- rm -rf ip/doc ip/sim ip/source ip/synth ip/*.dcp ip/*.v ip/*.xml ip/*.vhdl ip/*.veo ip/*~
- rm -rf prj/*.hw prj/*.runs prj/*.cache prj/*~
-
-clobber:
- rm -rf $(PROJECT_BIT)
-
-destination: $(RELEASE_PROJECT_PATH)
- mkdir $(RELEASE_PROJECT_PATH)/bit
- mkdir $(RELEASE_PROJECT_PATH)/constr
- mkdir $(RELEASE_PROJECT_PATH)/ip
- mkdir $(RELEASE_PROJECT_PATH)/hdl
- mkdir $(RELEASE_PROJECT_PATH)/prj
-
-$(RELEASE_PROJECT_PATH): check-release-src
- mkdir $@
-
-release:check-release-src destination
- $(call copy-files, $(RELEASE_BIT), $(RELEASE_PROJECT_PATH)/bit)
- $(call copy-files, $(RELEASE_CONSTR), $(RELEASE_PROJECT_PATH)/constr)
- $(call copy-files, $(RELEASE_IP), $(RELEASE_PROJECT_PATH)/ip)
- $(call copy-files, $(RELEASE_HDL), $(RELEASE_PROJECT_PATH)/hdl)
- $(call copy-files, $(RELEASE_FILE), $(RELEASE_PROJECT_PATH)/prj)
-
diff --git a/fpga/xilinx/vcu108/riffa_wrapper_vcu108.v b/fpga/xilinx/vcu108/riffa_wrapper_vcu108.v
deleted file mode 100644
index 5d92ada..0000000
--- a/fpga/xilinx/vcu108/riffa_wrapper_vcu108.v
+++ /dev/null
@@ -1,592 +0,0 @@
-// ----------------------------------------------------------------------
-// Copyright (c) 2016, The Regents of the University of California All
-// rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of The Regents of the University of California
-// nor the names of its contributors may be used to endorse or
-// promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REGENTS OF THE
-// UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-// ----------------------------------------------------------------------
-//----------------------------------------------------------------------------
-// Filename: riffa_wrapper_vc709.v
-// Version: 1.00.a
-// Verilog Standard: Verilog-2001
-// Description: RIFFA wrapper for the VCU108 Development board.
-// Author: Dustin Richmond (@darichmond)
-//-----------------------------------------------------------------------------
-`include "trellis.vh"
-`include "riffa.vh"
-`include "ultrascale.vh"
-`include "functions.vh"
-`timescale 1ps / 1ps
-module riffa_wrapper_vcu108
- #(// Number of RIFFA Channels
- parameter C_NUM_CHNL = 1,
- // Bit-Width from Vivado IP Generator
- parameter C_PCI_DATA_WIDTH = 128,
- // 4-Byte Name for this FPGA
- parameter C_MAX_PAYLOAD_BYTES = 256,
- parameter C_LOG_NUM_TAGS = 5,
- parameter C_FPGA_ID = "7V30")
- (//Interface: CQ Ultrascale (RXR)
- input M_AXIS_CQ_TVALID,
- input M_AXIS_CQ_TLAST,
- input [C_PCI_DATA_WIDTH-1:0] M_AXIS_CQ_TDATA,
- input [(C_PCI_DATA_WIDTH/32)-1:0] M_AXIS_CQ_TKEEP,
- input [`SIG_CQ_TUSER_W-1:0] M_AXIS_CQ_TUSER,
- output M_AXIS_CQ_TREADY,
-
- //Interface: RC Ultrascale (RXC)
- input M_AXIS_RC_TVALID,
- input M_AXIS_RC_TLAST,
- input [C_PCI_DATA_WIDTH-1:0] M_AXIS_RC_TDATA,
- input [(C_PCI_DATA_WIDTH/32)-1:0] M_AXIS_RC_TKEEP,
- input [`SIG_RC_TUSER_W-1:0] M_AXIS_RC_TUSER,
- output M_AXIS_RC_TREADY,
-
- //Interface: CC Ultrascale (TXC)
- input S_AXIS_CC_TREADY,
- output S_AXIS_CC_TVALID,
- output S_AXIS_CC_TLAST,
- output [C_PCI_DATA_WIDTH-1:0] S_AXIS_CC_TDATA,
- output [(C_PCI_DATA_WIDTH/32)-1:0] S_AXIS_CC_TKEEP,
- output [`SIG_CC_TUSER_W-1:0] S_AXIS_CC_TUSER,
-
- //Interface: RQ Ultrascale (TXR)
- input S_AXIS_RQ_TREADY,
- output S_AXIS_RQ_TVALID,
- output S_AXIS_RQ_TLAST,
- output [C_PCI_DATA_WIDTH-1:0] S_AXIS_RQ_TDATA,
- output [(C_PCI_DATA_WIDTH/32)-1:0] S_AXIS_RQ_TKEEP,
- output [`SIG_RQ_TUSER_W-1:0] S_AXIS_RQ_TUSER,
-
- input USER_CLK,
- input USER_RESET,
-
- output [3:0] CFG_INTERRUPT_INT,
- output [1:0] CFG_INTERRUPT_PENDING,
- input [1:0] CFG_INTERRUPT_MSI_ENABLE,
- input CFG_INTERRUPT_MSI_MASK_UPDATE,
- input [31:0] CFG_INTERRUPT_MSI_DATA,
- output [3:0] CFG_INTERRUPT_MSI_SELECT,
- output [31:0] CFG_INTERRUPT_MSI_INT,
- output [63:0] CFG_INTERRUPT_MSI_PENDING_STATUS,
- input CFG_INTERRUPT_MSI_SENT,
- input CFG_INTERRUPT_MSI_FAIL,
- output [2:0] CFG_INTERRUPT_MSI_ATTR,
- output CFG_INTERRUPT_MSI_TPH_PRESENT,
- output [1:0] CFG_INTERRUPT_MSI_TPH_TYPE,
- output [8:0] CFG_INTERRUPT_MSI_TPH_ST_TAG,
- output [2:0] CFG_INTERRUPT_MSI_FUNCTION_NUMBER,
-
- input [7:0] CFG_FC_CPLH,
- input [11:0] CFG_FC_CPLD,
- output [2:0] CFG_FC_SEL,
-
- input [3:0] CFG_NEGOTIATED_WIDTH, // CONFIG_LINK_WIDTH
- input [2:0] CFG_CURRENT_SPEED, // CONFIG_LINK_RATE
- input [2:0] CFG_MAX_PAYLOAD, // CONFIG_MAX_PAYLOAD
- input [2:0] CFG_MAX_READ_REQ, // CONFIG_MAX_READ_REQUEST
- input [7:0] CFG_FUNCTION_STATUS, // [2] = CONFIG_BUS_MASTER_ENABLE
- input [1:0] CFG_RCB_STATUS,
-
- output PCIE_CQ_NP_REQ,
-
- // RIFFA Interface Signals
- output RST_OUT,
- input [C_NUM_CHNL-1:0] CHNL_RX_CLK, // Channel read clock
- output [C_NUM_CHNL-1:0] CHNL_RX, // Channel read receive signal
- input [C_NUM_CHNL-1:0] CHNL_RX_ACK, // Channel read received signal
- output [C_NUM_CHNL-1:0] CHNL_RX_LAST, // Channel last read
- output [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_RX_LEN, // Channel read length
- output [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_RX_OFF, // Channel read offset
- output [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_RX_DATA, // Channel read data
- output [C_NUM_CHNL-1:0] CHNL_RX_DATA_VALID, // Channel read data valid
- input [C_NUM_CHNL-1:0] CHNL_RX_DATA_REN, // Channel read data has been recieved
-
- input [C_NUM_CHNL-1:0] CHNL_TX_CLK, // Channel write clock
- input [C_NUM_CHNL-1:0] CHNL_TX, // Channel write receive signal
- output [C_NUM_CHNL-1:0] CHNL_TX_ACK, // Channel write acknowledgement signal
- input [C_NUM_CHNL-1:0] CHNL_TX_LAST, // Channel last write
- input [(C_NUM_CHNL*`SIG_CHNL_LENGTH_W)-1:0] CHNL_TX_LEN, // Channel write length (in 32 bit words)
- input [(C_NUM_CHNL*`SIG_CHNL_OFFSET_W)-1:0] CHNL_TX_OFF, // Channel write offset
- input [(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0] CHNL_TX_DATA, // Channel write data
- input [C_NUM_CHNL-1:0] CHNL_TX_DATA_VALID, // Channel write data valid
- output [C_NUM_CHNL-1:0] CHNL_TX_DATA_REN); // Channel write data has been recieved
-
- localparam C_FPGA_NAME = "REGT"; // This is not yet exposed in the driver
- localparam C_MAX_READ_REQ_BYTES = C_MAX_PAYLOAD_BYTES * 2;
- // ALTERA, XILINX or ULTRASCALE
- localparam C_VENDOR = "ULTRASCALE";
-
- localparam C_KEEP_WIDTH = C_PCI_DATA_WIDTH / 32;
- localparam C_PIPELINE_OUTPUT = 1;
- localparam C_PIPELINE_INPUT = 1;
- localparam C_DEPTH_PACKETS = 4;
-
- wire clk;
- wire rst_in;
- wire done_txc_rst;
- wire done_txr_rst;
- wire done_rxr_rst;
- wire done_rxc_rst;
- // Interface: RXC Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxc_data;
- wire rxc_data_valid;
- wire rxc_data_start_flag;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_word_enable;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxc_meta_fdwbe;
- wire rxc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxc_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxc_meta_ldwbe;
- wire [`SIG_TAG_W-1:0] rxc_meta_tag;
- wire [`SIG_LOWADDR_W-1:0] rxc_meta_addr;
- wire [`SIG_TYPE_W-1:0] rxc_meta_type;
- wire [`SIG_LEN_W-1:0] rxc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] rxc_meta_bytes_remaining;
- wire [`SIG_CPLID_W-1:0] rxc_meta_completer_id;
- wire rxc_meta_ep;
-
- // Interface: RXR Engine
- wire [C_PCI_DATA_WIDTH-1:0] rxr_data;
- wire rxr_data_valid;
- wire [(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_word_enable;
- wire rxr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_start_offset;
- wire [`SIG_FBE_W-1:0] rxr_meta_fdwbe;
- wire rxr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] rxr_data_end_offset;
- wire [`SIG_LBE_W-1:0] rxr_meta_ldwbe;
- wire [`SIG_TC_W-1:0] rxr_meta_tc;
- wire [`SIG_ATTR_W-1:0] rxr_meta_attr;
- wire [`SIG_TAG_W-1:0] rxr_meta_tag;
- wire [`SIG_TYPE_W-1:0] rxr_meta_type;
- wire [`SIG_ADDR_W-1:0] rxr_meta_addr;
- wire [`SIG_BARDECODE_W-1:0] rxr_meta_bar_decoded;
- wire [`SIG_REQID_W-1:0] rxr_meta_requester_id;
- wire [`SIG_LEN_W-1:0] rxr_meta_length;
- wire rxr_meta_ep;
-
- // interface: TXC Engine
- wire txc_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txc_data;
- wire txc_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_start_offset;
- wire txc_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txc_data_end_offset;
- wire txc_data_ready;
-
- wire txc_meta_valid;
- wire [`SIG_FBE_W-1:0] txc_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txc_meta_ldwbe;
- wire [`SIG_LOWADDR_W-1:0] txc_meta_addr;
- wire [`SIG_TYPE_W-1:0] txc_meta_type;
- wire [`SIG_LEN_W-1:0] txc_meta_length;
- wire [`SIG_BYTECNT_W-1:0] txc_meta_byte_count;
- wire [`SIG_TAG_W-1:0] txc_meta_tag;
- wire [`SIG_REQID_W-1:0] txc_meta_requester_id;
- wire [`SIG_TC_W-1:0] txc_meta_tc;
- wire [`SIG_ATTR_W-1:0] txc_meta_attr;
- wire txc_meta_ep;
- wire txc_meta_ready;
- wire txc_sent;
-
- // Interface: TXR Engine
- wire txr_data_valid;
- wire [C_PCI_DATA_WIDTH-1:0] txr_data;
- wire txr_data_start_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_start_offset;
- wire txr_data_end_flag;
- wire [clog2s(C_PCI_DATA_WIDTH/32)-1:0] txr_data_end_offset;
- wire txr_data_ready;
-
- wire txr_meta_valid;
- wire [`SIG_FBE_W-1:0] txr_meta_fdwbe;
- wire [`SIG_LBE_W-1:0] txr_meta_ldwbe;
- wire [`SIG_ADDR_W-1:0] txr_meta_addr;
- wire [`SIG_LEN_W-1:0] txr_meta_length;
- wire [`SIG_TAG_W-1:0] txr_meta_tag;
- wire [`SIG_TC_W-1:0] txr_meta_tc;
- wire [`SIG_ATTR_W-1:0] txr_meta_attr;
- wire [`SIG_TYPE_W-1:0] txr_meta_type;
- wire txr_meta_ep;
- wire txr_meta_ready;
- wire txr_sent;
-
- // Unconnected Wires (Used in classic interface)
- wire wRxTlpReady_nc;
- wire [C_PCI_DATA_WIDTH-1:0] wRxTlp_nc = 0;
- wire wRxTlpEndFlag_nc = 0;
- wire [`SIG_OFFSET_W-1:0] wRxTlpEndOffset_nc = 0;
- wire wRxTlpStartFlag_nc = 0;
- wire [`SIG_OFFSET_W-1:0] wRxTlpStartOffset_nc = 0;
- wire wRxTlpValid_nc = 0;
- wire [`SIG_BARDECODE_W-1:0] wRxTlpBarDecode_nc = 0;
-
- wire wTxTlpReady_nc = 0;
- wire [C_PCI_DATA_WIDTH-1:0] wTxTlp_nc;
- wire wTxTlpEndFlag_nc;
- wire [`SIG_OFFSET_W-1:0] wTxTlpEndOffset_nc;
- wire wTxTlpStartFlag_nc;
- wire [`SIG_OFFSET_W-1:0] wTxTlpStartOffset_nc;
- wire wTxTlpValid_nc;
-
- //--------------------------------------------------------------------------
-
- // Interface: Configuration
- wire config_bus_master_enable;
- wire [`SIG_CPLID_W-1:0] config_completer_id;
- wire config_cpl_boundary_sel;
- wire config_interrupt_msienable;
- wire [`SIG_LINKRATE_W-1:0] config_link_rate;
- wire [`SIG_LINKWIDTH_W-1:0] config_link_width;
- wire [`SIG_MAXPAYLOAD_W-1:0] config_max_payload_size;
- wire [`SIG_MAXREAD_W-1:0] config_max_read_request_size;
- wire [`SIG_FC_CPLD_W-1:0] config_max_cpl_data;
- wire [`SIG_FC_CPLH_W-1:0] config_max_cpl_hdr;
-
- wire intr_msi_request;
- wire intr_msi_rdy;
-
- genvar chnl;
-
- assign clk = USER_CLK;
- assign rst_in = USER_RESET;
-
- assign config_completer_id = 0; // Not used in ULTRASCALE implementation
- assign config_bus_master_enable = CFG_FUNCTION_STATUS[2];
- assign config_link_width = {2'b00,CFG_NEGOTIATED_WIDTH}; // CONFIG_LINK_WIDTH
- assign config_link_rate = CFG_CURRENT_SPEED[2]? 2'b11 : CFG_CURRENT_SPEED[2] ? 2'b10 : 2'b01;
- assign config_max_payload_size = CFG_MAX_PAYLOAD; // CONFIG_MAX_PAYLOAD
- assign config_max_read_request_size = CFG_MAX_READ_REQ; // CONFIG_MAX_READ_REQUEST
- assign config_cpl_boundary_sel = CFG_RCB_STATUS[0];
- assign config_interrupt_msienable = CFG_INTERRUPT_MSI_ENABLE[0];
- assign config_max_cpl_data = CFG_FC_CPLD;
- assign config_max_cpl_hdr = CFG_FC_CPLH;
-
- assign CFG_FC_SEL = 3'b001; // Always display credit maximum for the signals below
- assign CFG_INTERRUPT_MSI_INT = {31'b0,intr_msi_request};
- assign CFG_INTERRUPT_MSI_SELECT = 0;
- assign CFG_INTERRUPT_INT = 0;
- assign CFG_INTERRUPT_PENDING = 0;
- assign CFG_INTERRUPT_MSI_SELECT = 0;
- assign CFG_INTERRUPT_MSI_PENDING_STATUS = {63'b0,intr_msi_request};
- assign CFG_INTERRUPT_MSI_ATTR = 0;
- assign CFG_INTERRUPT_MSI_TPH_PRESENT = 0;
- assign CFG_INTERRUPT_MSI_TPH_ST_TAG = 0;
- assign CFG_INTERRUPT_MSI_TPH_TYPE = 0;
- assign CFG_INTERRUPT_MSI_FUNCTION_NUMBER = 0;
-
- assign intr_msi_rdy = CFG_INTERRUPT_MSI_SENT & ~CFG_INTERRUPT_MSI_FAIL;
-
- assign PCIE_CQ_NP_REQ = 1;
-
- engine_layer
- #(// Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_LOG_NUM_TAGS (C_LOG_NUM_TAGS),
- .C_PIPELINE_INPUT (C_PIPELINE_INPUT),
- .C_PIPELINE_OUTPUT (C_PIPELINE_OUTPUT),
- .C_MAX_PAYLOAD_DWORDS (C_MAX_PAYLOAD_BYTES/4),
- .C_VENDOR (C_VENDOR))
- engine_layer_inst
- (// Outputs
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .RST_LOGIC (RST_OUT),
- // Unconnected Outputs
- .TX_TLP (wTxTlp_nc),
- .TX_TLP_VALID (wTxTlpValid_nc),
- .TX_TLP_START_FLAG (wTxTlpStartFlag_nc),
- .TX_TLP_START_OFFSET (wTxTlpStartOffset_nc),
- .TX_TLP_END_FLAG (wTxTlpEndFlag_nc),
- .TX_TLP_END_OFFSET (wTxTlpEndOffset_nc),
-
- .RX_TLP_READY (wRxTlpReady_nc),
- // Inputs
- .CLK_BUS (clk),
- .RST_BUS (rst_in),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
-
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
- // Unconnected Inputs
- .RX_TLP (wRxTlp_nc),
- .RX_TLP_VALID (wRxTlpValid_nc),
- .RX_TLP_START_FLAG (wRxTlpStartFlag_nc),
- .RX_TLP_START_OFFSET (wRxTlpStartOffset_nc),
- .RX_TLP_END_FLAG (wRxTlpEndFlag_nc),
- .RX_TLP_END_OFFSET (wRxTlpEndOffset_nc),
- .RX_TLP_BAR_DECODE (wRxTlpBarDecode_nc),
-
- .TX_TLP_READY (wTxTlpReady_nc),
- /*AUTOINST*/
- // Outputs
- .M_AXIS_CQ_TREADY (M_AXIS_CQ_TREADY),
- .M_AXIS_RC_TREADY (M_AXIS_RC_TREADY),
- .S_AXIS_CC_TVALID (S_AXIS_CC_TVALID),
- .S_AXIS_CC_TLAST (S_AXIS_CC_TLAST),
- .S_AXIS_CC_TDATA (S_AXIS_CC_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_CC_TKEEP (S_AXIS_CC_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_CC_TUSER (S_AXIS_CC_TUSER[`SIG_CC_TUSER_W-1:0]),
- .S_AXIS_RQ_TVALID (S_AXIS_RQ_TVALID),
- .S_AXIS_RQ_TLAST (S_AXIS_RQ_TLAST),
- .S_AXIS_RQ_TDATA (S_AXIS_RQ_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .S_AXIS_RQ_TKEEP (S_AXIS_RQ_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .S_AXIS_RQ_TUSER (S_AXIS_RQ_TUSER[`SIG_RQ_TUSER_W-1:0]),
- // Inputs
- .M_AXIS_CQ_TVALID (M_AXIS_CQ_TVALID),
- .M_AXIS_CQ_TLAST (M_AXIS_CQ_TLAST),
- .M_AXIS_CQ_TDATA (M_AXIS_CQ_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_CQ_TKEEP (M_AXIS_CQ_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_CQ_TUSER (M_AXIS_CQ_TUSER[`SIG_CQ_TUSER_W-1:0]),
- .M_AXIS_RC_TVALID (M_AXIS_RC_TVALID),
- .M_AXIS_RC_TLAST (M_AXIS_RC_TLAST),
- .M_AXIS_RC_TDATA (M_AXIS_RC_TDATA[C_PCI_DATA_WIDTH-1:0]),
- .M_AXIS_RC_TKEEP (M_AXIS_RC_TKEEP[(C_PCI_DATA_WIDTH/32)-1:0]),
- .M_AXIS_RC_TUSER (M_AXIS_RC_TUSER[`SIG_RC_TUSER_W-1:0]),
- .S_AXIS_CC_TREADY (S_AXIS_CC_TREADY),
- .S_AXIS_RQ_TREADY (S_AXIS_RQ_TREADY));
-
- riffa
- #(.C_TAG_WIDTH (C_LOG_NUM_TAGS),/* TODO: Standardize declaration*/
- /*AUTOINSTPARAM*/
- // Parameters
- .C_PCI_DATA_WIDTH (C_PCI_DATA_WIDTH),
- .C_NUM_CHNL (C_NUM_CHNL),
- .C_MAX_READ_REQ_BYTES (C_MAX_READ_REQ_BYTES),
- .C_VENDOR (C_VENDOR),
- .C_FPGA_NAME (C_FPGA_NAME),
- .C_FPGA_ID (C_FPGA_ID),
- .C_DEPTH_PACKETS (C_DEPTH_PACKETS))
- riffa_inst
- (// Outputs
- .TXC_DATA (txc_data[C_PCI_DATA_WIDTH-1:0]),
- .TXC_DATA_VALID (txc_data_valid),
- .TXC_DATA_START_FLAG (txc_data_start_flag),
- .TXC_DATA_START_OFFSET (txc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_DATA_END_FLAG (txc_data_end_flag),
- .TXC_DATA_END_OFFSET (txc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXC_META_VALID (txc_meta_valid),
- .TXC_META_FDWBE (txc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXC_META_LDWBE (txc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXC_META_ADDR (txc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .TXC_META_TYPE (txc_meta_type[`SIG_TYPE_W-1:0]),
- .TXC_META_LENGTH (txc_meta_length[`SIG_LEN_W-1:0]),
- .TXC_META_BYTE_COUNT (txc_meta_byte_count[`SIG_BYTECNT_W-1:0]),
- .TXC_META_TAG (txc_meta_tag[`SIG_TAG_W-1:0]),
- .TXC_META_REQUESTER_ID (txc_meta_requester_id[`SIG_REQID_W-1:0]),
- .TXC_META_TC (txc_meta_tc[`SIG_TC_W-1:0]),
- .TXC_META_ATTR (txc_meta_attr[`SIG_ATTR_W-1:0]),
- .TXC_META_EP (txc_meta_ep),
-
- .TXR_DATA_VALID (txr_data_valid),
- .TXR_DATA (txr_data[C_PCI_DATA_WIDTH-1:0]),
- .TXR_DATA_START_FLAG (txr_data_start_flag),
- .TXR_DATA_START_OFFSET (txr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_DATA_END_FLAG (txr_data_end_flag),
- .TXR_DATA_END_OFFSET (txr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .TXR_META_VALID (txr_meta_valid),
- .TXR_META_FDWBE (txr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .TXR_META_LDWBE (txr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .TXR_META_ADDR (txr_meta_addr[`SIG_ADDR_W-1:0]),
- .TXR_META_LENGTH (txr_meta_length[`SIG_LEN_W-1:0]),
- .TXR_META_TAG (txr_meta_tag[`SIG_TAG_W-1:0]),
- .TXR_META_TC (txr_meta_tc[`SIG_TC_W-1:0]),
- .TXR_META_ATTR (txr_meta_attr[`SIG_ATTR_W-1:0]),
- .TXR_META_TYPE (txr_meta_type[`SIG_TYPE_W-1:0]),
- .TXR_META_EP (txr_meta_ep),
-
- .INTR_MSI_REQUEST (intr_msi_request),
- // Inputs
- .CLK (clk),
- .RXR_DATA (rxr_data[C_PCI_DATA_WIDTH-1:0]),
- .RXR_DATA_VALID (rxr_data_valid),
- .RXR_DATA_START_FLAG (rxr_data_start_flag),
- .RXR_DATA_START_OFFSET (rxr_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_WORD_ENABLE (rxr_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_DATA_END_FLAG (rxr_data_end_flag),
- .RXR_DATA_END_OFFSET (rxr_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXR_META_FDWBE (rxr_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXR_META_LDWBE (rxr_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXR_META_TC (rxr_meta_tc[`SIG_TC_W-1:0]),
- .RXR_META_ATTR (rxr_meta_attr[`SIG_ATTR_W-1:0]),
- .RXR_META_TAG (rxr_meta_tag[`SIG_TAG_W-1:0]),
- .RXR_META_TYPE (rxr_meta_type[`SIG_TYPE_W-1:0]),
- .RXR_META_ADDR (rxr_meta_addr[`SIG_ADDR_W-1:0]),
- .RXR_META_BAR_DECODED (rxr_meta_bar_decoded[`SIG_BARDECODE_W-1:0]),
- .RXR_META_REQUESTER_ID (rxr_meta_requester_id[`SIG_REQID_W-1:0]),
- .RXR_META_LENGTH (rxr_meta_length[`SIG_LEN_W-1:0]),
- .RXR_META_EP (rxr_meta_ep),
-
- .RXC_DATA_VALID (rxc_data_valid),
- .RXC_DATA (rxc_data[C_PCI_DATA_WIDTH-1:0]),
- .RXC_DATA_START_FLAG (rxc_data_start_flag),
- .RXC_DATA_START_OFFSET (rxc_data_start_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_WORD_ENABLE (rxc_data_word_enable[(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_DATA_END_FLAG (rxc_data_end_flag),
- .RXC_DATA_END_OFFSET (rxc_data_end_offset[clog2s(C_PCI_DATA_WIDTH/32)-1:0]),
- .RXC_META_FDWBE (rxc_meta_fdwbe[`SIG_FBE_W-1:0]),
- .RXC_META_LDWBE (rxc_meta_ldwbe[`SIG_LBE_W-1:0]),
- .RXC_META_TAG (rxc_meta_tag[`SIG_TAG_W-1:0]),
- .RXC_META_ADDR (rxc_meta_addr[`SIG_LOWADDR_W-1:0]),
- .RXC_META_TYPE (rxc_meta_type[`SIG_TYPE_W-1:0]),
- .RXC_META_LENGTH (rxc_meta_length[`SIG_LEN_W-1:0]),
- .RXC_META_BYTES_REMAINING (rxc_meta_bytes_remaining[`SIG_BYTECNT_W-1:0]),
- .RXC_META_COMPLETER_ID (rxc_meta_completer_id[`SIG_CPLID_W-1:0]),
- .RXC_META_EP (rxc_meta_ep),
-
- .TXC_DATA_READY (txc_data_ready),
- .TXC_META_READY (txc_meta_ready),
- .TXC_SENT (txc_sent),
-
- .TXR_DATA_READY (txr_data_ready),
- .TXR_META_READY (txr_meta_ready),
- .TXR_SENT (txr_sent),
-
- .CONFIG_COMPLETER_ID (config_completer_id[`SIG_CPLID_W-1:0]),
- .CONFIG_BUS_MASTER_ENABLE (config_bus_master_enable),
- .CONFIG_LINK_WIDTH (config_link_width[`SIG_LINKWIDTH_W-1:0]),
- .CONFIG_LINK_RATE (config_link_rate[`SIG_LINKRATE_W-1:0]),
- .CONFIG_MAX_READ_REQUEST_SIZE (config_max_read_request_size[`SIG_MAXREAD_W-1:0]),
- .CONFIG_MAX_PAYLOAD_SIZE (config_max_payload_size[`SIG_MAXPAYLOAD_W-1:0]),
- .CONFIG_INTERRUPT_MSIENABLE (config_interrupt_msienable),
- .CONFIG_CPL_BOUNDARY_SEL (config_cpl_boundary_sel),
- .CONFIG_MAX_CPL_DATA (config_max_cpl_data[`SIG_FC_CPLD_W-1:0]),
- .CONFIG_MAX_CPL_HDR (config_max_cpl_hdr[`SIG_FC_CPLH_W-1:0]),
-
- .INTR_MSI_RDY (intr_msi_rdy),
-
- .DONE_TXC_RST (done_txc_rst),
- .DONE_TXR_RST (done_txr_rst),
- .RST_BUS (rst_in),
- /*AUTOINST*/
- // Outputs
- .RST_OUT (RST_OUT),
- .CHNL_RX (CHNL_RX[C_NUM_CHNL-1:0]),
- .CHNL_RX_LAST (CHNL_RX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_RX_LEN (CHNL_RX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_RX_OFF (CHNL_RX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_RX_DATA (CHNL_RX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_RX_DATA_VALID (CHNL_RX_DATA_VALID[C_NUM_CHNL-1:0]),
- .CHNL_TX_ACK (CHNL_TX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_TX_DATA_REN (CHNL_TX_DATA_REN[C_NUM_CHNL-1:0]),
- // Inputs
- .CHNL_RX_CLK (CHNL_RX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_RX_ACK (CHNL_RX_ACK[C_NUM_CHNL-1:0]),
- .CHNL_RX_DATA_REN (CHNL_RX_DATA_REN[C_NUM_CHNL-1:0]),
- .CHNL_TX_CLK (CHNL_TX_CLK[C_NUM_CHNL-1:0]),
- .CHNL_TX (CHNL_TX[C_NUM_CHNL-1:0]),
- .CHNL_TX_LAST (CHNL_TX_LAST[C_NUM_CHNL-1:0]),
- .CHNL_TX_LEN (CHNL_TX_LEN[(C_NUM_CHNL*32)-1:0]),
- .CHNL_TX_OFF (CHNL_TX_OFF[(C_NUM_CHNL*31)-1:0]),
- .CHNL_TX_DATA (CHNL_TX_DATA[(C_NUM_CHNL*C_PCI_DATA_WIDTH)-1:0]),
- .CHNL_TX_DATA_VALID (CHNL_TX_DATA_VALID[C_NUM_CHNL-1:0]));
-
-endmodule
-// Local Variables:
-// verilog-library-directories:("../../riffa_hdl/")
-// End:
-