5013 lines
232 KiB
VHDL
5013 lines
232 KiB
VHDL
|
|
||
|
-------------------------------------------------------------------------------
|
||
|
-- Title : Full Noc with packet injector
|
||
|
-- Automatically generated by full_noc_generator.py
|
||
|
-- Project :
|
||
|
-------------------------------------------------------------------------------
|
||
|
-- File : full_noc.vhd
|
||
|
-- Author : Behnam Razi Perjikolaei <raziperj@uni-bremen.de>
|
||
|
-- Company :
|
||
|
-- Created : 2019-06-17
|
||
|
-- Last update: 2020-09-18
|
||
|
-- Platform :
|
||
|
-- Standard : VHDL'87
|
||
|
-------------------------------------------------------------------------------
|
||
|
-- Description:
|
||
|
-------------------------------------------------------------------------------
|
||
|
-- Copyright (c) 2019
|
||
|
-------------------------------------------------------------------------------
|
||
|
-- Revisions :
|
||
|
-- Date Version Author Description
|
||
|
-- 2019-05-29 1.0 behnam Created
|
||
|
-------------------------------------------------------------------------------
|
||
|
library ieee;
|
||
|
use ieee.std_logic_1164.all;
|
||
|
use IEEE.math_real.all;
|
||
|
USE ieee.numeric_std.ALL;
|
||
|
use work.NOC_3D_PACKAGE.all;
|
||
|
|
||
|
entity full_noc is
|
||
|
port(
|
||
|
clk, rst : in std_logic;
|
||
|
local_rx : in flit_vector(48-1 downto 0);
|
||
|
local_vc_write_rx : in std_logic_vector(192-1 downto 0);
|
||
|
local_incr_rx_vec : in std_logic_vector(192-1 downto 0);
|
||
|
local_tx : out flit_vector(48-1 downto 0);
|
||
|
local_vc_write_tx : out std_logic_vector(192-1 downto 0);
|
||
|
local_incr_tx_vec : out std_logic_vector(192-1 downto 0)
|
||
|
);
|
||
|
end entity full_noc;
|
||
|
|
||
|
architecture structural of full_noc is
|
||
|
type flit_vector_array is array (0 to 2) of flit_vector(max_port_num-1 downto 0);
|
||
|
type flit_vector_2D_array is array (0 to 3) of flit_vector_array;
|
||
|
type flit_vector_3D_array is array (0 to 3) of flit_vector_2D_array;
|
||
|
|
||
|
subtype incr_per_port is std_logic_vector(4-1 downto 0);
|
||
|
type incr_per_router is array (max_port_num-1 downto 0) of incr_per_port;
|
||
|
type incr_array is array (0 to 2) of incr_per_router;
|
||
|
type incr_2D_array is array (0 to 3) of incr_array;
|
||
|
type incr_3D_array is array (0 to 3) of incr_2D_array;
|
||
|
|
||
|
|
||
|
signal inter_data_in : flit_vector_3D_array;
|
||
|
signal inter_data_out : flit_vector_3D_array;
|
||
|
signal inter_incr_in : incr_3D_array;
|
||
|
signal inter_incr_out : incr_3D_array;
|
||
|
signal inter_vc_write_in : incr_3D_array;
|
||
|
signal inter_vc_write_out : incr_3D_array;
|
||
|
signal data_in000, data_out000: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec000: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec000: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec000: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec000: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in100, data_out100: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec100: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec100: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec100: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec100: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in200, data_out200: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec200: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec200: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec200: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec200: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in300, data_out300: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec300: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec300: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec300: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec300: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in010, data_out010: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec010: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec010: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec010: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec010: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in110, data_out110: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec110: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec110: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec110: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec110: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in210, data_out210: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec210: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec210: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec210: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec210: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in310, data_out310: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec310: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec310: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec310: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec310: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in020, data_out020: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec020: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec020: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec020: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec020: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in120, data_out120: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec120: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec120: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec120: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec120: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in220, data_out220: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec220: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec220: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec220: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec220: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in320, data_out320: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec320: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec320: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec320: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec320: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in030, data_out030: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec030: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec030: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec030: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec030: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in130, data_out130: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec130: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec130: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec130: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec130: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in230, data_out230: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec230: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec230: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec230: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec230: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in330, data_out330: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec330: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec330: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec330: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec330: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in001, data_out001: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec001: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec001: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec001: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec001: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in101, data_out101: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec101: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec101: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec101: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec101: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in201, data_out201: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec201: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec201: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec201: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec201: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in301, data_out301: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec301: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec301: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec301: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec301: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in011, data_out011: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec011: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec011: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec011: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec011: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in111, data_out111: flit_vector(7-1 downto 0);
|
||
|
signal vc_write_rx_vec111: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_rx_vec111: std_logic_vector(28-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec111: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_tx_pl_vec111: std_logic_vector(28-1 downto 0);
|
||
|
signal data_in211, data_out211: flit_vector(7-1 downto 0);
|
||
|
signal vc_write_rx_vec211: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_rx_vec211: std_logic_vector(28-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec211: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_tx_pl_vec211: std_logic_vector(28-1 downto 0);
|
||
|
signal data_in311, data_out311: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec311: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec311: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec311: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec311: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in021, data_out021: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec021: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec021: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec021: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec021: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in121, data_out121: flit_vector(7-1 downto 0);
|
||
|
signal vc_write_rx_vec121: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_rx_vec121: std_logic_vector(28-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec121: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_tx_pl_vec121: std_logic_vector(28-1 downto 0);
|
||
|
signal data_in221, data_out221: flit_vector(7-1 downto 0);
|
||
|
signal vc_write_rx_vec221: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_rx_vec221: std_logic_vector(28-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec221: std_logic_vector(28-1 downto 0);
|
||
|
signal incr_tx_pl_vec221: std_logic_vector(28-1 downto 0);
|
||
|
signal data_in321, data_out321: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec321: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec321: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec321: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec321: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in031, data_out031: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec031: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec031: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec031: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec031: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in131, data_out131: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec131: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec131: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec131: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec131: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in231, data_out231: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec231: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec231: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec231: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec231: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in331, data_out331: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec331: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec331: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec331: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec331: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in002, data_out002: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec002: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec002: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec002: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec002: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in102, data_out102: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec102: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec102: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec102: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec102: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in202, data_out202: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec202: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec202: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec202: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec202: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in302, data_out302: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec302: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec302: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec302: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec302: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in012, data_out012: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec012: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec012: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec012: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec012: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in112, data_out112: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec112: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec112: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec112: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec112: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in212, data_out212: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec212: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec212: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec212: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec212: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in312, data_out312: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec312: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec312: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec312: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec312: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in022, data_out022: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec022: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec022: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec022: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec022: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in122, data_out122: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec122: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec122: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec122: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec122: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in222, data_out222: flit_vector(6-1 downto 0);
|
||
|
signal vc_write_rx_vec222: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_rx_vec222: std_logic_vector(24-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec222: std_logic_vector(24-1 downto 0);
|
||
|
signal incr_tx_pl_vec222: std_logic_vector(24-1 downto 0);
|
||
|
signal data_in322, data_out322: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec322: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec322: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec322: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec322: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in032, data_out032: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec032: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec032: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec032: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec032: std_logic_vector(16-1 downto 0);
|
||
|
signal data_in132, data_out132: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec132: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec132: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec132: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec132: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in232, data_out232: flit_vector(5-1 downto 0);
|
||
|
signal vc_write_rx_vec232: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_rx_vec232: std_logic_vector(20-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec232: std_logic_vector(20-1 downto 0);
|
||
|
signal incr_tx_pl_vec232: std_logic_vector(20-1 downto 0);
|
||
|
signal data_in332, data_out332: flit_vector(4-1 downto 0);
|
||
|
signal vc_write_rx_vec332: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_rx_vec332: std_logic_vector(16-1 downto 0);
|
||
|
signal vc_write_tx_pl_vec332: std_logic_vector(16-1 downto 0);
|
||
|
signal incr_tx_pl_vec332: std_logic_vector(16-1 downto 0);
|
||
|
|
||
|
signal data_rx110, data_tx110 : std_logic_vector(6*flit_size-1 downto 0);
|
||
|
begin
|
||
|
data_in000(0) <= inter_data_in(0)(0)(0)(0);
|
||
|
inter_data_out(0)(0)(0)(0) <= data_out000(0) after delay_constant;
|
||
|
incr_rx_vec000(4-1 downto 0) <= inter_incr_in(0)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec000(4-1 downto 0);
|
||
|
vc_write_rx_vec000(4-1 downto 0) <= inter_vc_write_in(0)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec000(4-1 downto 0);
|
||
|
data_in000(1) <= inter_data_in(0)(0)(0)(1);
|
||
|
inter_data_out(0)(0)(0)(1) <= data_out000(1) after delay_constant;
|
||
|
incr_rx_vec000(8-1 downto 4) <= inter_incr_in(0)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec000(8-1 downto 4);
|
||
|
vc_write_rx_vec000(8-1 downto 4) <= inter_vc_write_in(0)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec000(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(0)(0)(1) <= inter_data_out(0)(0+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(0)(0)(0)(1) <= inter_incr_out(0)(0+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(0)(1) <= inter_vc_write_out(0)(0+1)(0)(3);
|
||
|
data_in000(2) <= inter_data_in(0)(0)(0)(2);
|
||
|
inter_data_out(0)(0)(0)(2) <= data_out000(2) after delay_constant;
|
||
|
incr_rx_vec000(12-1 downto 8) <= inter_incr_in(0)(0)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec000(12-1 downto 8);
|
||
|
vc_write_rx_vec000(12-1 downto 8) <= inter_vc_write_in(0)(0)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec000(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(0)(0)(2) <= inter_data_out(0+1)(0)(0)(4);
|
||
|
|
||
|
inter_incr_in(0)(0)(0)(2) <= inter_incr_out(0+1)(0)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(0)(2) <= inter_vc_write_out(0+1)(0)(0)(4);
|
||
|
data_in000(3) <= inter_data_in(0)(0)(0)(5);
|
||
|
inter_data_out(0)(0)(0)(5) <= data_out000(3) after delay_constant;
|
||
|
incr_rx_vec000(16-1 downto 12) <= inter_incr_in(0)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec000(16-1 downto 12);
|
||
|
vc_write_rx_vec000(16-1 downto 12) <= inter_vc_write_in(0)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec000(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(0)(0)(5) <= inter_data_out(0)(0)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(0)(0)(5) <= inter_incr_out(0)(0)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(0)(5) <= inter_vc_write_out(0)(0)(0+1)(6);
|
||
|
|
||
|
inter_data_in(0)(0)(0)(0) <= local_rx(0);
|
||
|
local_tx(0) <= inter_data_out(0)(0)(0)(0);
|
||
|
|
||
|
inter_incr_in(0)(0)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(4-1 downto 0);
|
||
|
local_incr_tx_vec(4-1 downto 0) <= inter_incr_out(0)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(0)(0)(4-1 downto 0) <= local_vc_write_rx(4-1 downto 0);
|
||
|
local_vc_write_tx(4-1 downto 0) <= inter_vc_write_out(0)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=0 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_000: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 0,
|
||
|
Yis => 0,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,5),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in000,
|
||
|
vc_write_rx_vec => vc_write_rx_vec000,
|
||
|
incr_rx_vec => incr_rx_vec000,
|
||
|
data_tx_pl => data_out000,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec000,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec000
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in100(0) <= inter_data_in(1)(0)(0)(0);
|
||
|
inter_data_out(1)(0)(0)(0) <= data_out100(0) after delay_constant;
|
||
|
incr_rx_vec100(4-1 downto 0) <= inter_incr_in(1)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec100(4-1 downto 0);
|
||
|
vc_write_rx_vec100(4-1 downto 0) <= inter_vc_write_in(1)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec100(4-1 downto 0);
|
||
|
data_in100(1) <= inter_data_in(1)(0)(0)(1);
|
||
|
inter_data_out(1)(0)(0)(1) <= data_out100(1) after delay_constant;
|
||
|
incr_rx_vec100(8-1 downto 4) <= inter_incr_in(1)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec100(8-1 downto 4);
|
||
|
vc_write_rx_vec100(8-1 downto 4) <= inter_vc_write_in(1)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec100(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(0)(0)(1) <= inter_data_out(1)(0+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(1)(0)(0)(1) <= inter_incr_out(1)(0+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(0)(1) <= inter_vc_write_out(1)(0+1)(0)(3);
|
||
|
data_in100(2) <= inter_data_in(1)(0)(0)(2);
|
||
|
inter_data_out(1)(0)(0)(2) <= data_out100(2) after delay_constant;
|
||
|
incr_rx_vec100(12-1 downto 8) <= inter_incr_in(1)(0)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec100(12-1 downto 8);
|
||
|
vc_write_rx_vec100(12-1 downto 8) <= inter_vc_write_in(1)(0)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec100(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(0)(0)(2) <= inter_data_out(1+1)(0)(0)(4);
|
||
|
|
||
|
inter_incr_in(1)(0)(0)(2) <= inter_incr_out(1+1)(0)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(0)(2) <= inter_vc_write_out(1+1)(0)(0)(4);
|
||
|
data_in100(3) <= inter_data_in(1)(0)(0)(4);
|
||
|
inter_data_out(1)(0)(0)(4) <= data_out100(3) after delay_constant;
|
||
|
incr_rx_vec100(16-1 downto 12) <= inter_incr_in(1)(0)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec100(16-1 downto 12);
|
||
|
vc_write_rx_vec100(16-1 downto 12) <= inter_vc_write_in(1)(0)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec100(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(0)(0)(4) <= inter_data_out(1-1)(0)(0)(2);
|
||
|
|
||
|
inter_incr_in(1)(0)(0)(4) <= inter_incr_out(1-1)(0)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(0)(4) <= inter_vc_write_out(1-1)(0)(0)(2);
|
||
|
data_in100(4) <= inter_data_in(1)(0)(0)(5);
|
||
|
inter_data_out(1)(0)(0)(5) <= data_out100(4) after delay_constant;
|
||
|
incr_rx_vec100(20-1 downto 16) <= inter_incr_in(1)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec100(20-1 downto 16);
|
||
|
vc_write_rx_vec100(20-1 downto 16) <= inter_vc_write_in(1)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec100(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(0)(0)(5) <= inter_data_out(1)(0)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(0)(0)(5) <= inter_incr_out(1)(0)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(0)(5) <= inter_vc_write_out(1)(0)(0+1)(6);
|
||
|
|
||
|
inter_data_in(1)(0)(0)(0) <= local_rx(1);
|
||
|
local_tx(1) <= inter_data_out(1)(0)(0)(0);
|
||
|
|
||
|
inter_incr_in(1)(0)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(8-1 downto 4);
|
||
|
local_incr_tx_vec(8-1 downto 4) <= inter_incr_out(1)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(0)(0)(4-1 downto 0) <= local_vc_write_rx(8-1 downto 4);
|
||
|
local_vc_write_tx(8-1 downto 4) <= inter_vc_write_out(1)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=0 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_100: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 1,
|
||
|
Yis => 0,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in100,
|
||
|
vc_write_rx_vec => vc_write_rx_vec100,
|
||
|
incr_rx_vec => incr_rx_vec100,
|
||
|
data_tx_pl => data_out100,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec100,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec100
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in200(0) <= inter_data_in(2)(0)(0)(0);
|
||
|
inter_data_out(2)(0)(0)(0) <= data_out200(0) after delay_constant;
|
||
|
incr_rx_vec200(4-1 downto 0) <= inter_incr_in(2)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec200(4-1 downto 0);
|
||
|
vc_write_rx_vec200(4-1 downto 0) <= inter_vc_write_in(2)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec200(4-1 downto 0);
|
||
|
data_in200(1) <= inter_data_in(2)(0)(0)(1);
|
||
|
inter_data_out(2)(0)(0)(1) <= data_out200(1) after delay_constant;
|
||
|
incr_rx_vec200(8-1 downto 4) <= inter_incr_in(2)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec200(8-1 downto 4);
|
||
|
vc_write_rx_vec200(8-1 downto 4) <= inter_vc_write_in(2)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec200(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(0)(0)(1) <= inter_data_out(2)(0+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(2)(0)(0)(1) <= inter_incr_out(2)(0+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(0)(1) <= inter_vc_write_out(2)(0+1)(0)(3);
|
||
|
data_in200(2) <= inter_data_in(2)(0)(0)(2);
|
||
|
inter_data_out(2)(0)(0)(2) <= data_out200(2) after delay_constant;
|
||
|
incr_rx_vec200(12-1 downto 8) <= inter_incr_in(2)(0)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec200(12-1 downto 8);
|
||
|
vc_write_rx_vec200(12-1 downto 8) <= inter_vc_write_in(2)(0)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec200(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(0)(0)(2) <= inter_data_out(2+1)(0)(0)(4);
|
||
|
|
||
|
inter_incr_in(2)(0)(0)(2) <= inter_incr_out(2+1)(0)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(0)(2) <= inter_vc_write_out(2+1)(0)(0)(4);
|
||
|
data_in200(3) <= inter_data_in(2)(0)(0)(4);
|
||
|
inter_data_out(2)(0)(0)(4) <= data_out200(3) after delay_constant;
|
||
|
incr_rx_vec200(16-1 downto 12) <= inter_incr_in(2)(0)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec200(16-1 downto 12);
|
||
|
vc_write_rx_vec200(16-1 downto 12) <= inter_vc_write_in(2)(0)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec200(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(0)(0)(4) <= inter_data_out(2-1)(0)(0)(2);
|
||
|
|
||
|
inter_incr_in(2)(0)(0)(4) <= inter_incr_out(2-1)(0)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(0)(4) <= inter_vc_write_out(2-1)(0)(0)(2);
|
||
|
data_in200(4) <= inter_data_in(2)(0)(0)(5);
|
||
|
inter_data_out(2)(0)(0)(5) <= data_out200(4) after delay_constant;
|
||
|
incr_rx_vec200(20-1 downto 16) <= inter_incr_in(2)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec200(20-1 downto 16);
|
||
|
vc_write_rx_vec200(20-1 downto 16) <= inter_vc_write_in(2)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec200(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(0)(0)(5) <= inter_data_out(2)(0)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(0)(0)(5) <= inter_incr_out(2)(0)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(0)(5) <= inter_vc_write_out(2)(0)(0+1)(6);
|
||
|
|
||
|
inter_data_in(2)(0)(0)(0) <= local_rx(2);
|
||
|
local_tx(2) <= inter_data_out(2)(0)(0)(0);
|
||
|
|
||
|
inter_incr_in(2)(0)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(12-1 downto 8);
|
||
|
local_incr_tx_vec(12-1 downto 8) <= inter_incr_out(2)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(0)(0)(4-1 downto 0) <= local_vc_write_rx(12-1 downto 8);
|
||
|
local_vc_write_tx(12-1 downto 8) <= inter_vc_write_out(2)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=0 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_200: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 2,
|
||
|
Yis => 0,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in200,
|
||
|
vc_write_rx_vec => vc_write_rx_vec200,
|
||
|
incr_rx_vec => incr_rx_vec200,
|
||
|
data_tx_pl => data_out200,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec200,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec200
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in300(0) <= inter_data_in(3)(0)(0)(0);
|
||
|
inter_data_out(3)(0)(0)(0) <= data_out300(0) after delay_constant;
|
||
|
incr_rx_vec300(4-1 downto 0) <= inter_incr_in(3)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec300(4-1 downto 0);
|
||
|
vc_write_rx_vec300(4-1 downto 0) <= inter_vc_write_in(3)(0)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec300(4-1 downto 0);
|
||
|
data_in300(1) <= inter_data_in(3)(0)(0)(1);
|
||
|
inter_data_out(3)(0)(0)(1) <= data_out300(1) after delay_constant;
|
||
|
incr_rx_vec300(8-1 downto 4) <= inter_incr_in(3)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec300(8-1 downto 4);
|
||
|
vc_write_rx_vec300(8-1 downto 4) <= inter_vc_write_in(3)(0)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec300(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(0)(0)(1) <= inter_data_out(3)(0+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(3)(0)(0)(1) <= inter_incr_out(3)(0+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(0)(1) <= inter_vc_write_out(3)(0+1)(0)(3);
|
||
|
data_in300(2) <= inter_data_in(3)(0)(0)(4);
|
||
|
inter_data_out(3)(0)(0)(4) <= data_out300(2) after delay_constant;
|
||
|
incr_rx_vec300(12-1 downto 8) <= inter_incr_in(3)(0)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec300(12-1 downto 8);
|
||
|
vc_write_rx_vec300(12-1 downto 8) <= inter_vc_write_in(3)(0)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec300(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(0)(0)(4) <= inter_data_out(3-1)(0)(0)(2);
|
||
|
|
||
|
inter_incr_in(3)(0)(0)(4) <= inter_incr_out(3-1)(0)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(0)(4) <= inter_vc_write_out(3-1)(0)(0)(2);
|
||
|
data_in300(3) <= inter_data_in(3)(0)(0)(5);
|
||
|
inter_data_out(3)(0)(0)(5) <= data_out300(3) after delay_constant;
|
||
|
incr_rx_vec300(16-1 downto 12) <= inter_incr_in(3)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec300(16-1 downto 12);
|
||
|
vc_write_rx_vec300(16-1 downto 12) <= inter_vc_write_in(3)(0)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec300(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(0)(0)(5) <= inter_data_out(3)(0)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(0)(0)(5) <= inter_incr_out(3)(0)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(0)(5) <= inter_vc_write_out(3)(0)(0+1)(6);
|
||
|
|
||
|
inter_data_in(3)(0)(0)(0) <= local_rx(3);
|
||
|
local_tx(3) <= inter_data_out(3)(0)(0)(0);
|
||
|
|
||
|
inter_incr_in(3)(0)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(16-1 downto 12);
|
||
|
local_incr_tx_vec(16-1 downto 12) <= inter_incr_out(3)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(0)(0)(4-1 downto 0) <= local_vc_write_rx(16-1 downto 12);
|
||
|
local_vc_write_tx(16-1 downto 12) <= inter_vc_write_out(3)(0)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=0 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_300: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 3,
|
||
|
Yis => 0,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in300,
|
||
|
vc_write_rx_vec => vc_write_rx_vec300,
|
||
|
incr_rx_vec => incr_rx_vec300,
|
||
|
data_tx_pl => data_out300,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec300,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec300
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in010(0) <= inter_data_in(0)(1)(0)(0);
|
||
|
inter_data_out(0)(1)(0)(0) <= data_out010(0) after delay_constant;
|
||
|
incr_rx_vec010(4-1 downto 0) <= inter_incr_in(0)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec010(4-1 downto 0);
|
||
|
vc_write_rx_vec010(4-1 downto 0) <= inter_vc_write_in(0)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec010(4-1 downto 0);
|
||
|
data_in010(1) <= inter_data_in(0)(1)(0)(1);
|
||
|
inter_data_out(0)(1)(0)(1) <= data_out010(1) after delay_constant;
|
||
|
incr_rx_vec010(8-1 downto 4) <= inter_incr_in(0)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec010(8-1 downto 4);
|
||
|
vc_write_rx_vec010(8-1 downto 4) <= inter_vc_write_in(0)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec010(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(1)(0)(1) <= inter_data_out(0)(1+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(0)(1)(0)(1) <= inter_incr_out(0)(1+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(0)(1) <= inter_vc_write_out(0)(1+1)(0)(3);
|
||
|
data_in010(2) <= inter_data_in(0)(1)(0)(2);
|
||
|
inter_data_out(0)(1)(0)(2) <= data_out010(2) after delay_constant;
|
||
|
incr_rx_vec010(12-1 downto 8) <= inter_incr_in(0)(1)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec010(12-1 downto 8);
|
||
|
vc_write_rx_vec010(12-1 downto 8) <= inter_vc_write_in(0)(1)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec010(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(1)(0)(2) <= inter_data_out(0+1)(1)(0)(4);
|
||
|
|
||
|
inter_incr_in(0)(1)(0)(2) <= inter_incr_out(0+1)(1)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(0)(2) <= inter_vc_write_out(0+1)(1)(0)(4);
|
||
|
data_in010(3) <= inter_data_in(0)(1)(0)(3);
|
||
|
inter_data_out(0)(1)(0)(3) <= data_out010(3) after delay_constant;
|
||
|
incr_rx_vec010(16-1 downto 12) <= inter_incr_in(0)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec010(16-1 downto 12);
|
||
|
vc_write_rx_vec010(16-1 downto 12) <= inter_vc_write_in(0)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec010(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(1)(0)(3) <= inter_data_out(0)(1-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(0)(1)(0)(3) <= inter_incr_out(0)(1-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(0)(3) <= inter_vc_write_out(0)(1-1)(0)(1);
|
||
|
data_in010(4) <= inter_data_in(0)(1)(0)(5);
|
||
|
inter_data_out(0)(1)(0)(5) <= data_out010(4) after delay_constant;
|
||
|
incr_rx_vec010(20-1 downto 16) <= inter_incr_in(0)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec010(20-1 downto 16);
|
||
|
vc_write_rx_vec010(20-1 downto 16) <= inter_vc_write_in(0)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec010(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(1)(0)(5) <= inter_data_out(0)(1)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(1)(0)(5) <= inter_incr_out(0)(1)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(0)(5) <= inter_vc_write_out(0)(1)(0+1)(6);
|
||
|
|
||
|
inter_data_in(0)(1)(0)(0) <= local_rx(4);
|
||
|
local_tx(4) <= inter_data_out(0)(1)(0)(0);
|
||
|
|
||
|
inter_incr_in(0)(1)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(20-1 downto 16);
|
||
|
local_incr_tx_vec(20-1 downto 16) <= inter_incr_out(0)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(0)(0)(4-1 downto 0) <= local_vc_write_rx(20-1 downto 16);
|
||
|
local_vc_write_tx(20-1 downto 16) <= inter_vc_write_out(0)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=1 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_010: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 0,
|
||
|
Yis => 1,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in010,
|
||
|
vc_write_rx_vec => vc_write_rx_vec010,
|
||
|
incr_rx_vec => incr_rx_vec010,
|
||
|
data_tx_pl => data_out010,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec010,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec010
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in110(0) <= inter_data_in(1)(1)(0)(0);
|
||
|
inter_data_out(1)(1)(0)(0) <= data_out110(0) after delay_constant;
|
||
|
incr_rx_vec110(4-1 downto 0) <= inter_incr_in(1)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec110(4-1 downto 0);
|
||
|
vc_write_rx_vec110(4-1 downto 0) <= inter_vc_write_in(1)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec110(4-1 downto 0);
|
||
|
data_in110(1) <= inter_data_in(1)(1)(0)(1);
|
||
|
inter_data_out(1)(1)(0)(1) <= data_out110(1) after delay_constant;
|
||
|
incr_rx_vec110(8-1 downto 4) <= inter_incr_in(1)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec110(8-1 downto 4);
|
||
|
vc_write_rx_vec110(8-1 downto 4) <= inter_vc_write_in(1)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec110(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(1)(0)(1) <= inter_data_out(1)(1+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(1)(1)(0)(1) <= inter_incr_out(1)(1+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(0)(1) <= inter_vc_write_out(1)(1+1)(0)(3);
|
||
|
data_in110(2) <= inter_data_in(1)(1)(0)(2);
|
||
|
inter_data_out(1)(1)(0)(2) <= data_out110(2) after delay_constant;
|
||
|
incr_rx_vec110(12-1 downto 8) <= inter_incr_in(1)(1)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec110(12-1 downto 8);
|
||
|
vc_write_rx_vec110(12-1 downto 8) <= inter_vc_write_in(1)(1)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec110(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(1)(0)(2) <= inter_data_out(1+1)(1)(0)(4);
|
||
|
|
||
|
inter_incr_in(1)(1)(0)(2) <= inter_incr_out(1+1)(1)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(0)(2) <= inter_vc_write_out(1+1)(1)(0)(4);
|
||
|
data_in110(3) <= inter_data_in(1)(1)(0)(3);
|
||
|
inter_data_out(1)(1)(0)(3) <= data_out110(3) after delay_constant;
|
||
|
incr_rx_vec110(16-1 downto 12) <= inter_incr_in(1)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec110(16-1 downto 12);
|
||
|
vc_write_rx_vec110(16-1 downto 12) <= inter_vc_write_in(1)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec110(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(1)(0)(3) <= inter_data_out(1)(1-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(1)(1)(0)(3) <= inter_incr_out(1)(1-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(0)(3) <= inter_vc_write_out(1)(1-1)(0)(1);
|
||
|
data_in110(4) <= inter_data_in(1)(1)(0)(4);
|
||
|
inter_data_out(1)(1)(0)(4) <= data_out110(4) after delay_constant;
|
||
|
incr_rx_vec110(20-1 downto 16) <= inter_incr_in(1)(1)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec110(20-1 downto 16);
|
||
|
vc_write_rx_vec110(20-1 downto 16) <= inter_vc_write_in(1)(1)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec110(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(1)(0)(4) <= inter_data_out(1-1)(1)(0)(2);
|
||
|
|
||
|
inter_incr_in(1)(1)(0)(4) <= inter_incr_out(1-1)(1)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(0)(4) <= inter_vc_write_out(1-1)(1)(0)(2);
|
||
|
data_in110(5) <= inter_data_in(1)(1)(0)(5);
|
||
|
inter_data_out(1)(1)(0)(5) <= data_out110(5) after delay_constant;
|
||
|
incr_rx_vec110(24-1 downto 20) <= inter_incr_in(1)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec110(24-1 downto 20);
|
||
|
vc_write_rx_vec110(24-1 downto 20) <= inter_vc_write_in(1)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec110(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(1)(0)(5) <= inter_data_out(1)(1)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(1)(0)(5) <= inter_incr_out(1)(1)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(0)(5) <= inter_vc_write_out(1)(1)(0+1)(6);
|
||
|
|
||
|
inter_data_in(1)(1)(0)(0) <= local_rx(5);
|
||
|
local_tx(5) <= inter_data_out(1)(1)(0)(0);
|
||
|
|
||
|
inter_incr_in(1)(1)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(24-1 downto 20);
|
||
|
local_incr_tx_vec(24-1 downto 20) <= inter_incr_out(1)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(0)(0)(4-1 downto 0) <= local_vc_write_rx(24-1 downto 20);
|
||
|
local_vc_write_tx(24-1 downto 20) <= inter_vc_write_out(1)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=1 z=0 From Verilog code in gate folder
|
||
|
--------------------------------------------------------------------------
|
||
|
router_110: entity work.router_pl --work.router_fast_110
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 1,
|
||
|
Yis => 1,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in110, --data_rx110,
|
||
|
vc_write_rx_vec => vc_write_rx_vec110,
|
||
|
incr_rx_vec => incr_rx_vec110,
|
||
|
data_tx_pl => data_out110, --data_tx110,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec110,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec110
|
||
|
);
|
||
|
|
||
|
--data_in_gen: for i in 0 to 5 generate
|
||
|
-- data_rx110((i+1)*flit_size-1 downto i*flit_size) <= data_in110(i);
|
||
|
-- data_out110(i) <= data_tx110((i+1)*flit_size-1 downto i*flit_size);
|
||
|
--end generate;
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in210(0) <= inter_data_in(2)(1)(0)(0);
|
||
|
inter_data_out(2)(1)(0)(0) <= data_out210(0) after delay_constant;
|
||
|
incr_rx_vec210(4-1 downto 0) <= inter_incr_in(2)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec210(4-1 downto 0);
|
||
|
vc_write_rx_vec210(4-1 downto 0) <= inter_vc_write_in(2)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec210(4-1 downto 0);
|
||
|
data_in210(1) <= inter_data_in(2)(1)(0)(1);
|
||
|
inter_data_out(2)(1)(0)(1) <= data_out210(1) after delay_constant;
|
||
|
incr_rx_vec210(8-1 downto 4) <= inter_incr_in(2)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec210(8-1 downto 4);
|
||
|
vc_write_rx_vec210(8-1 downto 4) <= inter_vc_write_in(2)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec210(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(1)(0)(1) <= inter_data_out(2)(1+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(2)(1)(0)(1) <= inter_incr_out(2)(1+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(0)(1) <= inter_vc_write_out(2)(1+1)(0)(3);
|
||
|
data_in210(2) <= inter_data_in(2)(1)(0)(2);
|
||
|
inter_data_out(2)(1)(0)(2) <= data_out210(2) after delay_constant;
|
||
|
incr_rx_vec210(12-1 downto 8) <= inter_incr_in(2)(1)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec210(12-1 downto 8);
|
||
|
vc_write_rx_vec210(12-1 downto 8) <= inter_vc_write_in(2)(1)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec210(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(1)(0)(2) <= inter_data_out(2+1)(1)(0)(4);
|
||
|
|
||
|
inter_incr_in(2)(1)(0)(2) <= inter_incr_out(2+1)(1)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(0)(2) <= inter_vc_write_out(2+1)(1)(0)(4);
|
||
|
data_in210(3) <= inter_data_in(2)(1)(0)(3);
|
||
|
inter_data_out(2)(1)(0)(3) <= data_out210(3) after delay_constant;
|
||
|
incr_rx_vec210(16-1 downto 12) <= inter_incr_in(2)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec210(16-1 downto 12);
|
||
|
vc_write_rx_vec210(16-1 downto 12) <= inter_vc_write_in(2)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec210(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(1)(0)(3) <= inter_data_out(2)(1-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(2)(1)(0)(3) <= inter_incr_out(2)(1-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(0)(3) <= inter_vc_write_out(2)(1-1)(0)(1);
|
||
|
data_in210(4) <= inter_data_in(2)(1)(0)(4);
|
||
|
inter_data_out(2)(1)(0)(4) <= data_out210(4) after delay_constant;
|
||
|
incr_rx_vec210(20-1 downto 16) <= inter_incr_in(2)(1)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec210(20-1 downto 16);
|
||
|
vc_write_rx_vec210(20-1 downto 16) <= inter_vc_write_in(2)(1)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec210(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(1)(0)(4) <= inter_data_out(2-1)(1)(0)(2);
|
||
|
|
||
|
inter_incr_in(2)(1)(0)(4) <= inter_incr_out(2-1)(1)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(0)(4) <= inter_vc_write_out(2-1)(1)(0)(2);
|
||
|
data_in210(5) <= inter_data_in(2)(1)(0)(5);
|
||
|
inter_data_out(2)(1)(0)(5) <= data_out210(5) after delay_constant;
|
||
|
incr_rx_vec210(24-1 downto 20) <= inter_incr_in(2)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec210(24-1 downto 20);
|
||
|
vc_write_rx_vec210(24-1 downto 20) <= inter_vc_write_in(2)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec210(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(1)(0)(5) <= inter_data_out(2)(1)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(1)(0)(5) <= inter_incr_out(2)(1)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(0)(5) <= inter_vc_write_out(2)(1)(0+1)(6);
|
||
|
|
||
|
inter_data_in(2)(1)(0)(0) <= local_rx(6);
|
||
|
local_tx(6) <= inter_data_out(2)(1)(0)(0);
|
||
|
|
||
|
inter_incr_in(2)(1)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(28-1 downto 24);
|
||
|
local_incr_tx_vec(28-1 downto 24) <= inter_incr_out(2)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(0)(0)(4-1 downto 0) <= local_vc_write_rx(28-1 downto 24);
|
||
|
local_vc_write_tx(28-1 downto 24) <= inter_vc_write_out(2)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=1 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_210: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 2,
|
||
|
Yis => 1,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in210,
|
||
|
vc_write_rx_vec => vc_write_rx_vec210,
|
||
|
incr_rx_vec => incr_rx_vec210,
|
||
|
data_tx_pl => data_out210,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec210,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec210
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in310(0) <= inter_data_in(3)(1)(0)(0);
|
||
|
inter_data_out(3)(1)(0)(0) <= data_out310(0) after delay_constant;
|
||
|
incr_rx_vec310(4-1 downto 0) <= inter_incr_in(3)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec310(4-1 downto 0);
|
||
|
vc_write_rx_vec310(4-1 downto 0) <= inter_vc_write_in(3)(1)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec310(4-1 downto 0);
|
||
|
data_in310(1) <= inter_data_in(3)(1)(0)(1);
|
||
|
inter_data_out(3)(1)(0)(1) <= data_out310(1) after delay_constant;
|
||
|
incr_rx_vec310(8-1 downto 4) <= inter_incr_in(3)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec310(8-1 downto 4);
|
||
|
vc_write_rx_vec310(8-1 downto 4) <= inter_vc_write_in(3)(1)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec310(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(1)(0)(1) <= inter_data_out(3)(1+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(3)(1)(0)(1) <= inter_incr_out(3)(1+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(0)(1) <= inter_vc_write_out(3)(1+1)(0)(3);
|
||
|
data_in310(2) <= inter_data_in(3)(1)(0)(3);
|
||
|
inter_data_out(3)(1)(0)(3) <= data_out310(2) after delay_constant;
|
||
|
incr_rx_vec310(12-1 downto 8) <= inter_incr_in(3)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec310(12-1 downto 8);
|
||
|
vc_write_rx_vec310(12-1 downto 8) <= inter_vc_write_in(3)(1)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec310(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(1)(0)(3) <= inter_data_out(3)(1-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(3)(1)(0)(3) <= inter_incr_out(3)(1-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(0)(3) <= inter_vc_write_out(3)(1-1)(0)(1);
|
||
|
data_in310(3) <= inter_data_in(3)(1)(0)(4);
|
||
|
inter_data_out(3)(1)(0)(4) <= data_out310(3) after delay_constant;
|
||
|
incr_rx_vec310(16-1 downto 12) <= inter_incr_in(3)(1)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec310(16-1 downto 12);
|
||
|
vc_write_rx_vec310(16-1 downto 12) <= inter_vc_write_in(3)(1)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec310(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(1)(0)(4) <= inter_data_out(3-1)(1)(0)(2);
|
||
|
|
||
|
inter_incr_in(3)(1)(0)(4) <= inter_incr_out(3-1)(1)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(0)(4) <= inter_vc_write_out(3-1)(1)(0)(2);
|
||
|
data_in310(4) <= inter_data_in(3)(1)(0)(5);
|
||
|
inter_data_out(3)(1)(0)(5) <= data_out310(4) after delay_constant;
|
||
|
incr_rx_vec310(20-1 downto 16) <= inter_incr_in(3)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec310(20-1 downto 16);
|
||
|
vc_write_rx_vec310(20-1 downto 16) <= inter_vc_write_in(3)(1)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec310(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(1)(0)(5) <= inter_data_out(3)(1)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(1)(0)(5) <= inter_incr_out(3)(1)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(0)(5) <= inter_vc_write_out(3)(1)(0+1)(6);
|
||
|
|
||
|
inter_data_in(3)(1)(0)(0) <= local_rx(7);
|
||
|
local_tx(7) <= inter_data_out(3)(1)(0)(0);
|
||
|
|
||
|
inter_incr_in(3)(1)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(32-1 downto 28);
|
||
|
local_incr_tx_vec(32-1 downto 28) <= inter_incr_out(3)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(0)(0)(4-1 downto 0) <= local_vc_write_rx(32-1 downto 28);
|
||
|
local_vc_write_tx(32-1 downto 28) <= inter_vc_write_out(3)(1)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=1 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_310: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 3,
|
||
|
Yis => 1,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in310,
|
||
|
vc_write_rx_vec => vc_write_rx_vec310,
|
||
|
incr_rx_vec => incr_rx_vec310,
|
||
|
data_tx_pl => data_out310,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec310,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec310
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in020(0) <= inter_data_in(0)(2)(0)(0);
|
||
|
inter_data_out(0)(2)(0)(0) <= data_out020(0) after delay_constant;
|
||
|
incr_rx_vec020(4-1 downto 0) <= inter_incr_in(0)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec020(4-1 downto 0);
|
||
|
vc_write_rx_vec020(4-1 downto 0) <= inter_vc_write_in(0)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec020(4-1 downto 0);
|
||
|
data_in020(1) <= inter_data_in(0)(2)(0)(1);
|
||
|
inter_data_out(0)(2)(0)(1) <= data_out020(1) after delay_constant;
|
||
|
incr_rx_vec020(8-1 downto 4) <= inter_incr_in(0)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec020(8-1 downto 4);
|
||
|
vc_write_rx_vec020(8-1 downto 4) <= inter_vc_write_in(0)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec020(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(2)(0)(1) <= inter_data_out(0)(2+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(0)(2)(0)(1) <= inter_incr_out(0)(2+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(0)(1) <= inter_vc_write_out(0)(2+1)(0)(3);
|
||
|
data_in020(2) <= inter_data_in(0)(2)(0)(2);
|
||
|
inter_data_out(0)(2)(0)(2) <= data_out020(2) after delay_constant;
|
||
|
incr_rx_vec020(12-1 downto 8) <= inter_incr_in(0)(2)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec020(12-1 downto 8);
|
||
|
vc_write_rx_vec020(12-1 downto 8) <= inter_vc_write_in(0)(2)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec020(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(2)(0)(2) <= inter_data_out(0+1)(2)(0)(4);
|
||
|
|
||
|
inter_incr_in(0)(2)(0)(2) <= inter_incr_out(0+1)(2)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(0)(2) <= inter_vc_write_out(0+1)(2)(0)(4);
|
||
|
data_in020(3) <= inter_data_in(0)(2)(0)(3);
|
||
|
inter_data_out(0)(2)(0)(3) <= data_out020(3) after delay_constant;
|
||
|
incr_rx_vec020(16-1 downto 12) <= inter_incr_in(0)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec020(16-1 downto 12);
|
||
|
vc_write_rx_vec020(16-1 downto 12) <= inter_vc_write_in(0)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec020(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(2)(0)(3) <= inter_data_out(0)(2-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(0)(2)(0)(3) <= inter_incr_out(0)(2-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(0)(3) <= inter_vc_write_out(0)(2-1)(0)(1);
|
||
|
data_in020(4) <= inter_data_in(0)(2)(0)(5);
|
||
|
inter_data_out(0)(2)(0)(5) <= data_out020(4) after delay_constant;
|
||
|
incr_rx_vec020(20-1 downto 16) <= inter_incr_in(0)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec020(20-1 downto 16);
|
||
|
vc_write_rx_vec020(20-1 downto 16) <= inter_vc_write_in(0)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec020(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(2)(0)(5) <= inter_data_out(0)(2)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(2)(0)(5) <= inter_incr_out(0)(2)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(0)(5) <= inter_vc_write_out(0)(2)(0+1)(6);
|
||
|
|
||
|
inter_data_in(0)(2)(0)(0) <= local_rx(8);
|
||
|
local_tx(8) <= inter_data_out(0)(2)(0)(0);
|
||
|
|
||
|
inter_incr_in(0)(2)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(36-1 downto 32);
|
||
|
local_incr_tx_vec(36-1 downto 32) <= inter_incr_out(0)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(0)(0)(4-1 downto 0) <= local_vc_write_rx(36-1 downto 32);
|
||
|
local_vc_write_tx(36-1 downto 32) <= inter_vc_write_out(0)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=2 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_020: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 0,
|
||
|
Yis => 2,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in020,
|
||
|
vc_write_rx_vec => vc_write_rx_vec020,
|
||
|
incr_rx_vec => incr_rx_vec020,
|
||
|
data_tx_pl => data_out020,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec020,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec020
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in120(0) <= inter_data_in(1)(2)(0)(0);
|
||
|
inter_data_out(1)(2)(0)(0) <= data_out120(0) after delay_constant;
|
||
|
incr_rx_vec120(4-1 downto 0) <= inter_incr_in(1)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec120(4-1 downto 0);
|
||
|
vc_write_rx_vec120(4-1 downto 0) <= inter_vc_write_in(1)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec120(4-1 downto 0);
|
||
|
data_in120(1) <= inter_data_in(1)(2)(0)(1);
|
||
|
inter_data_out(1)(2)(0)(1) <= data_out120(1) after delay_constant;
|
||
|
incr_rx_vec120(8-1 downto 4) <= inter_incr_in(1)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec120(8-1 downto 4);
|
||
|
vc_write_rx_vec120(8-1 downto 4) <= inter_vc_write_in(1)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec120(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(2)(0)(1) <= inter_data_out(1)(2+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(1)(2)(0)(1) <= inter_incr_out(1)(2+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(0)(1) <= inter_vc_write_out(1)(2+1)(0)(3);
|
||
|
data_in120(2) <= inter_data_in(1)(2)(0)(2);
|
||
|
inter_data_out(1)(2)(0)(2) <= data_out120(2) after delay_constant;
|
||
|
incr_rx_vec120(12-1 downto 8) <= inter_incr_in(1)(2)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec120(12-1 downto 8);
|
||
|
vc_write_rx_vec120(12-1 downto 8) <= inter_vc_write_in(1)(2)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec120(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(2)(0)(2) <= inter_data_out(1+1)(2)(0)(4);
|
||
|
|
||
|
inter_incr_in(1)(2)(0)(2) <= inter_incr_out(1+1)(2)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(0)(2) <= inter_vc_write_out(1+1)(2)(0)(4);
|
||
|
data_in120(3) <= inter_data_in(1)(2)(0)(3);
|
||
|
inter_data_out(1)(2)(0)(3) <= data_out120(3) after delay_constant;
|
||
|
incr_rx_vec120(16-1 downto 12) <= inter_incr_in(1)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec120(16-1 downto 12);
|
||
|
vc_write_rx_vec120(16-1 downto 12) <= inter_vc_write_in(1)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec120(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(2)(0)(3) <= inter_data_out(1)(2-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(1)(2)(0)(3) <= inter_incr_out(1)(2-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(0)(3) <= inter_vc_write_out(1)(2-1)(0)(1);
|
||
|
data_in120(4) <= inter_data_in(1)(2)(0)(4);
|
||
|
inter_data_out(1)(2)(0)(4) <= data_out120(4) after delay_constant;
|
||
|
incr_rx_vec120(20-1 downto 16) <= inter_incr_in(1)(2)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec120(20-1 downto 16);
|
||
|
vc_write_rx_vec120(20-1 downto 16) <= inter_vc_write_in(1)(2)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec120(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(2)(0)(4) <= inter_data_out(1-1)(2)(0)(2);
|
||
|
|
||
|
inter_incr_in(1)(2)(0)(4) <= inter_incr_out(1-1)(2)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(0)(4) <= inter_vc_write_out(1-1)(2)(0)(2);
|
||
|
data_in120(5) <= inter_data_in(1)(2)(0)(5);
|
||
|
inter_data_out(1)(2)(0)(5) <= data_out120(5) after delay_constant;
|
||
|
incr_rx_vec120(24-1 downto 20) <= inter_incr_in(1)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec120(24-1 downto 20);
|
||
|
vc_write_rx_vec120(24-1 downto 20) <= inter_vc_write_in(1)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec120(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(2)(0)(5) <= inter_data_out(1)(2)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(2)(0)(5) <= inter_incr_out(1)(2)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(0)(5) <= inter_vc_write_out(1)(2)(0+1)(6);
|
||
|
|
||
|
inter_data_in(1)(2)(0)(0) <= local_rx(9);
|
||
|
local_tx(9) <= inter_data_out(1)(2)(0)(0);
|
||
|
|
||
|
inter_incr_in(1)(2)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(40-1 downto 36);
|
||
|
local_incr_tx_vec(40-1 downto 36) <= inter_incr_out(1)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(0)(0)(4-1 downto 0) <= local_vc_write_rx(40-1 downto 36);
|
||
|
local_vc_write_tx(40-1 downto 36) <= inter_vc_write_out(1)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=2 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_120: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 1,
|
||
|
Yis => 2,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in120,
|
||
|
vc_write_rx_vec => vc_write_rx_vec120,
|
||
|
incr_rx_vec => incr_rx_vec120,
|
||
|
data_tx_pl => data_out120,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec120,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec120
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in220(0) <= inter_data_in(2)(2)(0)(0);
|
||
|
inter_data_out(2)(2)(0)(0) <= data_out220(0) after delay_constant;
|
||
|
incr_rx_vec220(4-1 downto 0) <= inter_incr_in(2)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec220(4-1 downto 0);
|
||
|
vc_write_rx_vec220(4-1 downto 0) <= inter_vc_write_in(2)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec220(4-1 downto 0);
|
||
|
data_in220(1) <= inter_data_in(2)(2)(0)(1);
|
||
|
inter_data_out(2)(2)(0)(1) <= data_out220(1) after delay_constant;
|
||
|
incr_rx_vec220(8-1 downto 4) <= inter_incr_in(2)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec220(8-1 downto 4);
|
||
|
vc_write_rx_vec220(8-1 downto 4) <= inter_vc_write_in(2)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec220(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(2)(0)(1) <= inter_data_out(2)(2+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(2)(2)(0)(1) <= inter_incr_out(2)(2+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(0)(1) <= inter_vc_write_out(2)(2+1)(0)(3);
|
||
|
data_in220(2) <= inter_data_in(2)(2)(0)(2);
|
||
|
inter_data_out(2)(2)(0)(2) <= data_out220(2) after delay_constant;
|
||
|
incr_rx_vec220(12-1 downto 8) <= inter_incr_in(2)(2)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec220(12-1 downto 8);
|
||
|
vc_write_rx_vec220(12-1 downto 8) <= inter_vc_write_in(2)(2)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec220(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(2)(0)(2) <= inter_data_out(2+1)(2)(0)(4);
|
||
|
|
||
|
inter_incr_in(2)(2)(0)(2) <= inter_incr_out(2+1)(2)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(0)(2) <= inter_vc_write_out(2+1)(2)(0)(4);
|
||
|
data_in220(3) <= inter_data_in(2)(2)(0)(3);
|
||
|
inter_data_out(2)(2)(0)(3) <= data_out220(3) after delay_constant;
|
||
|
incr_rx_vec220(16-1 downto 12) <= inter_incr_in(2)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec220(16-1 downto 12);
|
||
|
vc_write_rx_vec220(16-1 downto 12) <= inter_vc_write_in(2)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec220(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(2)(0)(3) <= inter_data_out(2)(2-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(2)(2)(0)(3) <= inter_incr_out(2)(2-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(0)(3) <= inter_vc_write_out(2)(2-1)(0)(1);
|
||
|
data_in220(4) <= inter_data_in(2)(2)(0)(4);
|
||
|
inter_data_out(2)(2)(0)(4) <= data_out220(4) after delay_constant;
|
||
|
incr_rx_vec220(20-1 downto 16) <= inter_incr_in(2)(2)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec220(20-1 downto 16);
|
||
|
vc_write_rx_vec220(20-1 downto 16) <= inter_vc_write_in(2)(2)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec220(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(2)(0)(4) <= inter_data_out(2-1)(2)(0)(2);
|
||
|
|
||
|
inter_incr_in(2)(2)(0)(4) <= inter_incr_out(2-1)(2)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(0)(4) <= inter_vc_write_out(2-1)(2)(0)(2);
|
||
|
data_in220(5) <= inter_data_in(2)(2)(0)(5);
|
||
|
inter_data_out(2)(2)(0)(5) <= data_out220(5) after delay_constant;
|
||
|
incr_rx_vec220(24-1 downto 20) <= inter_incr_in(2)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec220(24-1 downto 20);
|
||
|
vc_write_rx_vec220(24-1 downto 20) <= inter_vc_write_in(2)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec220(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(2)(0)(5) <= inter_data_out(2)(2)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(2)(0)(5) <= inter_incr_out(2)(2)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(0)(5) <= inter_vc_write_out(2)(2)(0+1)(6);
|
||
|
|
||
|
inter_data_in(2)(2)(0)(0) <= local_rx(10);
|
||
|
local_tx(10) <= inter_data_out(2)(2)(0)(0);
|
||
|
|
||
|
inter_incr_in(2)(2)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(44-1 downto 40);
|
||
|
local_incr_tx_vec(44-1 downto 40) <= inter_incr_out(2)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(0)(0)(4-1 downto 0) <= local_vc_write_rx(44-1 downto 40);
|
||
|
local_vc_write_tx(44-1 downto 40) <= inter_vc_write_out(2)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=2 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_220: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 2,
|
||
|
Yis => 2,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in220,
|
||
|
vc_write_rx_vec => vc_write_rx_vec220,
|
||
|
incr_rx_vec => incr_rx_vec220,
|
||
|
data_tx_pl => data_out220,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec220,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec220
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in320(0) <= inter_data_in(3)(2)(0)(0);
|
||
|
inter_data_out(3)(2)(0)(0) <= data_out320(0) after delay_constant;
|
||
|
incr_rx_vec320(4-1 downto 0) <= inter_incr_in(3)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec320(4-1 downto 0);
|
||
|
vc_write_rx_vec320(4-1 downto 0) <= inter_vc_write_in(3)(2)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec320(4-1 downto 0);
|
||
|
data_in320(1) <= inter_data_in(3)(2)(0)(1);
|
||
|
inter_data_out(3)(2)(0)(1) <= data_out320(1) after delay_constant;
|
||
|
incr_rx_vec320(8-1 downto 4) <= inter_incr_in(3)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(0)(1)(4-1 downto 0) <= incr_tx_pl_vec320(8-1 downto 4);
|
||
|
vc_write_rx_vec320(8-1 downto 4) <= inter_vc_write_in(3)(2)(0)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(0)(1)(4-1 downto 0) <= vc_write_tx_pl_vec320(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(2)(0)(1) <= inter_data_out(3)(2+1)(0)(3);
|
||
|
|
||
|
inter_incr_in(3)(2)(0)(1) <= inter_incr_out(3)(2+1)(0)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(0)(1) <= inter_vc_write_out(3)(2+1)(0)(3);
|
||
|
data_in320(2) <= inter_data_in(3)(2)(0)(3);
|
||
|
inter_data_out(3)(2)(0)(3) <= data_out320(2) after delay_constant;
|
||
|
incr_rx_vec320(12-1 downto 8) <= inter_incr_in(3)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec320(12-1 downto 8);
|
||
|
vc_write_rx_vec320(12-1 downto 8) <= inter_vc_write_in(3)(2)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec320(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(2)(0)(3) <= inter_data_out(3)(2-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(3)(2)(0)(3) <= inter_incr_out(3)(2-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(0)(3) <= inter_vc_write_out(3)(2-1)(0)(1);
|
||
|
data_in320(3) <= inter_data_in(3)(2)(0)(4);
|
||
|
inter_data_out(3)(2)(0)(4) <= data_out320(3) after delay_constant;
|
||
|
incr_rx_vec320(16-1 downto 12) <= inter_incr_in(3)(2)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec320(16-1 downto 12);
|
||
|
vc_write_rx_vec320(16-1 downto 12) <= inter_vc_write_in(3)(2)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec320(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(2)(0)(4) <= inter_data_out(3-1)(2)(0)(2);
|
||
|
|
||
|
inter_incr_in(3)(2)(0)(4) <= inter_incr_out(3-1)(2)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(0)(4) <= inter_vc_write_out(3-1)(2)(0)(2);
|
||
|
data_in320(4) <= inter_data_in(3)(2)(0)(5);
|
||
|
inter_data_out(3)(2)(0)(5) <= data_out320(4) after delay_constant;
|
||
|
incr_rx_vec320(20-1 downto 16) <= inter_incr_in(3)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec320(20-1 downto 16);
|
||
|
vc_write_rx_vec320(20-1 downto 16) <= inter_vc_write_in(3)(2)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec320(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(2)(0)(5) <= inter_data_out(3)(2)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(2)(0)(5) <= inter_incr_out(3)(2)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(0)(5) <= inter_vc_write_out(3)(2)(0+1)(6);
|
||
|
|
||
|
inter_data_in(3)(2)(0)(0) <= local_rx(11);
|
||
|
local_tx(11) <= inter_data_out(3)(2)(0)(0);
|
||
|
|
||
|
inter_incr_in(3)(2)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(48-1 downto 44);
|
||
|
local_incr_tx_vec(48-1 downto 44) <= inter_incr_out(3)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(0)(0)(4-1 downto 0) <= local_vc_write_rx(48-1 downto 44);
|
||
|
local_vc_write_tx(48-1 downto 44) <= inter_vc_write_out(3)(2)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=2 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_320: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 3,
|
||
|
Yis => 2,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in320,
|
||
|
vc_write_rx_vec => vc_write_rx_vec320,
|
||
|
incr_rx_vec => incr_rx_vec320,
|
||
|
data_tx_pl => data_out320,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec320,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec320
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in030(0) <= inter_data_in(0)(3)(0)(0);
|
||
|
inter_data_out(0)(3)(0)(0) <= data_out030(0) after delay_constant;
|
||
|
incr_rx_vec030(4-1 downto 0) <= inter_incr_in(0)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec030(4-1 downto 0);
|
||
|
vc_write_rx_vec030(4-1 downto 0) <= inter_vc_write_in(0)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec030(4-1 downto 0);
|
||
|
data_in030(1) <= inter_data_in(0)(3)(0)(2);
|
||
|
inter_data_out(0)(3)(0)(2) <= data_out030(1) after delay_constant;
|
||
|
incr_rx_vec030(8-1 downto 4) <= inter_incr_in(0)(3)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec030(8-1 downto 4);
|
||
|
vc_write_rx_vec030(8-1 downto 4) <= inter_vc_write_in(0)(3)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec030(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(3)(0)(2) <= inter_data_out(0+1)(3)(0)(4);
|
||
|
|
||
|
inter_incr_in(0)(3)(0)(2) <= inter_incr_out(0+1)(3)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(0)(2) <= inter_vc_write_out(0+1)(3)(0)(4);
|
||
|
data_in030(2) <= inter_data_in(0)(3)(0)(3);
|
||
|
inter_data_out(0)(3)(0)(3) <= data_out030(2) after delay_constant;
|
||
|
incr_rx_vec030(12-1 downto 8) <= inter_incr_in(0)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec030(12-1 downto 8);
|
||
|
vc_write_rx_vec030(12-1 downto 8) <= inter_vc_write_in(0)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec030(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(3)(0)(3) <= inter_data_out(0)(3-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(0)(3)(0)(3) <= inter_incr_out(0)(3-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(0)(3) <= inter_vc_write_out(0)(3-1)(0)(1);
|
||
|
data_in030(3) <= inter_data_in(0)(3)(0)(5);
|
||
|
inter_data_out(0)(3)(0)(5) <= data_out030(3) after delay_constant;
|
||
|
incr_rx_vec030(16-1 downto 12) <= inter_incr_in(0)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec030(16-1 downto 12);
|
||
|
vc_write_rx_vec030(16-1 downto 12) <= inter_vc_write_in(0)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec030(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(3)(0)(5) <= inter_data_out(0)(3)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(3)(0)(5) <= inter_incr_out(0)(3)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(0)(5) <= inter_vc_write_out(0)(3)(0+1)(6);
|
||
|
|
||
|
inter_data_in(0)(3)(0)(0) <= local_rx(12);
|
||
|
local_tx(12) <= inter_data_out(0)(3)(0)(0);
|
||
|
|
||
|
inter_incr_in(0)(3)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(52-1 downto 48);
|
||
|
local_incr_tx_vec(52-1 downto 48) <= inter_incr_out(0)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(0)(0)(4-1 downto 0) <= local_vc_write_rx(52-1 downto 48);
|
||
|
local_vc_write_tx(52-1 downto 48) <= inter_vc_write_out(0)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=3 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_030: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 0,
|
||
|
Yis => 3,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,5),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in030,
|
||
|
vc_write_rx_vec => vc_write_rx_vec030,
|
||
|
incr_rx_vec => incr_rx_vec030,
|
||
|
data_tx_pl => data_out030,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec030,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec030
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in130(0) <= inter_data_in(1)(3)(0)(0);
|
||
|
inter_data_out(1)(3)(0)(0) <= data_out130(0) after delay_constant;
|
||
|
incr_rx_vec130(4-1 downto 0) <= inter_incr_in(1)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec130(4-1 downto 0);
|
||
|
vc_write_rx_vec130(4-1 downto 0) <= inter_vc_write_in(1)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec130(4-1 downto 0);
|
||
|
data_in130(1) <= inter_data_in(1)(3)(0)(2);
|
||
|
inter_data_out(1)(3)(0)(2) <= data_out130(1) after delay_constant;
|
||
|
incr_rx_vec130(8-1 downto 4) <= inter_incr_in(1)(3)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec130(8-1 downto 4);
|
||
|
vc_write_rx_vec130(8-1 downto 4) <= inter_vc_write_in(1)(3)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec130(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(3)(0)(2) <= inter_data_out(1+1)(3)(0)(4);
|
||
|
|
||
|
inter_incr_in(1)(3)(0)(2) <= inter_incr_out(1+1)(3)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(0)(2) <= inter_vc_write_out(1+1)(3)(0)(4);
|
||
|
data_in130(2) <= inter_data_in(1)(3)(0)(3);
|
||
|
inter_data_out(1)(3)(0)(3) <= data_out130(2) after delay_constant;
|
||
|
incr_rx_vec130(12-1 downto 8) <= inter_incr_in(1)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec130(12-1 downto 8);
|
||
|
vc_write_rx_vec130(12-1 downto 8) <= inter_vc_write_in(1)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec130(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(3)(0)(3) <= inter_data_out(1)(3-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(1)(3)(0)(3) <= inter_incr_out(1)(3-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(0)(3) <= inter_vc_write_out(1)(3-1)(0)(1);
|
||
|
data_in130(3) <= inter_data_in(1)(3)(0)(4);
|
||
|
inter_data_out(1)(3)(0)(4) <= data_out130(3) after delay_constant;
|
||
|
incr_rx_vec130(16-1 downto 12) <= inter_incr_in(1)(3)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec130(16-1 downto 12);
|
||
|
vc_write_rx_vec130(16-1 downto 12) <= inter_vc_write_in(1)(3)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec130(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(3)(0)(4) <= inter_data_out(1-1)(3)(0)(2);
|
||
|
|
||
|
inter_incr_in(1)(3)(0)(4) <= inter_incr_out(1-1)(3)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(0)(4) <= inter_vc_write_out(1-1)(3)(0)(2);
|
||
|
data_in130(4) <= inter_data_in(1)(3)(0)(5);
|
||
|
inter_data_out(1)(3)(0)(5) <= data_out130(4) after delay_constant;
|
||
|
incr_rx_vec130(20-1 downto 16) <= inter_incr_in(1)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec130(20-1 downto 16);
|
||
|
vc_write_rx_vec130(20-1 downto 16) <= inter_vc_write_in(1)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec130(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(3)(0)(5) <= inter_data_out(1)(3)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(3)(0)(5) <= inter_incr_out(1)(3)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(0)(5) <= inter_vc_write_out(1)(3)(0+1)(6);
|
||
|
|
||
|
inter_data_in(1)(3)(0)(0) <= local_rx(13);
|
||
|
local_tx(13) <= inter_data_out(1)(3)(0)(0);
|
||
|
|
||
|
inter_incr_in(1)(3)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(56-1 downto 52);
|
||
|
local_incr_tx_vec(56-1 downto 52) <= inter_incr_out(1)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(0)(0)(4-1 downto 0) <= local_vc_write_rx(56-1 downto 52);
|
||
|
local_vc_write_tx(56-1 downto 52) <= inter_vc_write_out(1)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=3 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_130: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 1,
|
||
|
Yis => 3,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in130,
|
||
|
vc_write_rx_vec => vc_write_rx_vec130,
|
||
|
incr_rx_vec => incr_rx_vec130,
|
||
|
data_tx_pl => data_out130,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec130,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec130
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in230(0) <= inter_data_in(2)(3)(0)(0);
|
||
|
inter_data_out(2)(3)(0)(0) <= data_out230(0) after delay_constant;
|
||
|
incr_rx_vec230(4-1 downto 0) <= inter_incr_in(2)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec230(4-1 downto 0);
|
||
|
vc_write_rx_vec230(4-1 downto 0) <= inter_vc_write_in(2)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec230(4-1 downto 0);
|
||
|
data_in230(1) <= inter_data_in(2)(3)(0)(2);
|
||
|
inter_data_out(2)(3)(0)(2) <= data_out230(1) after delay_constant;
|
||
|
incr_rx_vec230(8-1 downto 4) <= inter_incr_in(2)(3)(0)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(0)(2)(4-1 downto 0) <= incr_tx_pl_vec230(8-1 downto 4);
|
||
|
vc_write_rx_vec230(8-1 downto 4) <= inter_vc_write_in(2)(3)(0)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(0)(2)(4-1 downto 0) <= vc_write_tx_pl_vec230(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(3)(0)(2) <= inter_data_out(2+1)(3)(0)(4);
|
||
|
|
||
|
inter_incr_in(2)(3)(0)(2) <= inter_incr_out(2+1)(3)(0)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(0)(2) <= inter_vc_write_out(2+1)(3)(0)(4);
|
||
|
data_in230(2) <= inter_data_in(2)(3)(0)(3);
|
||
|
inter_data_out(2)(3)(0)(3) <= data_out230(2) after delay_constant;
|
||
|
incr_rx_vec230(12-1 downto 8) <= inter_incr_in(2)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec230(12-1 downto 8);
|
||
|
vc_write_rx_vec230(12-1 downto 8) <= inter_vc_write_in(2)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec230(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(3)(0)(3) <= inter_data_out(2)(3-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(2)(3)(0)(3) <= inter_incr_out(2)(3-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(0)(3) <= inter_vc_write_out(2)(3-1)(0)(1);
|
||
|
data_in230(3) <= inter_data_in(2)(3)(0)(4);
|
||
|
inter_data_out(2)(3)(0)(4) <= data_out230(3) after delay_constant;
|
||
|
incr_rx_vec230(16-1 downto 12) <= inter_incr_in(2)(3)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec230(16-1 downto 12);
|
||
|
vc_write_rx_vec230(16-1 downto 12) <= inter_vc_write_in(2)(3)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec230(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(3)(0)(4) <= inter_data_out(2-1)(3)(0)(2);
|
||
|
|
||
|
inter_incr_in(2)(3)(0)(4) <= inter_incr_out(2-1)(3)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(0)(4) <= inter_vc_write_out(2-1)(3)(0)(2);
|
||
|
data_in230(4) <= inter_data_in(2)(3)(0)(5);
|
||
|
inter_data_out(2)(3)(0)(5) <= data_out230(4) after delay_constant;
|
||
|
incr_rx_vec230(20-1 downto 16) <= inter_incr_in(2)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec230(20-1 downto 16);
|
||
|
vc_write_rx_vec230(20-1 downto 16) <= inter_vc_write_in(2)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec230(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(3)(0)(5) <= inter_data_out(2)(3)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(3)(0)(5) <= inter_incr_out(2)(3)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(0)(5) <= inter_vc_write_out(2)(3)(0+1)(6);
|
||
|
|
||
|
inter_data_in(2)(3)(0)(0) <= local_rx(14);
|
||
|
local_tx(14) <= inter_data_out(2)(3)(0)(0);
|
||
|
|
||
|
inter_incr_in(2)(3)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(60-1 downto 56);
|
||
|
local_incr_tx_vec(60-1 downto 56) <= inter_incr_out(2)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(0)(0)(4-1 downto 0) <= local_vc_write_rx(60-1 downto 56);
|
||
|
local_vc_write_tx(60-1 downto 56) <= inter_vc_write_out(2)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=3 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_230: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 2,
|
||
|
Yis => 3,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in230,
|
||
|
vc_write_rx_vec => vc_write_rx_vec230,
|
||
|
incr_rx_vec => incr_rx_vec230,
|
||
|
data_tx_pl => data_out230,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec230,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec230
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in330(0) <= inter_data_in(3)(3)(0)(0);
|
||
|
inter_data_out(3)(3)(0)(0) <= data_out330(0) after delay_constant;
|
||
|
incr_rx_vec330(4-1 downto 0) <= inter_incr_in(3)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(0)(0)(4-1 downto 0) <= incr_tx_pl_vec330(4-1 downto 0);
|
||
|
vc_write_rx_vec330(4-1 downto 0) <= inter_vc_write_in(3)(3)(0)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(0)(0)(4-1 downto 0) <= vc_write_tx_pl_vec330(4-1 downto 0);
|
||
|
data_in330(1) <= inter_data_in(3)(3)(0)(3);
|
||
|
inter_data_out(3)(3)(0)(3) <= data_out330(1) after delay_constant;
|
||
|
incr_rx_vec330(8-1 downto 4) <= inter_incr_in(3)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(0)(3)(4-1 downto 0) <= incr_tx_pl_vec330(8-1 downto 4);
|
||
|
vc_write_rx_vec330(8-1 downto 4) <= inter_vc_write_in(3)(3)(0)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(0)(3)(4-1 downto 0) <= vc_write_tx_pl_vec330(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(3)(0)(3) <= inter_data_out(3)(3-1)(0)(1);
|
||
|
|
||
|
inter_incr_in(3)(3)(0)(3) <= inter_incr_out(3)(3-1)(0)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(0)(3) <= inter_vc_write_out(3)(3-1)(0)(1);
|
||
|
data_in330(2) <= inter_data_in(3)(3)(0)(4);
|
||
|
inter_data_out(3)(3)(0)(4) <= data_out330(2) after delay_constant;
|
||
|
incr_rx_vec330(12-1 downto 8) <= inter_incr_in(3)(3)(0)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(0)(4)(4-1 downto 0) <= incr_tx_pl_vec330(12-1 downto 8);
|
||
|
vc_write_rx_vec330(12-1 downto 8) <= inter_vc_write_in(3)(3)(0)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(0)(4)(4-1 downto 0) <= vc_write_tx_pl_vec330(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(3)(0)(4) <= inter_data_out(3-1)(3)(0)(2);
|
||
|
|
||
|
inter_incr_in(3)(3)(0)(4) <= inter_incr_out(3-1)(3)(0)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(0)(4) <= inter_vc_write_out(3-1)(3)(0)(2);
|
||
|
data_in330(3) <= inter_data_in(3)(3)(0)(5);
|
||
|
inter_data_out(3)(3)(0)(5) <= data_out330(3) after delay_constant;
|
||
|
incr_rx_vec330(16-1 downto 12) <= inter_incr_in(3)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(0)(5)(4-1 downto 0) <= incr_tx_pl_vec330(16-1 downto 12);
|
||
|
vc_write_rx_vec330(16-1 downto 12) <= inter_vc_write_in(3)(3)(0)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(0)(5)(4-1 downto 0) <= vc_write_tx_pl_vec330(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(3)(0)(5) <= inter_data_out(3)(3)(0+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(3)(0)(5) <= inter_incr_out(3)(3)(0+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(0)(5) <= inter_vc_write_out(3)(3)(0+1)(6);
|
||
|
|
||
|
inter_data_in(3)(3)(0)(0) <= local_rx(15);
|
||
|
local_tx(15) <= inter_data_out(3)(3)(0)(0);
|
||
|
|
||
|
inter_incr_in(3)(3)(0)(0)(4-1 downto 0) <= local_incr_rx_vec(64-1 downto 60);
|
||
|
local_incr_tx_vec(64-1 downto 60) <= inter_incr_out(3)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(0)(0)(4-1 downto 0) <= local_vc_write_rx(64-1 downto 60);
|
||
|
local_vc_write_tx(64-1 downto 60) <= inter_vc_write_out(3)(3)(0)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=3 z=0
|
||
|
--------------------------------------------------------------------------
|
||
|
router_330: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 3,
|
||
|
Yis => 3,
|
||
|
Zis => 0,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,3,4,5),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in330,
|
||
|
vc_write_rx_vec => vc_write_rx_vec330,
|
||
|
incr_rx_vec => incr_rx_vec330,
|
||
|
data_tx_pl => data_out330,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec330,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec330
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in001(0) <= inter_data_in(0)(0)(1)(0);
|
||
|
inter_data_out(0)(0)(1)(0) <= data_out001(0);
|
||
|
incr_rx_vec001(4-1 downto 0) <= inter_incr_in(0)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec001(4-1 downto 0);
|
||
|
vc_write_rx_vec001(4-1 downto 0) <= inter_vc_write_in(0)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec001(4-1 downto 0);
|
||
|
data_in001(1) <= inter_data_in(0)(0)(1)(1);
|
||
|
inter_data_out(0)(0)(1)(1) <= data_out001(1);
|
||
|
incr_rx_vec001(8-1 downto 4) <= inter_incr_in(0)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec001(8-1 downto 4);
|
||
|
vc_write_rx_vec001(8-1 downto 4) <= inter_vc_write_in(0)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec001(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(0)(1)(1) <= inter_data_out(0)(0+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(0)(0)(1)(1) <= inter_incr_out(0)(0+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(1)(1) <= inter_vc_write_out(0)(0+1)(1)(3);
|
||
|
data_in001(2) <= inter_data_in(0)(0)(1)(2);
|
||
|
inter_data_out(0)(0)(1)(2) <= data_out001(2);
|
||
|
incr_rx_vec001(12-1 downto 8) <= inter_incr_in(0)(0)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec001(12-1 downto 8);
|
||
|
vc_write_rx_vec001(12-1 downto 8) <= inter_vc_write_in(0)(0)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec001(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(0)(1)(2) <= inter_data_out(0+1)(0)(1)(4);
|
||
|
|
||
|
inter_incr_in(0)(0)(1)(2) <= inter_incr_out(0+1)(0)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(1)(2) <= inter_vc_write_out(0+1)(0)(1)(4);
|
||
|
data_in001(3) <= inter_data_in(0)(0)(1)(5);
|
||
|
inter_data_out(0)(0)(1)(5) <= data_out001(3);
|
||
|
incr_rx_vec001(16-1 downto 12) <= inter_incr_in(0)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec001(16-1 downto 12);
|
||
|
vc_write_rx_vec001(16-1 downto 12) <= inter_vc_write_in(0)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec001(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(0)(1)(5) <= inter_data_out(0)(0)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(0)(1)(5) <= inter_incr_out(0)(0)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(1)(5) <= inter_vc_write_out(0)(0)(1+1)(6);
|
||
|
data_in001(4) <= inter_data_in(0)(0)(1)(6);
|
||
|
inter_data_out(0)(0)(1)(6) <= data_out001(4);
|
||
|
incr_rx_vec001(20-1 downto 16) <= inter_incr_in(0)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec001(20-1 downto 16);
|
||
|
vc_write_rx_vec001(20-1 downto 16) <= inter_vc_write_in(0)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec001(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(0)(1)(6) <= inter_data_out(0)(0)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(0)(1)(6) <= inter_incr_out(0)(0)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(1)(6) <= inter_vc_write_out(0)(0)(1-1)(5);
|
||
|
|
||
|
inter_data_in(0)(0)(1)(0) <= local_rx(16);
|
||
|
local_tx(16) <= inter_data_out(0)(0)(1)(0);
|
||
|
|
||
|
inter_incr_in(0)(0)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(68-1 downto 64);
|
||
|
local_incr_tx_vec(68-1 downto 64) <= inter_incr_out(0)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(1)(0)(4-1 downto 0) <= local_vc_write_rx(68-1 downto 64);
|
||
|
local_vc_write_tx(68-1 downto 64) <= inter_vc_write_out(0)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=0 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_001: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 0,
|
||
|
Yis => 0,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in001,
|
||
|
vc_write_rx_vec => vc_write_rx_vec001,
|
||
|
incr_rx_vec => incr_rx_vec001,
|
||
|
data_tx_pl => data_out001,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec001,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec001
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in101(0) <= inter_data_in(1)(0)(1)(0);
|
||
|
inter_data_out(1)(0)(1)(0) <= data_out101(0);
|
||
|
incr_rx_vec101(4-1 downto 0) <= inter_incr_in(1)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec101(4-1 downto 0);
|
||
|
vc_write_rx_vec101(4-1 downto 0) <= inter_vc_write_in(1)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec101(4-1 downto 0);
|
||
|
data_in101(1) <= inter_data_in(1)(0)(1)(1);
|
||
|
inter_data_out(1)(0)(1)(1) <= data_out101(1);
|
||
|
incr_rx_vec101(8-1 downto 4) <= inter_incr_in(1)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec101(8-1 downto 4);
|
||
|
vc_write_rx_vec101(8-1 downto 4) <= inter_vc_write_in(1)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec101(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(0)(1)(1) <= inter_data_out(1)(0+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(1)(0)(1)(1) <= inter_incr_out(1)(0+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(1)(1) <= inter_vc_write_out(1)(0+1)(1)(3);
|
||
|
data_in101(2) <= inter_data_in(1)(0)(1)(2);
|
||
|
inter_data_out(1)(0)(1)(2) <= data_out101(2);
|
||
|
incr_rx_vec101(12-1 downto 8) <= inter_incr_in(1)(0)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec101(12-1 downto 8);
|
||
|
vc_write_rx_vec101(12-1 downto 8) <= inter_vc_write_in(1)(0)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec101(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(0)(1)(2) <= inter_data_out(1+1)(0)(1)(4);
|
||
|
|
||
|
inter_incr_in(1)(0)(1)(2) <= inter_incr_out(1+1)(0)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(1)(2) <= inter_vc_write_out(1+1)(0)(1)(4);
|
||
|
data_in101(3) <= inter_data_in(1)(0)(1)(4);
|
||
|
inter_data_out(1)(0)(1)(4) <= data_out101(3);
|
||
|
incr_rx_vec101(16-1 downto 12) <= inter_incr_in(1)(0)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec101(16-1 downto 12);
|
||
|
vc_write_rx_vec101(16-1 downto 12) <= inter_vc_write_in(1)(0)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec101(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(0)(1)(4) <= inter_data_out(1-1)(0)(1)(2);
|
||
|
|
||
|
inter_incr_in(1)(0)(1)(4) <= inter_incr_out(1-1)(0)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(1)(4) <= inter_vc_write_out(1-1)(0)(1)(2);
|
||
|
data_in101(4) <= inter_data_in(1)(0)(1)(5);
|
||
|
inter_data_out(1)(0)(1)(5) <= data_out101(4);
|
||
|
incr_rx_vec101(20-1 downto 16) <= inter_incr_in(1)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec101(20-1 downto 16);
|
||
|
vc_write_rx_vec101(20-1 downto 16) <= inter_vc_write_in(1)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec101(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(0)(1)(5) <= inter_data_out(1)(0)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(0)(1)(5) <= inter_incr_out(1)(0)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(1)(5) <= inter_vc_write_out(1)(0)(1+1)(6);
|
||
|
data_in101(5) <= inter_data_in(1)(0)(1)(6);
|
||
|
inter_data_out(1)(0)(1)(6) <= data_out101(5);
|
||
|
incr_rx_vec101(24-1 downto 20) <= inter_incr_in(1)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec101(24-1 downto 20);
|
||
|
vc_write_rx_vec101(24-1 downto 20) <= inter_vc_write_in(1)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec101(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(0)(1)(6) <= inter_data_out(1)(0)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(0)(1)(6) <= inter_incr_out(1)(0)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(1)(6) <= inter_vc_write_out(1)(0)(1-1)(5);
|
||
|
|
||
|
inter_data_in(1)(0)(1)(0) <= local_rx(17);
|
||
|
local_tx(17) <= inter_data_out(1)(0)(1)(0);
|
||
|
|
||
|
inter_incr_in(1)(0)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(72-1 downto 68);
|
||
|
local_incr_tx_vec(72-1 downto 68) <= inter_incr_out(1)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(1)(0)(4-1 downto 0) <= local_vc_write_rx(72-1 downto 68);
|
||
|
local_vc_write_tx(72-1 downto 68) <= inter_vc_write_out(1)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=0 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_101: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 1,
|
||
|
Yis => 0,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in101,
|
||
|
vc_write_rx_vec => vc_write_rx_vec101,
|
||
|
incr_rx_vec => incr_rx_vec101,
|
||
|
data_tx_pl => data_out101,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec101,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec101
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in201(0) <= inter_data_in(2)(0)(1)(0);
|
||
|
inter_data_out(2)(0)(1)(0) <= data_out201(0);
|
||
|
incr_rx_vec201(4-1 downto 0) <= inter_incr_in(2)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec201(4-1 downto 0);
|
||
|
vc_write_rx_vec201(4-1 downto 0) <= inter_vc_write_in(2)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec201(4-1 downto 0);
|
||
|
data_in201(1) <= inter_data_in(2)(0)(1)(1);
|
||
|
inter_data_out(2)(0)(1)(1) <= data_out201(1);
|
||
|
incr_rx_vec201(8-1 downto 4) <= inter_incr_in(2)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec201(8-1 downto 4);
|
||
|
vc_write_rx_vec201(8-1 downto 4) <= inter_vc_write_in(2)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec201(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(0)(1)(1) <= inter_data_out(2)(0+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(2)(0)(1)(1) <= inter_incr_out(2)(0+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(1)(1) <= inter_vc_write_out(2)(0+1)(1)(3);
|
||
|
data_in201(2) <= inter_data_in(2)(0)(1)(2);
|
||
|
inter_data_out(2)(0)(1)(2) <= data_out201(2);
|
||
|
incr_rx_vec201(12-1 downto 8) <= inter_incr_in(2)(0)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec201(12-1 downto 8);
|
||
|
vc_write_rx_vec201(12-1 downto 8) <= inter_vc_write_in(2)(0)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec201(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(0)(1)(2) <= inter_data_out(2+1)(0)(1)(4);
|
||
|
|
||
|
inter_incr_in(2)(0)(1)(2) <= inter_incr_out(2+1)(0)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(1)(2) <= inter_vc_write_out(2+1)(0)(1)(4);
|
||
|
data_in201(3) <= inter_data_in(2)(0)(1)(4);
|
||
|
inter_data_out(2)(0)(1)(4) <= data_out201(3);
|
||
|
incr_rx_vec201(16-1 downto 12) <= inter_incr_in(2)(0)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec201(16-1 downto 12);
|
||
|
vc_write_rx_vec201(16-1 downto 12) <= inter_vc_write_in(2)(0)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec201(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(0)(1)(4) <= inter_data_out(2-1)(0)(1)(2);
|
||
|
|
||
|
inter_incr_in(2)(0)(1)(4) <= inter_incr_out(2-1)(0)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(1)(4) <= inter_vc_write_out(2-1)(0)(1)(2);
|
||
|
data_in201(4) <= inter_data_in(2)(0)(1)(5);
|
||
|
inter_data_out(2)(0)(1)(5) <= data_out201(4);
|
||
|
incr_rx_vec201(20-1 downto 16) <= inter_incr_in(2)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec201(20-1 downto 16);
|
||
|
vc_write_rx_vec201(20-1 downto 16) <= inter_vc_write_in(2)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec201(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(0)(1)(5) <= inter_data_out(2)(0)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(0)(1)(5) <= inter_incr_out(2)(0)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(1)(5) <= inter_vc_write_out(2)(0)(1+1)(6);
|
||
|
data_in201(5) <= inter_data_in(2)(0)(1)(6);
|
||
|
inter_data_out(2)(0)(1)(6) <= data_out201(5);
|
||
|
incr_rx_vec201(24-1 downto 20) <= inter_incr_in(2)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec201(24-1 downto 20);
|
||
|
vc_write_rx_vec201(24-1 downto 20) <= inter_vc_write_in(2)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec201(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(0)(1)(6) <= inter_data_out(2)(0)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(0)(1)(6) <= inter_incr_out(2)(0)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(1)(6) <= inter_vc_write_out(2)(0)(1-1)(5);
|
||
|
|
||
|
inter_data_in(2)(0)(1)(0) <= local_rx(18);
|
||
|
local_tx(18) <= inter_data_out(2)(0)(1)(0);
|
||
|
|
||
|
inter_incr_in(2)(0)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(76-1 downto 72);
|
||
|
local_incr_tx_vec(76-1 downto 72) <= inter_incr_out(2)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(1)(0)(4-1 downto 0) <= local_vc_write_rx(76-1 downto 72);
|
||
|
local_vc_write_tx(76-1 downto 72) <= inter_vc_write_out(2)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=0 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_201: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 2,
|
||
|
Yis => 0,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in201,
|
||
|
vc_write_rx_vec => vc_write_rx_vec201,
|
||
|
incr_rx_vec => incr_rx_vec201,
|
||
|
data_tx_pl => data_out201,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec201,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec201
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in301(0) <= inter_data_in(3)(0)(1)(0);
|
||
|
inter_data_out(3)(0)(1)(0) <= data_out301(0);
|
||
|
incr_rx_vec301(4-1 downto 0) <= inter_incr_in(3)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec301(4-1 downto 0);
|
||
|
vc_write_rx_vec301(4-1 downto 0) <= inter_vc_write_in(3)(0)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec301(4-1 downto 0);
|
||
|
data_in301(1) <= inter_data_in(3)(0)(1)(1);
|
||
|
inter_data_out(3)(0)(1)(1) <= data_out301(1);
|
||
|
incr_rx_vec301(8-1 downto 4) <= inter_incr_in(3)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec301(8-1 downto 4);
|
||
|
vc_write_rx_vec301(8-1 downto 4) <= inter_vc_write_in(3)(0)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec301(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(0)(1)(1) <= inter_data_out(3)(0+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(3)(0)(1)(1) <= inter_incr_out(3)(0+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(1)(1) <= inter_vc_write_out(3)(0+1)(1)(3);
|
||
|
data_in301(2) <= inter_data_in(3)(0)(1)(4);
|
||
|
inter_data_out(3)(0)(1)(4) <= data_out301(2);
|
||
|
incr_rx_vec301(12-1 downto 8) <= inter_incr_in(3)(0)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec301(12-1 downto 8);
|
||
|
vc_write_rx_vec301(12-1 downto 8) <= inter_vc_write_in(3)(0)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec301(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(0)(1)(4) <= inter_data_out(3-1)(0)(1)(2);
|
||
|
|
||
|
inter_incr_in(3)(0)(1)(4) <= inter_incr_out(3-1)(0)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(1)(4) <= inter_vc_write_out(3-1)(0)(1)(2);
|
||
|
data_in301(3) <= inter_data_in(3)(0)(1)(5);
|
||
|
inter_data_out(3)(0)(1)(5) <= data_out301(3);
|
||
|
incr_rx_vec301(16-1 downto 12) <= inter_incr_in(3)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec301(16-1 downto 12);
|
||
|
vc_write_rx_vec301(16-1 downto 12) <= inter_vc_write_in(3)(0)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec301(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(0)(1)(5) <= inter_data_out(3)(0)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(0)(1)(5) <= inter_incr_out(3)(0)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(1)(5) <= inter_vc_write_out(3)(0)(1+1)(6);
|
||
|
data_in301(4) <= inter_data_in(3)(0)(1)(6);
|
||
|
inter_data_out(3)(0)(1)(6) <= data_out301(4);
|
||
|
incr_rx_vec301(20-1 downto 16) <= inter_incr_in(3)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec301(20-1 downto 16);
|
||
|
vc_write_rx_vec301(20-1 downto 16) <= inter_vc_write_in(3)(0)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec301(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(0)(1)(6) <= inter_data_out(3)(0)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(0)(1)(6) <= inter_incr_out(3)(0)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(1)(6) <= inter_vc_write_out(3)(0)(1-1)(5);
|
||
|
|
||
|
inter_data_in(3)(0)(1)(0) <= local_rx(19);
|
||
|
local_tx(19) <= inter_data_out(3)(0)(1)(0);
|
||
|
|
||
|
inter_incr_in(3)(0)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(80-1 downto 76);
|
||
|
local_incr_tx_vec(80-1 downto 76) <= inter_incr_out(3)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(1)(0)(4-1 downto 0) <= local_vc_write_rx(80-1 downto 76);
|
||
|
local_vc_write_tx(80-1 downto 76) <= inter_vc_write_out(3)(0)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=0 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_301: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 3,
|
||
|
Yis => 0,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in301,
|
||
|
vc_write_rx_vec => vc_write_rx_vec301,
|
||
|
incr_rx_vec => incr_rx_vec301,
|
||
|
data_tx_pl => data_out301,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec301,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec301
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in011(0) <= inter_data_in(0)(1)(1)(0);
|
||
|
inter_data_out(0)(1)(1)(0) <= data_out011(0);
|
||
|
incr_rx_vec011(4-1 downto 0) <= inter_incr_in(0)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec011(4-1 downto 0);
|
||
|
vc_write_rx_vec011(4-1 downto 0) <= inter_vc_write_in(0)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec011(4-1 downto 0);
|
||
|
data_in011(1) <= inter_data_in(0)(1)(1)(1);
|
||
|
inter_data_out(0)(1)(1)(1) <= data_out011(1);
|
||
|
incr_rx_vec011(8-1 downto 4) <= inter_incr_in(0)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec011(8-1 downto 4);
|
||
|
vc_write_rx_vec011(8-1 downto 4) <= inter_vc_write_in(0)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec011(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(1)(1)(1) <= inter_data_out(0)(1+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(0)(1)(1)(1) <= inter_incr_out(0)(1+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(1)(1) <= inter_vc_write_out(0)(1+1)(1)(3);
|
||
|
data_in011(2) <= inter_data_in(0)(1)(1)(2);
|
||
|
inter_data_out(0)(1)(1)(2) <= data_out011(2);
|
||
|
incr_rx_vec011(12-1 downto 8) <= inter_incr_in(0)(1)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec011(12-1 downto 8);
|
||
|
vc_write_rx_vec011(12-1 downto 8) <= inter_vc_write_in(0)(1)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec011(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(1)(1)(2) <= inter_data_out(0+1)(1)(1)(4);
|
||
|
|
||
|
inter_incr_in(0)(1)(1)(2) <= inter_incr_out(0+1)(1)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(1)(2) <= inter_vc_write_out(0+1)(1)(1)(4);
|
||
|
data_in011(3) <= inter_data_in(0)(1)(1)(3);
|
||
|
inter_data_out(0)(1)(1)(3) <= data_out011(3);
|
||
|
incr_rx_vec011(16-1 downto 12) <= inter_incr_in(0)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec011(16-1 downto 12);
|
||
|
vc_write_rx_vec011(16-1 downto 12) <= inter_vc_write_in(0)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec011(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(1)(1)(3) <= inter_data_out(0)(1-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(0)(1)(1)(3) <= inter_incr_out(0)(1-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(1)(3) <= inter_vc_write_out(0)(1-1)(1)(1);
|
||
|
data_in011(4) <= inter_data_in(0)(1)(1)(5);
|
||
|
inter_data_out(0)(1)(1)(5) <= data_out011(4);
|
||
|
incr_rx_vec011(20-1 downto 16) <= inter_incr_in(0)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec011(20-1 downto 16);
|
||
|
vc_write_rx_vec011(20-1 downto 16) <= inter_vc_write_in(0)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec011(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(1)(1)(5) <= inter_data_out(0)(1)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(1)(1)(5) <= inter_incr_out(0)(1)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(1)(5) <= inter_vc_write_out(0)(1)(1+1)(6);
|
||
|
data_in011(5) <= inter_data_in(0)(1)(1)(6);
|
||
|
inter_data_out(0)(1)(1)(6) <= data_out011(5);
|
||
|
incr_rx_vec011(24-1 downto 20) <= inter_incr_in(0)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec011(24-1 downto 20);
|
||
|
vc_write_rx_vec011(24-1 downto 20) <= inter_vc_write_in(0)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec011(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(0)(1)(1)(6) <= inter_data_out(0)(1)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(1)(1)(6) <= inter_incr_out(0)(1)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(1)(6) <= inter_vc_write_out(0)(1)(1-1)(5);
|
||
|
|
||
|
inter_data_in(0)(1)(1)(0) <= local_rx(20);
|
||
|
local_tx(20) <= inter_data_out(0)(1)(1)(0);
|
||
|
|
||
|
inter_incr_in(0)(1)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(84-1 downto 80);
|
||
|
local_incr_tx_vec(84-1 downto 80) <= inter_incr_out(0)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(1)(0)(4-1 downto 0) <= local_vc_write_rx(84-1 downto 80);
|
||
|
local_vc_write_tx(84-1 downto 80) <= inter_vc_write_out(0)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=1 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_011: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 0,
|
||
|
Yis => 1,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in011,
|
||
|
vc_write_rx_vec => vc_write_rx_vec011,
|
||
|
incr_rx_vec => incr_rx_vec011,
|
||
|
data_tx_pl => data_out011,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec011,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec011
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in111(0) <= inter_data_in(1)(1)(1)(0);
|
||
|
inter_data_out(1)(1)(1)(0) <= data_out111(0);
|
||
|
incr_rx_vec111(4-1 downto 0) <= inter_incr_in(1)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec111(4-1 downto 0);
|
||
|
vc_write_rx_vec111(4-1 downto 0) <= inter_vc_write_in(1)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec111(4-1 downto 0);
|
||
|
data_in111(1) <= inter_data_in(1)(1)(1)(1);
|
||
|
inter_data_out(1)(1)(1)(1) <= data_out111(1);
|
||
|
incr_rx_vec111(8-1 downto 4) <= inter_incr_in(1)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec111(8-1 downto 4);
|
||
|
vc_write_rx_vec111(8-1 downto 4) <= inter_vc_write_in(1)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec111(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(1) <= inter_data_out(1)(1+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(1) <= inter_incr_out(1)(1+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(1) <= inter_vc_write_out(1)(1+1)(1)(3);
|
||
|
data_in111(2) <= inter_data_in(1)(1)(1)(2);
|
||
|
inter_data_out(1)(1)(1)(2) <= data_out111(2);
|
||
|
incr_rx_vec111(12-1 downto 8) <= inter_incr_in(1)(1)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec111(12-1 downto 8);
|
||
|
vc_write_rx_vec111(12-1 downto 8) <= inter_vc_write_in(1)(1)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec111(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(2) <= inter_data_out(1+1)(1)(1)(4);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(2) <= inter_incr_out(1+1)(1)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(2) <= inter_vc_write_out(1+1)(1)(1)(4);
|
||
|
data_in111(3) <= inter_data_in(1)(1)(1)(3);
|
||
|
inter_data_out(1)(1)(1)(3) <= data_out111(3);
|
||
|
incr_rx_vec111(16-1 downto 12) <= inter_incr_in(1)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec111(16-1 downto 12);
|
||
|
vc_write_rx_vec111(16-1 downto 12) <= inter_vc_write_in(1)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec111(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(3) <= inter_data_out(1)(1-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(3) <= inter_incr_out(1)(1-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(3) <= inter_vc_write_out(1)(1-1)(1)(1);
|
||
|
data_in111(4) <= inter_data_in(1)(1)(1)(4);
|
||
|
inter_data_out(1)(1)(1)(4) <= data_out111(4);
|
||
|
incr_rx_vec111(20-1 downto 16) <= inter_incr_in(1)(1)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec111(20-1 downto 16);
|
||
|
vc_write_rx_vec111(20-1 downto 16) <= inter_vc_write_in(1)(1)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec111(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(4) <= inter_data_out(1-1)(1)(1)(2);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(4) <= inter_incr_out(1-1)(1)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(4) <= inter_vc_write_out(1-1)(1)(1)(2);
|
||
|
data_in111(5) <= inter_data_in(1)(1)(1)(5);
|
||
|
inter_data_out(1)(1)(1)(5) <= data_out111(5);
|
||
|
incr_rx_vec111(24-1 downto 20) <= inter_incr_in(1)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec111(24-1 downto 20);
|
||
|
vc_write_rx_vec111(24-1 downto 20) <= inter_vc_write_in(1)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec111(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(5) <= inter_data_out(1)(1)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(5) <= inter_incr_out(1)(1)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(5) <= inter_vc_write_out(1)(1)(1+1)(6);
|
||
|
data_in111(6) <= inter_data_in(1)(1)(1)(6);
|
||
|
inter_data_out(1)(1)(1)(6) <= data_out111(6);
|
||
|
incr_rx_vec111(28-1 downto 24) <= inter_incr_in(1)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec111(28-1 downto 24);
|
||
|
vc_write_rx_vec111(28-1 downto 24) <= inter_vc_write_in(1)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec111(28-1 downto 24);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(6) <= inter_data_out(1)(1)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(6) <= inter_incr_out(1)(1)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(6) <= inter_vc_write_out(1)(1)(1-1)(5);
|
||
|
|
||
|
inter_data_in(1)(1)(1)(0) <= local_rx(21);
|
||
|
local_tx(21) <= inter_data_out(1)(1)(1)(0);
|
||
|
|
||
|
inter_incr_in(1)(1)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(88-1 downto 84);
|
||
|
local_incr_tx_vec(88-1 downto 84) <= inter_incr_out(1)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(1)(0)(4-1 downto 0) <= local_vc_write_rx(88-1 downto 84);
|
||
|
local_vc_write_tx(88-1 downto 84) <= inter_vc_write_out(1)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=1 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_111: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 7,
|
||
|
Xis => 1,
|
||
|
Yis => 1,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in111,
|
||
|
vc_write_rx_vec => vc_write_rx_vec111,
|
||
|
incr_rx_vec => incr_rx_vec111,
|
||
|
data_tx_pl => data_out111,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec111,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec111
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in211(0) <= inter_data_in(2)(1)(1)(0);
|
||
|
inter_data_out(2)(1)(1)(0) <= data_out211(0);
|
||
|
incr_rx_vec211(4-1 downto 0) <= inter_incr_in(2)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec211(4-1 downto 0);
|
||
|
vc_write_rx_vec211(4-1 downto 0) <= inter_vc_write_in(2)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec211(4-1 downto 0);
|
||
|
data_in211(1) <= inter_data_in(2)(1)(1)(1);
|
||
|
inter_data_out(2)(1)(1)(1) <= data_out211(1);
|
||
|
incr_rx_vec211(8-1 downto 4) <= inter_incr_in(2)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec211(8-1 downto 4);
|
||
|
vc_write_rx_vec211(8-1 downto 4) <= inter_vc_write_in(2)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec211(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(1) <= inter_data_out(2)(1+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(1) <= inter_incr_out(2)(1+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(1) <= inter_vc_write_out(2)(1+1)(1)(3);
|
||
|
data_in211(2) <= inter_data_in(2)(1)(1)(2);
|
||
|
inter_data_out(2)(1)(1)(2) <= data_out211(2);
|
||
|
incr_rx_vec211(12-1 downto 8) <= inter_incr_in(2)(1)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec211(12-1 downto 8);
|
||
|
vc_write_rx_vec211(12-1 downto 8) <= inter_vc_write_in(2)(1)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec211(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(2) <= inter_data_out(2+1)(1)(1)(4);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(2) <= inter_incr_out(2+1)(1)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(2) <= inter_vc_write_out(2+1)(1)(1)(4);
|
||
|
data_in211(3) <= inter_data_in(2)(1)(1)(3);
|
||
|
inter_data_out(2)(1)(1)(3) <= data_out211(3);
|
||
|
incr_rx_vec211(16-1 downto 12) <= inter_incr_in(2)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec211(16-1 downto 12);
|
||
|
vc_write_rx_vec211(16-1 downto 12) <= inter_vc_write_in(2)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec211(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(3) <= inter_data_out(2)(1-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(3) <= inter_incr_out(2)(1-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(3) <= inter_vc_write_out(2)(1-1)(1)(1);
|
||
|
data_in211(4) <= inter_data_in(2)(1)(1)(4);
|
||
|
inter_data_out(2)(1)(1)(4) <= data_out211(4);
|
||
|
incr_rx_vec211(20-1 downto 16) <= inter_incr_in(2)(1)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec211(20-1 downto 16);
|
||
|
vc_write_rx_vec211(20-1 downto 16) <= inter_vc_write_in(2)(1)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec211(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(4) <= inter_data_out(2-1)(1)(1)(2);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(4) <= inter_incr_out(2-1)(1)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(4) <= inter_vc_write_out(2-1)(1)(1)(2);
|
||
|
data_in211(5) <= inter_data_in(2)(1)(1)(5);
|
||
|
inter_data_out(2)(1)(1)(5) <= data_out211(5);
|
||
|
incr_rx_vec211(24-1 downto 20) <= inter_incr_in(2)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec211(24-1 downto 20);
|
||
|
vc_write_rx_vec211(24-1 downto 20) <= inter_vc_write_in(2)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec211(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(5) <= inter_data_out(2)(1)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(5) <= inter_incr_out(2)(1)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(5) <= inter_vc_write_out(2)(1)(1+1)(6);
|
||
|
data_in211(6) <= inter_data_in(2)(1)(1)(6);
|
||
|
inter_data_out(2)(1)(1)(6) <= data_out211(6);
|
||
|
incr_rx_vec211(28-1 downto 24) <= inter_incr_in(2)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec211(28-1 downto 24);
|
||
|
vc_write_rx_vec211(28-1 downto 24) <= inter_vc_write_in(2)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec211(28-1 downto 24);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(6) <= inter_data_out(2)(1)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(6) <= inter_incr_out(2)(1)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(6) <= inter_vc_write_out(2)(1)(1-1)(5);
|
||
|
|
||
|
inter_data_in(2)(1)(1)(0) <= local_rx(22);
|
||
|
local_tx(22) <= inter_data_out(2)(1)(1)(0);
|
||
|
|
||
|
inter_incr_in(2)(1)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(92-1 downto 88);
|
||
|
local_incr_tx_vec(92-1 downto 88) <= inter_incr_out(2)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(1)(0)(4-1 downto 0) <= local_vc_write_rx(92-1 downto 88);
|
||
|
local_vc_write_tx(92-1 downto 88) <= inter_vc_write_out(2)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=1 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_211: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 7,
|
||
|
Xis => 2,
|
||
|
Yis => 1,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in211,
|
||
|
vc_write_rx_vec => vc_write_rx_vec211,
|
||
|
incr_rx_vec => incr_rx_vec211,
|
||
|
data_tx_pl => data_out211,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec211,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec211
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in311(0) <= inter_data_in(3)(1)(1)(0);
|
||
|
inter_data_out(3)(1)(1)(0) <= data_out311(0);
|
||
|
incr_rx_vec311(4-1 downto 0) <= inter_incr_in(3)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec311(4-1 downto 0);
|
||
|
vc_write_rx_vec311(4-1 downto 0) <= inter_vc_write_in(3)(1)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec311(4-1 downto 0);
|
||
|
data_in311(1) <= inter_data_in(3)(1)(1)(1);
|
||
|
inter_data_out(3)(1)(1)(1) <= data_out311(1);
|
||
|
incr_rx_vec311(8-1 downto 4) <= inter_incr_in(3)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec311(8-1 downto 4);
|
||
|
vc_write_rx_vec311(8-1 downto 4) <= inter_vc_write_in(3)(1)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec311(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(1)(1)(1) <= inter_data_out(3)(1+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(3)(1)(1)(1) <= inter_incr_out(3)(1+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(1)(1) <= inter_vc_write_out(3)(1+1)(1)(3);
|
||
|
data_in311(2) <= inter_data_in(3)(1)(1)(3);
|
||
|
inter_data_out(3)(1)(1)(3) <= data_out311(2);
|
||
|
incr_rx_vec311(12-1 downto 8) <= inter_incr_in(3)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec311(12-1 downto 8);
|
||
|
vc_write_rx_vec311(12-1 downto 8) <= inter_vc_write_in(3)(1)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec311(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(1)(1)(3) <= inter_data_out(3)(1-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(3)(1)(1)(3) <= inter_incr_out(3)(1-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(1)(3) <= inter_vc_write_out(3)(1-1)(1)(1);
|
||
|
data_in311(3) <= inter_data_in(3)(1)(1)(4);
|
||
|
inter_data_out(3)(1)(1)(4) <= data_out311(3);
|
||
|
incr_rx_vec311(16-1 downto 12) <= inter_incr_in(3)(1)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec311(16-1 downto 12);
|
||
|
vc_write_rx_vec311(16-1 downto 12) <= inter_vc_write_in(3)(1)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec311(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(1)(1)(4) <= inter_data_out(3-1)(1)(1)(2);
|
||
|
|
||
|
inter_incr_in(3)(1)(1)(4) <= inter_incr_out(3-1)(1)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(1)(4) <= inter_vc_write_out(3-1)(1)(1)(2);
|
||
|
data_in311(4) <= inter_data_in(3)(1)(1)(5);
|
||
|
inter_data_out(3)(1)(1)(5) <= data_out311(4);
|
||
|
incr_rx_vec311(20-1 downto 16) <= inter_incr_in(3)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec311(20-1 downto 16);
|
||
|
vc_write_rx_vec311(20-1 downto 16) <= inter_vc_write_in(3)(1)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec311(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(1)(1)(5) <= inter_data_out(3)(1)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(1)(1)(5) <= inter_incr_out(3)(1)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(1)(5) <= inter_vc_write_out(3)(1)(1+1)(6);
|
||
|
data_in311(5) <= inter_data_in(3)(1)(1)(6);
|
||
|
inter_data_out(3)(1)(1)(6) <= data_out311(5);
|
||
|
incr_rx_vec311(24-1 downto 20) <= inter_incr_in(3)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec311(24-1 downto 20);
|
||
|
vc_write_rx_vec311(24-1 downto 20) <= inter_vc_write_in(3)(1)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec311(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(3)(1)(1)(6) <= inter_data_out(3)(1)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(1)(1)(6) <= inter_incr_out(3)(1)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(1)(6) <= inter_vc_write_out(3)(1)(1-1)(5);
|
||
|
|
||
|
inter_data_in(3)(1)(1)(0) <= local_rx(23);
|
||
|
local_tx(23) <= inter_data_out(3)(1)(1)(0);
|
||
|
|
||
|
inter_incr_in(3)(1)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(96-1 downto 92);
|
||
|
local_incr_tx_vec(96-1 downto 92) <= inter_incr_out(3)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(1)(0)(4-1 downto 0) <= local_vc_write_rx(96-1 downto 92);
|
||
|
local_vc_write_tx(96-1 downto 92) <= inter_vc_write_out(3)(1)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=1 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_311: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 3,
|
||
|
Yis => 1,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in311,
|
||
|
vc_write_rx_vec => vc_write_rx_vec311,
|
||
|
incr_rx_vec => incr_rx_vec311,
|
||
|
data_tx_pl => data_out311,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec311,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec311
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in021(0) <= inter_data_in(0)(2)(1)(0);
|
||
|
inter_data_out(0)(2)(1)(0) <= data_out021(0);
|
||
|
incr_rx_vec021(4-1 downto 0) <= inter_incr_in(0)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec021(4-1 downto 0);
|
||
|
vc_write_rx_vec021(4-1 downto 0) <= inter_vc_write_in(0)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec021(4-1 downto 0);
|
||
|
data_in021(1) <= inter_data_in(0)(2)(1)(1);
|
||
|
inter_data_out(0)(2)(1)(1) <= data_out021(1);
|
||
|
incr_rx_vec021(8-1 downto 4) <= inter_incr_in(0)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec021(8-1 downto 4);
|
||
|
vc_write_rx_vec021(8-1 downto 4) <= inter_vc_write_in(0)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec021(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(2)(1)(1) <= inter_data_out(0)(2+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(0)(2)(1)(1) <= inter_incr_out(0)(2+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(1)(1) <= inter_vc_write_out(0)(2+1)(1)(3);
|
||
|
data_in021(2) <= inter_data_in(0)(2)(1)(2);
|
||
|
inter_data_out(0)(2)(1)(2) <= data_out021(2);
|
||
|
incr_rx_vec021(12-1 downto 8) <= inter_incr_in(0)(2)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec021(12-1 downto 8);
|
||
|
vc_write_rx_vec021(12-1 downto 8) <= inter_vc_write_in(0)(2)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec021(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(2)(1)(2) <= inter_data_out(0+1)(2)(1)(4);
|
||
|
|
||
|
inter_incr_in(0)(2)(1)(2) <= inter_incr_out(0+1)(2)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(1)(2) <= inter_vc_write_out(0+1)(2)(1)(4);
|
||
|
data_in021(3) <= inter_data_in(0)(2)(1)(3);
|
||
|
inter_data_out(0)(2)(1)(3) <= data_out021(3);
|
||
|
incr_rx_vec021(16-1 downto 12) <= inter_incr_in(0)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec021(16-1 downto 12);
|
||
|
vc_write_rx_vec021(16-1 downto 12) <= inter_vc_write_in(0)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec021(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(2)(1)(3) <= inter_data_out(0)(2-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(0)(2)(1)(3) <= inter_incr_out(0)(2-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(1)(3) <= inter_vc_write_out(0)(2-1)(1)(1);
|
||
|
data_in021(4) <= inter_data_in(0)(2)(1)(5);
|
||
|
inter_data_out(0)(2)(1)(5) <= data_out021(4);
|
||
|
incr_rx_vec021(20-1 downto 16) <= inter_incr_in(0)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec021(20-1 downto 16);
|
||
|
vc_write_rx_vec021(20-1 downto 16) <= inter_vc_write_in(0)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec021(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(2)(1)(5) <= inter_data_out(0)(2)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(2)(1)(5) <= inter_incr_out(0)(2)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(1)(5) <= inter_vc_write_out(0)(2)(1+1)(6);
|
||
|
data_in021(5) <= inter_data_in(0)(2)(1)(6);
|
||
|
inter_data_out(0)(2)(1)(6) <= data_out021(5);
|
||
|
incr_rx_vec021(24-1 downto 20) <= inter_incr_in(0)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec021(24-1 downto 20);
|
||
|
vc_write_rx_vec021(24-1 downto 20) <= inter_vc_write_in(0)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec021(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(0)(2)(1)(6) <= inter_data_out(0)(2)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(2)(1)(6) <= inter_incr_out(0)(2)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(1)(6) <= inter_vc_write_out(0)(2)(1-1)(5);
|
||
|
|
||
|
inter_data_in(0)(2)(1)(0) <= local_rx(24);
|
||
|
local_tx(24) <= inter_data_out(0)(2)(1)(0);
|
||
|
|
||
|
inter_incr_in(0)(2)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(100-1 downto 96);
|
||
|
local_incr_tx_vec(100-1 downto 96) <= inter_incr_out(0)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(1)(0)(4-1 downto 0) <= local_vc_write_rx(100-1 downto 96);
|
||
|
local_vc_write_tx(100-1 downto 96) <= inter_vc_write_out(0)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=2 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_021: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 0,
|
||
|
Yis => 2,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in021,
|
||
|
vc_write_rx_vec => vc_write_rx_vec021,
|
||
|
incr_rx_vec => incr_rx_vec021,
|
||
|
data_tx_pl => data_out021,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec021,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec021
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in121(0) <= inter_data_in(1)(2)(1)(0);
|
||
|
inter_data_out(1)(2)(1)(0) <= data_out121(0);
|
||
|
incr_rx_vec121(4-1 downto 0) <= inter_incr_in(1)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec121(4-1 downto 0);
|
||
|
vc_write_rx_vec121(4-1 downto 0) <= inter_vc_write_in(1)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec121(4-1 downto 0);
|
||
|
data_in121(1) <= inter_data_in(1)(2)(1)(1);
|
||
|
inter_data_out(1)(2)(1)(1) <= data_out121(1);
|
||
|
incr_rx_vec121(8-1 downto 4) <= inter_incr_in(1)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec121(8-1 downto 4);
|
||
|
vc_write_rx_vec121(8-1 downto 4) <= inter_vc_write_in(1)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec121(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(1) <= inter_data_out(1)(2+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(1) <= inter_incr_out(1)(2+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(1) <= inter_vc_write_out(1)(2+1)(1)(3);
|
||
|
data_in121(2) <= inter_data_in(1)(2)(1)(2);
|
||
|
inter_data_out(1)(2)(1)(2) <= data_out121(2);
|
||
|
incr_rx_vec121(12-1 downto 8) <= inter_incr_in(1)(2)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec121(12-1 downto 8);
|
||
|
vc_write_rx_vec121(12-1 downto 8) <= inter_vc_write_in(1)(2)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec121(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(2) <= inter_data_out(1+1)(2)(1)(4);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(2) <= inter_incr_out(1+1)(2)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(2) <= inter_vc_write_out(1+1)(2)(1)(4);
|
||
|
data_in121(3) <= inter_data_in(1)(2)(1)(3);
|
||
|
inter_data_out(1)(2)(1)(3) <= data_out121(3);
|
||
|
incr_rx_vec121(16-1 downto 12) <= inter_incr_in(1)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec121(16-1 downto 12);
|
||
|
vc_write_rx_vec121(16-1 downto 12) <= inter_vc_write_in(1)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec121(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(3) <= inter_data_out(1)(2-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(3) <= inter_incr_out(1)(2-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(3) <= inter_vc_write_out(1)(2-1)(1)(1);
|
||
|
data_in121(4) <= inter_data_in(1)(2)(1)(4);
|
||
|
inter_data_out(1)(2)(1)(4) <= data_out121(4);
|
||
|
incr_rx_vec121(20-1 downto 16) <= inter_incr_in(1)(2)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec121(20-1 downto 16);
|
||
|
vc_write_rx_vec121(20-1 downto 16) <= inter_vc_write_in(1)(2)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec121(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(4) <= inter_data_out(1-1)(2)(1)(2);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(4) <= inter_incr_out(1-1)(2)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(4) <= inter_vc_write_out(1-1)(2)(1)(2);
|
||
|
data_in121(5) <= inter_data_in(1)(2)(1)(5);
|
||
|
inter_data_out(1)(2)(1)(5) <= data_out121(5);
|
||
|
incr_rx_vec121(24-1 downto 20) <= inter_incr_in(1)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec121(24-1 downto 20);
|
||
|
vc_write_rx_vec121(24-1 downto 20) <= inter_vc_write_in(1)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec121(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(5) <= inter_data_out(1)(2)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(5) <= inter_incr_out(1)(2)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(5) <= inter_vc_write_out(1)(2)(1+1)(6);
|
||
|
data_in121(6) <= inter_data_in(1)(2)(1)(6);
|
||
|
inter_data_out(1)(2)(1)(6) <= data_out121(6);
|
||
|
incr_rx_vec121(28-1 downto 24) <= inter_incr_in(1)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec121(28-1 downto 24);
|
||
|
vc_write_rx_vec121(28-1 downto 24) <= inter_vc_write_in(1)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec121(28-1 downto 24);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(6) <= inter_data_out(1)(2)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(6) <= inter_incr_out(1)(2)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(6) <= inter_vc_write_out(1)(2)(1-1)(5);
|
||
|
|
||
|
inter_data_in(1)(2)(1)(0) <= local_rx(25);
|
||
|
local_tx(25) <= inter_data_out(1)(2)(1)(0);
|
||
|
|
||
|
inter_incr_in(1)(2)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(104-1 downto 100);
|
||
|
local_incr_tx_vec(104-1 downto 100) <= inter_incr_out(1)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(1)(0)(4-1 downto 0) <= local_vc_write_rx(104-1 downto 100);
|
||
|
local_vc_write_tx(104-1 downto 100) <= inter_vc_write_out(1)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=2 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_121: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 7,
|
||
|
Xis => 1,
|
||
|
Yis => 2,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in121,
|
||
|
vc_write_rx_vec => vc_write_rx_vec121,
|
||
|
incr_rx_vec => incr_rx_vec121,
|
||
|
data_tx_pl => data_out121,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec121,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec121
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in221(0) <= inter_data_in(2)(2)(1)(0);
|
||
|
inter_data_out(2)(2)(1)(0) <= data_out221(0);
|
||
|
incr_rx_vec221(4-1 downto 0) <= inter_incr_in(2)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec221(4-1 downto 0);
|
||
|
vc_write_rx_vec221(4-1 downto 0) <= inter_vc_write_in(2)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec221(4-1 downto 0);
|
||
|
data_in221(1) <= inter_data_in(2)(2)(1)(1);
|
||
|
inter_data_out(2)(2)(1)(1) <= data_out221(1);
|
||
|
incr_rx_vec221(8-1 downto 4) <= inter_incr_in(2)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec221(8-1 downto 4);
|
||
|
vc_write_rx_vec221(8-1 downto 4) <= inter_vc_write_in(2)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec221(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(1) <= inter_data_out(2)(2+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(1) <= inter_incr_out(2)(2+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(1) <= inter_vc_write_out(2)(2+1)(1)(3);
|
||
|
data_in221(2) <= inter_data_in(2)(2)(1)(2);
|
||
|
inter_data_out(2)(2)(1)(2) <= data_out221(2);
|
||
|
incr_rx_vec221(12-1 downto 8) <= inter_incr_in(2)(2)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec221(12-1 downto 8);
|
||
|
vc_write_rx_vec221(12-1 downto 8) <= inter_vc_write_in(2)(2)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec221(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(2) <= inter_data_out(2+1)(2)(1)(4);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(2) <= inter_incr_out(2+1)(2)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(2) <= inter_vc_write_out(2+1)(2)(1)(4);
|
||
|
data_in221(3) <= inter_data_in(2)(2)(1)(3);
|
||
|
inter_data_out(2)(2)(1)(3) <= data_out221(3);
|
||
|
incr_rx_vec221(16-1 downto 12) <= inter_incr_in(2)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec221(16-1 downto 12);
|
||
|
vc_write_rx_vec221(16-1 downto 12) <= inter_vc_write_in(2)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec221(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(3) <= inter_data_out(2)(2-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(3) <= inter_incr_out(2)(2-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(3) <= inter_vc_write_out(2)(2-1)(1)(1);
|
||
|
data_in221(4) <= inter_data_in(2)(2)(1)(4);
|
||
|
inter_data_out(2)(2)(1)(4) <= data_out221(4);
|
||
|
incr_rx_vec221(20-1 downto 16) <= inter_incr_in(2)(2)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec221(20-1 downto 16);
|
||
|
vc_write_rx_vec221(20-1 downto 16) <= inter_vc_write_in(2)(2)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec221(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(4) <= inter_data_out(2-1)(2)(1)(2);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(4) <= inter_incr_out(2-1)(2)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(4) <= inter_vc_write_out(2-1)(2)(1)(2);
|
||
|
data_in221(5) <= inter_data_in(2)(2)(1)(5);
|
||
|
inter_data_out(2)(2)(1)(5) <= data_out221(5);
|
||
|
incr_rx_vec221(24-1 downto 20) <= inter_incr_in(2)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec221(24-1 downto 20);
|
||
|
vc_write_rx_vec221(24-1 downto 20) <= inter_vc_write_in(2)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec221(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(5) <= inter_data_out(2)(2)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(5) <= inter_incr_out(2)(2)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(5) <= inter_vc_write_out(2)(2)(1+1)(6);
|
||
|
data_in221(6) <= inter_data_in(2)(2)(1)(6);
|
||
|
inter_data_out(2)(2)(1)(6) <= data_out221(6);
|
||
|
incr_rx_vec221(28-1 downto 24) <= inter_incr_in(2)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec221(28-1 downto 24);
|
||
|
vc_write_rx_vec221(28-1 downto 24) <= inter_vc_write_in(2)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec221(28-1 downto 24);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(6) <= inter_data_out(2)(2)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(6) <= inter_incr_out(2)(2)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(6) <= inter_vc_write_out(2)(2)(1-1)(5);
|
||
|
|
||
|
inter_data_in(2)(2)(1)(0) <= local_rx(26);
|
||
|
local_tx(26) <= inter_data_out(2)(2)(1)(0);
|
||
|
|
||
|
inter_incr_in(2)(2)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(108-1 downto 104);
|
||
|
local_incr_tx_vec(108-1 downto 104) <= inter_incr_out(2)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(1)(0)(4-1 downto 0) <= local_vc_write_rx(108-1 downto 104);
|
||
|
local_vc_write_tx(108-1 downto 104) <= inter_vc_write_out(2)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=2 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_221: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 7,
|
||
|
Xis => 2,
|
||
|
Yis => 2,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in221,
|
||
|
vc_write_rx_vec => vc_write_rx_vec221,
|
||
|
incr_rx_vec => incr_rx_vec221,
|
||
|
data_tx_pl => data_out221,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec221,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec221
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in321(0) <= inter_data_in(3)(2)(1)(0);
|
||
|
inter_data_out(3)(2)(1)(0) <= data_out321(0);
|
||
|
incr_rx_vec321(4-1 downto 0) <= inter_incr_in(3)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec321(4-1 downto 0);
|
||
|
vc_write_rx_vec321(4-1 downto 0) <= inter_vc_write_in(3)(2)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec321(4-1 downto 0);
|
||
|
data_in321(1) <= inter_data_in(3)(2)(1)(1);
|
||
|
inter_data_out(3)(2)(1)(1) <= data_out321(1);
|
||
|
incr_rx_vec321(8-1 downto 4) <= inter_incr_in(3)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(1)(1)(4-1 downto 0) <= incr_tx_pl_vec321(8-1 downto 4);
|
||
|
vc_write_rx_vec321(8-1 downto 4) <= inter_vc_write_in(3)(2)(1)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(1)(1)(4-1 downto 0) <= vc_write_tx_pl_vec321(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(2)(1)(1) <= inter_data_out(3)(2+1)(1)(3);
|
||
|
|
||
|
inter_incr_in(3)(2)(1)(1) <= inter_incr_out(3)(2+1)(1)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(1)(1) <= inter_vc_write_out(3)(2+1)(1)(3);
|
||
|
data_in321(2) <= inter_data_in(3)(2)(1)(3);
|
||
|
inter_data_out(3)(2)(1)(3) <= data_out321(2);
|
||
|
incr_rx_vec321(12-1 downto 8) <= inter_incr_in(3)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec321(12-1 downto 8);
|
||
|
vc_write_rx_vec321(12-1 downto 8) <= inter_vc_write_in(3)(2)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec321(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(2)(1)(3) <= inter_data_out(3)(2-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(3)(2)(1)(3) <= inter_incr_out(3)(2-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(1)(3) <= inter_vc_write_out(3)(2-1)(1)(1);
|
||
|
data_in321(3) <= inter_data_in(3)(2)(1)(4);
|
||
|
inter_data_out(3)(2)(1)(4) <= data_out321(3);
|
||
|
incr_rx_vec321(16-1 downto 12) <= inter_incr_in(3)(2)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec321(16-1 downto 12);
|
||
|
vc_write_rx_vec321(16-1 downto 12) <= inter_vc_write_in(3)(2)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec321(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(2)(1)(4) <= inter_data_out(3-1)(2)(1)(2);
|
||
|
|
||
|
inter_incr_in(3)(2)(1)(4) <= inter_incr_out(3-1)(2)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(1)(4) <= inter_vc_write_out(3-1)(2)(1)(2);
|
||
|
data_in321(4) <= inter_data_in(3)(2)(1)(5);
|
||
|
inter_data_out(3)(2)(1)(5) <= data_out321(4);
|
||
|
incr_rx_vec321(20-1 downto 16) <= inter_incr_in(3)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec321(20-1 downto 16);
|
||
|
vc_write_rx_vec321(20-1 downto 16) <= inter_vc_write_in(3)(2)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec321(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(2)(1)(5) <= inter_data_out(3)(2)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(2)(1)(5) <= inter_incr_out(3)(2)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(1)(5) <= inter_vc_write_out(3)(2)(1+1)(6);
|
||
|
data_in321(5) <= inter_data_in(3)(2)(1)(6);
|
||
|
inter_data_out(3)(2)(1)(6) <= data_out321(5);
|
||
|
incr_rx_vec321(24-1 downto 20) <= inter_incr_in(3)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec321(24-1 downto 20);
|
||
|
vc_write_rx_vec321(24-1 downto 20) <= inter_vc_write_in(3)(2)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec321(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(3)(2)(1)(6) <= inter_data_out(3)(2)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(2)(1)(6) <= inter_incr_out(3)(2)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(1)(6) <= inter_vc_write_out(3)(2)(1-1)(5);
|
||
|
|
||
|
inter_data_in(3)(2)(1)(0) <= local_rx(27);
|
||
|
local_tx(27) <= inter_data_out(3)(2)(1)(0);
|
||
|
|
||
|
inter_incr_in(3)(2)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(112-1 downto 108);
|
||
|
local_incr_tx_vec(112-1 downto 108) <= inter_incr_out(3)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(1)(0)(4-1 downto 0) <= local_vc_write_rx(112-1 downto 108);
|
||
|
local_vc_write_tx(112-1 downto 108) <= inter_vc_write_out(3)(2)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=2 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_321: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 3,
|
||
|
Yis => 2,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in321,
|
||
|
vc_write_rx_vec => vc_write_rx_vec321,
|
||
|
incr_rx_vec => incr_rx_vec321,
|
||
|
data_tx_pl => data_out321,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec321,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec321
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in031(0) <= inter_data_in(0)(3)(1)(0);
|
||
|
inter_data_out(0)(3)(1)(0) <= data_out031(0);
|
||
|
incr_rx_vec031(4-1 downto 0) <= inter_incr_in(0)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec031(4-1 downto 0);
|
||
|
vc_write_rx_vec031(4-1 downto 0) <= inter_vc_write_in(0)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec031(4-1 downto 0);
|
||
|
data_in031(1) <= inter_data_in(0)(3)(1)(2);
|
||
|
inter_data_out(0)(3)(1)(2) <= data_out031(1);
|
||
|
incr_rx_vec031(8-1 downto 4) <= inter_incr_in(0)(3)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec031(8-1 downto 4);
|
||
|
vc_write_rx_vec031(8-1 downto 4) <= inter_vc_write_in(0)(3)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec031(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(3)(1)(2) <= inter_data_out(0+1)(3)(1)(4);
|
||
|
|
||
|
inter_incr_in(0)(3)(1)(2) <= inter_incr_out(0+1)(3)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(1)(2) <= inter_vc_write_out(0+1)(3)(1)(4);
|
||
|
data_in031(2) <= inter_data_in(0)(3)(1)(3);
|
||
|
inter_data_out(0)(3)(1)(3) <= data_out031(2);
|
||
|
incr_rx_vec031(12-1 downto 8) <= inter_incr_in(0)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec031(12-1 downto 8);
|
||
|
vc_write_rx_vec031(12-1 downto 8) <= inter_vc_write_in(0)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec031(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(3)(1)(3) <= inter_data_out(0)(3-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(0)(3)(1)(3) <= inter_incr_out(0)(3-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(1)(3) <= inter_vc_write_out(0)(3-1)(1)(1);
|
||
|
data_in031(3) <= inter_data_in(0)(3)(1)(5);
|
||
|
inter_data_out(0)(3)(1)(5) <= data_out031(3);
|
||
|
incr_rx_vec031(16-1 downto 12) <= inter_incr_in(0)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec031(16-1 downto 12);
|
||
|
vc_write_rx_vec031(16-1 downto 12) <= inter_vc_write_in(0)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec031(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(3)(1)(5) <= inter_data_out(0)(3)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(0)(3)(1)(5) <= inter_incr_out(0)(3)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(1)(5) <= inter_vc_write_out(0)(3)(1+1)(6);
|
||
|
data_in031(4) <= inter_data_in(0)(3)(1)(6);
|
||
|
inter_data_out(0)(3)(1)(6) <= data_out031(4);
|
||
|
incr_rx_vec031(20-1 downto 16) <= inter_incr_in(0)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec031(20-1 downto 16);
|
||
|
vc_write_rx_vec031(20-1 downto 16) <= inter_vc_write_in(0)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec031(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(3)(1)(6) <= inter_data_out(0)(3)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(3)(1)(6) <= inter_incr_out(0)(3)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(1)(6) <= inter_vc_write_out(0)(3)(1-1)(5);
|
||
|
|
||
|
inter_data_in(0)(3)(1)(0) <= local_rx(28);
|
||
|
local_tx(28) <= inter_data_out(0)(3)(1)(0);
|
||
|
|
||
|
inter_incr_in(0)(3)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(116-1 downto 112);
|
||
|
local_incr_tx_vec(116-1 downto 112) <= inter_incr_out(0)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(1)(0)(4-1 downto 0) <= local_vc_write_rx(116-1 downto 112);
|
||
|
local_vc_write_tx(116-1 downto 112) <= inter_vc_write_out(0)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=3 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_031: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 0,
|
||
|
Yis => 3,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in031,
|
||
|
vc_write_rx_vec => vc_write_rx_vec031,
|
||
|
incr_rx_vec => incr_rx_vec031,
|
||
|
data_tx_pl => data_out031,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec031,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec031
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in131(0) <= inter_data_in(1)(3)(1)(0);
|
||
|
inter_data_out(1)(3)(1)(0) <= data_out131(0);
|
||
|
incr_rx_vec131(4-1 downto 0) <= inter_incr_in(1)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec131(4-1 downto 0);
|
||
|
vc_write_rx_vec131(4-1 downto 0) <= inter_vc_write_in(1)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec131(4-1 downto 0);
|
||
|
data_in131(1) <= inter_data_in(1)(3)(1)(2);
|
||
|
inter_data_out(1)(3)(1)(2) <= data_out131(1);
|
||
|
incr_rx_vec131(8-1 downto 4) <= inter_incr_in(1)(3)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec131(8-1 downto 4);
|
||
|
vc_write_rx_vec131(8-1 downto 4) <= inter_vc_write_in(1)(3)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec131(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(3)(1)(2) <= inter_data_out(1+1)(3)(1)(4);
|
||
|
|
||
|
inter_incr_in(1)(3)(1)(2) <= inter_incr_out(1+1)(3)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(1)(2) <= inter_vc_write_out(1+1)(3)(1)(4);
|
||
|
data_in131(2) <= inter_data_in(1)(3)(1)(3);
|
||
|
inter_data_out(1)(3)(1)(3) <= data_out131(2);
|
||
|
incr_rx_vec131(12-1 downto 8) <= inter_incr_in(1)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec131(12-1 downto 8);
|
||
|
vc_write_rx_vec131(12-1 downto 8) <= inter_vc_write_in(1)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec131(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(3)(1)(3) <= inter_data_out(1)(3-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(1)(3)(1)(3) <= inter_incr_out(1)(3-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(1)(3) <= inter_vc_write_out(1)(3-1)(1)(1);
|
||
|
data_in131(3) <= inter_data_in(1)(3)(1)(4);
|
||
|
inter_data_out(1)(3)(1)(4) <= data_out131(3);
|
||
|
incr_rx_vec131(16-1 downto 12) <= inter_incr_in(1)(3)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec131(16-1 downto 12);
|
||
|
vc_write_rx_vec131(16-1 downto 12) <= inter_vc_write_in(1)(3)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec131(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(3)(1)(4) <= inter_data_out(1-1)(3)(1)(2);
|
||
|
|
||
|
inter_incr_in(1)(3)(1)(4) <= inter_incr_out(1-1)(3)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(1)(4) <= inter_vc_write_out(1-1)(3)(1)(2);
|
||
|
data_in131(4) <= inter_data_in(1)(3)(1)(5);
|
||
|
inter_data_out(1)(3)(1)(5) <= data_out131(4);
|
||
|
incr_rx_vec131(20-1 downto 16) <= inter_incr_in(1)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec131(20-1 downto 16);
|
||
|
vc_write_rx_vec131(20-1 downto 16) <= inter_vc_write_in(1)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec131(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(3)(1)(5) <= inter_data_out(1)(3)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(1)(3)(1)(5) <= inter_incr_out(1)(3)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(1)(5) <= inter_vc_write_out(1)(3)(1+1)(6);
|
||
|
data_in131(5) <= inter_data_in(1)(3)(1)(6);
|
||
|
inter_data_out(1)(3)(1)(6) <= data_out131(5);
|
||
|
incr_rx_vec131(24-1 downto 20) <= inter_incr_in(1)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec131(24-1 downto 20);
|
||
|
vc_write_rx_vec131(24-1 downto 20) <= inter_vc_write_in(1)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec131(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(3)(1)(6) <= inter_data_out(1)(3)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(3)(1)(6) <= inter_incr_out(1)(3)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(1)(6) <= inter_vc_write_out(1)(3)(1-1)(5);
|
||
|
|
||
|
inter_data_in(1)(3)(1)(0) <= local_rx(29);
|
||
|
local_tx(29) <= inter_data_out(1)(3)(1)(0);
|
||
|
|
||
|
inter_incr_in(1)(3)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(120-1 downto 116);
|
||
|
local_incr_tx_vec(120-1 downto 116) <= inter_incr_out(1)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(1)(0)(4-1 downto 0) <= local_vc_write_rx(120-1 downto 116);
|
||
|
local_vc_write_tx(120-1 downto 116) <= inter_vc_write_out(1)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=3 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_131: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 1,
|
||
|
Yis => 3,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in131,
|
||
|
vc_write_rx_vec => vc_write_rx_vec131,
|
||
|
incr_rx_vec => incr_rx_vec131,
|
||
|
data_tx_pl => data_out131,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec131,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec131
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in231(0) <= inter_data_in(2)(3)(1)(0);
|
||
|
inter_data_out(2)(3)(1)(0) <= data_out231(0);
|
||
|
incr_rx_vec231(4-1 downto 0) <= inter_incr_in(2)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec231(4-1 downto 0);
|
||
|
vc_write_rx_vec231(4-1 downto 0) <= inter_vc_write_in(2)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec231(4-1 downto 0);
|
||
|
data_in231(1) <= inter_data_in(2)(3)(1)(2);
|
||
|
inter_data_out(2)(3)(1)(2) <= data_out231(1);
|
||
|
incr_rx_vec231(8-1 downto 4) <= inter_incr_in(2)(3)(1)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(1)(2)(4-1 downto 0) <= incr_tx_pl_vec231(8-1 downto 4);
|
||
|
vc_write_rx_vec231(8-1 downto 4) <= inter_vc_write_in(2)(3)(1)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(1)(2)(4-1 downto 0) <= vc_write_tx_pl_vec231(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(3)(1)(2) <= inter_data_out(2+1)(3)(1)(4);
|
||
|
|
||
|
inter_incr_in(2)(3)(1)(2) <= inter_incr_out(2+1)(3)(1)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(1)(2) <= inter_vc_write_out(2+1)(3)(1)(4);
|
||
|
data_in231(2) <= inter_data_in(2)(3)(1)(3);
|
||
|
inter_data_out(2)(3)(1)(3) <= data_out231(2);
|
||
|
incr_rx_vec231(12-1 downto 8) <= inter_incr_in(2)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec231(12-1 downto 8);
|
||
|
vc_write_rx_vec231(12-1 downto 8) <= inter_vc_write_in(2)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec231(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(3)(1)(3) <= inter_data_out(2)(3-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(2)(3)(1)(3) <= inter_incr_out(2)(3-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(1)(3) <= inter_vc_write_out(2)(3-1)(1)(1);
|
||
|
data_in231(3) <= inter_data_in(2)(3)(1)(4);
|
||
|
inter_data_out(2)(3)(1)(4) <= data_out231(3);
|
||
|
incr_rx_vec231(16-1 downto 12) <= inter_incr_in(2)(3)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec231(16-1 downto 12);
|
||
|
vc_write_rx_vec231(16-1 downto 12) <= inter_vc_write_in(2)(3)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec231(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(3)(1)(4) <= inter_data_out(2-1)(3)(1)(2);
|
||
|
|
||
|
inter_incr_in(2)(3)(1)(4) <= inter_incr_out(2-1)(3)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(1)(4) <= inter_vc_write_out(2-1)(3)(1)(2);
|
||
|
data_in231(4) <= inter_data_in(2)(3)(1)(5);
|
||
|
inter_data_out(2)(3)(1)(5) <= data_out231(4);
|
||
|
incr_rx_vec231(20-1 downto 16) <= inter_incr_in(2)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec231(20-1 downto 16);
|
||
|
vc_write_rx_vec231(20-1 downto 16) <= inter_vc_write_in(2)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec231(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(3)(1)(5) <= inter_data_out(2)(3)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(2)(3)(1)(5) <= inter_incr_out(2)(3)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(1)(5) <= inter_vc_write_out(2)(3)(1+1)(6);
|
||
|
data_in231(5) <= inter_data_in(2)(3)(1)(6);
|
||
|
inter_data_out(2)(3)(1)(6) <= data_out231(5);
|
||
|
incr_rx_vec231(24-1 downto 20) <= inter_incr_in(2)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec231(24-1 downto 20);
|
||
|
vc_write_rx_vec231(24-1 downto 20) <= inter_vc_write_in(2)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec231(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(3)(1)(6) <= inter_data_out(2)(3)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(3)(1)(6) <= inter_incr_out(2)(3)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(1)(6) <= inter_vc_write_out(2)(3)(1-1)(5);
|
||
|
|
||
|
inter_data_in(2)(3)(1)(0) <= local_rx(30);
|
||
|
local_tx(30) <= inter_data_out(2)(3)(1)(0);
|
||
|
|
||
|
inter_incr_in(2)(3)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(124-1 downto 120);
|
||
|
local_incr_tx_vec(124-1 downto 120) <= inter_incr_out(2)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(1)(0)(4-1 downto 0) <= local_vc_write_rx(124-1 downto 120);
|
||
|
local_vc_write_tx(124-1 downto 120) <= inter_vc_write_out(2)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=3 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_231: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 2,
|
||
|
Yis => 3,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in231,
|
||
|
vc_write_rx_vec => vc_write_rx_vec231,
|
||
|
incr_rx_vec => incr_rx_vec231,
|
||
|
data_tx_pl => data_out231,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec231,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec231
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in331(0) <= inter_data_in(3)(3)(1)(0);
|
||
|
inter_data_out(3)(3)(1)(0) <= data_out331(0);
|
||
|
incr_rx_vec331(4-1 downto 0) <= inter_incr_in(3)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(1)(0)(4-1 downto 0) <= incr_tx_pl_vec331(4-1 downto 0);
|
||
|
vc_write_rx_vec331(4-1 downto 0) <= inter_vc_write_in(3)(3)(1)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(1)(0)(4-1 downto 0) <= vc_write_tx_pl_vec331(4-1 downto 0);
|
||
|
data_in331(1) <= inter_data_in(3)(3)(1)(3);
|
||
|
inter_data_out(3)(3)(1)(3) <= data_out331(1);
|
||
|
incr_rx_vec331(8-1 downto 4) <= inter_incr_in(3)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(1)(3)(4-1 downto 0) <= incr_tx_pl_vec331(8-1 downto 4);
|
||
|
vc_write_rx_vec331(8-1 downto 4) <= inter_vc_write_in(3)(3)(1)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(1)(3)(4-1 downto 0) <= vc_write_tx_pl_vec331(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(3)(1)(3) <= inter_data_out(3)(3-1)(1)(1);
|
||
|
|
||
|
inter_incr_in(3)(3)(1)(3) <= inter_incr_out(3)(3-1)(1)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(1)(3) <= inter_vc_write_out(3)(3-1)(1)(1);
|
||
|
data_in331(2) <= inter_data_in(3)(3)(1)(4);
|
||
|
inter_data_out(3)(3)(1)(4) <= data_out331(2);
|
||
|
incr_rx_vec331(12-1 downto 8) <= inter_incr_in(3)(3)(1)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(1)(4)(4-1 downto 0) <= incr_tx_pl_vec331(12-1 downto 8);
|
||
|
vc_write_rx_vec331(12-1 downto 8) <= inter_vc_write_in(3)(3)(1)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(1)(4)(4-1 downto 0) <= vc_write_tx_pl_vec331(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(3)(1)(4) <= inter_data_out(3-1)(3)(1)(2);
|
||
|
|
||
|
inter_incr_in(3)(3)(1)(4) <= inter_incr_out(3-1)(3)(1)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(1)(4) <= inter_vc_write_out(3-1)(3)(1)(2);
|
||
|
data_in331(3) <= inter_data_in(3)(3)(1)(5);
|
||
|
inter_data_out(3)(3)(1)(5) <= data_out331(3);
|
||
|
incr_rx_vec331(16-1 downto 12) <= inter_incr_in(3)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(1)(5)(4-1 downto 0) <= incr_tx_pl_vec331(16-1 downto 12);
|
||
|
vc_write_rx_vec331(16-1 downto 12) <= inter_vc_write_in(3)(3)(1)(5)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(1)(5)(4-1 downto 0) <= vc_write_tx_pl_vec331(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(3)(1)(5) <= inter_data_out(3)(3)(1+1)(6);
|
||
|
|
||
|
inter_incr_in(3)(3)(1)(5) <= inter_incr_out(3)(3)(1+1)(6);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(1)(5) <= inter_vc_write_out(3)(3)(1+1)(6);
|
||
|
data_in331(4) <= inter_data_in(3)(3)(1)(6);
|
||
|
inter_data_out(3)(3)(1)(6) <= data_out331(4);
|
||
|
incr_rx_vec331(20-1 downto 16) <= inter_incr_in(3)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(1)(6)(4-1 downto 0) <= incr_tx_pl_vec331(20-1 downto 16);
|
||
|
vc_write_rx_vec331(20-1 downto 16) <= inter_vc_write_in(3)(3)(1)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(1)(6)(4-1 downto 0) <= vc_write_tx_pl_vec331(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(3)(1)(6) <= inter_data_out(3)(3)(1-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(3)(1)(6) <= inter_incr_out(3)(3)(1-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(1)(6) <= inter_vc_write_out(3)(3)(1-1)(5);
|
||
|
|
||
|
inter_data_in(3)(3)(1)(0) <= local_rx(31);
|
||
|
local_tx(31) <= inter_data_out(3)(3)(1)(0);
|
||
|
|
||
|
inter_incr_in(3)(3)(1)(0)(4-1 downto 0) <= local_incr_rx_vec(128-1 downto 124);
|
||
|
local_incr_tx_vec(128-1 downto 124) <= inter_incr_out(3)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(1)(0)(4-1 downto 0) <= local_vc_write_rx(128-1 downto 124);
|
||
|
local_vc_write_tx(128-1 downto 124) <= inter_vc_write_out(3)(3)(1)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=3 z=1
|
||
|
--------------------------------------------------------------------------
|
||
|
router_331: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 3,
|
||
|
Yis => 3,
|
||
|
Zis => 1,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,3,4,5,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in331,
|
||
|
vc_write_rx_vec => vc_write_rx_vec331,
|
||
|
incr_rx_vec => incr_rx_vec331,
|
||
|
data_tx_pl => data_out331,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec331,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec331
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in002(0) <= inter_data_in(0)(0)(2)(0);
|
||
|
inter_data_out(0)(0)(2)(0) <= data_out002(0);
|
||
|
incr_rx_vec002(4-1 downto 0) <= inter_incr_in(0)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec002(4-1 downto 0);
|
||
|
vc_write_rx_vec002(4-1 downto 0) <= inter_vc_write_in(0)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec002(4-1 downto 0);
|
||
|
data_in002(1) <= inter_data_in(0)(0)(2)(1);
|
||
|
inter_data_out(0)(0)(2)(1) <= data_out002(1);
|
||
|
incr_rx_vec002(8-1 downto 4) <= inter_incr_in(0)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec002(8-1 downto 4);
|
||
|
vc_write_rx_vec002(8-1 downto 4) <= inter_vc_write_in(0)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec002(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(0)(2)(1) <= inter_data_out(0)(0+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(0)(0)(2)(1) <= inter_incr_out(0)(0+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(2)(1) <= inter_vc_write_out(0)(0+1)(2)(3);
|
||
|
data_in002(2) <= inter_data_in(0)(0)(2)(2);
|
||
|
inter_data_out(0)(0)(2)(2) <= data_out002(2);
|
||
|
incr_rx_vec002(12-1 downto 8) <= inter_incr_in(0)(0)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec002(12-1 downto 8);
|
||
|
vc_write_rx_vec002(12-1 downto 8) <= inter_vc_write_in(0)(0)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec002(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(0)(2)(2) <= inter_data_out(0+1)(0)(2)(4);
|
||
|
|
||
|
inter_incr_in(0)(0)(2)(2) <= inter_incr_out(0+1)(0)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(2)(2) <= inter_vc_write_out(0+1)(0)(2)(4);
|
||
|
data_in002(3) <= inter_data_in(0)(0)(2)(6);
|
||
|
inter_data_out(0)(0)(2)(6) <= data_out002(3);
|
||
|
incr_rx_vec002(16-1 downto 12) <= inter_incr_in(0)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(0)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec002(16-1 downto 12);
|
||
|
vc_write_rx_vec002(16-1 downto 12) <= inter_vc_write_in(0)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(0)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec002(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(0)(2)(6) <= inter_data_out(0)(0)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(0)(2)(6) <= inter_incr_out(0)(0)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(2)(6) <= inter_vc_write_out(0)(0)(2-1)(5);
|
||
|
|
||
|
inter_data_in(0)(0)(2)(0) <= local_rx(32);
|
||
|
local_tx(32) <= inter_data_out(0)(0)(2)(0);
|
||
|
|
||
|
inter_incr_in(0)(0)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(132-1 downto 128);
|
||
|
local_incr_tx_vec(132-1 downto 128) <= inter_incr_out(0)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(0)(2)(0)(4-1 downto 0) <= local_vc_write_rx(132-1 downto 128);
|
||
|
local_vc_write_tx(132-1 downto 128) <= inter_vc_write_out(0)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=0 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_002: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 0,
|
||
|
Yis => 0,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,6),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in002,
|
||
|
vc_write_rx_vec => vc_write_rx_vec002,
|
||
|
incr_rx_vec => incr_rx_vec002,
|
||
|
data_tx_pl => data_out002,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec002,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec002
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in102(0) <= inter_data_in(1)(0)(2)(0);
|
||
|
inter_data_out(1)(0)(2)(0) <= data_out102(0);
|
||
|
incr_rx_vec102(4-1 downto 0) <= inter_incr_in(1)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec102(4-1 downto 0);
|
||
|
vc_write_rx_vec102(4-1 downto 0) <= inter_vc_write_in(1)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec102(4-1 downto 0);
|
||
|
data_in102(1) <= inter_data_in(1)(0)(2)(1);
|
||
|
inter_data_out(1)(0)(2)(1) <= data_out102(1);
|
||
|
incr_rx_vec102(8-1 downto 4) <= inter_incr_in(1)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec102(8-1 downto 4);
|
||
|
vc_write_rx_vec102(8-1 downto 4) <= inter_vc_write_in(1)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec102(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(0)(2)(1) <= inter_data_out(1)(0+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(1)(0)(2)(1) <= inter_incr_out(1)(0+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(2)(1) <= inter_vc_write_out(1)(0+1)(2)(3);
|
||
|
data_in102(2) <= inter_data_in(1)(0)(2)(2);
|
||
|
inter_data_out(1)(0)(2)(2) <= data_out102(2);
|
||
|
incr_rx_vec102(12-1 downto 8) <= inter_incr_in(1)(0)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec102(12-1 downto 8);
|
||
|
vc_write_rx_vec102(12-1 downto 8) <= inter_vc_write_in(1)(0)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec102(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(0)(2)(2) <= inter_data_out(1+1)(0)(2)(4);
|
||
|
|
||
|
inter_incr_in(1)(0)(2)(2) <= inter_incr_out(1+1)(0)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(2)(2) <= inter_vc_write_out(1+1)(0)(2)(4);
|
||
|
data_in102(3) <= inter_data_in(1)(0)(2)(4);
|
||
|
inter_data_out(1)(0)(2)(4) <= data_out102(3);
|
||
|
incr_rx_vec102(16-1 downto 12) <= inter_incr_in(1)(0)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec102(16-1 downto 12);
|
||
|
vc_write_rx_vec102(16-1 downto 12) <= inter_vc_write_in(1)(0)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec102(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(0)(2)(4) <= inter_data_out(1-1)(0)(2)(2);
|
||
|
|
||
|
inter_incr_in(1)(0)(2)(4) <= inter_incr_out(1-1)(0)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(2)(4) <= inter_vc_write_out(1-1)(0)(2)(2);
|
||
|
data_in102(4) <= inter_data_in(1)(0)(2)(6);
|
||
|
inter_data_out(1)(0)(2)(6) <= data_out102(4);
|
||
|
incr_rx_vec102(20-1 downto 16) <= inter_incr_in(1)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(0)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec102(20-1 downto 16);
|
||
|
vc_write_rx_vec102(20-1 downto 16) <= inter_vc_write_in(1)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(0)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec102(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(0)(2)(6) <= inter_data_out(1)(0)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(0)(2)(6) <= inter_incr_out(1)(0)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(2)(6) <= inter_vc_write_out(1)(0)(2-1)(5);
|
||
|
|
||
|
inter_data_in(1)(0)(2)(0) <= local_rx(33);
|
||
|
local_tx(33) <= inter_data_out(1)(0)(2)(0);
|
||
|
|
||
|
inter_incr_in(1)(0)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(136-1 downto 132);
|
||
|
local_incr_tx_vec(136-1 downto 132) <= inter_incr_out(1)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(0)(2)(0)(4-1 downto 0) <= local_vc_write_rx(136-1 downto 132);
|
||
|
local_vc_write_tx(136-1 downto 132) <= inter_vc_write_out(1)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=0 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_102: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 1,
|
||
|
Yis => 0,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in102,
|
||
|
vc_write_rx_vec => vc_write_rx_vec102,
|
||
|
incr_rx_vec => incr_rx_vec102,
|
||
|
data_tx_pl => data_out102,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec102,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec102
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in202(0) <= inter_data_in(2)(0)(2)(0);
|
||
|
inter_data_out(2)(0)(2)(0) <= data_out202(0);
|
||
|
incr_rx_vec202(4-1 downto 0) <= inter_incr_in(2)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec202(4-1 downto 0);
|
||
|
vc_write_rx_vec202(4-1 downto 0) <= inter_vc_write_in(2)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec202(4-1 downto 0);
|
||
|
data_in202(1) <= inter_data_in(2)(0)(2)(1);
|
||
|
inter_data_out(2)(0)(2)(1) <= data_out202(1);
|
||
|
incr_rx_vec202(8-1 downto 4) <= inter_incr_in(2)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec202(8-1 downto 4);
|
||
|
vc_write_rx_vec202(8-1 downto 4) <= inter_vc_write_in(2)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec202(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(0)(2)(1) <= inter_data_out(2)(0+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(2)(0)(2)(1) <= inter_incr_out(2)(0+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(2)(1) <= inter_vc_write_out(2)(0+1)(2)(3);
|
||
|
data_in202(2) <= inter_data_in(2)(0)(2)(2);
|
||
|
inter_data_out(2)(0)(2)(2) <= data_out202(2);
|
||
|
incr_rx_vec202(12-1 downto 8) <= inter_incr_in(2)(0)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec202(12-1 downto 8);
|
||
|
vc_write_rx_vec202(12-1 downto 8) <= inter_vc_write_in(2)(0)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec202(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(0)(2)(2) <= inter_data_out(2+1)(0)(2)(4);
|
||
|
|
||
|
inter_incr_in(2)(0)(2)(2) <= inter_incr_out(2+1)(0)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(2)(2) <= inter_vc_write_out(2+1)(0)(2)(4);
|
||
|
data_in202(3) <= inter_data_in(2)(0)(2)(4);
|
||
|
inter_data_out(2)(0)(2)(4) <= data_out202(3);
|
||
|
incr_rx_vec202(16-1 downto 12) <= inter_incr_in(2)(0)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec202(16-1 downto 12);
|
||
|
vc_write_rx_vec202(16-1 downto 12) <= inter_vc_write_in(2)(0)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec202(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(0)(2)(4) <= inter_data_out(2-1)(0)(2)(2);
|
||
|
|
||
|
inter_incr_in(2)(0)(2)(4) <= inter_incr_out(2-1)(0)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(2)(4) <= inter_vc_write_out(2-1)(0)(2)(2);
|
||
|
data_in202(4) <= inter_data_in(2)(0)(2)(6);
|
||
|
inter_data_out(2)(0)(2)(6) <= data_out202(4);
|
||
|
incr_rx_vec202(20-1 downto 16) <= inter_incr_in(2)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(0)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec202(20-1 downto 16);
|
||
|
vc_write_rx_vec202(20-1 downto 16) <= inter_vc_write_in(2)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(0)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec202(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(0)(2)(6) <= inter_data_out(2)(0)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(0)(2)(6) <= inter_incr_out(2)(0)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(2)(6) <= inter_vc_write_out(2)(0)(2-1)(5);
|
||
|
|
||
|
inter_data_in(2)(0)(2)(0) <= local_rx(34);
|
||
|
local_tx(34) <= inter_data_out(2)(0)(2)(0);
|
||
|
|
||
|
inter_incr_in(2)(0)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(140-1 downto 136);
|
||
|
local_incr_tx_vec(140-1 downto 136) <= inter_incr_out(2)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(0)(2)(0)(4-1 downto 0) <= local_vc_write_rx(140-1 downto 136);
|
||
|
local_vc_write_tx(140-1 downto 136) <= inter_vc_write_out(2)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=0 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_202: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 2,
|
||
|
Yis => 0,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in202,
|
||
|
vc_write_rx_vec => vc_write_rx_vec202,
|
||
|
incr_rx_vec => incr_rx_vec202,
|
||
|
data_tx_pl => data_out202,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec202,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec202
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in302(0) <= inter_data_in(3)(0)(2)(0);
|
||
|
inter_data_out(3)(0)(2)(0) <= data_out302(0);
|
||
|
incr_rx_vec302(4-1 downto 0) <= inter_incr_in(3)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec302(4-1 downto 0);
|
||
|
vc_write_rx_vec302(4-1 downto 0) <= inter_vc_write_in(3)(0)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec302(4-1 downto 0);
|
||
|
data_in302(1) <= inter_data_in(3)(0)(2)(1);
|
||
|
inter_data_out(3)(0)(2)(1) <= data_out302(1);
|
||
|
incr_rx_vec302(8-1 downto 4) <= inter_incr_in(3)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec302(8-1 downto 4);
|
||
|
vc_write_rx_vec302(8-1 downto 4) <= inter_vc_write_in(3)(0)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec302(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(0)(2)(1) <= inter_data_out(3)(0+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(3)(0)(2)(1) <= inter_incr_out(3)(0+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(2)(1) <= inter_vc_write_out(3)(0+1)(2)(3);
|
||
|
data_in302(2) <= inter_data_in(3)(0)(2)(4);
|
||
|
inter_data_out(3)(0)(2)(4) <= data_out302(2);
|
||
|
incr_rx_vec302(12-1 downto 8) <= inter_incr_in(3)(0)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec302(12-1 downto 8);
|
||
|
vc_write_rx_vec302(12-1 downto 8) <= inter_vc_write_in(3)(0)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec302(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(0)(2)(4) <= inter_data_out(3-1)(0)(2)(2);
|
||
|
|
||
|
inter_incr_in(3)(0)(2)(4) <= inter_incr_out(3-1)(0)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(2)(4) <= inter_vc_write_out(3-1)(0)(2)(2);
|
||
|
data_in302(3) <= inter_data_in(3)(0)(2)(6);
|
||
|
inter_data_out(3)(0)(2)(6) <= data_out302(3);
|
||
|
incr_rx_vec302(16-1 downto 12) <= inter_incr_in(3)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(0)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec302(16-1 downto 12);
|
||
|
vc_write_rx_vec302(16-1 downto 12) <= inter_vc_write_in(3)(0)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(0)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec302(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(0)(2)(6) <= inter_data_out(3)(0)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(0)(2)(6) <= inter_incr_out(3)(0)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(2)(6) <= inter_vc_write_out(3)(0)(2-1)(5);
|
||
|
|
||
|
inter_data_in(3)(0)(2)(0) <= local_rx(35);
|
||
|
local_tx(35) <= inter_data_out(3)(0)(2)(0);
|
||
|
|
||
|
inter_incr_in(3)(0)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(144-1 downto 140);
|
||
|
local_incr_tx_vec(144-1 downto 140) <= inter_incr_out(3)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(0)(2)(0)(4-1 downto 0) <= local_vc_write_rx(144-1 downto 140);
|
||
|
local_vc_write_tx(144-1 downto 140) <= inter_vc_write_out(3)(0)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=0 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_302: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 3,
|
||
|
Yis => 0,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in302,
|
||
|
vc_write_rx_vec => vc_write_rx_vec302,
|
||
|
incr_rx_vec => incr_rx_vec302,
|
||
|
data_tx_pl => data_out302,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec302,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec302
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in012(0) <= inter_data_in(0)(1)(2)(0);
|
||
|
inter_data_out(0)(1)(2)(0) <= data_out012(0);
|
||
|
incr_rx_vec012(4-1 downto 0) <= inter_incr_in(0)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec012(4-1 downto 0);
|
||
|
vc_write_rx_vec012(4-1 downto 0) <= inter_vc_write_in(0)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec012(4-1 downto 0);
|
||
|
data_in012(1) <= inter_data_in(0)(1)(2)(1);
|
||
|
inter_data_out(0)(1)(2)(1) <= data_out012(1);
|
||
|
incr_rx_vec012(8-1 downto 4) <= inter_incr_in(0)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec012(8-1 downto 4);
|
||
|
vc_write_rx_vec012(8-1 downto 4) <= inter_vc_write_in(0)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec012(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(1)(2)(1) <= inter_data_out(0)(1+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(0)(1)(2)(1) <= inter_incr_out(0)(1+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(2)(1) <= inter_vc_write_out(0)(1+1)(2)(3);
|
||
|
data_in012(2) <= inter_data_in(0)(1)(2)(2);
|
||
|
inter_data_out(0)(1)(2)(2) <= data_out012(2);
|
||
|
incr_rx_vec012(12-1 downto 8) <= inter_incr_in(0)(1)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec012(12-1 downto 8);
|
||
|
vc_write_rx_vec012(12-1 downto 8) <= inter_vc_write_in(0)(1)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec012(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(1)(2)(2) <= inter_data_out(0+1)(1)(2)(4);
|
||
|
|
||
|
inter_incr_in(0)(1)(2)(2) <= inter_incr_out(0+1)(1)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(2)(2) <= inter_vc_write_out(0+1)(1)(2)(4);
|
||
|
data_in012(3) <= inter_data_in(0)(1)(2)(3);
|
||
|
inter_data_out(0)(1)(2)(3) <= data_out012(3);
|
||
|
incr_rx_vec012(16-1 downto 12) <= inter_incr_in(0)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec012(16-1 downto 12);
|
||
|
vc_write_rx_vec012(16-1 downto 12) <= inter_vc_write_in(0)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec012(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(1)(2)(3) <= inter_data_out(0)(1-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(0)(1)(2)(3) <= inter_incr_out(0)(1-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(2)(3) <= inter_vc_write_out(0)(1-1)(2)(1);
|
||
|
data_in012(4) <= inter_data_in(0)(1)(2)(6);
|
||
|
inter_data_out(0)(1)(2)(6) <= data_out012(4);
|
||
|
incr_rx_vec012(20-1 downto 16) <= inter_incr_in(0)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(1)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec012(20-1 downto 16);
|
||
|
vc_write_rx_vec012(20-1 downto 16) <= inter_vc_write_in(0)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(1)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec012(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(1)(2)(6) <= inter_data_out(0)(1)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(1)(2)(6) <= inter_incr_out(0)(1)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(2)(6) <= inter_vc_write_out(0)(1)(2-1)(5);
|
||
|
|
||
|
inter_data_in(0)(1)(2)(0) <= local_rx(36);
|
||
|
local_tx(36) <= inter_data_out(0)(1)(2)(0);
|
||
|
|
||
|
inter_incr_in(0)(1)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(148-1 downto 144);
|
||
|
local_incr_tx_vec(148-1 downto 144) <= inter_incr_out(0)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(1)(2)(0)(4-1 downto 0) <= local_vc_write_rx(148-1 downto 144);
|
||
|
local_vc_write_tx(148-1 downto 144) <= inter_vc_write_out(0)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=1 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_012: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 0,
|
||
|
Yis => 1,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in012,
|
||
|
vc_write_rx_vec => vc_write_rx_vec012,
|
||
|
incr_rx_vec => incr_rx_vec012,
|
||
|
data_tx_pl => data_out012,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec012,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec012
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in112(0) <= inter_data_in(1)(1)(2)(0);
|
||
|
inter_data_out(1)(1)(2)(0) <= data_out112(0);
|
||
|
incr_rx_vec112(4-1 downto 0) <= inter_incr_in(1)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec112(4-1 downto 0);
|
||
|
vc_write_rx_vec112(4-1 downto 0) <= inter_vc_write_in(1)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec112(4-1 downto 0);
|
||
|
data_in112(1) <= inter_data_in(1)(1)(2)(1);
|
||
|
inter_data_out(1)(1)(2)(1) <= data_out112(1);
|
||
|
incr_rx_vec112(8-1 downto 4) <= inter_incr_in(1)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec112(8-1 downto 4);
|
||
|
vc_write_rx_vec112(8-1 downto 4) <= inter_vc_write_in(1)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec112(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(1)(2)(1) <= inter_data_out(1)(1+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(1)(1)(2)(1) <= inter_incr_out(1)(1+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(2)(1) <= inter_vc_write_out(1)(1+1)(2)(3);
|
||
|
data_in112(2) <= inter_data_in(1)(1)(2)(2);
|
||
|
inter_data_out(1)(1)(2)(2) <= data_out112(2);
|
||
|
incr_rx_vec112(12-1 downto 8) <= inter_incr_in(1)(1)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec112(12-1 downto 8);
|
||
|
vc_write_rx_vec112(12-1 downto 8) <= inter_vc_write_in(1)(1)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec112(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(1)(2)(2) <= inter_data_out(1+1)(1)(2)(4);
|
||
|
|
||
|
inter_incr_in(1)(1)(2)(2) <= inter_incr_out(1+1)(1)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(2)(2) <= inter_vc_write_out(1+1)(1)(2)(4);
|
||
|
data_in112(3) <= inter_data_in(1)(1)(2)(3);
|
||
|
inter_data_out(1)(1)(2)(3) <= data_out112(3);
|
||
|
incr_rx_vec112(16-1 downto 12) <= inter_incr_in(1)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec112(16-1 downto 12);
|
||
|
vc_write_rx_vec112(16-1 downto 12) <= inter_vc_write_in(1)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec112(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(1)(2)(3) <= inter_data_out(1)(1-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(1)(1)(2)(3) <= inter_incr_out(1)(1-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(2)(3) <= inter_vc_write_out(1)(1-1)(2)(1);
|
||
|
data_in112(4) <= inter_data_in(1)(1)(2)(4);
|
||
|
inter_data_out(1)(1)(2)(4) <= data_out112(4);
|
||
|
incr_rx_vec112(20-1 downto 16) <= inter_incr_in(1)(1)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec112(20-1 downto 16);
|
||
|
vc_write_rx_vec112(20-1 downto 16) <= inter_vc_write_in(1)(1)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec112(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(1)(2)(4) <= inter_data_out(1-1)(1)(2)(2);
|
||
|
|
||
|
inter_incr_in(1)(1)(2)(4) <= inter_incr_out(1-1)(1)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(2)(4) <= inter_vc_write_out(1-1)(1)(2)(2);
|
||
|
data_in112(5) <= inter_data_in(1)(1)(2)(6);
|
||
|
inter_data_out(1)(1)(2)(6) <= data_out112(5);
|
||
|
incr_rx_vec112(24-1 downto 20) <= inter_incr_in(1)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(1)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec112(24-1 downto 20);
|
||
|
vc_write_rx_vec112(24-1 downto 20) <= inter_vc_write_in(1)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(1)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec112(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(1)(2)(6) <= inter_data_out(1)(1)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(1)(2)(6) <= inter_incr_out(1)(1)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(2)(6) <= inter_vc_write_out(1)(1)(2-1)(5);
|
||
|
|
||
|
inter_data_in(1)(1)(2)(0) <= local_rx(37);
|
||
|
local_tx(37) <= inter_data_out(1)(1)(2)(0);
|
||
|
|
||
|
inter_incr_in(1)(1)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(152-1 downto 148);
|
||
|
local_incr_tx_vec(152-1 downto 148) <= inter_incr_out(1)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(1)(2)(0)(4-1 downto 0) <= local_vc_write_rx(152-1 downto 148);
|
||
|
local_vc_write_tx(152-1 downto 148) <= inter_vc_write_out(1)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=1 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_112: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 1,
|
||
|
Yis => 1,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in112,
|
||
|
vc_write_rx_vec => vc_write_rx_vec112,
|
||
|
incr_rx_vec => incr_rx_vec112,
|
||
|
data_tx_pl => data_out112,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec112,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec112
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in212(0) <= inter_data_in(2)(1)(2)(0);
|
||
|
inter_data_out(2)(1)(2)(0) <= data_out212(0);
|
||
|
incr_rx_vec212(4-1 downto 0) <= inter_incr_in(2)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec212(4-1 downto 0);
|
||
|
vc_write_rx_vec212(4-1 downto 0) <= inter_vc_write_in(2)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec212(4-1 downto 0);
|
||
|
data_in212(1) <= inter_data_in(2)(1)(2)(1);
|
||
|
inter_data_out(2)(1)(2)(1) <= data_out212(1);
|
||
|
incr_rx_vec212(8-1 downto 4) <= inter_incr_in(2)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec212(8-1 downto 4);
|
||
|
vc_write_rx_vec212(8-1 downto 4) <= inter_vc_write_in(2)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec212(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(1)(2)(1) <= inter_data_out(2)(1+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(2)(1)(2)(1) <= inter_incr_out(2)(1+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(2)(1) <= inter_vc_write_out(2)(1+1)(2)(3);
|
||
|
data_in212(2) <= inter_data_in(2)(1)(2)(2);
|
||
|
inter_data_out(2)(1)(2)(2) <= data_out212(2);
|
||
|
incr_rx_vec212(12-1 downto 8) <= inter_incr_in(2)(1)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec212(12-1 downto 8);
|
||
|
vc_write_rx_vec212(12-1 downto 8) <= inter_vc_write_in(2)(1)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec212(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(1)(2)(2) <= inter_data_out(2+1)(1)(2)(4);
|
||
|
|
||
|
inter_incr_in(2)(1)(2)(2) <= inter_incr_out(2+1)(1)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(2)(2) <= inter_vc_write_out(2+1)(1)(2)(4);
|
||
|
data_in212(3) <= inter_data_in(2)(1)(2)(3);
|
||
|
inter_data_out(2)(1)(2)(3) <= data_out212(3);
|
||
|
incr_rx_vec212(16-1 downto 12) <= inter_incr_in(2)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec212(16-1 downto 12);
|
||
|
vc_write_rx_vec212(16-1 downto 12) <= inter_vc_write_in(2)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec212(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(1)(2)(3) <= inter_data_out(2)(1-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(2)(1)(2)(3) <= inter_incr_out(2)(1-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(2)(3) <= inter_vc_write_out(2)(1-1)(2)(1);
|
||
|
data_in212(4) <= inter_data_in(2)(1)(2)(4);
|
||
|
inter_data_out(2)(1)(2)(4) <= data_out212(4);
|
||
|
incr_rx_vec212(20-1 downto 16) <= inter_incr_in(2)(1)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec212(20-1 downto 16);
|
||
|
vc_write_rx_vec212(20-1 downto 16) <= inter_vc_write_in(2)(1)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec212(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(1)(2)(4) <= inter_data_out(2-1)(1)(2)(2);
|
||
|
|
||
|
inter_incr_in(2)(1)(2)(4) <= inter_incr_out(2-1)(1)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(2)(4) <= inter_vc_write_out(2-1)(1)(2)(2);
|
||
|
data_in212(5) <= inter_data_in(2)(1)(2)(6);
|
||
|
inter_data_out(2)(1)(2)(6) <= data_out212(5);
|
||
|
incr_rx_vec212(24-1 downto 20) <= inter_incr_in(2)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(1)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec212(24-1 downto 20);
|
||
|
vc_write_rx_vec212(24-1 downto 20) <= inter_vc_write_in(2)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(1)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec212(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(1)(2)(6) <= inter_data_out(2)(1)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(1)(2)(6) <= inter_incr_out(2)(1)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(2)(6) <= inter_vc_write_out(2)(1)(2-1)(5);
|
||
|
|
||
|
inter_data_in(2)(1)(2)(0) <= local_rx(38);
|
||
|
local_tx(38) <= inter_data_out(2)(1)(2)(0);
|
||
|
|
||
|
inter_incr_in(2)(1)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(156-1 downto 152);
|
||
|
local_incr_tx_vec(156-1 downto 152) <= inter_incr_out(2)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(1)(2)(0)(4-1 downto 0) <= local_vc_write_rx(156-1 downto 152);
|
||
|
local_vc_write_tx(156-1 downto 152) <= inter_vc_write_out(2)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=1 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_212: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 2,
|
||
|
Yis => 1,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in212,
|
||
|
vc_write_rx_vec => vc_write_rx_vec212,
|
||
|
incr_rx_vec => incr_rx_vec212,
|
||
|
data_tx_pl => data_out212,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec212,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec212
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in312(0) <= inter_data_in(3)(1)(2)(0);
|
||
|
inter_data_out(3)(1)(2)(0) <= data_out312(0);
|
||
|
incr_rx_vec312(4-1 downto 0) <= inter_incr_in(3)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec312(4-1 downto 0);
|
||
|
vc_write_rx_vec312(4-1 downto 0) <= inter_vc_write_in(3)(1)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec312(4-1 downto 0);
|
||
|
data_in312(1) <= inter_data_in(3)(1)(2)(1);
|
||
|
inter_data_out(3)(1)(2)(1) <= data_out312(1);
|
||
|
incr_rx_vec312(8-1 downto 4) <= inter_incr_in(3)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec312(8-1 downto 4);
|
||
|
vc_write_rx_vec312(8-1 downto 4) <= inter_vc_write_in(3)(1)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec312(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(1)(2)(1) <= inter_data_out(3)(1+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(3)(1)(2)(1) <= inter_incr_out(3)(1+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(2)(1) <= inter_vc_write_out(3)(1+1)(2)(3);
|
||
|
data_in312(2) <= inter_data_in(3)(1)(2)(3);
|
||
|
inter_data_out(3)(1)(2)(3) <= data_out312(2);
|
||
|
incr_rx_vec312(12-1 downto 8) <= inter_incr_in(3)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec312(12-1 downto 8);
|
||
|
vc_write_rx_vec312(12-1 downto 8) <= inter_vc_write_in(3)(1)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec312(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(1)(2)(3) <= inter_data_out(3)(1-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(3)(1)(2)(3) <= inter_incr_out(3)(1-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(2)(3) <= inter_vc_write_out(3)(1-1)(2)(1);
|
||
|
data_in312(3) <= inter_data_in(3)(1)(2)(4);
|
||
|
inter_data_out(3)(1)(2)(4) <= data_out312(3);
|
||
|
incr_rx_vec312(16-1 downto 12) <= inter_incr_in(3)(1)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec312(16-1 downto 12);
|
||
|
vc_write_rx_vec312(16-1 downto 12) <= inter_vc_write_in(3)(1)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec312(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(1)(2)(4) <= inter_data_out(3-1)(1)(2)(2);
|
||
|
|
||
|
inter_incr_in(3)(1)(2)(4) <= inter_incr_out(3-1)(1)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(2)(4) <= inter_vc_write_out(3-1)(1)(2)(2);
|
||
|
data_in312(4) <= inter_data_in(3)(1)(2)(6);
|
||
|
inter_data_out(3)(1)(2)(6) <= data_out312(4);
|
||
|
incr_rx_vec312(20-1 downto 16) <= inter_incr_in(3)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(1)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec312(20-1 downto 16);
|
||
|
vc_write_rx_vec312(20-1 downto 16) <= inter_vc_write_in(3)(1)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(1)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec312(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(1)(2)(6) <= inter_data_out(3)(1)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(1)(2)(6) <= inter_incr_out(3)(1)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(2)(6) <= inter_vc_write_out(3)(1)(2-1)(5);
|
||
|
|
||
|
inter_data_in(3)(1)(2)(0) <= local_rx(39);
|
||
|
local_tx(39) <= inter_data_out(3)(1)(2)(0);
|
||
|
|
||
|
inter_incr_in(3)(1)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(160-1 downto 156);
|
||
|
local_incr_tx_vec(160-1 downto 156) <= inter_incr_out(3)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(1)(2)(0)(4-1 downto 0) <= local_vc_write_rx(160-1 downto 156);
|
||
|
local_vc_write_tx(160-1 downto 156) <= inter_vc_write_out(3)(1)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=1 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_312: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 3,
|
||
|
Yis => 1,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in312,
|
||
|
vc_write_rx_vec => vc_write_rx_vec312,
|
||
|
incr_rx_vec => incr_rx_vec312,
|
||
|
data_tx_pl => data_out312,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec312,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec312
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in022(0) <= inter_data_in(0)(2)(2)(0);
|
||
|
inter_data_out(0)(2)(2)(0) <= data_out022(0);
|
||
|
incr_rx_vec022(4-1 downto 0) <= inter_incr_in(0)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec022(4-1 downto 0);
|
||
|
vc_write_rx_vec022(4-1 downto 0) <= inter_vc_write_in(0)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec022(4-1 downto 0);
|
||
|
data_in022(1) <= inter_data_in(0)(2)(2)(1);
|
||
|
inter_data_out(0)(2)(2)(1) <= data_out022(1);
|
||
|
incr_rx_vec022(8-1 downto 4) <= inter_incr_in(0)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec022(8-1 downto 4);
|
||
|
vc_write_rx_vec022(8-1 downto 4) <= inter_vc_write_in(0)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec022(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(2)(2)(1) <= inter_data_out(0)(2+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(0)(2)(2)(1) <= inter_incr_out(0)(2+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(2)(1) <= inter_vc_write_out(0)(2+1)(2)(3);
|
||
|
data_in022(2) <= inter_data_in(0)(2)(2)(2);
|
||
|
inter_data_out(0)(2)(2)(2) <= data_out022(2);
|
||
|
incr_rx_vec022(12-1 downto 8) <= inter_incr_in(0)(2)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec022(12-1 downto 8);
|
||
|
vc_write_rx_vec022(12-1 downto 8) <= inter_vc_write_in(0)(2)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec022(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(2)(2)(2) <= inter_data_out(0+1)(2)(2)(4);
|
||
|
|
||
|
inter_incr_in(0)(2)(2)(2) <= inter_incr_out(0+1)(2)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(2)(2) <= inter_vc_write_out(0+1)(2)(2)(4);
|
||
|
data_in022(3) <= inter_data_in(0)(2)(2)(3);
|
||
|
inter_data_out(0)(2)(2)(3) <= data_out022(3);
|
||
|
incr_rx_vec022(16-1 downto 12) <= inter_incr_in(0)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec022(16-1 downto 12);
|
||
|
vc_write_rx_vec022(16-1 downto 12) <= inter_vc_write_in(0)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec022(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(2)(2)(3) <= inter_data_out(0)(2-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(0)(2)(2)(3) <= inter_incr_out(0)(2-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(2)(3) <= inter_vc_write_out(0)(2-1)(2)(1);
|
||
|
data_in022(4) <= inter_data_in(0)(2)(2)(6);
|
||
|
inter_data_out(0)(2)(2)(6) <= data_out022(4);
|
||
|
incr_rx_vec022(20-1 downto 16) <= inter_incr_in(0)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(2)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec022(20-1 downto 16);
|
||
|
vc_write_rx_vec022(20-1 downto 16) <= inter_vc_write_in(0)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(2)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec022(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(0)(2)(2)(6) <= inter_data_out(0)(2)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(2)(2)(6) <= inter_incr_out(0)(2)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(2)(6) <= inter_vc_write_out(0)(2)(2-1)(5);
|
||
|
|
||
|
inter_data_in(0)(2)(2)(0) <= local_rx(40);
|
||
|
local_tx(40) <= inter_data_out(0)(2)(2)(0);
|
||
|
|
||
|
inter_incr_in(0)(2)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(164-1 downto 160);
|
||
|
local_incr_tx_vec(164-1 downto 160) <= inter_incr_out(0)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(2)(2)(0)(4-1 downto 0) <= local_vc_write_rx(164-1 downto 160);
|
||
|
local_vc_write_tx(164-1 downto 160) <= inter_vc_write_out(0)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=2 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_022: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 0,
|
||
|
Yis => 2,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in022,
|
||
|
vc_write_rx_vec => vc_write_rx_vec022,
|
||
|
incr_rx_vec => incr_rx_vec022,
|
||
|
data_tx_pl => data_out022,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec022,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec022
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in122(0) <= inter_data_in(1)(2)(2)(0);
|
||
|
inter_data_out(1)(2)(2)(0) <= data_out122(0);
|
||
|
incr_rx_vec122(4-1 downto 0) <= inter_incr_in(1)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec122(4-1 downto 0);
|
||
|
vc_write_rx_vec122(4-1 downto 0) <= inter_vc_write_in(1)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec122(4-1 downto 0);
|
||
|
data_in122(1) <= inter_data_in(1)(2)(2)(1);
|
||
|
inter_data_out(1)(2)(2)(1) <= data_out122(1);
|
||
|
incr_rx_vec122(8-1 downto 4) <= inter_incr_in(1)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec122(8-1 downto 4);
|
||
|
vc_write_rx_vec122(8-1 downto 4) <= inter_vc_write_in(1)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec122(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(2)(2)(1) <= inter_data_out(1)(2+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(1)(2)(2)(1) <= inter_incr_out(1)(2+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(2)(1) <= inter_vc_write_out(1)(2+1)(2)(3);
|
||
|
data_in122(2) <= inter_data_in(1)(2)(2)(2);
|
||
|
inter_data_out(1)(2)(2)(2) <= data_out122(2);
|
||
|
incr_rx_vec122(12-1 downto 8) <= inter_incr_in(1)(2)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec122(12-1 downto 8);
|
||
|
vc_write_rx_vec122(12-1 downto 8) <= inter_vc_write_in(1)(2)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec122(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(2)(2)(2) <= inter_data_out(1+1)(2)(2)(4);
|
||
|
|
||
|
inter_incr_in(1)(2)(2)(2) <= inter_incr_out(1+1)(2)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(2)(2) <= inter_vc_write_out(1+1)(2)(2)(4);
|
||
|
data_in122(3) <= inter_data_in(1)(2)(2)(3);
|
||
|
inter_data_out(1)(2)(2)(3) <= data_out122(3);
|
||
|
incr_rx_vec122(16-1 downto 12) <= inter_incr_in(1)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec122(16-1 downto 12);
|
||
|
vc_write_rx_vec122(16-1 downto 12) <= inter_vc_write_in(1)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec122(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(2)(2)(3) <= inter_data_out(1)(2-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(1)(2)(2)(3) <= inter_incr_out(1)(2-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(2)(3) <= inter_vc_write_out(1)(2-1)(2)(1);
|
||
|
data_in122(4) <= inter_data_in(1)(2)(2)(4);
|
||
|
inter_data_out(1)(2)(2)(4) <= data_out122(4);
|
||
|
incr_rx_vec122(20-1 downto 16) <= inter_incr_in(1)(2)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec122(20-1 downto 16);
|
||
|
vc_write_rx_vec122(20-1 downto 16) <= inter_vc_write_in(1)(2)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec122(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(2)(2)(4) <= inter_data_out(1-1)(2)(2)(2);
|
||
|
|
||
|
inter_incr_in(1)(2)(2)(4) <= inter_incr_out(1-1)(2)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(2)(4) <= inter_vc_write_out(1-1)(2)(2)(2);
|
||
|
data_in122(5) <= inter_data_in(1)(2)(2)(6);
|
||
|
inter_data_out(1)(2)(2)(6) <= data_out122(5);
|
||
|
incr_rx_vec122(24-1 downto 20) <= inter_incr_in(1)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(2)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec122(24-1 downto 20);
|
||
|
vc_write_rx_vec122(24-1 downto 20) <= inter_vc_write_in(1)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(2)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec122(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(1)(2)(2)(6) <= inter_data_out(1)(2)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(2)(2)(6) <= inter_incr_out(1)(2)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(2)(6) <= inter_vc_write_out(1)(2)(2-1)(5);
|
||
|
|
||
|
inter_data_in(1)(2)(2)(0) <= local_rx(41);
|
||
|
local_tx(41) <= inter_data_out(1)(2)(2)(0);
|
||
|
|
||
|
inter_incr_in(1)(2)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(168-1 downto 164);
|
||
|
local_incr_tx_vec(168-1 downto 164) <= inter_incr_out(1)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(2)(2)(0)(4-1 downto 0) <= local_vc_write_rx(168-1 downto 164);
|
||
|
local_vc_write_tx(168-1 downto 164) <= inter_vc_write_out(1)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=2 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_122: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 1,
|
||
|
Yis => 2,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in122,
|
||
|
vc_write_rx_vec => vc_write_rx_vec122,
|
||
|
incr_rx_vec => incr_rx_vec122,
|
||
|
data_tx_pl => data_out122,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec122,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec122
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in222(0) <= inter_data_in(2)(2)(2)(0);
|
||
|
inter_data_out(2)(2)(2)(0) <= data_out222(0);
|
||
|
incr_rx_vec222(4-1 downto 0) <= inter_incr_in(2)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec222(4-1 downto 0);
|
||
|
vc_write_rx_vec222(4-1 downto 0) <= inter_vc_write_in(2)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec222(4-1 downto 0);
|
||
|
data_in222(1) <= inter_data_in(2)(2)(2)(1);
|
||
|
inter_data_out(2)(2)(2)(1) <= data_out222(1);
|
||
|
incr_rx_vec222(8-1 downto 4) <= inter_incr_in(2)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec222(8-1 downto 4);
|
||
|
vc_write_rx_vec222(8-1 downto 4) <= inter_vc_write_in(2)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec222(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(2)(2)(1) <= inter_data_out(2)(2+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(2)(2)(2)(1) <= inter_incr_out(2)(2+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(2)(1) <= inter_vc_write_out(2)(2+1)(2)(3);
|
||
|
data_in222(2) <= inter_data_in(2)(2)(2)(2);
|
||
|
inter_data_out(2)(2)(2)(2) <= data_out222(2);
|
||
|
incr_rx_vec222(12-1 downto 8) <= inter_incr_in(2)(2)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec222(12-1 downto 8);
|
||
|
vc_write_rx_vec222(12-1 downto 8) <= inter_vc_write_in(2)(2)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec222(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(2)(2)(2) <= inter_data_out(2+1)(2)(2)(4);
|
||
|
|
||
|
inter_incr_in(2)(2)(2)(2) <= inter_incr_out(2+1)(2)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(2)(2) <= inter_vc_write_out(2+1)(2)(2)(4);
|
||
|
data_in222(3) <= inter_data_in(2)(2)(2)(3);
|
||
|
inter_data_out(2)(2)(2)(3) <= data_out222(3);
|
||
|
incr_rx_vec222(16-1 downto 12) <= inter_incr_in(2)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec222(16-1 downto 12);
|
||
|
vc_write_rx_vec222(16-1 downto 12) <= inter_vc_write_in(2)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec222(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(2)(2)(3) <= inter_data_out(2)(2-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(2)(2)(2)(3) <= inter_incr_out(2)(2-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(2)(3) <= inter_vc_write_out(2)(2-1)(2)(1);
|
||
|
data_in222(4) <= inter_data_in(2)(2)(2)(4);
|
||
|
inter_data_out(2)(2)(2)(4) <= data_out222(4);
|
||
|
incr_rx_vec222(20-1 downto 16) <= inter_incr_in(2)(2)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec222(20-1 downto 16);
|
||
|
vc_write_rx_vec222(20-1 downto 16) <= inter_vc_write_in(2)(2)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec222(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(2)(2)(4) <= inter_data_out(2-1)(2)(2)(2);
|
||
|
|
||
|
inter_incr_in(2)(2)(2)(4) <= inter_incr_out(2-1)(2)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(2)(4) <= inter_vc_write_out(2-1)(2)(2)(2);
|
||
|
data_in222(5) <= inter_data_in(2)(2)(2)(6);
|
||
|
inter_data_out(2)(2)(2)(6) <= data_out222(5);
|
||
|
incr_rx_vec222(24-1 downto 20) <= inter_incr_in(2)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(2)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec222(24-1 downto 20);
|
||
|
vc_write_rx_vec222(24-1 downto 20) <= inter_vc_write_in(2)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(2)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec222(24-1 downto 20);
|
||
|
|
||
|
inter_data_in(2)(2)(2)(6) <= inter_data_out(2)(2)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(2)(2)(6) <= inter_incr_out(2)(2)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(2)(6) <= inter_vc_write_out(2)(2)(2-1)(5);
|
||
|
|
||
|
inter_data_in(2)(2)(2)(0) <= local_rx(42);
|
||
|
local_tx(42) <= inter_data_out(2)(2)(2)(0);
|
||
|
|
||
|
inter_incr_in(2)(2)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(172-1 downto 168);
|
||
|
local_incr_tx_vec(172-1 downto 168) <= inter_incr_out(2)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(2)(2)(0)(4-1 downto 0) <= local_vc_write_rx(172-1 downto 168);
|
||
|
local_vc_write_tx(172-1 downto 168) <= inter_vc_write_out(2)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=2 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_222: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 6,
|
||
|
Xis => 2,
|
||
|
Yis => 2,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,2,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in222,
|
||
|
vc_write_rx_vec => vc_write_rx_vec222,
|
||
|
incr_rx_vec => incr_rx_vec222,
|
||
|
data_tx_pl => data_out222,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec222,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec222
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in322(0) <= inter_data_in(3)(2)(2)(0);
|
||
|
inter_data_out(3)(2)(2)(0) <= data_out322(0);
|
||
|
incr_rx_vec322(4-1 downto 0) <= inter_incr_in(3)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec322(4-1 downto 0);
|
||
|
vc_write_rx_vec322(4-1 downto 0) <= inter_vc_write_in(3)(2)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec322(4-1 downto 0);
|
||
|
data_in322(1) <= inter_data_in(3)(2)(2)(1);
|
||
|
inter_data_out(3)(2)(2)(1) <= data_out322(1);
|
||
|
incr_rx_vec322(8-1 downto 4) <= inter_incr_in(3)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(2)(1)(4-1 downto 0) <= incr_tx_pl_vec322(8-1 downto 4);
|
||
|
vc_write_rx_vec322(8-1 downto 4) <= inter_vc_write_in(3)(2)(2)(1)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(2)(1)(4-1 downto 0) <= vc_write_tx_pl_vec322(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(2)(2)(1) <= inter_data_out(3)(2+1)(2)(3);
|
||
|
|
||
|
inter_incr_in(3)(2)(2)(1) <= inter_incr_out(3)(2+1)(2)(3);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(2)(1) <= inter_vc_write_out(3)(2+1)(2)(3);
|
||
|
data_in322(2) <= inter_data_in(3)(2)(2)(3);
|
||
|
inter_data_out(3)(2)(2)(3) <= data_out322(2);
|
||
|
incr_rx_vec322(12-1 downto 8) <= inter_incr_in(3)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec322(12-1 downto 8);
|
||
|
vc_write_rx_vec322(12-1 downto 8) <= inter_vc_write_in(3)(2)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec322(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(2)(2)(3) <= inter_data_out(3)(2-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(3)(2)(2)(3) <= inter_incr_out(3)(2-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(2)(3) <= inter_vc_write_out(3)(2-1)(2)(1);
|
||
|
data_in322(3) <= inter_data_in(3)(2)(2)(4);
|
||
|
inter_data_out(3)(2)(2)(4) <= data_out322(3);
|
||
|
incr_rx_vec322(16-1 downto 12) <= inter_incr_in(3)(2)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec322(16-1 downto 12);
|
||
|
vc_write_rx_vec322(16-1 downto 12) <= inter_vc_write_in(3)(2)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec322(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(2)(2)(4) <= inter_data_out(3-1)(2)(2)(2);
|
||
|
|
||
|
inter_incr_in(3)(2)(2)(4) <= inter_incr_out(3-1)(2)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(2)(4) <= inter_vc_write_out(3-1)(2)(2)(2);
|
||
|
data_in322(4) <= inter_data_in(3)(2)(2)(6);
|
||
|
inter_data_out(3)(2)(2)(6) <= data_out322(4);
|
||
|
incr_rx_vec322(20-1 downto 16) <= inter_incr_in(3)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(2)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec322(20-1 downto 16);
|
||
|
vc_write_rx_vec322(20-1 downto 16) <= inter_vc_write_in(3)(2)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(2)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec322(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(3)(2)(2)(6) <= inter_data_out(3)(2)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(2)(2)(6) <= inter_incr_out(3)(2)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(2)(6) <= inter_vc_write_out(3)(2)(2-1)(5);
|
||
|
|
||
|
inter_data_in(3)(2)(2)(0) <= local_rx(43);
|
||
|
local_tx(43) <= inter_data_out(3)(2)(2)(0);
|
||
|
|
||
|
inter_incr_in(3)(2)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(176-1 downto 172);
|
||
|
local_incr_tx_vec(176-1 downto 172) <= inter_incr_out(3)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(2)(2)(0)(4-1 downto 0) <= local_vc_write_rx(176-1 downto 172);
|
||
|
local_vc_write_tx(176-1 downto 172) <= inter_vc_write_out(3)(2)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=2 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_322: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 3,
|
||
|
Yis => 2,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,1,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in322,
|
||
|
vc_write_rx_vec => vc_write_rx_vec322,
|
||
|
incr_rx_vec => incr_rx_vec322,
|
||
|
data_tx_pl => data_out322,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec322,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec322
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in032(0) <= inter_data_in(0)(3)(2)(0);
|
||
|
inter_data_out(0)(3)(2)(0) <= data_out032(0);
|
||
|
incr_rx_vec032(4-1 downto 0) <= inter_incr_in(0)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec032(4-1 downto 0);
|
||
|
vc_write_rx_vec032(4-1 downto 0) <= inter_vc_write_in(0)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec032(4-1 downto 0);
|
||
|
data_in032(1) <= inter_data_in(0)(3)(2)(2);
|
||
|
inter_data_out(0)(3)(2)(2) <= data_out032(1);
|
||
|
incr_rx_vec032(8-1 downto 4) <= inter_incr_in(0)(3)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec032(8-1 downto 4);
|
||
|
vc_write_rx_vec032(8-1 downto 4) <= inter_vc_write_in(0)(3)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec032(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(0)(3)(2)(2) <= inter_data_out(0+1)(3)(2)(4);
|
||
|
|
||
|
inter_incr_in(0)(3)(2)(2) <= inter_incr_out(0+1)(3)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(2)(2) <= inter_vc_write_out(0+1)(3)(2)(4);
|
||
|
data_in032(2) <= inter_data_in(0)(3)(2)(3);
|
||
|
inter_data_out(0)(3)(2)(3) <= data_out032(2);
|
||
|
incr_rx_vec032(12-1 downto 8) <= inter_incr_in(0)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec032(12-1 downto 8);
|
||
|
vc_write_rx_vec032(12-1 downto 8) <= inter_vc_write_in(0)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec032(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(0)(3)(2)(3) <= inter_data_out(0)(3-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(0)(3)(2)(3) <= inter_incr_out(0)(3-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(2)(3) <= inter_vc_write_out(0)(3-1)(2)(1);
|
||
|
data_in032(3) <= inter_data_in(0)(3)(2)(6);
|
||
|
inter_data_out(0)(3)(2)(6) <= data_out032(3);
|
||
|
incr_rx_vec032(16-1 downto 12) <= inter_incr_in(0)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(0)(3)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec032(16-1 downto 12);
|
||
|
vc_write_rx_vec032(16-1 downto 12) <= inter_vc_write_in(0)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(0)(3)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec032(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(0)(3)(2)(6) <= inter_data_out(0)(3)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(0)(3)(2)(6) <= inter_incr_out(0)(3)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(2)(6) <= inter_vc_write_out(0)(3)(2-1)(5);
|
||
|
|
||
|
inter_data_in(0)(3)(2)(0) <= local_rx(44);
|
||
|
local_tx(44) <= inter_data_out(0)(3)(2)(0);
|
||
|
|
||
|
inter_incr_in(0)(3)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(180-1 downto 176);
|
||
|
local_incr_tx_vec(180-1 downto 176) <= inter_incr_out(0)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(0)(3)(2)(0)(4-1 downto 0) <= local_vc_write_rx(180-1 downto 176);
|
||
|
local_vc_write_tx(180-1 downto 176) <= inter_vc_write_out(0)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 0 y=3 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_032: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 0,
|
||
|
Yis => 3,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,6),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in032,
|
||
|
vc_write_rx_vec => vc_write_rx_vec032,
|
||
|
incr_rx_vec => incr_rx_vec032,
|
||
|
data_tx_pl => data_out032,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec032,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec032
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in132(0) <= inter_data_in(1)(3)(2)(0);
|
||
|
inter_data_out(1)(3)(2)(0) <= data_out132(0);
|
||
|
incr_rx_vec132(4-1 downto 0) <= inter_incr_in(1)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec132(4-1 downto 0);
|
||
|
vc_write_rx_vec132(4-1 downto 0) <= inter_vc_write_in(1)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec132(4-1 downto 0);
|
||
|
data_in132(1) <= inter_data_in(1)(3)(2)(2);
|
||
|
inter_data_out(1)(3)(2)(2) <= data_out132(1);
|
||
|
incr_rx_vec132(8-1 downto 4) <= inter_incr_in(1)(3)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec132(8-1 downto 4);
|
||
|
vc_write_rx_vec132(8-1 downto 4) <= inter_vc_write_in(1)(3)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec132(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(1)(3)(2)(2) <= inter_data_out(1+1)(3)(2)(4);
|
||
|
|
||
|
inter_incr_in(1)(3)(2)(2) <= inter_incr_out(1+1)(3)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(2)(2) <= inter_vc_write_out(1+1)(3)(2)(4);
|
||
|
data_in132(2) <= inter_data_in(1)(3)(2)(3);
|
||
|
inter_data_out(1)(3)(2)(3) <= data_out132(2);
|
||
|
incr_rx_vec132(12-1 downto 8) <= inter_incr_in(1)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec132(12-1 downto 8);
|
||
|
vc_write_rx_vec132(12-1 downto 8) <= inter_vc_write_in(1)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec132(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(1)(3)(2)(3) <= inter_data_out(1)(3-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(1)(3)(2)(3) <= inter_incr_out(1)(3-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(2)(3) <= inter_vc_write_out(1)(3-1)(2)(1);
|
||
|
data_in132(3) <= inter_data_in(1)(3)(2)(4);
|
||
|
inter_data_out(1)(3)(2)(4) <= data_out132(3);
|
||
|
incr_rx_vec132(16-1 downto 12) <= inter_incr_in(1)(3)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec132(16-1 downto 12);
|
||
|
vc_write_rx_vec132(16-1 downto 12) <= inter_vc_write_in(1)(3)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec132(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(1)(3)(2)(4) <= inter_data_out(1-1)(3)(2)(2);
|
||
|
|
||
|
inter_incr_in(1)(3)(2)(4) <= inter_incr_out(1-1)(3)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(2)(4) <= inter_vc_write_out(1-1)(3)(2)(2);
|
||
|
data_in132(4) <= inter_data_in(1)(3)(2)(6);
|
||
|
inter_data_out(1)(3)(2)(6) <= data_out132(4);
|
||
|
incr_rx_vec132(20-1 downto 16) <= inter_incr_in(1)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(1)(3)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec132(20-1 downto 16);
|
||
|
vc_write_rx_vec132(20-1 downto 16) <= inter_vc_write_in(1)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(1)(3)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec132(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(1)(3)(2)(6) <= inter_data_out(1)(3)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(1)(3)(2)(6) <= inter_incr_out(1)(3)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(2)(6) <= inter_vc_write_out(1)(3)(2-1)(5);
|
||
|
|
||
|
inter_data_in(1)(3)(2)(0) <= local_rx(45);
|
||
|
local_tx(45) <= inter_data_out(1)(3)(2)(0);
|
||
|
|
||
|
inter_incr_in(1)(3)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(184-1 downto 180);
|
||
|
local_incr_tx_vec(184-1 downto 180) <= inter_incr_out(1)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(1)(3)(2)(0)(4-1 downto 0) <= local_vc_write_rx(184-1 downto 180);
|
||
|
local_vc_write_tx(184-1 downto 180) <= inter_vc_write_out(1)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 1 y=3 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_132: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 1,
|
||
|
Yis => 3,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in132,
|
||
|
vc_write_rx_vec => vc_write_rx_vec132,
|
||
|
incr_rx_vec => incr_rx_vec132,
|
||
|
data_tx_pl => data_out132,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec132,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec132
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in232(0) <= inter_data_in(2)(3)(2)(0);
|
||
|
inter_data_out(2)(3)(2)(0) <= data_out232(0);
|
||
|
incr_rx_vec232(4-1 downto 0) <= inter_incr_in(2)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec232(4-1 downto 0);
|
||
|
vc_write_rx_vec232(4-1 downto 0) <= inter_vc_write_in(2)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec232(4-1 downto 0);
|
||
|
data_in232(1) <= inter_data_in(2)(3)(2)(2);
|
||
|
inter_data_out(2)(3)(2)(2) <= data_out232(1);
|
||
|
incr_rx_vec232(8-1 downto 4) <= inter_incr_in(2)(3)(2)(2)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(2)(2)(4-1 downto 0) <= incr_tx_pl_vec232(8-1 downto 4);
|
||
|
vc_write_rx_vec232(8-1 downto 4) <= inter_vc_write_in(2)(3)(2)(2)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(2)(2)(4-1 downto 0) <= vc_write_tx_pl_vec232(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(2)(3)(2)(2) <= inter_data_out(2+1)(3)(2)(4);
|
||
|
|
||
|
inter_incr_in(2)(3)(2)(2) <= inter_incr_out(2+1)(3)(2)(4);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(2)(2) <= inter_vc_write_out(2+1)(3)(2)(4);
|
||
|
data_in232(2) <= inter_data_in(2)(3)(2)(3);
|
||
|
inter_data_out(2)(3)(2)(3) <= data_out232(2);
|
||
|
incr_rx_vec232(12-1 downto 8) <= inter_incr_in(2)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec232(12-1 downto 8);
|
||
|
vc_write_rx_vec232(12-1 downto 8) <= inter_vc_write_in(2)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec232(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(2)(3)(2)(3) <= inter_data_out(2)(3-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(2)(3)(2)(3) <= inter_incr_out(2)(3-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(2)(3) <= inter_vc_write_out(2)(3-1)(2)(1);
|
||
|
data_in232(3) <= inter_data_in(2)(3)(2)(4);
|
||
|
inter_data_out(2)(3)(2)(4) <= data_out232(3);
|
||
|
incr_rx_vec232(16-1 downto 12) <= inter_incr_in(2)(3)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec232(16-1 downto 12);
|
||
|
vc_write_rx_vec232(16-1 downto 12) <= inter_vc_write_in(2)(3)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec232(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(2)(3)(2)(4) <= inter_data_out(2-1)(3)(2)(2);
|
||
|
|
||
|
inter_incr_in(2)(3)(2)(4) <= inter_incr_out(2-1)(3)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(2)(4) <= inter_vc_write_out(2-1)(3)(2)(2);
|
||
|
data_in232(4) <= inter_data_in(2)(3)(2)(6);
|
||
|
inter_data_out(2)(3)(2)(6) <= data_out232(4);
|
||
|
incr_rx_vec232(20-1 downto 16) <= inter_incr_in(2)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(2)(3)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec232(20-1 downto 16);
|
||
|
vc_write_rx_vec232(20-1 downto 16) <= inter_vc_write_in(2)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(2)(3)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec232(20-1 downto 16);
|
||
|
|
||
|
inter_data_in(2)(3)(2)(6) <= inter_data_out(2)(3)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(2)(3)(2)(6) <= inter_incr_out(2)(3)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(2)(6) <= inter_vc_write_out(2)(3)(2-1)(5);
|
||
|
|
||
|
inter_data_in(2)(3)(2)(0) <= local_rx(46);
|
||
|
local_tx(46) <= inter_data_out(2)(3)(2)(0);
|
||
|
|
||
|
inter_incr_in(2)(3)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(188-1 downto 184);
|
||
|
local_incr_tx_vec(188-1 downto 184) <= inter_incr_out(2)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(2)(3)(2)(0)(4-1 downto 0) <= local_vc_write_rx(188-1 downto 184);
|
||
|
local_vc_write_tx(188-1 downto 184) <= inter_vc_write_out(2)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 2 y=3 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_232: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 5,
|
||
|
Xis => 2,
|
||
|
Yis => 3,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,2,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in232,
|
||
|
vc_write_rx_vec => vc_write_rx_vec232,
|
||
|
incr_rx_vec => incr_rx_vec232,
|
||
|
data_tx_pl => data_out232,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec232,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec232
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
data_in332(0) <= inter_data_in(3)(3)(2)(0);
|
||
|
inter_data_out(3)(3)(2)(0) <= data_out332(0);
|
||
|
incr_rx_vec332(4-1 downto 0) <= inter_incr_in(3)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(2)(0)(4-1 downto 0) <= incr_tx_pl_vec332(4-1 downto 0);
|
||
|
vc_write_rx_vec332(4-1 downto 0) <= inter_vc_write_in(3)(3)(2)(0)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(2)(0)(4-1 downto 0) <= vc_write_tx_pl_vec332(4-1 downto 0);
|
||
|
data_in332(1) <= inter_data_in(3)(3)(2)(3);
|
||
|
inter_data_out(3)(3)(2)(3) <= data_out332(1);
|
||
|
incr_rx_vec332(8-1 downto 4) <= inter_incr_in(3)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(2)(3)(4-1 downto 0) <= incr_tx_pl_vec332(8-1 downto 4);
|
||
|
vc_write_rx_vec332(8-1 downto 4) <= inter_vc_write_in(3)(3)(2)(3)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(2)(3)(4-1 downto 0) <= vc_write_tx_pl_vec332(8-1 downto 4);
|
||
|
|
||
|
inter_data_in(3)(3)(2)(3) <= inter_data_out(3)(3-1)(2)(1);
|
||
|
|
||
|
inter_incr_in(3)(3)(2)(3) <= inter_incr_out(3)(3-1)(2)(1);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(2)(3) <= inter_vc_write_out(3)(3-1)(2)(1);
|
||
|
data_in332(2) <= inter_data_in(3)(3)(2)(4);
|
||
|
inter_data_out(3)(3)(2)(4) <= data_out332(2);
|
||
|
incr_rx_vec332(12-1 downto 8) <= inter_incr_in(3)(3)(2)(4)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(2)(4)(4-1 downto 0) <= incr_tx_pl_vec332(12-1 downto 8);
|
||
|
vc_write_rx_vec332(12-1 downto 8) <= inter_vc_write_in(3)(3)(2)(4)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(2)(4)(4-1 downto 0) <= vc_write_tx_pl_vec332(12-1 downto 8);
|
||
|
|
||
|
inter_data_in(3)(3)(2)(4) <= inter_data_out(3-1)(3)(2)(2);
|
||
|
|
||
|
inter_incr_in(3)(3)(2)(4) <= inter_incr_out(3-1)(3)(2)(2);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(2)(4) <= inter_vc_write_out(3-1)(3)(2)(2);
|
||
|
data_in332(3) <= inter_data_in(3)(3)(2)(6);
|
||
|
inter_data_out(3)(3)(2)(6) <= data_out332(3);
|
||
|
incr_rx_vec332(16-1 downto 12) <= inter_incr_in(3)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_incr_out(3)(3)(2)(6)(4-1 downto 0) <= incr_tx_pl_vec332(16-1 downto 12);
|
||
|
vc_write_rx_vec332(16-1 downto 12) <= inter_vc_write_in(3)(3)(2)(6)(4-1 downto 0);
|
||
|
inter_vc_write_out(3)(3)(2)(6)(4-1 downto 0) <= vc_write_tx_pl_vec332(16-1 downto 12);
|
||
|
|
||
|
inter_data_in(3)(3)(2)(6) <= inter_data_out(3)(3)(2-1)(5);
|
||
|
|
||
|
inter_incr_in(3)(3)(2)(6) <= inter_incr_out(3)(3)(2-1)(5);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(2)(6) <= inter_vc_write_out(3)(3)(2-1)(5);
|
||
|
|
||
|
inter_data_in(3)(3)(2)(0) <= local_rx(47);
|
||
|
local_tx(47) <= inter_data_out(3)(3)(2)(0);
|
||
|
|
||
|
inter_incr_in(3)(3)(2)(0)(4-1 downto 0) <= local_incr_rx_vec(192-1 downto 188);
|
||
|
local_incr_tx_vec(192-1 downto 188) <= inter_incr_out(3)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
inter_vc_write_in(3)(3)(2)(0)(4-1 downto 0) <= local_vc_write_rx(192-1 downto 188);
|
||
|
local_vc_write_tx(192-1 downto 188) <= inter_vc_write_out(3)(3)(2)(0)(4-1 downto 0);
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router at x= 3 y=3 z=2
|
||
|
--------------------------------------------------------------------------
|
||
|
router_332: entity work.router_pl
|
||
|
generic map (
|
||
|
port_num => 4,
|
||
|
Xis => 3,
|
||
|
Yis => 3,
|
||
|
Zis => 2,
|
||
|
header_incl_in_packet_length => true,
|
||
|
port_exist => (0,3,4,6),
|
||
|
vc_num_vec => (4, 4, 4, 4),
|
||
|
vc_num_out_vec => (4, 4, 4, 4),
|
||
|
vc_depth_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
vc_depth_out_array => ((4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4), (4, 4, 4, 4)),
|
||
|
rout_algo => "DXYU"
|
||
|
)
|
||
|
port map (
|
||
|
clk => clk,
|
||
|
rst => rst,
|
||
|
data_rx => data_in332,
|
||
|
vc_write_rx_vec => vc_write_rx_vec332,
|
||
|
incr_rx_vec => incr_rx_vec332,
|
||
|
data_tx_pl => data_out332,
|
||
|
vc_write_tx_pl_vec => vc_write_tx_pl_vec332,
|
||
|
incr_tx_pl_vec => incr_tx_pl_vec332
|
||
|
);
|
||
|
--------------------------------------------------------------------------
|
||
|
-- Router port connections to adjacent routers
|
||
|
--------------------------------------------------------------------------
|
||
|
end architecture structural;
|
||
|
|