哈工大CPU设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机设计与实践CPU设计报告
指令格式设计:
注:Ri代表3位该寄存器号的二进制表示,X,sign为8位立即数,add为8为地址
一整体框图
二各模块详细说明(数据流关系、接口说明)
1 时钟管理模块
1.1结构框图:
1.2功能描述:时钟模块为一节拍发生器,以输入时钟信号作为触发,四个节拍循环往复,当“rst”为1时节拍复位。
1.3数据流关系:
1.4接口说明:
port(
rst: in std_logic; --复位信号
clk: in std_logic; --输入时钟信号
k: out std_logic_vector(3 downto 0) --节拍输出
);
2 取址模块
2.1
visit_mem_flag
pc_out
ir_out
2.2功能描述:取指模块主要负责取指操作,当复位信号为1时,pc置零;若pc更新标志(pc_in_flag)为1,则更新当前的pc值;在第一个节拍,将当前pc给到访存控制模块,同时送访存请求信号(visit_mem_flag),取得指令;同时将取得的指令送往运算模块、回写模块,pc送往回写模块。
2.3数据流关系:
Port (rst: in std_logic; --复位
k0,k1: in std_logic; --节拍控制
pc_in_flag: in std_logic; --PC回写允许
ir_in : in std_logic_vector(15 downto 0); --IR进入
pc_in : in std_logic_vector(15 downto 0); --PC回写
visit_mem_flag: out std_logic; --访存信号
pc_out : out std_logic_vector(15 downto 0); --PC输出
ir_out : out std_logic_vector(15 downto 0) --IR输出
);
3 运算模块
3.1结构框图:
3.2功能描述:复位信号为1时,alutou、addr、Cy、Z清零;当回写信号为1时,将回写的数据回写入寄存器中;在第二节拍完成指令的译码工作,并根据译码结果置if_reg(是否更新寄存器),if_pc(是否更新PC),m_r(是否读请求),m_w(是否写请求)四个标志位,并对相关的指令置好addr、aluout和ToHX,以及对一些改变运算标志位的指令置好Cy和Z这两个标志位。
3.3数据流关系:
3.4接口说明:
Port (
rst : in std_logic; --复位信号
k0,k1,k2,k3: in std_logic; --节拍控制 rewrite_flag : in std_logic; --寄存器回写允许 rewrite_data : in std_logic_vector(7 downto 0); --寄存器回写数据
ir_in : in std_logic_vector(15 downto 0); --指令IR进入
aluout : out std_logic_vector(7 downto 0); --运算结果输出 addr : out std_logic_vector(15 downto 0); --准备好的地址输出 if_reg : out std_logic; --是否回写寄存器
if_pc : out std_logic; --是否回写pc
m_r : out std_logic; --给存储管理模块读信号
m_w : out std_logic; --给存储管理模块写信号
toHX : out std_logic_vector(15 downto 0);
Cyflag: out std_logic;
Zflag: out std_logic
);
4 存储控制模块
4.1
4.2功能描述:
此模块主要完成从访存控制模块进行不同指令的存数与取数的请求。 4.3数据流关系:
4.4接口说明: Port( rst: in std_logic; --复位信号 m_w_in : in std_logic; --写请求
m_r_in : in std_logic; --读请求
k2 : in std_logic; --节拍控制
aluout_in : in std_logic_vector(7 downto 0); --Aluout 输入 dataFromMem : in std_logic_vector (7 downto 0);
c_w_out: out std_logic;
c_r_out: out std_logic;
dataToMem : out std_logic_vector (7 downto 0); outToHX : out std_logic_vector (7 downto 0) --输出到回写模块 );
5 访存管理模块
5.1结构框图:
ABUS
ABUS
nMREQ
ABUS
ABUS
ABUS
nBHE
ABUS
ABUS
ABUS
5.2功能描述:当取址模块发出取址请求时,根据PC取出指令送给取址模块;根据存储管理模块给的读写请求对存储器进行读写操作。
5.3数据流关系: