1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 吸土城职业技术学校计组撒比课设TEC8硬布线控制器的设计实现

吸土城职业技术学校计组撒比课设TEC8硬布线控制器的设计实现

时间:2021-11-06 13:03:07

相关推荐

吸土城职业技术学校计组撒比课设TEC8硬布线控制器的设计实现

LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY cpu ISPORT (SW : IN std_logic_vector(2 Downto 0); --向量形式简洁易懂IR : IN std_logic_vector(7 Downto 4);W1,W2,W3 : IN std_logic;C,Z,CLR,T3 : IN std_logic;ARINC,CIN,DRW,LPC,LAR,LIR,LDZ,LDC,PCINC,PCADD,SELCTL,M,MEMW,STOP : OUT std_logic;SHORT,LONG,ABUS,SBUS,MBUS : OUT std_logic;S,SEL : OUT std_logic_vector(3 Downto 0)); END cpu;ARCHITECTURE cont OF cpu ISSIGNAL ST0 : std_logic;SIGNAL SST0 : std_logic;BEGINPROCESS(ST0,SST0,SW,IR,CLR,T3,W1,W2,W3) --敏感信号表BEGINIF (CLR='0') THEN --clear信号ST0<='0';SST0<='0';CIN<='0'; --初始值DRW<='0';LPC<='0';LAR<='0';LIR<='0';LDZ<='0';LDC<='0';PCINC<='0';PCADD<='0';SELCTL<='0';M<='0';S<="0000";SEL<="0000";MEMW<='0';STOP<='0';SHORT<='0';LONG<='0';ABUS<='0';SBUS<='0';MBUS<='0';ARINC<='0';ELSECIN<='0';--初始值DRW<='0';LPC<='0';LAR<='0';LIR<='0';LDZ<='0';LDC<='0';PCINC<='0';PCADD<='0';SELCTL<='0';M<='0';S<="0000";SEL<="0000";MEMW<='0';STOP<='0';SHORT<='0';LONG<='0';ABUS<='0';SBUS<='0';MBUS<='0';ARINC<='0';SST0<=(NOT ST0) AND ((SW(2) AND (NOT(SW(1))) AND (NOT SW(0)) AND W2)OR((NOT SW(2)) AND SW(1) AND (NOT SW(0)) AND W1) OR ((NOT SW(2)) AND (NOT SW(1)) AND SW(0) AND W1));--用译码形式表示SST0IF(SST0='1' ) THENIF (T3'EVENT AND (T3='0'))THEN --T3下降沿ST0<='1';END IF;END IF;CASE SW IS -- 根据硬连线控制器参考流程图采用流程的形式WHEN "100" => --写寄存器IF (ST0='0') THENIF (W1='1') THENSBUS<='1';SEL<="0011";SELCTL<='1';DRW<='1';STOP<='1';END IF;IF (W2='1') THENSBUS<='1';SEL<="0100";SELCTL<='1';DRW<='1';STOP<='1';SST0<='1';END IF;END IF;IF (ST0='1') THENIF (W1='1') THENSBUS<='1';SEL<="1001";SELCTL<='1';DRW<='1';STOP<='1';END IF;IF (W2='1') THENSBUS<='1';SEL<="1110";SELCTL<='1';DRW<='1';STOP<='1';END IF;END IF;WHEN "011" => --读寄存器IF (W1='1') THENSEL<="0001";SELCTL<='1';STOP<='1';END IF;IF (W2='1') THENSEL<="1011";SELCTL<='1';STOP<='1';END IF;WHEN "010"=> --读存储器IF (ST0='0') THENIF (W1='1') THENSBUS<='1';LAR<='1';STOP<='1';SHORT<='1';SELCTL<='1';SST0<='1';END IF;END IF;IF (ST0='1') THENIF (W1='1') THENMBUS<='1';ARINC<='1';STOP<='1';SHORT<='1';SELCTL<='1';END IF;END IF;WHEN "001"=> --写存储器IF (ST0='0') THENIF (W1='1') THENSBUS<='1';LAR<='1';STOP<='1';SHORT<='1';SELCTL<='1';SST0<='1';END IF;END IF;IF (ST0='1') THENIF (W1='1') THENSBUS<='1';MEMW<='1';ARINC<='1';STOP<='1';SHORT<='1';SELCTL<='1';END IF;END IF;WHEN "000"=> --取指IF (W1='1') THENLIR<='1';PCINC<='1';END IF;CASE IR ISWHEN "0001"=> --ADDIF (W2='1') THENS<="1001";CIN<='1';ABUS<='1';DRW<='1';LDZ<='1';LDC<='1';END IF;WHEN "0010"=> --SUBIF (W2='1') THENS<="0110";ABUS<='1';DRW<='1';LDZ<='1';LDC<='1';END IF;WHEN "0011"=> -- AND IF (W2='1') THENM<='1';S<="1011";ABUS<='1';DRW<='1';LDZ<='1';END IF;WHEN "0100"=> --INCIF (W2='1') THENS<="0000";ABUS<='1';DRW<='1';LDZ<='1';LDC<='1';END IF;WHEN "0101"=> --LDIF (W2='1') THENM<='1';S<="1010";ABUS<='1';LAR<='1';LONG<='1';END IF;IF (W3='1') THENDRW<='1';MBUS<='1';END IF;WHEN "0110"=> --STIF (W2='1') THENM<='1';S<="1111";ABUS<='1';LAR<='1';LONG<='1';END IF;IF (W3='1') THENS<="1010";M<='1';ABUS<='1';MEMW<='1';END IF;WHEN "0111"=> --JCIF (W2='1') THENIF (C='1') THENPCADD<='1';END IF;END IF;WHEN "1000"=> --JZIF (W2='1') THENIF (Z='1') THENPCADD<='1';END IF;END IF;WHEN "1001"=> --JMPIF (W2='1') THENM<='1';S<="1111";ABUS<='1';LPC<='1';END IF;WHEN "1010"=> --OUTIF (W2='1') THENM<='1';S<="1010";ABUS<='1';END IF;WHEN "1011"=> --ORIF (W2='1') THENM<='1';S<="1110";ABUS<='1';DRW<='1';LDZ<='1';END IF;WHEN "1100"=> --XORIF (W2='1') THENM<='1';S<="0110";ABUS<='1';DRW<='1';LDZ<='1';END IF;WHEN "1101"=> --DOUBLEIF (W2='1') THENS<="1100";CIN<='1';ABUS<='1';DRW<='1';LDZ<='1';LDC<='1';END IF;WHEN "1110"=> --STPIF (W2='1') THENSTOP<='1';END IF;WHEN OTHERS=>SBUS<='0';END CASE;WHEN OTHERS=>SBUS<='0';END CASE;END IF;END PROCESS;END cont;

连着两学期没选到数据结构也是没谁了,我寻思我又不搞硬件逼着一半同学网上抄代码,学院领导脑子是不是铸币。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。