体系结构实验手册new

体系结构实验手册new

ID:18919320

大小:262.00 KB

页数:18页

时间:2018-09-21

体系结构实验手册new_第1页
体系结构实验手册new_第2页
体系结构实验手册new_第3页
体系结构实验手册new_第4页
体系结构实验手册new_第5页
资源描述:

《体系结构实验手册new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《高级计算机体系结构》实验实验2简单CPU设计一.实验目的设计实现简单CPU,熟悉并掌握指令结构,利用verilog编写各个子模块。二.实验原理1.CPU设计CPU概念设计如图1所示:图12.指令集(1)本实验设计一个可以运行4条指令的简单CPU(2)指令格式:opcode(2bit)+addr(6bit)(3)具体4条指令如表1:表1指令结构InstOpAddrOperationADD00XXXXXX加法:AC<-AC+M[Addr]AND01XXXXXX逻辑与:AC<-AC^M[Addr]INC10XXXXXX加1:AC<-AC+1JMP11XXXXXX跳转:PC<-Addr

2、3.寄存器组织(1)累加器(AC)a.提供ADD,AND操作的一个操作数b.存放ADD,AND操作的结果(2)用户不可见寄存器a.地址寄存器(AR):6bit,提供访问存储器单元地址《高级计算机体系结构》实验b.程序计数器(PC):6bit,存放下一条指令在存储器单元中的地址c.数据寄存器(DR):8bit,存放从访问存储器单元的内容d.指令寄存器(IR):2bit,存放当前取出的指令的操作码部分4.指令的执行指令的执行过程如图2:图2(1)取指FETCH1:AR<-PCFETCH2:DR<-M,PC<-PC+1FECTH3:IR<-DR[7..6],AR<-DR[5..0](2

3、)执行ADD1:DR<-MADD2:AC<-AC+DRAND1:DR<-MAND2:AC<-AC^DRINC1:AC<-AC+1JMP1:PC<-DR[5..0](3)寄存器操作AR:AR<-PC;AR<-DR[5..0]《高级计算机体系结构》实验PC:PC<-PC+1;PC<-DR[5..0]DR:DR<-MIR:IR<-DR[7..6]AC:AC<-AC+DR;AC<-AC^DR;AC<-AC+15.CPU数据通路CPU数据通路设计如图3所示:图3图3是已经过简化的数据通路,它反映了CPU内部各单元的功能特点:(1)AR只向存储器提供数据(2)IR不向其他单元提供数据(3)A

4、C不向其他单元提供数据(4)AC需保存ALU运算结果(5)8bitBUS6.控制器(1)控制器功能控制器是负责产生CPU内的各种信号,控制程序的执行:《高级计算机体系结构》实验1、取指令(fetch)2、分析指令(decode)3、执行指令(Execute)4、其他功能:控制程序数据的输入输出、异常处理、中断等(2)控制信号控制器中有9条信号线,分别是:PCLOAD:允许PC置值PCINC:允许PC自加1DRLOAD:允许DR置值ACLOAD:允许AC置值ACINC:允许AC自加1IRLOAD:允许IR置值MEMBUS:控制存储器是否输出PCBUS:控制PC是否输出READ:读存

5、储器(3)信号生成逻辑1.控制信号的线性表达:PCLOAD=JMP1PCINC=FETCH2DRLOAD=FETCH1vADD1vAND1ACLOAD=ADD2vAND2ACINC=INC1IRLOAD=FETCH3MEMBUS=FETCH2vADD1vAND1PCBUS=FETCH1READ=FETCH2vADD1vAND12.控制信号的生成逻辑,如图4:《高级计算机体系结构》实验图4三.实验环境软件:QuartusII6,ModelSim硬件平台:GW48-SOPC/DSPEP1C6Q240四.实验步骤1.各个子模块的Verilog实现(1)ALU模块modulealu(op

6、,a,b,c);《高级计算机体系结构》实验inputop;input[7:0]a,b;output[7:0]c;assignc=(op==0)?(a+b):(a&b);endmodule(2)IR模块moduleir(clk,load,din,dout);inputclk,load;input[1:0]din;output[1:0]dout;reg[1:0]dout;always@(posedgeclk)beginif(load)dout=din;endendmodule(3)DR模块moduledr(clk,load,din,dout);inputclk,load;input[

7、7:0]din;output[7:0]dout;reg[7:0]dout;always@(posedgeclk)beginif(load)dout=din;endendmodule(4)PC模块modulepc(clk,rst,load,inc,din,dout);inputclk,rst,load,inc;input[5:0]din;output[5:0]dout;reg[5:0]dout;always@(posedgeclk)beginif(rst)dout=0;elseif

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。