source: PROJECT_CORE_MPI/SWITCH_GEN/BRANCHES/OLD_VERSION/SCHEDULER7_7.VHD @ 24

Last change on this file since 24 was 24, checked in by rolagamo, 12 years ago
File size: 31.3 KB
Line 
1---------------------------------------------------------------------------------
2-- Company:
3-- Engineer: KIEGAING EMMANUEL GEL EN 5
4--
5-- Create Date:    03:56:34 05/06/2011
6-- Design Name:
7-- Module Name:    Sheduler - Behavioral
8-- Project Name:
9-- Target Devices:
10-- Tool versions:
11-- Description: Module de l'ordonnanceur du switch crossbar
12-- l'algorithme utilisée est le DPA (diagonal propagation arbiter)
13--
14-- Dependencies:
15--
16-- Revision:
17-- Revision 0.01 - File Created
18-- Additional Comments:
19--
20----------------------------------------------------------------------------------
21library IEEE;
22use IEEE.STD_LOGIC_1164.ALL;
23use IEEE.STD_LOGIC_ARITH.ALL;
24use IEEE.STD_LOGIC_UNSIGNED.ALL;
25--use Work.Sheduler_package.all;
26
27---- Uncomment the following library declaration if instantiating
28---- any Xilinx primitives in this code.
29--library UNISIM;
30--use UNISIM.VComponents.all;
31entity Scheduler7_7 is
32    Port ( Request : in  STD_LOGIC_VECTOR (49 downto 1);
33                   Fifo_full : in STD_LOGIC_VECTOR (7 downto 1);
34           clk : in  STD_LOGIC;
35           reset : in  STD_LOGIC;
36            priority_rotation : in  STD_LOGIC_VECTOR (7 downto 1);
37           port_grant : out  STD_LOGIC_VECTOR (49 downto 1));
38end Scheduler7_7;
39
40architecture Behavioral of Scheduler7_7 is
41--Declaration du types
42--tableau de signaux de connexion des cellules arbitres
43TYPE C_Bar_Signal_Array IS ARRAY(13 downto 1) of STD_LOGIC_VECTOR(7 downto 1);
44-- declaration du composant cellule d'arbitrage
45Component Arbiter
46  PORT (P, Fifo_full,Request, West,North : in  STD_LOGIC;
47        Grant,East,South : out  STD_LOGIC );
48End Component;--Signaux de connexion des cellues
49SIGNAL south_2_north :  C_Bar_Signal_Array; -- connexion south north
50SIGNAL east_2_west   :  C_Bar_Signal_Array; -- connexion east west
51SIGNAL Signal_mask      : C_Bar_Signal_Array;-- connexion des masques de priorité
52SIGNAL Signal_grant     : C_Bar_Signal_Array;-- connexion des signaux de validation
53SIGNAL Signal_priority  : STD_LOGIC_VECTOR (13 DOWNTO 1);--signal pour la connection des vecteur de priorité
54SIGNAL High         : std_logic;--niveau pour les cellules des extremités nord et ouest
55 signal grant_latch : std_logic_vector(49 downto 1);
56 signal priority_rotation_en : std_logic;
57 signal Grant,req_grant :  std_logic_vector(49 downto 1);
58 begin
59
60--validation de la rotation de priorité lorsque aucun port n'emet
61 req_grant<=(request and grant_latch);
62 priority_rotation_en <= '1' when   unsigned(req_grant) = 0 or unsigned(priority_rotation) = 127 else   '0';
63--latch servant qui memorise le signal grant pendant a transmission
64grant_latch_process : process(clk)
65 begin
66  if rising_edge(clk) then
67   if reset = '1' then
68                grant_latch <= (others => '0');
69         elsif priority_rotation_en = '1' then
70           grant_latch <= Grant;
71   end if;
72   end if;
73 end process;
74 port_grant <= grant_latch;
75 Grant(1)  <= Signal_grant(1)(1) or Signal_grant(8)(1); --  Grant(1,1)
76Grant(2)  <= Signal_grant(2)(2) or Signal_grant(9)(2); --  Grant(1,2)
77Grant(3)  <= Signal_grant(3)(3) or Signal_grant(10)(3); --  Grant(1,3)
78Grant(4)  <= Signal_grant(4)(4) or Signal_grant(11)(4); --  Grant(1,4)
79Grant(5)  <= Signal_grant(5)(5) or Signal_grant(12)(5); --  Grant(1,5)
80Grant(6)  <= Signal_grant(6)(6) or Signal_grant(13)(6); --  Grant(1,6)
81Grant(7)  <= Signal_grant(7)(7) ;                      --  Grant(1,7)
82Grant(8)  <= Signal_grant(2)(1) or Signal_grant(9)(1); --  Grant(2,1)
83Grant(9)  <= Signal_grant(3)(2) or Signal_grant(10)(2); --  Grant(2,2)
84Grant(10)  <= Signal_grant(4)(3) or Signal_grant(11)(3); --  Grant(2,3)
85Grant(11)  <= Signal_grant(5)(4) or Signal_grant(12)(4); --  Grant(2,4)
86Grant(12)  <= Signal_grant(6)(5) or Signal_grant(13)(5); --  Grant(2,5)
87Grant(13)  <= Signal_grant(7)(6) ;                      --  Grant(2,6)
88Grant(14)  <= Signal_grant(1)(7) or Signal_grant(8)(7); --  Grant(2,7)
89Grant(15)  <= Signal_grant(3)(1) or Signal_grant(10)(1); --  Grant(3,1)
90Grant(16)  <= Signal_grant(4)(2) or Signal_grant(11)(2); --  Grant(3,2)
91Grant(17)  <= Signal_grant(5)(3) or Signal_grant(12)(3); --  Grant(3,3)
92Grant(18)  <= Signal_grant(6)(4) or Signal_grant(13)(4); --  Grant(3,4)
93Grant(19)  <= Signal_grant(7)(5) ;                      --  Grant(3,5)
94Grant(20)  <= Signal_grant(1)(6) or Signal_grant(8)(6); --  Grant(3,6)
95Grant(21)  <= Signal_grant(2)(7) or Signal_grant(9)(7); --  Grant(3,7)
96Grant(22)  <= Signal_grant(4)(1) or Signal_grant(11)(1); --  Grant(4,1)
97Grant(23)  <= Signal_grant(5)(2) or Signal_grant(12)(2); --  Grant(4,2)
98Grant(24)  <= Signal_grant(6)(3) or Signal_grant(13)(3); --  Grant(4,3)
99Grant(25)  <= Signal_grant(7)(4) ;                      --  Grant(4,4)
100Grant(26)  <= Signal_grant(1)(5) or Signal_grant(8)(5); --  Grant(4,5)
101Grant(27)  <= Signal_grant(2)(6) or Signal_grant(9)(6); --  Grant(4,6)
102Grant(28)  <= Signal_grant(3)(7) or Signal_grant(10)(7); --  Grant(4,7)
103Grant(29)  <= Signal_grant(5)(1) or Signal_grant(12)(1); --  Grant(5,1)
104Grant(30)  <= Signal_grant(6)(2) or Signal_grant(13)(2); --  Grant(5,2)
105Grant(31)  <= Signal_grant(7)(3) ;                      --  Grant(5,3)
106Grant(32)  <= Signal_grant(1)(4) or Signal_grant(8)(4); --  Grant(5,4)
107Grant(33)  <= Signal_grant(2)(5) or Signal_grant(9)(5); --  Grant(5,5)
108Grant(34)  <= Signal_grant(3)(6) or Signal_grant(10)(6); --  Grant(5,6)
109Grant(35)  <= Signal_grant(4)(7) or Signal_grant(11)(7); --  Grant(5,7)
110Grant(36)  <= Signal_grant(6)(1) or Signal_grant(13)(1); --  Grant(6,1)
111Grant(37)  <= Signal_grant(7)(2) ;                      --  Grant(6,2)
112Grant(38)  <= Signal_grant(1)(3) or Signal_grant(8)(3); --  Grant(6,3)
113Grant(39)  <= Signal_grant(2)(4) or Signal_grant(9)(4); --  Grant(6,4)
114Grant(40)  <= Signal_grant(3)(5) or Signal_grant(10)(5); --  Grant(6,5)
115Grant(41)  <= Signal_grant(4)(6) or Signal_grant(11)(6); --  Grant(6,6)
116Grant(42)  <= Signal_grant(5)(7) or Signal_grant(12)(7); --  Grant(6,7)
117Grant(43)  <= Signal_grant(7)(1) ;                      --  Grant(7,1)
118Grant(44)  <= Signal_grant(1)(2) or Signal_grant(8)(2); --  Grant(7,2)
119Grant(45)  <= Signal_grant(2)(3) or Signal_grant(9)(3); --  Grant(7,3)
120Grant(46)  <= Signal_grant(3)(4) or Signal_grant(10)(4); --  Grant(7,4)
121Grant(47)  <= Signal_grant(4)(5) or Signal_grant(11)(5); --  Grant(7,5)
122Grant(48)  <= Signal_grant(5)(6) or Signal_grant(12)(6); --  Grant(7,6)
123Grant(49)  <= Signal_grant(6)(7) or Signal_grant(13)(7); --  Grant(7,7)
124High <= '1';
125
126----instantiations des cellules arbitres et interconnection
127
128-------------------------- Diagonale n° 1
129
130
131Arbiter_1_1 : Arbiter
132
133PORT MAP (Request => Request(1), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(1), 
134South => south_2_north(1)(1), East => east_2_west(1)(1) , Grant => Signal_grant(1)(1));
135
136Arbiter_1_2 : Arbiter
137
138PORT MAP (Request => Request(44), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(2), 
139South => south_2_north(1)(2), East => east_2_west(1)(2) , Grant => Signal_grant(1)(2));
140
141Arbiter_1_3 : Arbiter
142
143PORT MAP (Request => Request(38), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(3), 
144South => south_2_north(1)(3), East => east_2_west(1)(3) , Grant => Signal_grant(1)(3));
145
146Arbiter_1_4 : Arbiter
147
148PORT MAP (Request => Request(32), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(4), 
149South => south_2_north(1)(4), East => east_2_west(1)(4) , Grant => Signal_grant(1)(4));
150
151Arbiter_1_5 : Arbiter
152
153PORT MAP (Request => Request(26), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(5), 
154South => south_2_north(1)(5), East => east_2_west(1)(5) , Grant => Signal_grant(1)(5));
155
156Arbiter_1_6 : Arbiter
157
158PORT MAP (Request => Request(20), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(6), 
159South => south_2_north(1)(6), East => east_2_west(1)(6) , Grant => Signal_grant(1)(6));
160
161Arbiter_1_7 : Arbiter
162
163PORT MAP (Request => Request(14), North => High, West => High, P => Signal_priority(13), Fifo_full => Fifo_full(7), 
164South => south_2_north(1)(7), East => east_2_west(1)(7) , Grant => Signal_grant(1)(7));
165
166-------------------------- Diagonale n° 2
167
168
169Arbiter_2_1 : Arbiter
170
171PORT MAP (Request => Request(8), North => south_2_north(1)(1), West => east_2_west(1)(7), P => Signal_priority(12), Fifo_full => Fifo_full(1), 
172South => south_2_north(2)(1), East => east_2_west(2)(1) , Grant => Signal_grant(2)(1));
173
174Arbiter_2_2 : Arbiter
175
176PORT MAP (Request => Request(2), North => south_2_north(1)(2), West => east_2_west(1)(1), P => Signal_priority(12), Fifo_full => Fifo_full(2), 
177South => south_2_north(2)(2), East => east_2_west(2)(2) , Grant => Signal_grant(2)(2));
178
179Arbiter_2_3 : Arbiter
180
181PORT MAP (Request => Request(45), North => south_2_north(1)(3), West => east_2_west(1)(2), P => Signal_priority(12), Fifo_full => Fifo_full(3), 
182South => south_2_north(2)(3), East => east_2_west(2)(3) , Grant => Signal_grant(2)(3));
183
184Arbiter_2_4 : Arbiter
185
186PORT MAP (Request => Request(39), North => south_2_north(1)(4), West => east_2_west(1)(3), P => Signal_priority(12), Fifo_full => Fifo_full(4), 
187South => south_2_north(2)(4), East => east_2_west(2)(4) , Grant => Signal_grant(2)(4));
188
189Arbiter_2_5 : Arbiter
190
191PORT MAP (Request => Request(33), North => south_2_north(1)(5), West => east_2_west(1)(4), P => Signal_priority(12), Fifo_full => Fifo_full(5), 
192South => south_2_north(2)(5), East => east_2_west(2)(5) , Grant => Signal_grant(2)(5));
193
194Arbiter_2_6 : Arbiter
195
196PORT MAP (Request => Request(27), North => south_2_north(1)(6), West => east_2_west(1)(5), P => Signal_priority(12), Fifo_full => Fifo_full(6), 
197South => south_2_north(2)(6), East => east_2_west(2)(6) , Grant => Signal_grant(2)(6));
198
199Arbiter_2_7 : Arbiter
200
201PORT MAP (Request => Request(21), North => south_2_north(1)(7), West => east_2_west(1)(6), P => Signal_priority(12), Fifo_full => Fifo_full(7), 
202South => south_2_north(2)(7), East => east_2_west(2)(7) , Grant => Signal_grant(2)(7));
203
204-------------------------- Diagonale n° 3
205
206
207Arbiter_3_1 : Arbiter
208
209PORT MAP (Request => Request(15), North => south_2_north(2)(1), West => east_2_west(2)(7), P => Signal_priority(11), Fifo_full => Fifo_full(1), 
210South => south_2_north(3)(1), East => east_2_west(3)(1) , Grant => Signal_grant(3)(1));
211
212Arbiter_3_2 : Arbiter
213
214PORT MAP (Request => Request(9), North => south_2_north(2)(2), West => east_2_west(2)(1), P => Signal_priority(11), Fifo_full => Fifo_full(2), 
215South => south_2_north(3)(2), East => east_2_west(3)(2) , Grant => Signal_grant(3)(2));
216
217Arbiter_3_3 : Arbiter
218
219PORT MAP (Request => Request(3), North => south_2_north(2)(3), West => east_2_west(2)(2), P => Signal_priority(11), Fifo_full => Fifo_full(3), 
220South => south_2_north(3)(3), East => east_2_west(3)(3) , Grant => Signal_grant(3)(3));
221
222Arbiter_3_4 : Arbiter
223
224PORT MAP (Request => Request(46), North => south_2_north(2)(4), West => east_2_west(2)(3), P => Signal_priority(11), Fifo_full => Fifo_full(4), 
225South => south_2_north(3)(4), East => east_2_west(3)(4) , Grant => Signal_grant(3)(4));
226
227Arbiter_3_5 : Arbiter
228
229PORT MAP (Request => Request(40), North => south_2_north(2)(5), West => east_2_west(2)(4), P => Signal_priority(11), Fifo_full => Fifo_full(5), 
230South => south_2_north(3)(5), East => east_2_west(3)(5) , Grant => Signal_grant(3)(5));
231
232Arbiter_3_6 : Arbiter
233
234PORT MAP (Request => Request(34), North => south_2_north(2)(6), West => east_2_west(2)(5), P => Signal_priority(11), Fifo_full => Fifo_full(6), 
235South => south_2_north(3)(6), East => east_2_west(3)(6) , Grant => Signal_grant(3)(6));
236
237Arbiter_3_7 : Arbiter
238
239PORT MAP (Request => Request(28), North => south_2_north(2)(7), West => east_2_west(2)(6), P => Signal_priority(11), Fifo_full => Fifo_full(7), 
240South => south_2_north(3)(7), East => east_2_west(3)(7) , Grant => Signal_grant(3)(7));
241
242-------------------------- Diagonale n° 4
243
244
245Arbiter_4_1 : Arbiter
246
247PORT MAP (Request => Request(22), North => south_2_north(3)(1), West => east_2_west(3)(7), P => Signal_priority(10), Fifo_full => Fifo_full(1), 
248South => south_2_north(4)(1), East => east_2_west(4)(1) , Grant => Signal_grant(4)(1));
249
250Arbiter_4_2 : Arbiter
251
252PORT MAP (Request => Request(16), North => south_2_north(3)(2), West => east_2_west(3)(1), P => Signal_priority(10), Fifo_full => Fifo_full(2), 
253South => south_2_north(4)(2), East => east_2_west(4)(2) , Grant => Signal_grant(4)(2));
254
255Arbiter_4_3 : Arbiter
256
257PORT MAP (Request => Request(10), North => south_2_north(3)(3), West => east_2_west(3)(2), P => Signal_priority(10), Fifo_full => Fifo_full(3), 
258South => south_2_north(4)(3), East => east_2_west(4)(3) , Grant => Signal_grant(4)(3));
259
260Arbiter_4_4 : Arbiter
261
262PORT MAP (Request => Request(4), North => south_2_north(3)(4), West => east_2_west(3)(3), P => Signal_priority(10), Fifo_full => Fifo_full(4), 
263South => south_2_north(4)(4), East => east_2_west(4)(4) , Grant => Signal_grant(4)(4));
264
265Arbiter_4_5 : Arbiter
266
267PORT MAP (Request => Request(47), North => south_2_north(3)(5), West => east_2_west(3)(4), P => Signal_priority(10), Fifo_full => Fifo_full(5), 
268South => south_2_north(4)(5), East => east_2_west(4)(5) , Grant => Signal_grant(4)(5));
269
270Arbiter_4_6 : Arbiter
271
272PORT MAP (Request => Request(41), North => south_2_north(3)(6), West => east_2_west(3)(5), P => Signal_priority(10), Fifo_full => Fifo_full(6), 
273South => south_2_north(4)(6), East => east_2_west(4)(6) , Grant => Signal_grant(4)(6));
274
275Arbiter_4_7 : Arbiter
276
277PORT MAP (Request => Request(35), North => south_2_north(3)(7), West => east_2_west(3)(6), P => Signal_priority(10), Fifo_full => Fifo_full(7), 
278South => south_2_north(4)(7), East => east_2_west(4)(7) , Grant => Signal_grant(4)(7));
279
280-------------------------- Diagonale n° 5
281
282
283Arbiter_5_1 : Arbiter
284
285PORT MAP (Request => Request(29), North => south_2_north(4)(1), West => east_2_west(4)(7), P => Signal_priority(9), Fifo_full => Fifo_full(1), 
286South => south_2_north(5)(1), East => east_2_west(5)(1) , Grant => Signal_grant(5)(1));
287
288Arbiter_5_2 : Arbiter
289
290PORT MAP (Request => Request(23), North => south_2_north(4)(2), West => east_2_west(4)(1), P => Signal_priority(9), Fifo_full => Fifo_full(2), 
291South => south_2_north(5)(2), East => east_2_west(5)(2) , Grant => Signal_grant(5)(2));
292
293Arbiter_5_3 : Arbiter
294
295PORT MAP (Request => Request(17), North => south_2_north(4)(3), West => east_2_west(4)(2), P => Signal_priority(9), Fifo_full => Fifo_full(3), 
296South => south_2_north(5)(3), East => east_2_west(5)(3) , Grant => Signal_grant(5)(3));
297
298Arbiter_5_4 : Arbiter
299
300PORT MAP (Request => Request(11), North => south_2_north(4)(4), West => east_2_west(4)(3), P => Signal_priority(9), Fifo_full => Fifo_full(4), 
301South => south_2_north(5)(4), East => east_2_west(5)(4) , Grant => Signal_grant(5)(4));
302
303Arbiter_5_5 : Arbiter
304
305PORT MAP (Request => Request(5), North => south_2_north(4)(5), West => east_2_west(4)(4), P => Signal_priority(9), Fifo_full => Fifo_full(5), 
306South => south_2_north(5)(5), East => east_2_west(5)(5) , Grant => Signal_grant(5)(5));
307
308Arbiter_5_6 : Arbiter
309
310PORT MAP (Request => Request(48), North => south_2_north(4)(6), West => east_2_west(4)(5), P => Signal_priority(9), Fifo_full => Fifo_full(6), 
311South => south_2_north(5)(6), East => east_2_west(5)(6) , Grant => Signal_grant(5)(6));
312
313Arbiter_5_7 : Arbiter
314
315PORT MAP (Request => Request(42), North => south_2_north(4)(7), West => east_2_west(4)(6), P => Signal_priority(9), Fifo_full => Fifo_full(7), 
316South => south_2_north(5)(7), East => east_2_west(5)(7) , Grant => Signal_grant(5)(7));
317
318-------------------------- Diagonale n° 6
319
320
321Arbiter_6_1 : Arbiter
322
323PORT MAP (Request => Request(36), North => south_2_north(5)(1), West => east_2_west(5)(7), P => Signal_priority(8), Fifo_full => Fifo_full(1), 
324South => south_2_north(6)(1), East => east_2_west(6)(1) , Grant => Signal_grant(6)(1));
325
326Arbiter_6_2 : Arbiter
327
328PORT MAP (Request => Request(30), North => south_2_north(5)(2), West => east_2_west(5)(1), P => Signal_priority(8), Fifo_full => Fifo_full(2), 
329South => south_2_north(6)(2), East => east_2_west(6)(2) , Grant => Signal_grant(6)(2));
330
331Arbiter_6_3 : Arbiter
332
333PORT MAP (Request => Request(24), North => south_2_north(5)(3), West => east_2_west(5)(2), P => Signal_priority(8), Fifo_full => Fifo_full(3), 
334South => south_2_north(6)(3), East => east_2_west(6)(3) , Grant => Signal_grant(6)(3));
335
336Arbiter_6_4 : Arbiter
337
338PORT MAP (Request => Request(18), North => south_2_north(5)(4), West => east_2_west(5)(3), P => Signal_priority(8), Fifo_full => Fifo_full(4), 
339South => south_2_north(6)(4), East => east_2_west(6)(4) , Grant => Signal_grant(6)(4));
340
341Arbiter_6_5 : Arbiter
342
343PORT MAP (Request => Request(12), North => south_2_north(5)(5), West => east_2_west(5)(4), P => Signal_priority(8), Fifo_full => Fifo_full(5), 
344South => south_2_north(6)(5), East => east_2_west(6)(5) , Grant => Signal_grant(6)(5));
345
346Arbiter_6_6 : Arbiter
347
348PORT MAP (Request => Request(6), North => south_2_north(5)(6), West => east_2_west(5)(5), P => Signal_priority(8), Fifo_full => Fifo_full(6), 
349South => south_2_north(6)(6), East => east_2_west(6)(6) , Grant => Signal_grant(6)(6));
350
351Arbiter_6_7 : Arbiter
352
353PORT MAP (Request => Request(49), North => south_2_north(5)(7), West => east_2_west(5)(6), P => Signal_priority(8), Fifo_full => Fifo_full(7), 
354South => south_2_north(6)(7), East => east_2_west(6)(7) , Grant => Signal_grant(6)(7));
355
356-------------------------- Diagonale n° 7
357
358
359Arbiter_7_1 : Arbiter
360
361PORT MAP (Request => Request(43), North => south_2_north(6)(1), West => east_2_west(6)(7), P => Signal_priority(7), Fifo_full => Fifo_full(1), 
362South => south_2_north(7)(1), East => east_2_west(7)(1) , Grant => Signal_grant(7)(1));
363
364Arbiter_7_2 : Arbiter
365
366PORT MAP (Request => Request(37), North => south_2_north(6)(2), West => east_2_west(6)(1), P => Signal_priority(7), Fifo_full => Fifo_full(2), 
367South => south_2_north(7)(2), East => east_2_west(7)(2) , Grant => Signal_grant(7)(2));
368
369Arbiter_7_3 : Arbiter
370
371PORT MAP (Request => Request(31), North => south_2_north(6)(3), West => east_2_west(6)(2), P => Signal_priority(7), Fifo_full => Fifo_full(3), 
372South => south_2_north(7)(3), East => east_2_west(7)(3) , Grant => Signal_grant(7)(3));
373
374Arbiter_7_4 : Arbiter
375
376PORT MAP (Request => Request(25), North => south_2_north(6)(4), West => east_2_west(6)(3), P => Signal_priority(7), Fifo_full => Fifo_full(4), 
377South => south_2_north(7)(4), East => east_2_west(7)(4) , Grant => Signal_grant(7)(4));
378
379Arbiter_7_5 : Arbiter
380
381PORT MAP (Request => Request(19), North => south_2_north(6)(5), West => east_2_west(6)(4), P => Signal_priority(7), Fifo_full => Fifo_full(5), 
382South => south_2_north(7)(5), East => east_2_west(7)(5) , Grant => Signal_grant(7)(5));
383
384Arbiter_7_6 : Arbiter
385
386PORT MAP (Request => Request(13), North => south_2_north(6)(6), West => east_2_west(6)(5), P => Signal_priority(7), Fifo_full => Fifo_full(6), 
387South => south_2_north(7)(6), East => east_2_west(7)(6) , Grant => Signal_grant(7)(6));
388
389Arbiter_7_7 : Arbiter
390
391PORT MAP (Request => Request(7), North => south_2_north(6)(7), West => east_2_west(6)(6), P => Signal_priority(7), Fifo_full => Fifo_full(7), 
392South => south_2_north(7)(7), East => east_2_west(7)(7) , Grant => Signal_grant(7)(7));
393
394-------------------------- Diagonale n° 8
395
396
397Arbiter_8_1 : Arbiter
398
399PORT MAP (Request => Request(1), North => south_2_north(7)(1), West => east_2_west(7)(7), P => Signal_priority(6), Fifo_full => Fifo_full(1), 
400South => south_2_north(8)(1), East => east_2_west(8)(1) , Grant => Signal_grant(8)(1));
401
402Arbiter_8_2 : Arbiter
403
404PORT MAP (Request => Request(44), North => south_2_north(7)(2), West => east_2_west(7)(1), P => Signal_priority(6), Fifo_full => Fifo_full(2), 
405South => south_2_north(8)(2), East => east_2_west(8)(2) , Grant => Signal_grant(8)(2));
406
407Arbiter_8_3 : Arbiter
408
409PORT MAP (Request => Request(38), North => south_2_north(7)(3), West => east_2_west(7)(2), P => Signal_priority(6), Fifo_full => Fifo_full(3), 
410South => south_2_north(8)(3), East => east_2_west(8)(3) , Grant => Signal_grant(8)(3));
411
412Arbiter_8_4 : Arbiter
413
414PORT MAP (Request => Request(32), North => south_2_north(7)(4), West => east_2_west(7)(3), P => Signal_priority(6), Fifo_full => Fifo_full(4), 
415South => south_2_north(8)(4), East => east_2_west(8)(4) , Grant => Signal_grant(8)(4));
416
417Arbiter_8_5 : Arbiter
418
419PORT MAP (Request => Request(26), North => south_2_north(7)(5), West => east_2_west(7)(4), P => Signal_priority(6), Fifo_full => Fifo_full(5), 
420South => south_2_north(8)(5), East => east_2_west(8)(5) , Grant => Signal_grant(8)(5));
421
422Arbiter_8_6 : Arbiter
423
424PORT MAP (Request => Request(20), North => south_2_north(7)(6), West => east_2_west(7)(5), P => Signal_priority(6), Fifo_full => Fifo_full(6), 
425South => south_2_north(8)(6), East => east_2_west(8)(6) , Grant => Signal_grant(8)(6));
426
427Arbiter_8_7 : Arbiter
428
429PORT MAP (Request => Request(14), North => south_2_north(7)(7), West => east_2_west(7)(6), P => Signal_priority(6), Fifo_full => Fifo_full(7), 
430South => south_2_north(8)(7), East => east_2_west(8)(7) , Grant => Signal_grant(8)(7));
431
432-------------------------- Diagonale n° 9
433
434
435Arbiter_9_1 : Arbiter
436
437PORT MAP (Request => Request(8), North => south_2_north(8)(1), West => east_2_west(8)(7), P => Signal_priority(5), Fifo_full => Fifo_full(1), 
438South => south_2_north(9)(1), East => east_2_west(9)(1) , Grant => Signal_grant(9)(1));
439
440Arbiter_9_2 : Arbiter
441
442PORT MAP (Request => Request(2), North => south_2_north(8)(2), West => east_2_west(8)(1), P => Signal_priority(5), Fifo_full => Fifo_full(2), 
443South => south_2_north(9)(2), East => east_2_west(9)(2) , Grant => Signal_grant(9)(2));
444
445Arbiter_9_3 : Arbiter
446
447PORT MAP (Request => Request(45), North => south_2_north(8)(3), West => east_2_west(8)(2), P => Signal_priority(5), Fifo_full => Fifo_full(3), 
448South => south_2_north(9)(3), East => east_2_west(9)(3) , Grant => Signal_grant(9)(3));
449
450Arbiter_9_4 : Arbiter
451
452PORT MAP (Request => Request(39), North => south_2_north(8)(4), West => east_2_west(8)(3), P => Signal_priority(5), Fifo_full => Fifo_full(4), 
453South => south_2_north(9)(4), East => east_2_west(9)(4) , Grant => Signal_grant(9)(4));
454
455Arbiter_9_5 : Arbiter
456
457PORT MAP (Request => Request(33), North => south_2_north(8)(5), West => east_2_west(8)(4), P => Signal_priority(5), Fifo_full => Fifo_full(5), 
458South => south_2_north(9)(5), East => east_2_west(9)(5) , Grant => Signal_grant(9)(5));
459
460Arbiter_9_6 : Arbiter
461
462PORT MAP (Request => Request(27), North => south_2_north(8)(6), West => east_2_west(8)(5), P => Signal_priority(5), Fifo_full => Fifo_full(6), 
463South => south_2_north(9)(6), East => east_2_west(9)(6) , Grant => Signal_grant(9)(6));
464
465Arbiter_9_7 : Arbiter
466
467PORT MAP (Request => Request(21), North => south_2_north(8)(7), West => east_2_west(8)(6), P => Signal_priority(5), Fifo_full => Fifo_full(7), 
468South => south_2_north(9)(7), East => east_2_west(9)(7) , Grant => Signal_grant(9)(7));
469
470-------------------------- Diagonale n° 10
471
472
473Arbiter_10_1 : Arbiter
474
475PORT MAP (Request => Request(15), North => south_2_north(9)(1), West => east_2_west(9)(7), P => Signal_priority(4), Fifo_full => Fifo_full(1), 
476South => south_2_north(10)(1), East => east_2_west(10)(1) , Grant => Signal_grant(10)(1));
477
478Arbiter_10_2 : Arbiter
479
480PORT MAP (Request => Request(9), North => south_2_north(9)(2), West => east_2_west(9)(1), P => Signal_priority(4), Fifo_full => Fifo_full(2), 
481South => south_2_north(10)(2), East => east_2_west(10)(2) , Grant => Signal_grant(10)(2));
482
483Arbiter_10_3 : Arbiter
484
485PORT MAP (Request => Request(3), North => south_2_north(9)(3), West => east_2_west(9)(2), P => Signal_priority(4), Fifo_full => Fifo_full(3), 
486South => south_2_north(10)(3), East => east_2_west(10)(3) , Grant => Signal_grant(10)(3));
487
488Arbiter_10_4 : Arbiter
489
490PORT MAP (Request => Request(46), North => south_2_north(9)(4), West => east_2_west(9)(3), P => Signal_priority(4), Fifo_full => Fifo_full(4), 
491South => south_2_north(10)(4), East => east_2_west(10)(4) , Grant => Signal_grant(10)(4));
492
493Arbiter_10_5 : Arbiter
494
495PORT MAP (Request => Request(40), North => south_2_north(9)(5), West => east_2_west(9)(4), P => Signal_priority(4), Fifo_full => Fifo_full(5), 
496South => south_2_north(10)(5), East => east_2_west(10)(5) , Grant => Signal_grant(10)(5));
497
498Arbiter_10_6 : Arbiter
499
500PORT MAP (Request => Request(34), North => south_2_north(9)(6), West => east_2_west(9)(5), P => Signal_priority(4), Fifo_full => Fifo_full(6), 
501South => south_2_north(10)(6), East => east_2_west(10)(6) , Grant => Signal_grant(10)(6));
502
503Arbiter_10_7 : Arbiter
504
505PORT MAP (Request => Request(28), North => south_2_north(9)(7), West => east_2_west(9)(6), P => Signal_priority(4), Fifo_full => Fifo_full(7), 
506South => south_2_north(10)(7), East => east_2_west(10)(7) , Grant => Signal_grant(10)(7));
507
508-------------------------- Diagonale n° 11
509
510
511Arbiter_11_1 : Arbiter
512
513PORT MAP (Request => Request(22), North => south_2_north(10)(1), West => east_2_west(10)(7), P => Signal_priority(3), Fifo_full => Fifo_full(1), 
514South => south_2_north(11)(1), East => east_2_west(11)(1) , Grant => Signal_grant(11)(1));
515
516Arbiter_11_2 : Arbiter
517
518PORT MAP (Request => Request(16), North => south_2_north(10)(2), West => east_2_west(10)(1), P => Signal_priority(3), Fifo_full => Fifo_full(2), 
519South => south_2_north(11)(2), East => east_2_west(11)(2) , Grant => Signal_grant(11)(2));
520
521Arbiter_11_3 : Arbiter
522
523PORT MAP (Request => Request(10), North => south_2_north(10)(3), West => east_2_west(10)(2), P => Signal_priority(3), Fifo_full => Fifo_full(3), 
524South => south_2_north(11)(3), East => east_2_west(11)(3) , Grant => Signal_grant(11)(3));
525
526Arbiter_11_4 : Arbiter
527
528PORT MAP (Request => Request(4), North => south_2_north(10)(4), West => east_2_west(10)(3), P => Signal_priority(3), Fifo_full => Fifo_full(4), 
529South => south_2_north(11)(4), East => east_2_west(11)(4) , Grant => Signal_grant(11)(4));
530
531Arbiter_11_5 : Arbiter
532
533PORT MAP (Request => Request(47), North => south_2_north(10)(5), West => east_2_west(10)(4), P => Signal_priority(3), Fifo_full => Fifo_full(5), 
534South => south_2_north(11)(5), East => east_2_west(11)(5) , Grant => Signal_grant(11)(5));
535
536Arbiter_11_6 : Arbiter
537
538PORT MAP (Request => Request(41), North => south_2_north(10)(6), West => east_2_west(10)(5), P => Signal_priority(3), Fifo_full => Fifo_full(6), 
539South => south_2_north(11)(6), East => east_2_west(11)(6) , Grant => Signal_grant(11)(6));
540
541Arbiter_11_7 : Arbiter
542
543PORT MAP (Request => Request(35), North => south_2_north(10)(7), West => east_2_west(10)(6), P => Signal_priority(3), Fifo_full => Fifo_full(7), 
544South => south_2_north(11)(7), East => east_2_west(11)(7) , Grant => Signal_grant(11)(7));
545
546-------------------------- Diagonale n° 12
547
548
549Arbiter_12_1 : Arbiter
550
551PORT MAP (Request => Request(29), North => south_2_north(11)(1), West => east_2_west(11)(7), P => Signal_priority(2), Fifo_full => Fifo_full(1), 
552South => south_2_north(12)(1), East => east_2_west(12)(1) , Grant => Signal_grant(12)(1));
553
554Arbiter_12_2 : Arbiter
555
556PORT MAP (Request => Request(23), North => south_2_north(11)(2), West => east_2_west(11)(1), P => Signal_priority(2), Fifo_full => Fifo_full(2), 
557South => south_2_north(12)(2), East => east_2_west(12)(2) , Grant => Signal_grant(12)(2));
558
559Arbiter_12_3 : Arbiter
560
561PORT MAP (Request => Request(17), North => south_2_north(11)(3), West => east_2_west(11)(2), P => Signal_priority(2), Fifo_full => Fifo_full(3), 
562South => south_2_north(12)(3), East => east_2_west(12)(3) , Grant => Signal_grant(12)(3));
563
564Arbiter_12_4 : Arbiter
565
566PORT MAP (Request => Request(11), North => south_2_north(11)(4), West => east_2_west(11)(3), P => Signal_priority(2), Fifo_full => Fifo_full(4), 
567South => south_2_north(12)(4), East => east_2_west(12)(4) , Grant => Signal_grant(12)(4));
568
569Arbiter_12_5 : Arbiter
570
571PORT MAP (Request => Request(5), North => south_2_north(11)(5), West => east_2_west(11)(4), P => Signal_priority(2), Fifo_full => Fifo_full(5), 
572South => south_2_north(12)(5), East => east_2_west(12)(5) , Grant => Signal_grant(12)(5));
573
574Arbiter_12_6 : Arbiter
575
576PORT MAP (Request => Request(48), North => south_2_north(11)(6), West => east_2_west(11)(5), P => Signal_priority(2), Fifo_full => Fifo_full(6), 
577South => south_2_north(12)(6), East => east_2_west(12)(6) , Grant => Signal_grant(12)(6));
578
579Arbiter_12_7 : Arbiter
580
581PORT MAP (Request => Request(42), North => south_2_north(11)(7), West => east_2_west(11)(6), P => Signal_priority(2), Fifo_full => Fifo_full(7), 
582South => south_2_north(12)(7), East => east_2_west(12)(7) , Grant => Signal_grant(12)(7));
583
584-------------------------- Diagonale n° 13
585
586
587Arbiter_13_1 : Arbiter
588
589PORT MAP (Request => Request(36), North => south_2_north(12)(1), West => east_2_west(12)(7), P => Signal_priority(1), Fifo_full => Fifo_full(1), 
590South => south_2_north(13)(1), East => east_2_west(13)(1) , Grant => Signal_grant(13)(1));
591
592Arbiter_13_2 : Arbiter
593
594PORT MAP (Request => Request(30), North => south_2_north(12)(2), West => east_2_west(12)(1), P => Signal_priority(1), Fifo_full => Fifo_full(2), 
595South => south_2_north(13)(2), East => east_2_west(13)(2) , Grant => Signal_grant(13)(2));
596
597Arbiter_13_3 : Arbiter
598
599PORT MAP (Request => Request(24), North => south_2_north(12)(3), West => east_2_west(12)(2), P => Signal_priority(1), Fifo_full => Fifo_full(3), 
600South => south_2_north(13)(3), East => east_2_west(13)(3) , Grant => Signal_grant(13)(3));
601
602Arbiter_13_4 : Arbiter
603
604PORT MAP (Request => Request(18), North => south_2_north(12)(4), West => east_2_west(12)(3), P => Signal_priority(1), Fifo_full => Fifo_full(4), 
605South => south_2_north(13)(4), East => east_2_west(13)(4) , Grant => Signal_grant(13)(4));
606
607Arbiter_13_5 : Arbiter
608
609PORT MAP (Request => Request(12), North => south_2_north(12)(5), West => east_2_west(12)(4), P => Signal_priority(1), Fifo_full => Fifo_full(5), 
610South => south_2_north(13)(5), East => east_2_west(13)(5) , Grant => Signal_grant(13)(5));
611
612Arbiter_13_6 : Arbiter
613
614PORT MAP (Request => Request(6), North => south_2_north(12)(6), West => east_2_west(12)(5), P => Signal_priority(1), Fifo_full => Fifo_full(6), 
615South => south_2_north(13)(6), East => east_2_west(13)(6) , Grant => Signal_grant(13)(6));
616
617Arbiter_13_7 : Arbiter
618
619PORT MAP (Request => Request(49), North => south_2_north(12)(7), West => east_2_west(12)(6), P => Signal_priority(1), Fifo_full => Fifo_full(7), 
620South => south_2_north(13)(7), East => east_2_west(13)(7) , Grant => Signal_grant(13)(7));
621
622
623--processus permettant de roter la priorité des diagonales à chaque front d'horloge
624 -- rotation round robin
625         round_robin : process(clk)
626        begin
627                if rising_edge(clk) then
628                 if reset ='1' then
629                    Signal_priority <= "1111111000000";
630                  elsif priority_rotation_en = '1' then
631                    case Signal_priority is
632                       when "1111111000000" => Signal_priority <= "0111111100000";
633                       when "0111111100000" => Signal_priority <= "0011111110000";
634                       when "0011111110000" => Signal_priority <= "0001111111000";
635                       when "0001111111000" => Signal_priority <= "0000111111100";
636                       when "0000111111100" => Signal_priority <= "0000011111110";
637                       when "0000011111110" => Signal_priority <= "0000001111111";
638                       when "0000001111111" => Signal_priority <= "1111111000000";
639                       when others    => Signal_priority <= "1111111000000";
640                  end case;
641                 end if;
642             end if;
643         end process;
644
645end Behavioral;
646
Note: See TracBrowser for help on using the repository browser.