// ---------------------------------------------------------------------- // "THE BEER-WARE LICENSE" (Revision 42): // and 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 and Hisatomo Kinjo at University of the Ryukyus, Japan. // ---------------------------------------------------------------------- // OpenFC project: an open FPGA accelerated cluster toolkit // // Modules in this file: // router: Complete OpenFC router // router_rx_buf: Router RX buffer for collision serialization // channel_or: n-channel OR // channel_mux: n-channel MUX // router_ch_sel: Input channel priority encoder // router_mux: Channel output multiplexer // router_sink: Frame length + destination detector // ---------------------------------------------------------------------- `timescale 1ns/1ps `default_nettype none module router # ( parameter NumPorts = 4, PassThrough=4'b0011 ) ( input wire CLK, RST, input wire [NumPorts*64-1:0] D, input wire [NumPorts-1:0] D_VALID, output wire [NumPorts-1:0] D_BP, output wire [NumPorts*64-1:0] Q, output wire [NumPorts-1:0] Q_VALID, input wire [NumPorts-1:0] Q_BP, output wire [NumPorts-1:0] Q_SOF // used to generate PE_RST ); // RX buffer to router core wire [NumPorts*64-1:0] Di; wire [NumPorts-1:0] D_VALIDi, D_BPi, COLi; // Passthrough signals wire [NumPorts*64-1:0] PT; wire [NumPorts-1:0] PT_VALID; generate genvar i; for (i=0; i