|
|
/**************************************************************************
|
/**************************************************************************
|
** WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
|
** WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
|
** OVERWRITTEN AND LOST. Rename this file if you wish to do any modification.
|
** OVERWRITTEN AND LOST. Rename this file if you wish to do any modification.
|
****************************************************************************/
|
****************************************************************************/
|
|
|
|
|
/**********************************************************************
|
/**********************************************************************
|
** File: /home/alireza/work/git/hca_git/ProNoC/mpsoc/rtl/src_topolgy/custom1/Tcustom1Rcustom_conventional_routing_genvar.v
|
** File: /home/alireza/work/git/pronoc/mpsoc/rtl/src_topolgy/custom1/Tcustom1Rcustom_conventional_routing_genvar.v
|
**
|
**
|
** Copyright (C) 2014-2021 Alireza Monemi
|
** Copyright (C) 2014-2021 Alireza Monemi
|
**
|
**
|
** This file is part of ProNoC 2.0.0
|
** This file is part of ProNoC 2.1.0
|
**
|
**
|
** ProNoC ( stands for Prototype Network-on-chip) is free software:
|
** ProNoC ( stands for Prototype Network-on-chip) is free software:
|
** you can redistribute it and/or modify it under the terms of the GNU
|
** you can redistribute it and/or modify it under the terms of the GNU
|
** Lesser General Public License as published by the Free Software Foundation,
|
** Lesser General Public License as published by the Free Software Foundation,
|
** either version 2 of the License, or (at your option) any later version.
|
** either version 2 of the License, or (at your option) any later version.
|
**
|
**
|
** ProNoC is distributed in the hope that it will be useful, but WITHOUT
|
** ProNoC is distributed in the hope that it will be useful, but WITHOUT
|
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
** Public License for more details.
|
** Public License for more details.
|
**
|
**
|
** You should have received a copy of the GNU Lesser General Public
|
** You should have received a copy of the GNU Lesser General Public
|
** License along with ProNoC. If not, see <http:**www.gnu.org/licenses/>.
|
** License along with ProNoC. If not, see <http:**www.gnu.org/licenses/>.
|
******************************************************************************/
|
******************************************************************************/
|
module Tcustom1Rcustom_conventional_routing_genvar #(
|
module Tcustom1Rcustom_conventional_routing_genvar #(
|
parameter RAw = 3,
|
parameter RAw = 3,
|
parameter EAw = 3,
|
parameter EAw = 3,
|
parameter DSTPw=4,
|
parameter DSTPw=4,
|
parameter SRC_E_ADDR=0
|
parameter SRC_E_ADDR=0
|
)
|
)
|
(
|
(
|
dest_e_addr,
|
dest_e_addr,
|
destport
|
destport
|
);
|
);
|
|
|
input [EAw-1 :0] dest_e_addr;
|
input [EAw-1 :0] dest_e_addr;
|
output reg [DSTPw-1 :0] destport;
|
output reg [DSTPw-1 :0] destport;
|
|
|
|
|
generate
|
generate
|
|
|
if(SRC_E_ADDR == 0) begin : SRC0
|
if(SRC_E_ADDR == 0) begin : SRC0
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
1,2,3,7,10: begin
|
1,2,3,7,10: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
4,5,6,8,9,11,12,13,14,15: begin
|
4,5,6,8,9,11,12,13,14,15: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC0
|
end//SRC0
|
|
|
if(SRC_E_ADDR == 1) begin : SRC1
|
if(SRC_E_ADDR == 1) begin : SRC1
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
0,4,7,8,9,10,12,15: begin
|
0,4,7,8,9,10,12,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
2,3,5,6,11,13,14: begin
|
2,3,5,6,11,13,14: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC1
|
end//SRC1
|
|
|
if(SRC_E_ADDR == 2) begin : SRC2
|
if(SRC_E_ADDR == 2) begin : SRC2
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
3,4,5,6,8,11,13,14,15: begin
|
3,4,5,6,8,11,13,14,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
0,1,7,9,10,12: begin
|
0,1,7,9,10,12: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC2
|
end//SRC2
|
|
|
if(SRC_E_ADDR == 3) begin : SRC3
|
if(SRC_E_ADDR == 3) begin : SRC3
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
2,10,11,12: begin
|
2,10,11,12: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
0,1,4,5,6,7,8,9,13,14,15: begin
|
0,1,4,5,6,7,8,9,13,14,15: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC3
|
end//SRC3
|
|
|
if(SRC_E_ADDR == 4) begin : SRC4
|
if(SRC_E_ADDR == 4) begin : SRC4
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
1,6,7,8,10,13: begin
|
1,6,7,8,10,13: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
3: begin
|
3: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
0,2,5,9,11,12,14,15: begin
|
0,2,5,9,11,12,14,15: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC4
|
end//SRC4
|
|
|
if(SRC_E_ADDR == 5) begin : SRC5
|
if(SRC_E_ADDR == 5) begin : SRC5
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
1,7,8,10,11,12,15: begin
|
1,7,8,10,11,12,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
2,3,4,6,13,14: begin
|
2,3,4,6,13,14: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
0,9: begin
|
0,9: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC5
|
end//SRC5
|
|
|
if(SRC_E_ADDR == 6) begin : SRC6
|
if(SRC_E_ADDR == 6) begin : SRC6
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
3,4,13: begin
|
3,4,13: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
0,1,2,5,7,8,9,10,11,12,14,15: begin
|
0,1,2,5,7,8,9,10,11,12,14,15: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC6
|
end//SRC6
|
|
|
if(SRC_E_ADDR == 7) begin : SRC7
|
if(SRC_E_ADDR == 7) begin : SRC7
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
2,3,4,5,6,8,9,11,12,13,14,15: begin
|
2,3,4,5,6,8,9,11,12,13,14,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
0,10: begin
|
0,10: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
1: begin
|
1: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC7
|
end//SRC7
|
|
|
if(SRC_E_ADDR == 8) begin : SRC8
|
if(SRC_E_ADDR == 8) begin : SRC8
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
0,4,5,9,10,12: begin
|
0,4,5,9,10,12: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
2,3,6,11,13,14,15: begin
|
2,3,6,11,13,14,15: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
1,7: begin
|
1,7: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC8
|
end//SRC8
|
|
|
if(SRC_E_ADDR == 9) begin : SRC9
|
if(SRC_E_ADDR == 9) begin : SRC9
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
1,7,8,10,12: begin
|
1,7,8,10,12: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
2,3,4,5,6,11,13,14,15: begin
|
2,3,4,5,6,11,13,14,15: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
0: begin
|
0: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC9
|
end//SRC9
|
|
|
if(SRC_E_ADDR == 10) begin : SRC10
|
if(SRC_E_ADDR == 10) begin : SRC10
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
2,3,4,5,6,8,9,11,12,13,14,15: begin
|
2,3,4,5,6,8,9,11,12,13,14,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
1,7: begin
|
1,7: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
0: begin
|
0: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC10
|
end//SRC10
|
|
|
if(SRC_E_ADDR == 11) begin : SRC11
|
if(SRC_E_ADDR == 11) begin : SRC11
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
0,1,4,5,6,7,8,9,10,12,13,14,15: begin
|
0,1,4,5,6,7,8,9,10,12,13,14,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
2: begin
|
2: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
3: begin
|
3: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC11
|
end//SRC11
|
|
|
if(SRC_E_ADDR == 12) begin : SRC12
|
if(SRC_E_ADDR == 12) begin : SRC12
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
2,3,4,5,6,11,13,14,15: begin
|
2,3,4,5,6,11,13,14,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
0,9: begin
|
0,9: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
1,7,10: begin
|
1,7,10: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
8: begin
|
8: begin
|
destport= 4;
|
destport= 4;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC12
|
end//SRC12
|
|
|
if(SRC_E_ADDR == 13) begin : SRC13
|
if(SRC_E_ADDR == 13) begin : SRC13
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
3,4: begin
|
3,4: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
6: begin
|
6: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
0,1,2,5,7,8,9,10,11,12,14,15: begin
|
0,1,2,5,7,8,9,10,11,12,14,15: begin
|
destport= 4;
|
destport= 4;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC13
|
end//SRC13
|
|
|
if(SRC_E_ADDR == 14) begin : SRC14
|
if(SRC_E_ADDR == 14) begin : SRC14
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
5,9,12,15: begin
|
5,9,12,15: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
3,4,6,13: begin
|
3,4,6,13: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
0,1,7,8,10: begin
|
0,1,7,8,10: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
2,11: begin
|
2,11: begin
|
destport= 4;
|
destport= 4;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC14
|
end//SRC14
|
|
|
if(SRC_E_ADDR == 15) begin : SRC15
|
if(SRC_E_ADDR == 15) begin : SRC15
|
always@(*)begin
|
always@(*)begin
|
destport= 0;
|
destport= 0;
|
case(dest_e_addr)
|
case(dest_e_addr)
|
1,7,8,10,12: begin
|
1,7,8,10,12: begin
|
destport= 1;
|
destport= 1;
|
end
|
end
|
2,11,14: begin
|
2,11,14: begin
|
destport= 2;
|
destport= 2;
|
end
|
end
|
3,4,6,13: begin
|
3,4,6,13: begin
|
destport= 3;
|
destport= 3;
|
end
|
end
|
0,5,9: begin
|
0,5,9: begin
|
destport= 4;
|
destport= 4;
|
end
|
end
|
default: begin
|
default: begin
|
destport= {DSTPw{1'bX}};
|
destport= {DSTPw{1'bX}};
|
end
|
end
|
|
|
endcase
|
endcase
|
end
|
end
|
end//SRC15
|
end//SRC15
|
|
|
endgenerate
|
endgenerate
|
|
|
|
|
|
|
endmodule
|
endmodule
|
|
|
|
|