计算机组成原理课设报告 - 图文 下载本文

内容发布更新时间 : 2024/5/10 15:01:43星期一 下面是文章的全部内容请认真阅读。

5. 组合逻辑控制器

说明:

依据指令执行流程,此处5条指令都被设计为两个指令周期,第一个周期3个节拍,第二个周期5个节拍。

各控制信号逻辑表达式如下:

EMRD=M0*T1+INS11*M1*T6+(INS11+INS20+INS48)*M1*T4

PCOE=M0*T2+INS11*M1*T7+INS48*M1*T6+INS20*M1*T5+INS52*M1*T3 EMEN=M0*T1+INS11*M1*T6+(INS11+INS20+INS48)*M1*T4 IREN=M0*T0

MAREN=M0*T2+INS11*M1*T7+INS48*M1*(T6+T4)+(INS11+INS20)*M1*T5 STEN=INS48*M1*T5+INS52*M1*T3 FEN=(INS11+INS20)*M1*T3

WEN=M0*T1+INS11*M1*(T6+T5+T4)+INS20*M1*T4 AEN=(INS11+INS20+INS33)*M1*T3 X2-X0=INS52*M1*T3 S2-S0=INS11*M1*T3

其他信号逻辑表达式恒为假。

6、微程序控制器设计:

设计本模型机的编号和微指令命令如下: 编号 10 15 30 42 60 微命令 EMRD IREN FEN X0 S0 编号 2 5 8 11 14 微命令 PCOE MAREN WEN X1 S1 编号 3 6 9 12 15 微命令 EMEN STEN AEN X2 S2 操作控制字段占15位,模型机共有64条指令,用9位下址字段可表示512条微指令,判断字段为4位。

微指令格式如下图:

控制字段

取指微指令: 控制字段 1 1 微地址:000H 控制字段 1 1 1 微地址:001H 控制字段 1 判断字段 下址字段 1 1 1 1 0 0 0 0 0 0 0 0 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 1 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 0 1 判断字段 下址字段 微地址:002H

“判断字段”取值为“1111”,表示由微程序入口地址产生器形成指令的第一条微指令。 “判断字段”取值为“0000”,表示顺序执行微指令。 10号指令ADDC A,@R?的微指令: 控制字段 1 1 微地址:008H 控制字段 1 1 1 微地址:009H 控制字段 1 1 微地址:00AH 控制字段 1 1 1 微地址:00BH 控制字段 1 1 微地址:00CH

判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 0 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 1 1 0 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 1 0 1 1 判断字段 下址字段 0 0 0 0 0 0 0 0 0 1 0 1 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 1 0 0 1 15号指令SUB A, EM的微指令: 控制字段 1 1 微地址:018H 控制字段 1 1 1 微地址:019H 控制字段 1 1 微地址:01AH

30号指令MOV A, @R?的微指令: 控制字段 1 微地址:028H

42号指令JZ EM: 控制字段 1 1 微地址:038H

控制字段 1 微地址:039H 控制字段 1 1 1 微地址:03AH 控制字段 微地址:03BH

60号指令RET 控制字段 1 1 1 微地址:048H

【系统实现】

模型机实现 1.七段译码器

(1)逻辑电路的图形符号表示、功能

判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 0 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 0 0 判断字段 下址字段 0 0 0 0 0 0 0 1 1 1 0 1 1 判断字段 下址字段 0 0 0 0 0 0 0 1 1 1 0 1 0 判断字段 下址字段 0 0 0 0 0 0 0 1 1 1 0 0 1 判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 0 0 判断字段 下址字段 0 0 0 0 0 0 0 0 0 0 0 0 0 判断字段 下址字段 0 0 0 0 0 0 0 0 1 1 0 1 0 判断字段 下址字段 0 0 0 0 0 0 0 0 1 1 0 0 1

(2)系统实现

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity decoder is port (

number: in std_logic_vector(3 downto 0) ; segment: out std_logic_vector(6 downto 0) );

end entity decoder;

architecture behave of decoder is begin

with number select segment <=

\