EDA课程设计报告书 简易cpu设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

执行结束后不会改变通用寄存器组的值。通用寄存器组的两个读出端口,一个是目的寄存器读出端口,一个是源寄存器读出端口,从这两个端口读出的内容供执行部分exe_unit和存储器部分memory_unit使用。通用寄存器组内还有两个标志位:z_out和c_out,在t3的下降沿根据指令执行的结果改变或者不改变它们的值。这两个标志位的值送执行部分exe_unit使用。

寄存器模块芯片图

寄存器模块

2.取指令部分

在本程序设计中,取指部分完成4项工作:

⑴产生时钟信号t1、t2和t3,供CPU各部分使用;

⑵在复位信号reset为低时将pc复位为0,在一条指令执行结束之后,根据指令执行的结果在t3的下降沿改变pc的值;

⑶将从存储器读出的指令的第一个字在t2的上升沿送至指令寄存器IR中;

⑷计算pc+1的值pc_inc,为双字指令取第二个指令字做准备

取指令部分

3.指令译码部分

在本程序设计中,指令译码部分的功能是:根据指令寄存器IR的值产生实验CPU所需要的各种控制信号和其它信号,其信号作用如下:

SR:源寄存器号(编址)。

DR:目的寄存器号(编址)。

op_code: 控制ALU进行8种运算操作的3位编码。

zj_instruct:为1表示本条指令是条“JNZ ADR”指令。

cj_instruct:为1表示本条指令是条“JNC ADR”指令。

lj_instruct:为1表示本条指令是条“JMP ADR”指令。

DRWr:为1表示在t3的下降沿将本条指令的执行结果写入目的寄存器。

Mem_Write:为1表示本条指令有存储器写操作,存储器的地址是源寄存器的内容。

DW_intruct:为1表示本条指令是双字指令。

change_z:为1表示本条指令可能改变Z(结果为0)标志。

change_c:为1表示本条指令可能改变C(进位)标志。

sel_memdata:为1表示本条指令写入目的寄存器的值来自读存储器。

r_sjmp_addr:计算条件转移指令转移地址所需要的16位相对地址。它是由条件转移指令中的8位相对地址经过符号扩展生成的。

指令译码部分

4.存储模块

存储模块是cpu与外部存取器的接口部分。向外部的存储器送出16为存储地址总线Mem_addr、

16为双向数据总线ob、读写信号wr。当wr 为1时,外部存储器作为读存储器信号处理;当wr信号为0时,外部存储器作为写存储器信号处理。

存储模块

5.执行部分

执行部分完成下列任务:

(1)8种逻辑运算:加、加1、减、减1、与、或、非和数据传送,将运算结果存放在result中。根据运算结果产生位标志。

(2)产生存储器读写所需要的存储器地址Mem_ADDR.

(3)产生条件转移指令所需要的转移标志。

执行部分的河西传统上属于运算器,是运算器的核心。

执行部分

六、16位简易cpu设计总体框图

相关文档
最新文档