Ignore:
Timestamp:
May 21, 2014, 11:36:19 AM (10 years ago)
Author:
rolagamo
Message:

Ceci est la version 16 bits de la plateforme ainsi que la version hierarchique du NoCNoC

Location:
PROJECT_CORE_MPI/MPI_HCL/BRANCHES/v2.0
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • PROJECT_CORE_MPI/MPI_HCL/BRANCHES/v2.0/NOC/SCHEDULER3_3.VHD

    r101 r139  
    3030--use UNISIM.VComponents.all;
    3131entity Scheduler3_3 is
    32     Port ( Request : in  STD_LOGIC_VECTOR (9 downto 1);
     32    Port ( Req : in  STD_LOGIC_VECTOR (9 downto 1);
    3333                   Fifo_full : in STD_LOGIC_VECTOR (3 downto 1);
    3434           clk : in  STD_LOGIC;
     
    3939
    4040architecture Behavioral of Scheduler3_3 is
     41constant NB_IO:positive:=3;
    4142--Declaration du types
    4243--tableau de signaux de connexion des cellules arbitres
     
    4647  PORT (P, Fifo_full,Request, West,North : in  STD_LOGIC;
    4748        Grant,East,South : out  STD_LOGIC );
    48 End Component;--Signaux de connexion des cellues
     49End Component;
     50--
     51component Def_Request is
     52generic (NB_IO :positive:=3);
     53    Port ( Req : in  STD_LOGIC_VECTOR (NB_IO**2 downto 1);
     54           clk : in  STD_LOGIC;
     55           reset : in  STD_LOGIC;
     56                          fifo_full : in STD_LOGIC_VECTOR (NB_IO downto 1);
     57           priority_rotation : in  STD_LOGIC_VECTOR (NB_IO downto 1);
     58           grant : in  STD_LOGIC_VECTOR (NB_IO**2 downto 1);
     59           request : out  STD_LOGIC_VECTOR (NB_IO**2 downto 1));
     60end component;
     61constant NB_IO2 :positive:=NB_IO**2; -- le carré du nombre de ports d'E/S
     62--Signaux de connexion des cellues
    4963SIGNAL south_2_north :  C_Bar_Signal_Array; -- connexion south north
    5064SIGNAL east_2_west   :  C_Bar_Signal_Array; -- connexion east west
    5165SIGNAL Signal_mask      : C_Bar_Signal_Array;-- connexion des masques de priorité
    5266SIGNAL Signal_grant     : C_Bar_Signal_Array;-- connexion des signaux de validation
    53 SIGNAL Signal_priority  : STD_LOGIC_VECTOR (5 DOWNTO 1);--signal pour la connection des vecteur de priorité
     67SIGNAL Signal_priority  : STD_LOGIC_VECTOR (2*NB_IO-1 DOWNTO 1);--signal pour la connection des vecteurs de priorité
    5468SIGNAL High         : std_logic;--niveau pour les cellules des extremités nord et ouest
    55  signal grant_latch : std_logic_vector(9 downto 1);
     69
    5670 signal priority_rotation_en : std_logic;
    57  signal Grant,req_grant :  std_logic_vector(9 downto 1);
     71
     72  signal Grant,request :  std_logic_vector(NB_IO2 downto 1):=(others=>'0');
    5873 begin
    5974
    6075--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(priority_rotation) = 7 else  '0';
     76
     77 --priority_rotation_en <= '1' when unsigned(priority_rotation) = 7 else        '0';
     78 priority_rotation_en <= '1' when   unsigned(priority_rotation) = 2**NB_IO-1 else       '0';
    6379--latch servant qui memorise le signal grant pendant a transmission
    64 grant_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;
     80--cette instance permet de déterminer le vecteur request
     81--en fonction de l'état fifo_full et de la requête initiale
     82inst_defreq: def_request generic map (NB_IO)
     83port map (clk=>clk,
     84reset=>reset,
     85req=>req,
     86fifo_full=>fifo_full,
     87priority_rotation=>priority_rotation,
     88grant=>grant,
     89request=>request
     90);
     91 port_grant <= grant;
    7592 Grant(1)  <= Signal_grant(1)(1) or Signal_grant(4)(1); --  Grant(1,1)
    7693Grant(2)  <= Signal_grant(2)(2) or Signal_grant(5)(2); --  Grant(1,2)
Note: See TracChangeset for help on using the changeset viewer.