Ignore:
Timestamp:
Apr 22, 2013, 11:35:33 AM (11 years ago)
Author:
rolagamo
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • PROJECT_CORE_MPI/SWITCH_GEN/BRANCHES/v0.03/Scheduler.vhd

    r22 r65  
    4242               
    4343architecture Behavioral of Scheduler is
     44-- signaux pour le pipeline;
     45signal Request_latch :STD_LOGIC_VECTOR (number_of_ports*number_of_ports downto 1):=(others=>'0');
     46signal Fifo_full_latch : STD_LOGIC_VECTOR (number_of_ports downto 1):=(others=>'0');
     47signal priority_rotation_latch : STD_LOGIC_VECTOR (number_of_ports downto 1):=(others=>'1');
     48         
    4449-- composants du scheduler
    45 
    46 -- composants du scheduler
    47 
    48 
    4950COMPONENT Scheduler2_2
    5051   PORT(
     
    225226  Inst_Scheduler2_2 : Scheduler2_2
    226227   PORT MAP(
     228     Request => Request_latch,
     229     Fifo_full => Fifo_full_latch,
     230     clk => clk ,
     231     reset =>reset,
     232     priority_rotation =>priority_rotation_latch,
     233     port_grant =>port_grant);
     234end generate scheduler2x2;
     235
     236--======================scheduler 3 ports=======================
     237
     238scheduler3x3 : if number_of_ports = 3 generate
     239
     240  Inst_Scheduler3_3 : Scheduler3_3
     241   PORT MAP(
     242     Request => Request_latch,
     243     Fifo_full => Fifo_full_latch,
     244     clk => clk ,
     245     reset =>reset,
     246     priority_rotation =>priority_rotation_latch,
     247     port_grant =>port_grant);
     248end generate scheduler3x3;
     249
     250--======================scheduler 4 ports=======================
     251
     252scheduler4x4 : if number_of_ports = 4 generate
     253
     254  Inst_Scheduler4_4 : Scheduler4_4
     255   PORT MAP(
     256     Request => Request_latch,
     257     Fifo_full => Fifo_full_latch,
     258     clk => clk ,
     259     reset =>reset,
     260     priority_rotation =>priority_rotation_latch,
     261     port_grant =>port_grant);
     262end generate scheduler4x4;
     263
     264--======================scheduler 5 ports=======================
     265
     266scheduler5x5 : if number_of_ports = 5 generate
     267
     268  Inst_Scheduler5_5 : Scheduler5_5
     269   PORT MAP(
    227270     Request => Request,
    228271     Fifo_full => Fifo_full,
     
    231274     priority_rotation =>priority_rotation,
    232275     port_grant =>port_grant);
    233 end generate scheduler2x2;
    234 
    235 --======================scheduler 3 ports=======================
    236 
    237 scheduler3x3 : if number_of_ports = 3 generate
    238 
    239   Inst_Scheduler3_3 : Scheduler3_3
     276end generate scheduler5x5;
     277
     278--======================scheduler 6 ports=======================
     279
     280scheduler6x6 : if number_of_ports = 6 generate
     281
     282  Inst_Scheduler6_6 : Scheduler6_6
     283   PORT MAP(
     284     Request => Request_latch,
     285     Fifo_full => Fifo_full_latch,
     286     clk => clk ,
     287     reset =>reset,
     288     priority_rotation =>priority_rotation_latch,
     289     port_grant =>port_grant);
     290end generate scheduler6x6;
     291
     292--======================scheduler 7 ports=======================
     293
     294scheduler7x7 : if number_of_ports = 7 generate
     295
     296  Inst_Scheduler7_7 : Scheduler7_7
     297   PORT MAP(
     298     Request => Request_latch,
     299     Fifo_full => Fifo_full_latch,
     300     clk => clk ,
     301     reset =>reset,
     302     priority_rotation =>priority_rotation_latch,
     303     port_grant =>port_grant);
     304end generate scheduler7x7;
     305
     306--======================scheduler 8 ports=======================
     307
     308scheduler8x8 : if number_of_ports = 8 generate
     309
     310  Inst_Scheduler8_8 : Scheduler8_8
     311   PORT MAP(
     312     Request => Request_latch,
     313     Fifo_full => Fifo_full_latch,
     314     clk => clk ,
     315     reset =>reset,
     316     priority_rotation =>priority_rotation_latch,
     317     port_grant =>port_grant);
     318end generate scheduler8x8;
     319
     320--======================scheduler 9 ports=======================
     321
     322scheduler9x9 : if number_of_ports = 9 generate
     323
     324  Inst_Scheduler9_9 : Scheduler9_9
     325   PORT MAP(
     326     Request => Request_latch,
     327     Fifo_full => Fifo_full_latch,
     328     clk => clk ,
     329     reset =>reset,
     330     priority_rotation =>priority_rotation_latch,
     331     port_grant =>port_grant);
     332end generate scheduler9x9;
     333
     334--======================scheduler 10 ports=======================
     335
     336scheduler10x10 : if number_of_ports = 10 generate
     337
     338  Inst_Scheduler10_10 : Scheduler10_10
    240339   PORT MAP(
    241340     Request => Request,
     
    245344     priority_rotation =>priority_rotation,
    246345     port_grant =>port_grant);
    247 end generate scheduler3x3;
    248 
    249 --======================scheduler 4 ports=======================
    250 
    251 scheduler4x4 : if number_of_ports = 4 generate
    252 
    253   Inst_Scheduler4_4 : Scheduler4_4
     346end generate scheduler10x10;
     347
     348--======================scheduler 11 ports=======================
     349
     350scheduler11x11 : if number_of_ports = 11 generate
     351
     352  Inst_Scheduler11_11 : Scheduler11_11
    254353   PORT MAP(
    255354     Request => Request,
     
    259358     priority_rotation =>priority_rotation,
    260359     port_grant =>port_grant);
    261 end generate scheduler4x4;
    262 
    263 --======================scheduler 5 ports=======================
    264 
    265 scheduler5x5 : if number_of_ports = 5 generate
    266 
    267   Inst_Scheduler5_5 : Scheduler5_5
    268    PORT MAP(
    269      Request => Request,
    270      Fifo_full => Fifo_full,
    271      clk => clk ,
    272      reset =>reset,
    273      priority_rotation =>priority_rotation,
    274      port_grant =>port_grant);
    275 end generate scheduler5x5;
    276 
    277 --======================scheduler 6 ports=======================
    278 
    279 scheduler6x6 : if number_of_ports = 6 generate
    280 
    281   Inst_Scheduler6_6 : Scheduler6_6
    282    PORT MAP(
    283      Request => Request,
    284      Fifo_full => Fifo_full,
    285      clk => clk ,
    286      reset =>reset,
    287      priority_rotation =>priority_rotation,
    288      port_grant =>port_grant);
    289 end generate scheduler6x6;
    290 
    291 --======================scheduler 7 ports=======================
    292 
    293 scheduler7x7 : if number_of_ports = 7 generate
    294 
    295   Inst_Scheduler7_7 : Scheduler7_7
    296    PORT MAP(
    297      Request => Request,
    298      Fifo_full => Fifo_full,
    299      clk => clk ,
    300      reset =>reset,
    301      priority_rotation =>priority_rotation,
    302      port_grant =>port_grant);
    303 end generate scheduler7x7;
    304 
    305 --======================scheduler 8 ports=======================
    306 
    307 scheduler8x8 : if number_of_ports = 8 generate
    308 
    309   Inst_Scheduler8_8 : Scheduler8_8
    310    PORT MAP(
    311      Request => Request,
    312      Fifo_full => Fifo_full,
    313      clk => clk ,
    314      reset =>reset,
    315      priority_rotation =>priority_rotation,
    316      port_grant =>port_grant);
    317 end generate scheduler8x8;
    318 
    319 --======================scheduler 9 ports=======================
    320 
    321 scheduler9x9 : if number_of_ports = 9 generate
    322 
    323   Inst_Scheduler9_9 : Scheduler9_9
    324    PORT MAP(
    325      Request => Request,
    326      Fifo_full => Fifo_full,
    327      clk => clk ,
    328      reset =>reset,
    329      priority_rotation =>priority_rotation,
    330      port_grant =>port_grant);
    331 end generate scheduler9x9;
    332 
    333 --======================scheduler 10 ports=======================
    334 
    335 scheduler10x10 : if number_of_ports = 10 generate
    336 
    337   Inst_Scheduler10_10 : Scheduler10_10
    338    PORT MAP(
    339      Request => Request,
    340      Fifo_full => Fifo_full,
    341      clk => clk ,
    342      reset =>reset,
    343      priority_rotation =>priority_rotation,
    344      port_grant =>port_grant);
    345 end generate scheduler10x10;
    346 
    347 --======================scheduler 11 ports=======================
    348 
    349 scheduler11x11 : if number_of_ports = 11 generate
    350 
    351   Inst_Scheduler11_11 : Scheduler11_11
    352    PORT MAP(
    353      Request => Request,
    354      Fifo_full => Fifo_full,
    355      clk => clk ,
    356      reset =>reset,
    357      priority_rotation =>priority_rotation,
    358      port_grant =>port_grant);
    359360end generate scheduler11x11;
    360361
     
    365366  Inst_Scheduler12_12 : Scheduler12_12
    366367   PORT MAP(
    367      Request => Request,
    368      Fifo_full => Fifo_full,
    369      clk => clk ,
    370      reset =>reset,
    371      priority_rotation =>priority_rotation,
     368     Request => Request_latch,
     369     Fifo_full => Fifo_full_latch,
     370     clk => clk ,
     371     reset =>reset,
     372     priority_rotation =>priority_rotation_latch,
    372373     port_grant =>port_grant);
    373374end generate scheduler12x12;
     
    379380  Inst_Scheduler13_13 : Scheduler13_13
    380381   PORT MAP(
    381      Request => Request,
    382      Fifo_full => Fifo_full,
    383      clk => clk ,
    384      reset =>reset,
    385      priority_rotation =>priority_rotation,
     382     Request => Request_latch,
     383     Fifo_full => Fifo_full_latch,
     384     clk => clk ,
     385     reset =>reset,
     386     priority_rotation =>priority_rotation_latch,
    386387     port_grant =>port_grant);
    387388end generate scheduler13x13;
     
    393394  Inst_Scheduler14_14 : Scheduler14_14
    394395   PORT MAP(
    395      Request => Request,
    396      Fifo_full => Fifo_full,
    397      clk => clk ,
    398      reset =>reset,
    399      priority_rotation =>priority_rotation,
     396     Request => Request_latch,
     397     Fifo_full => Fifo_full_latch,
     398     clk => clk ,
     399     reset =>reset,
     400     priority_rotation =>priority_rotation_latch,
    400401     port_grant =>port_grant);
    401402end generate scheduler14x14;
     
    407408  Inst_Scheduler15_15 : Scheduler15_15
    408409   PORT MAP(
    409      Request => Request,
    410      Fifo_full => Fifo_full,
    411      clk => clk ,
    412      reset =>reset,
    413      priority_rotation =>priority_rotation,
     410     Request => Request_latch,
     411     Fifo_full => Fifo_full_latch,
     412     clk => clk ,
     413     reset =>reset,
     414     priority_rotation =>priority_rotation_latch,
    414415     port_grant =>port_grant);
    415416end generate scheduler15x15;
     
    421422  Inst_Scheduler16_16 : Scheduler16_16
    422423   PORT MAP(
    423      Request => Request,
    424      Fifo_full => Fifo_full,
    425      clk => clk ,
    426      reset =>reset,
    427      priority_rotation =>priority_rotation,
     424     Request => Request_latch,
     425     Fifo_full => Fifo_full_latch,
     426     clk => clk ,
     427     reset =>reset,
     428     priority_rotation =>priority_rotation_latch,
    428429     port_grant =>port_grant);
    429430end generate scheduler16x16;
    430 
     431Sched:process (clk,reset)
     432begin
     433if rising_edge(clk) then
     434        if reset='1' then
     435                request_latch<=(others=>'0');
     436                Fifo_full_latch<=(others=>'0');
     437                priority_rotation_latch<=(others=>'1');
     438        else
     439                request_latch<=request;
     440                Fifo_full_latch<=fifo_full;
     441                priority_rotation_latch<=priority_rotation;
     442        end if;
     443end if;
     444end process sched;
    431445end Behavioral;
    432446
Note: See TracChangeset for help on using the changeset viewer.