《简化CPU设计》-..doc

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

电子科技大学通信学院 简化CPU设计 2013年9月 一、课程设计要求 设计16位精简指令集CPU指令系统; 完成精简指令集CPU的结构设计和所有模块的代码编写,并仿真验证; 编写能够完成加法器﹑流水灯等功能的汇编程序,并翻译成二进制机器码; 设计CPU外围模块如分频器,存储器和IO接口,并在软件平台上仿真CPU执行程序的完整过程; 下载工程到FPGA芯片,在硬件资源上实现。 二、设计思路 1、CPU指令集系统设计 本课程设计所设计的RISC_CPU指令长度为16位,能够处理16位数据,指令中需要操作符,寄存器地址和立即数等字段。 完成立即数数据载入操作需要如下指令: mil:将立即数放在低8位 mih:将立即数放在高8位 因为一条指令无法载入完整16比特立即数数据,设计指令格式中用于存放立即数的字段为8bits,将16bits数据传递到通用寄存器需要2条指令,“mil R1,I(低8位)”将立即数I的低8位传递给通用寄存器R1,“mih R1,I(高8位)”将立即数I的高8位传递给通用寄存器R1。 完成存储器或I/O数据载入与存储的操作需要如下指令: lda:载入指定地址数据 sta:储存数据到指定地址 inp:从端口输入 oup:输出到端口 因为存储器中有些地址的数据可能是有工程意义的,对这些地址上的数据的处理是必不可少的。“lda Rd Rs”将通用寄存器Rs的数据作为指定地址,将存储器中该地址上的数据载入到通用寄存器Rd中,“sta Rd Rs”将通用寄存器Rd的数据作为指定地址,将通用寄存器Rs的数据储存到存储器该地址上。 完成通用寄存器阵列内数据运算操作需要如下指令: and:寄存器数据与操作 orr:寄存器数据或操作 not:寄存器数据非操作 shl:左移 shr:右移 add:寄存器数据相加 sub:寄存器数据相减 mul:寄存器数据相乘 cmp:寄存器数据相比较 这些是本CPU设计能够完成的数据处理操作,有3点需要注意:1、所有操作的数据必须储存于通用寄存器中2、乘法运算只能进行8比特数据相乘,溢出则取其低8位数据相乘3、cmp指令的结果会影响标志位,该标志位可作为分支操作的条件,但执行cmp指令之前建议先清除相关标志位。 完成对标志位的处理操作需要如下指令: szf:对零标志位置1 czf:清除零标志位 scf:对进位标志位置1 ccf:清除进位标志位 设计这些指令为分支操作的执行创造了条件,还需要注意其它指令在执行过程中同样可能影响标志位的值。 完成指令跳转、分支操作需要如下指令: spc:保存pc的值 jpa:跳转到指定位置 jpr:跳转到相关位置 brz:以零标志位为条件的分支 brc:以进位标志位为条件的分支 spc、jpa、jpr指令为程序的循环执行创造了基础,brz、brc指令为程序的分支执行创造了基础。如果一个程序不只是顺序执行,那么这些指令是必不可少的。“spc Rd I”将当前PC值与立即数I相加的结果送给通用寄存器Rd,“brc I”如果进位标志位C为1,将当前PC的值与立即数I相加的结果作为PC的值。 完成对窗口指针的操作需要如下指令: cwp:清除窗口指针 awp:窗口指针与立即数相加 窗口指针用于存放通用寄存器的窗口偏移值,达到扩大通用寄存器数量的目的。在最终的指令格式中通用寄存器地址(编号)只有两比特,也就是直接表示只能表示4个寄存器,经验证无法完成本课程设计所设计所要求的完成流水灯的程序编写,而加上窗口指针偏移值后,就可以表示更多的通用寄存器以达到课程设计要求。 完成无操作、中断需要如下指令: nop:无操作 hlt:中断 建议本课程设计所设计的CPU的指令格式为: 15-12bit规定指令的类型; 11-8bit选择寄存器,共设有8个寄存器,前2位为目的寄存器,后2位为源寄存器; 7-0bit为立即数。 部分示例指令如下表2-1所示,其中D、S分别为目的、源寄存器,I为立即数。 表2-1 部分指令集系统 助记符及定义 比特15:0 注释 nop 无操作 0000-00-00无操作 hlt 中断 0000-00-01中断,遇到停止 szf 对零标志位置1 0000-00-10Z=’1’ czf 清除零标志位 0000-00-11Z=’0’ scf 对进位标志位置1 0000-01-00C=’1’ ccf 清除进位标志位 0000-01-01C=’0’ cwp 清除窗口指针 0000-01-10WP=’000’ mvr 转移寄存器数据 0001-D-SRd=Rs l

文档评论(0)

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

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

1亿VIP精品文档

相关文档