Changeset 74 for PROJECT_CORE_MPI/CORE_MPI/BRANCHES/v1.00/PE.vhd
- Timestamp:
- Jan 15, 2014, 2:40:01 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
PROJECT_CORE_MPI/CORE_MPI/BRANCHES/v1.00/PE.vhd
r72 r74 107 107 signal Lib_instr_ack : std_logic; -- l'instruction est copiée dans le tampon FIFO 108 108 signal Lib_Init : std_logic; -- l'initialisation est terminée 109 signal Lib_Enable : std_logic; 109 signal Lib_Enable : std_logic:='0'; 110 signal Ex1_run,Ex4_run : std_logic:='0'; --indique que ces modules sont en fin d'exécution 110 111 signal Hold_Ack : std_logic; 111 112 signal en_task : std_logic; 113 signal ht_reset :std_logic; 112 114 --signaux pour la gestion de la MAE 113 115 type typ_mae is (start,Fillmem,NextFill,InitApp,GetRank,WInCreate,WinStart, putdata,getdata,WinCompleted,finalize,st_timeout); 114 116 type typ_Hld is (Ht_Lock,Core_Lock,Ht_free); 115 signal dcount : natural range 0 to 255:=0; --permet de compter le packet de données envoyées117 signal dcount : natural range 0 to 255:=0; 116 118 signal count,count_i : natural range 0 to 15:=0; 117 119 … … 136 138 port map ( 137 139 clk=>clk, 138 reset=> reset,140 reset=>ht_reset, 139 141 en=>en_task, 140 142 Interf_i =>Libr.i, … … 159 161 ram_we<= Core_ram_we; 160 162 ram_din <= Core_ram_data_in; 161 pe_ram_do<=(others=>' 0');163 pe_ram_do<=(others=>'U'); 162 164 Core_ram_data_out<=ram_do; 163 165 … … 169 171 ram_we<= pe_ram_we; 170 172 ram_din <=pe_ram_din; 171 Core_ram_data_out<=(others=>' 0');173 Core_ram_data_out<=(others=>'U'); 172 174 pe_ram_do<=ram_do; 173 175 end case ; … … 186 188 Lib_init<=Core_Pushout(4); -- Initialized 187 189 Lib_Enable<=Core_Pushout(6);-- HT activée par la Librairie. 188 189 horloge_ht:process (reset,ce,lib_enable,clk) 190 Ex1_Run<=Core_Pushout(5); -- fin de l'exécution de Ex1 191 Ex4_Run<=Core_pushout(7); -- fin de l'exécution de Ex4 pour Spawn 192 horloge_ht:process (reset,en_task,clk) 190 193 begin 191 194 if reset='1' then 192 195 clk_ht<='0'; 196 count<=0; 197 Ht_reset<='1'; 193 198 else 194 if ce='1' then 195 clk_ht<=clk; 196 elsif lib_enable='1' then 197 clk_ht<=clk; 199 if en_task='1' then 200 clk_ht<=clk; 201 if count=10 then --circuit de reset pour la HT 202 ht_reset<='0'; 203 else 204 if rising_edge(clk) then 205 count<=count+1; 206 end if; 207 ht_reset<='1'; 208 end if; 198 209 else 199 clk_ht<='0'; 210 count<=0; 211 clk_ht<='0'; 212 Ht_reset<='1'; 200 213 end if; 201 214 end if; … … 205 218 clk=>clk , 206 219 reset =>reset, 207 Ram_Busy=> Libr.O.membusy,220 Ram_Busy=>Ram_busy, 208 221 Hold_Ack=>Hold_Ack, 209 222 Hold_req =>Core_Hold_Req, … … 221 234 --==========MPI HCL signals ============================ 222 235 223 affect:process (clk, Core_hold_req,RamSel_i,Core_pushout,Libr)236 affect:process (clk,en_task,Lib_enable,Core_hold_req,RamSel_i,Core_pushout,Libr.O) 224 237 begin 225 238 --if (clk'event and clk='1') then 239 if en_task='1' then 226 240 Instruction<=Libr.O.Instruction; 227 241 Ram_busy<=Libr.O.membusy; 228 242 PE_Instr_EN<=Libr.O.instr_en; 243 else --si le HT n'est pas activé ces valeurs sont à 0 ! 244 Instruction<=(others=>'0'); 245 Ram_busy<='0'; 246 PE_Instr_EN<='0'; 247 end if; 229 248 Libr.I.Instr_ack<=Core_pushout(0); 230 249 Libr.I.InitOk<=Core_pushout(4); 231 Libr.I.Spawned<=Core_pushout(6); 250 if Lib_enable='1' then 251 Libr.I.Spawned<='1'; 252 else 253 Libr.I.Spawned<='0'; 254 end if; 232 255 Libr.I.Hold_Req<=Core_Hold_req; 233 256 --Libr.I.Hold_Ack<=Hold_Ack; 234 257 Libr.I.RamSel<=RamSel_i; 235 258 --end if; 259 assert Lib_enable/='1' 260 report "Spawn Activé" 261 severity WARNING ; 262 236 263 end process affect; 237 264 --=======================================================================
Note: See TracChangeset
for help on using the changeset viewer.