1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cpu_xiong.doc

CPU设计实验报告(受陈超同学指点) 1设计目的: 1)初步学习硬件逻辑电路建模,并用HDL语言描述硬件电路。 2)掌握应用quarter环境进行开发的流程,学会使用maxplus进行操作。 3)掌握基本verilog语言,可以编写基本的程序。 4)掌握cpu的组成原理,懂得运行过程,实现相应的编码。 2设计目标: 设计一简单的CPU模型,可以实现基本的运算,跳转,装入,读出等功能,通过微指令和机器指令的编写来实现相应的功能。 3模块设计规格及输入输出端变量说明: 简单cpu模型,通过微指令和机器指令的编写来实现传输、运算和读写 等基本功能。 2)模块原理框图 CPU指令格式: 1.单字节指令: 操作码 OP 4位 目的寄存器 Rd 2位 源寄存器 Rs 2位 操作码 OP 4位 相对转移偏移量,4位补码,含一位符号位 2.双字节指令 操作码 OP 4位 目的寄存器 Rd 2位 2位 立即数字段 8位 举例:LDI操作 3.CPU设计指令集 序号 指令助记符 实现的功能 操作码 指令举例 二进制机器码 1 LDI Rd, data 立即数传输 Rd←data 0000 LDI R2,78H 0000 10 00 0111 1000 2 LD Rd, (Rs) 读内存 Rd←M(Rs) 0001 LD R2, (R1) 0001 10 01 3 STR (Rd),Rs 写内存 M (Rd)←Rs 0010 STR (R2), R1 0010 10 01 4 ADD Rd, Rs 加运算 Rd←Rs+Rd 并设置Cy,Zero标志 0011 ADD R3,R0 0011 11 00 5 AND Rd, Rs 与运算 Rd←Rs Rd 并设置Zero标志 0100 AND R1,R0 0100 01 00 6 MOV Rd, Rs 寄存器传输 Rd←Rs 0101 MOV R1,R2 0101 01 10 7 JP target 相对转移 PC←PC+target 0110 JP -5 0110 1011 JP 6 0110 0110 8 JC target 条件相对转移、有进位时相对转移 如果 Cy= =1’b1, 那么 PC←PC+target,程序实现转移。 否则 不修改PC,程序顺序执行。 0111 JC -5 0111 1011 -5的补码为1011 JC 6 0111 0110 6的补码为0110 9 HLT 停机 1000 HLT 1000 0000 6)具体器件功能描述: 1.总线: 当XXX_B为1时,XXX部件输出到总线上,否则为高阻态。 LDYYY为1时,当T2上升沿到来时,将总线上的数据输入到YYY部件。 2.ALU运算器: 当ALU_B为1时,ALU输出,否则处于高阻态S2、S1、S0控制ALU进行何 种运算,本设计主要有加运算和与运算。 3.寄存器R3~R0: 以R0为例:当R0_B为1时,R0输出,否则处于高阻态。当LDR0为1时, 在时钟上升沿,接收数据。由于主存中方的是RD和RS的值,所以通过程 序解码来选择相应的R寄存器。 4.寄存器PC: 当LDPC为1时,在时钟上升沿,接收数据。当PCINC为1时,在时钟 上升沿,实现PC+1。当PC_B为1时,输出数据。否则高阻态。 5.寄存器IR: 当LDIR为1时,在时钟上升沿接收数据,送入微程序控制器,IR_B为1 时,送数据到数据总线。 6.AR地址寄存器、A、B暂存器: 当LDAR为1时,AR在时钟上升沿接收数据,送入主存;LDA为1时,A暂 存器从主线接收数据,B与A相同。 7.Cy进位标志寄存器: 当做加法指令时,进位保存在Cy中。 8.内存: CE=1 WE=0:读内存 CE=0 WE=1:写内存。 输入输出变量详述: 1.T1,T2:相反的节拍信号。 2.reset:初始化信号,初始化主存和微存。 3.bus[7:0]:数据总线,用来输入和输出数据。 4.UA[4:0]:微指令的存放地址。 5.XXX_B[2:0]:三位信号,进行译码,选择具体器件,将值送总线。 6.LDYYY[2:0]:三位信号,进行译码后,选择具体器件,总线的值送器件。 7.PC_B,ALU_B,Rs_B,Rd_B,IR_B:信号为1时相应器件的值送总

文档评论(0)

基本资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档