OpenCores
URL https://opencores.org/ocsvn/async_sdm_noc/async_sdm_noc/trunk

Subversion Repositories async_sdm_noc

[/] [async_sdm_noc/] [branches/] [clos_opt/] [common/] [src/] [dclos.v] - Diff between revs 66 and 67

Show entire file | Details | Blame | View Log

Rev 66 Rev 67
Line 33... Line 33...
   ei1, ei2, ei3, li0, li1, li2, li3, si4, wi4, ni4, ei4, li4, soa,
   ei1, ei2, ei3, li0, li1, li2, li3, si4, wi4, ni4, ei4, li4, soa,
   woa, noa, eoa, loa, imcfg, scfg, ncfg, wcfg, ecfg, lcfg
   woa, noa, eoa, loa, imcfg, scfg, ncfg, wcfg, ecfg, lcfg
`ifdef ENABLE_BUFFERED_CLOS
`ifdef ENABLE_BUFFERED_CLOS
   , soa4, woa4, noa4, eoa4, loa4
   , soa4, woa4, noa4, eoa4, loa4
`endif
`endif
 
   , rst_n
   );
   );
 
 
   parameter MN = 2;            // number of CMs
   parameter MN = 2;            // number of CMs
   parameter NN = 2;            // number of ports in an IM or OM, equ. to number of virtual circuits
   parameter NN = 2;            // number of ports in an IM or OM, equ. to number of virtual circuits
   parameter DW = 8;            // datawidth of a single virtual circuit/port
   parameter DW = 8;            // datawidth of a single virtual circuit/port
Line 76... Line 77...
   // configuration for CMs
   // configuration for CMs
   input [MN-1:0][1:0]           scfg, ncfg;
   input [MN-1:0][1:0]           scfg, ncfg;
   input [MN-1:0][3:0]           wcfg, ecfg, lcfg;
   input [MN-1:0][3:0]           wcfg, ecfg, lcfg;
   // no OMs
   // no OMs
 
 
 
   input                       rst_n; // globale active low reset
 
 
   // output of IMs
   // output of IMs
   wire [MN-1:0][SCN-1:0]      imos0, imos1, imos2, imos3;
   wire [MN-1:0][SCN-1:0]      imos0, imos1, imos2, imos3;
   wire [MN-1:0][SCN-1:0]      imow0, imow1, imow2, imow3;
   wire [MN-1:0][SCN-1:0]      imow0, imow1, imow2, imow3;
   wire [MN-1:0][SCN-1:0]      imon0, imon1, imon2, imon3;
   wire [MN-1:0][SCN-1:0]      imon0, imon1, imon2, imon3;
   wire [MN-1:0][SCN-1:0]      imoe0, imoe1, imoe2, imoe3;
   wire [MN-1:0][SCN-1:0]      imoe0, imoe1, imoe2, imoe3;
Line 87... Line 90...
`ifdef ENABLE_CHANNEL_SLICING
`ifdef ENABLE_CHANNEL_SLICING
   wire [MN-1:0][SCN-1:0]      imos4, imow4, imon4, imoe4, imol4;
   wire [MN-1:0][SCN-1:0]      imos4, imow4, imon4, imoe4, imol4;
   wire [MN-1:0][SCN-1:0]      imosa, imowa, imona, imoea, imola;
   wire [MN-1:0][SCN-1:0]      imosa, imowa, imona, imoea, imola;
 `ifdef ENABLE_BUFFERED_CLOS
 `ifdef ENABLE_BUFFERED_CLOS
   wire [MN-1:0][SCN-1:0]      imosa4, imowa4, imona4, imoea4, imola4;
   wire [MN-1:0][SCN-1:0]      imosa4, imowa4, imona4, imoea4, imola4;
 
   wire [MN-1:0][SCN-1:0]      imosdeca, imowdeca, imondeca, imoedeca, imoldeca;
 
   wire [MN-1:0][SCN-1:0]      imoseofan, imoweofan, imoneofan, imoeeofan, imoleofan;
 `endif
 `endif
`else
`else
   wire [MN-1:0]                imos4, imow4, imon4, imoe4, imol4;
   wire [MN-1:0]                imos4, imow4, imon4, imoe4, imol4;
   wire [MN-1:0]                imosa, imowa, imona, imoea, imola;
   wire [MN-1:0]                imosa, imowa, imona, imoea, imola;
 `ifdef ENABLE_BUFFERED_CLOS
 `ifdef ENABLE_BUFFERED_CLOS
 
   wire [MN-1:0]               imosdeca, imowdeca, imondeca, imoedeca, imoldeca;
   wire [MN-1:0]                imosa4, imowa4, imona4, imoea4, imola4;
   wire [MN-1:0]                imosa4, imowa4, imona4, imoea4, imola4;
 
   wire [MN-1:0]                imoseofan, imoweofan, imoneofan, imoeeofan, imoleofan;
 `endif
 `endif
`endif
`endif
 
 
   // input of CMs
   // input of CMs
   wire [MN-1:0][4:0][SCN-1:0] cmi0, cmi1, cmi2, cmi3;
   wire [MN-1:0][4:0][SCN-1:0] cmi0, cmi1, cmi2, cmi3;
`ifdef ENABLE_CHANNEL_SLICING
`ifdef ENABLE_CHANNEL_SLICING
   wire [MN-1:0][4:0][SCN-1:0] cmi4, cmia;
   wire [MN-1:0][4:0][SCN-1:0] cmi4, cmia;
 
 `ifdef ENABLE_BUFFERED_CLOS
 
   wire [MN-1:0][4:0][SCN-1:0] cmian;
 
 `endif
`else
`else
   wire [MN-1:0][4:0]            cmi4, cmia;
   wire [MN-1:0][4:0]            cmi4, cmia;
 
 `ifdef ENABLE_BUFFERED_CLOS
 
   wire [MN-1:0][4:0]            cmian;
 
 `endif
`endif
`endif
 
 
   // output of CMs
   // output of CMs
   wire [MN-1:0][4:0][SCN-1:0] cmo0, cmo1, cmo2, cmo3;
   wire [MN-1:0][4:0][SCN-1:0] cmo0, cmo1, cmo2, cmo3;
`ifdef ENABLE_CHANNEL_SLICING
`ifdef ENABLE_CHANNEL_SLICING
Line 224... Line 237...
 
 
   generate for(i=0; i<MN; i++) begin: IMSHF
   generate for(i=0; i<MN; i++) begin: IMSHF
`ifdef ENABLE_BUFFERED_CLOS
`ifdef ENABLE_BUFFERED_CLOS
      // the buffer stage between IM and CM
      // the buffer stage between IM and CM
 `ifdef ENABLE_CHANNEL_SLICING
 `ifdef ENABLE_CHANNEL_SLICING
      for(j=0; j<SCN; j++) begin:SC
      for(j=0; j<SCN; j++) begin:SC_S
         pipe4 #(.DW(2))
         pipe4 #(.DW(2))
         P (
         P (
            .o0 ( cmi0[i][0]  ),
            .o0 ( cmi0[i][0]  ),
            .o1 ( cmi1[i][0]  ),
            .o1 ( cmi1[i][0]  ),
            .o2 ( cmi2[i][0]  ),
            .o2 ( cmi2[i][0]  ),
Line 241... Line 254...
            .oa ( cmian[i][0]  )
            .oa ( cmian[i][0]  )
            );
            );
 
 
         pipen #(.DW(1))
         pipen #(.DW(1))
         PEoF (
         PEoF (
               .d_in_a  ( imosa4[i]   ),
               .d_in_a  (              ),  // imosa4[i]    ),
               .d_out   ( cmi4[i][0]  ),
               .d_out   ( cmi4[i][0]  ),
               .d_in    ( imos4[i]    ),
               .d_in    ( imos4[i]    ),
               .d_out_a ( cmian[i][0] ),
               .d_out_a ( imoseofan[i] ),
               );
               );
 
 
 
         ppc PCTL (
 
                   .deca  ( imosdeca[i]   ),
 
                   .dia   ( imosa4[i]     ),
 
                   .eof   ( cmi4[i][0]    ),
 
                   .doa   ( cmia[i][0]    ),
 
                   .dec   (
 
                   );
 
 
 
         assign cmian[i][0] = (~cmia[i][0])&rst_n;
 
         assign imoseofan[i] = (imosdeca[i])&rst_n;
 
      end // block: SC
 
 
 
      pipen #(.DW(4))
 
      S_PDIR (
 
              .d_in_a (
 
 
 
 
 
 
 
 
`else
`else
      // shuffle the interconnects between IMs and CMs
      // shuffle the interconnects between IMs and CMs
      assign cmi0[i][0] = imos0[i];
      assign cmi0[i][0] = imos0[i];

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.