Ignore:
Timestamp:
Dec 3, 2012, 2:57:30 PM (12 years ago)
Author:
rolagamo
Message:

Version stable pour les tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • PROJECT_CORE_MPI/CORE_MPI/BRANCHES/v0.01/DMA_ARBITER.vhd

    r15 r35  
    129129                                                                        dma_wr_logic <="1000";
    130130                                                                       
    131                                 when others => tmp_wr:= (dma_wr_request and prio_wr) ;
     131                                when others =>
     132                                                                       
     133                                                                        tmp_wr:= (dma_wr_request and prio_wr) ;
    132134                                                                        dma_wr_logic <=tmp_wr;
     135                                                                       
    133136                                                                        req_wr:= not(All_zeros(tmp_wr));
    134137                                                                        dma_req_wr<= not(All_zeros(tmp_wr));                                   
    135138                                                                        -- la priorité est circulaire et décale à chaque coup d'horloge
    136                                                                         prio_wr<=rol_vec(prio_wr);
    137                                                                         if pri_wr=3 then
    138                                                                                 pri_wr<=0;
    139                                                                                 Prio_wr<="0001";
    140                                                                         else
    141                                                                                 pri_wr<=pri_wr+1;
    142                                                                         end if;
     139                                                                        if req_wr='0' then
     140                                                                                prio_wr<=rol_vec(prio_wr);
     141                                                                                if pri_wr=3 then
     142                                                                                        pri_wr<=0;
     143                                                                                        Prio_wr<="0001";
     144                                                                                else
     145                                                                                        pri_wr<=pri_wr+1;
     146                                                                                end if;
     147                                                                 end if;
    143148                                end case;
    144149                                       
     
    178183                                                                       
    179184                                                                -- la priorité est circulaire et décale à chaque coup d'horloge
    180                                                                         prio_rd<=rol_vec(prio_rd);
    181                                                                         if pri_rd =3 then
    182                                                                                 pri_rd<=0;
    183                                                                                 prio_rd<="0001";
    184                                                                         else
    185                                                                                
    186                                                                                 pri_rd<=pri_rd+1;
     185                                                                        if req_rd='0' then
     186                                                                                prio_rd<=rol_vec(prio_rd);
     187                                                                                if pri_rd =3 then
     188                                                                                        pri_rd<=0;
     189                                                                                        prio_rd<="0001";
     190                                                                                else
     191                                                                                       
     192                                                                                        pri_rd<=pri_rd+1;
     193                                                                                end if;
    187194                                                                        end if;
    188195                                end case;
Note: See TracChangeset for help on using the changeset viewer.