¼òµ¥CPUϵͳÉè¼ÆÓëʵÏÖ

±±¾©Óʵç´óѧÊý×Öµç·ÓëÂß¼­Éè¼ÆÊµÑ鱨¸æ

--MAR<-MBR

when\ --DECODING

case opcode is

when\ --Store --MBR<-ACC

when\ --Load --MBR<-RAM

when\ --Add --MBR<-RAM

when\ --Sub --MBR<-RAM

when\ --SHL --ACC<-ACC<<1

when\ --SHR --ACC<-ACC>>1

when\ --And --MBR<-RAM

when\ --Or --MBR<-RAM

when\ --Not --ACC<-NOT ACC

±±¾©Óʵç´óѧÊý×Öµç·ÓëÂß¼­Éè¼ÆÊµÑ鱨¸æ

when\ --Jump

when\ --JumpZ

status:=\ else status:=\ end if;

when\ --Smg

when\ --Halt

when others=>ctr<=\ end case;

when\ --Store --RAM<-MBR

when\ --Load --BR<-MBR;ACC<-0

when\ --ACC<-ACC+BR

±±¾©Óʵç´óѧÊý×Öµç·ÓëÂß¼­Éè¼ÆÊµÑ鱨¸æ

when\ --Add --BR<-MBR

when\ --ACC<-ACC+BR

when\ --Sub --BR<-MBR

when\ --ACC<-ACC-BR

when\ --And --BR<-MBR

when\ --ACC<-ACC AND BR

when\ --Or --BR<-MBR

when\ --ACC<-ACC OR BR

when\ --Mutiply--BR<-MBR

when\ --ACC<-ACC*BR

when\

±±¾©Óʵç´óѧÊý×Öµç·ÓëÂß¼­Éè¼ÆÊµÑ鱨¸æ

--PC<-PC+1;MAR<-PC

when\ when others=>ctr<=\ end case; end if; end process; end behave;

4.3 ALU(ËãÊõÂß¼­ÔËËãµ¥Ôª)

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity ALU is port (

clk:in std_logic; rst:in std_logic;

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)