哈工大CPU设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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数据流关系:

相关文档
最新文档