// ---------------------------------------------------------------------- // "THE BEER-WARE LICENSE" (Revision 42): // wrote this file. As long as you retain this // notice you can do whatever you want with this stuff. If we meet // some day, and you think this stuff is worth it, you can buy me a // beer in return Yasunori Osana at University of the Ryukyus, // Japan. // ---------------------------------------------------------------------- // OpenFC project: an open FPGA accelerated cluster toolkit // Kyokko project: an open Multi-vendor Aurora 64B/66B-compatible link // // Modules in this file: // ku040: Avnet KU040 DB top-level module, 4x Kyokko on 2xSFP + 2xSMA // ---------------------------------------------------------------------- `default_nettype none module ku040 ( input wire RST, input wire CLK250P, CLK250N, input wire SFP_REFCLKP, SFP_REFCLKN, input wire [1:0] SFP_RXP, SFP_RXN, SMA_RXP, SMA_RXN, output wire [1:0] SFP_TXP, SFP_TXN, SMA_TXP, SMA_TXN, output wire [7:0] LED ); parameter NumCh = 4; wire CLK100, DCM_LOCKED; clk_250_100 dcm ( .clk_in1_p(CLK250P), .clk_in1_n(CLK250N), .clk100(CLK100), .reset(RST), .locked(DCM_LOCKED) ); // ------------------------------------------------------------ // Kyokko signals wire [NumCh-1:0] CH_UP, AURORA_CLK; // Data channel wire [63:0] S_AXI_TX_TDATA [NumCh-1:0], M_AXI_RX_TDATA [NumCh-1:0]; wire [NumCh-1:0] S_AXI_TX_TLAST, S_AXI_TX_TVALID, S_AXI_TX_TREADY, M_AXI_RX_TLAST, M_AXI_RX_TVALID; // UFC channel wire [NumCh-1:0] UFC_TX_REQ; wire [7:0] UFC_TX_MS [NumCh-1:0]; wire [63:0] S_AXI_UFC_TX_TDATA [NumCh-1:0], M_AXI_UFC_RX_TDATA [NumCh-1:0]; wire [NumCh-1:0] S_AXI_UFC_TX_TVALID, S_AXI_UFC_TX_TREADY, M_AXI_UFC_RX_TLAST, M_AXI_UFC_RX_TVALID; // NFC channel wire [15:0] S_AXI_NFC_TDATA [NumCh-1:0]; wire [NumCh-1:0] S_AXI_NFC_TVALID, S_AXI_NFC_TREADY; // ------------------------------------------------------------ // Signal bundles wire [NumCh*64-1:0] TX_DATA, RX_DATA, UFC_TX_DATA, UFC_RX_DATA; wire [NumCh*16-1:0] NFC_TX_DATA; wire [NumCh* 8-1:0] UFC_MS; genvar ch; for (ch=0; ch