Verilog精简指令集计算机课件.pptx

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

Verilog HDL 精简指令集计算机 ;简介;RISC CPU结构 ;主要特征: 8位数据、13位地址、8条指令,每条指令8Tclk;1)??HLT停机操作。该操作将空一个指令周期,即8个时钟周期。 2)??SKZ为零跳过下一条语句。该操作先判断当前alu中的结果是否为零,若是零就跳过下一条语句,否则继续执行。 3)??ADD相加。该操作将累加器中的值与地址所指的存储器或端口的数据相加,结果仍送回累加器中。 4)??AND相与。该操作将累加器的值与地址所指的存储器或端口的数据相与,结果仍送回累加器中。 5)??XOR异或。该操作将累加器的值与指令中给出地址的数据异或,结果仍送回累加器中。 6)??LDA读数据。该操作将指令中给出地址的数据放入累加器。 7)??STO写数据。该操作将累加器的数据放入指令中给出的地址。 8)??JMP无条件跳转语句。该操作将跳转至指令给出的目的地址,继续执行。? RISC_CPU是8位微处理器,一律采用直接寻址方式,即数据总是放在存储器中,寻址单元的地址由指令直接给出。这是最简单的寻址方式。 ;控制器在clk1下降沿输出控制信号。PC随inc_pc上升沿动作(即clk1下降沿) 其它部件在clk1上升沿动作。即在Ti中间输出控制信号,在Ti结束时动作。 如取高8位指令:rd=1,load_ir=1,而ir锁存在T1上升沿锁存(即T0结束时);CPU执行指令过程: T0: 状态控制器输出rd=1,load_ir=1,另state=0,由M读1字节,在T0结束时锁存到ir高8位。即取高字节指令。 T1: inc_pc=1使地址加1, rd=1,load_ir=1,另state=1,由M读1字节,在T1结束时锁存到ir低8位。即取低字节指令。 T2: 空操作 T3: inc_pc=1。若opcord=HLT, 则HALT=1; T4: 若opcord=ADD,AND,XOR,LDA,则rd=1,根据ir_addr读Mem 若opcord=JMP,则load_pc=1 若opcord=STO,则datactl_ena=1,将accum通过alu _out送DB T5: 若opcord=ADD,AND,XOR, LDA,则rd=1(继续读Mem)且load_acc=1,由于acc已送alu, alu操作结果在T5结束时锁存到acc; 若opcord=STO,则 datactl_ena =1(继续将accum通过alu _out送DB )且wr=1,在T5结束时写到Mem;若opcord=JMP,则inc_pc=1,load_pc=1,在inc_pc 上升沿锁存ir_addr到pc;若opcord=SKZ且acc=0 ,则inc_pc=1。 T6:空操作 T7:若opcord=SKZ且acc=0,则inc_pc=1,即跳过一条指令。;DATA7..0 ALU_OUT7..0 ACCUM7..0 zero alu_clk alu opcode2..0;RTL 视图;顶层模块;代码;时钟发生器;;REL视图;时钟发生器代码;代码;代码;指令寄存器 ;RTL视图;代码;代码;累加器;RTL视图;代码;算术运算器;RTL视图;代码;代码;数据控制器;RTL视图;代码;地址多路器;RTL视图;代码;程序计数器;RTL视图;代码;状态控制器;简介;4)第3个时钟,PC增1,指向下一条指令。若操作符为HLT,则输出信号HLT为高。如果操作符不为HLT,除了PC增一外(指向下一条指令),其它各控制线输出为零。 5)第4个时钟,若操作符为AND、ADD、XOR或LDA,读相应地址的数据;若为JMP,将目的地址送给程序计数器;若为STO,输出累加器数据。 6)第5个时钟,若操作符为ANDD、ADD或XORR,算术运算器就进行相应的运算;若为LDA,就把数据通过算术运算器送给累加器;若为SKZ,先判断累加器的值是否为0,如果为0,PC就增1,否则保持原值;若为JMP,锁存目的地址;若为STO,将数据写入地址处。 7)第6个时钟,空操作。 8)第7个时钟,若操作符为SKZ且累加器值为0,则PC值再增1,跳过一条指令,否则PC无变化。 ;RTL视图;代码;state=3b011; end 3b011://next instruction address setup 分析指令从这里开始 begin if(opcode==HLT) //指令为暂停HLT

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档