HDL Works
286 287 addr_mux: process (addr_ctrl, pc, ea, sp, up, iv) is 288 begin 289 case addr_ctrl is 290 when idle_ad => 291 rw <= '1'; 292 vma <= '0'; 293 address <= (OTHERS => '1'); 294 when fetch_ad => 295 rw <= '1'; 296 vma <= '1'; 297 address <= pc; 298 when read_ad => 299 rw <= '1'; 300 vma <= '1'; 301 address <= ea; 302 when write_ad => 303 rw <= '0'; 304 vma <= '1'; 305 address <= ea; 306 when pushs_ad => 307 rw <= '0'; 308 vma <= '1'; 309 address <= sp; 310 when pulls_ad => 311 rw <= '1'; 312 vma <= '1'; 313 address <= sp; 314 when pushu_ad => 315 rw <= '0'; 316 vma <= '1'; 317 address <= up; 318 when pullu_ad => 319 rw <= '1'; 320 vma <= '1'; 321 address <= up; 322 when int_hi_ad => 323 rw <= '1'; 324 vma <= '1'; 325 address <= "111111111111" & iv & "0"; 326 when int_lo_ad => 327 rw <= '1'; 328 vma <= '1'; 329 address <= "111111111111" & iv & "1"; 330 when others => 331 rw <= '1'; 332 vma <= '0'; 333 address <= (OTHERS => '1'); 334 end case; 335 end process addr_mux ; 336Back to the truth table
Copyright © 2004 - 2024 HDL Works