使用硬连线控制器的CPU设计说明书.doc

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

目录 本报告包括以下内容: 1. 数据通路图 2. 硬布线控制器逻辑模块图 3. 硬布线控制器指令周期流程图 4. 控制模块HDL语言源程序/原理图(包含说明和注释) 5. 测试波形图(以WRM为例) 6. 设计说明书 7. 设计与调试小结 数据通路图 说明:数据通路是将双端口存储器模块和双端口通用寄存器模块连接在一起形成的。 双端口通用寄存器(RF)由一个ispLSI1016实现,功能相当于四个八位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从右端口读出的通用寄存器,RD1、RD0用于选择从左端口读出的通用寄存器。而WR1、WR0用于选择写入的通用寄存器。LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。左右端口分别与操作数暂存器DR1和DR2相连,RF的右端口通过三态门连接到数据总线DBUS上,因而RF中的数据可以直接通过右端口送到DBUS上。 DR1和DR2各由一片74LS273构成,用于暂存参与运算的数据。ALU由两片74LS181构成,ALU的输出通过一个三态门发送到数据通路DBUS上。 双端口寄存器使用一片IDT7132(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。左端口的数据输出端接在数据总线DBUS,右端口的数据输出接指令总线IBUS。CEL#、LR/W#、OEL#控制左端口读写操作;CER#、RR/W#、OER#控制右端口读写操作。CEL#为左端口片选信号,低电平有效;当CEL#=1时,禁止对左端口的读写操作;当LR/W#=0时,左端口进行读写。OEL#的作用等同于三态门,当OEL#=0时,允许左端口读出的数据送到数据总线DBUS上;当OEL#=1时,禁止左端口的数据放到DBUS上。因此将OEL#写作RAM-BUS#。右端口控制信号与左端口完全类似。左端口负责所有数据和指令的写入,右端口作为指令端口,不需要进行数据写入,将右端口处理为只读端口,RR/W#固定接高电平,OER#固定接地。 存储器左端口的地址寄存器AR和右端口的地址寄存器PC都是2片74LS163,具有地址递增功能。同时,PC也起到程序计数器的功能。 指令由双端口寄存器的右端口送到指令总线IBUS,再送入指令寄存器IR,再通过操作控制器产生各控制信号从而实现程序运行,本次实验编写的控制器是硬布线控制器。 硬布线控制器逻辑模块图 硬布线控制器逻辑模块图 首先根据硬连线指令流程图列出译码表,再设计出译码逻辑电路图。 下面给出本组的组合逻辑译码表: 说明:水平方向表示一个信号,纵向为某一状态或指令,单元格中的内容表示该控制信号在该指令中有效的条件,根据译码表可以写出每个控制信号的逻辑表达式。 接着按照上面的组合逻辑译码表写出各信号的逻辑表达式: LDDR1=ADD*W2+SUB*W2+AND*W2+STA*W2 LDDR2= ADD*W2+SUB*W2+AND*W2 CEL#=STA*W3+LDA*W3+RRF2*W1+WRF2*W1+RRM2*W1+WRM2*W1 CER#=RP2*W1+RRF2*W2+WRF2*W2 LDAR#=STA*W2+LDA*W2+RRF*W3+WRF*W3+RRM*W3+WRM*W3 AR+1=RRM2*W3+WRM2*W3 LDPC#=JC*W3*C+RRF*W3+WRF*W3+RP*W3 PC+1=(ADD+SUB+AND+STA+LDA+STP+OUT)*W3+JC*W2 LDRi=ADD*W3+SUB*W3+AND*W3+LDA*W3+ WRF2*W3 LR/W#=STA*W3#+LDA*W3+RRF2*W1#+WRF2*W1#+RRM2*W1+WRM2*W1# LDIR=RP2*W1+RRF2*W2+WRF2*W2 SW-BUS#=RRF*W3+RRF2*W1+WRF*W3+WRF2*(W1+W3)+RRM*W3+WRM*W3+WRM2*W1+RP*W3 RS-BUS#=STA*W2+LDA*W2+JC*W3*C+OUT*W3+RRF2*W3 RAM-BUS#=LDA*W3+RRM2*W1 ALU-BUS#=ADD*W3+SUB*W3+AND*W3+STA*W3 TJ=STP*W3+OUT*W3+RRF*W3+RRF2*W3+WRF*W3+WRF2*(W2+W3)+RRM2*W1+WRM*W3+WRM2*W3 SKIP=RRF*W1+WRF*W1+RRM*W1+WRM*W1+RP*W1 S3=ADD*W3+SUB*W3#+AND*W3+STA

文档评论(0)

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

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

1亿VIP精品文档

相关文档