《简化cpu设计》-

《简化cpu设计》-

ID:18127709

大小:454.50 KB

页数:19页

时间:2018-09-14

《简化cpu设计》-_第1页
《简化cpu设计》-_第2页
《简化cpu设计》-_第3页
《简化cpu设计》-_第4页
《简化cpu设计》-_第5页
资源描述:

《《简化cpu设计》-》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、电子科技大学通信学院简化CPU设计2013年9月19一、课程设计要求1.设计16位精简指令集CPU指令系统;2.完成精简指令集CPU的结构设计和所有模块的代码编写,并仿真验证;3.编写能够完成加法器﹑流水灯等功能的汇编程序,并翻译成二进制机器码;4.设计CPU外围模块如分频器,存储器和IO接口,并在软件平台上仿真CPU执行程序的完整过程;5.下载工程到FPGA芯片,在硬件资源上实现。二、设计思路1、CPU指令集系统设计本课程设计所设计的RISC_CPU指令长度为16位,能够处理16位数据,指令中需要操作符,寄存器地址和立即数等字段。完成立即数数据载入操作需要如下指令:mil:将立即数放在

2、低8位mih:将立即数放在高8位因为一条指令无法载入完整16比特立即数数据,设计指令格式中用于存放立即数的字段为8bits,将16bits数据传递到通用寄存器需要2条指令,“milR1,I(低8位)”将立即数I的低8位传递给通用寄存器R1,“mihR1,I(高8位)”将立即数I的高8位传递给通用寄存器R1。完成存储器或I/O数据载入与存储的操作需要如下指令:lda:载入指定地址数据sta:储存数据到指定地址inp:从端口输入oup:输出到端口因为存储器中有些地址的数据可能是有工程意义的,对这些地址上的数据的处理是必不可少的。“ldaRdRs”将通用寄存器Rs的数据作为指定地址,将存储器中

3、该地址上的数据载入到通用寄存器Rd中,“staRdRs”将通用寄存器Rd的数据作为指定地址,将通用寄存器Rs的数据储存到存储器该地址上。完成通用寄存器阵列内数据运算操作需要如下指令:and:寄存器数据与操作orr:寄存器数据或操作not:寄存器数据非操作shl:左移shr:右移add:寄存器数据相加sub:寄存器数据相减mul:寄存器数据相乘19cmp:寄存器数据相比较这些是本CPU设计能够完成的数据处理操作,有3点需要注意:1、所有操作的数据必须储存于通用寄存器中2、乘法运算只能进行8比特数据相乘,溢出则取其低8位数据相乘3、cmp指令的结果会影响标志位,该标志位可作为分支操作的条件,

4、但执行cmp指令之前建议先清除相关标志位。完成对标志位的处理操作需要如下指令:szf:对零标志位置1czf:清除零标志位scf:对进位标志位置1ccf:清除进位标志位设计这些指令为分支操作的执行创造了条件,还需要注意其它指令在执行过程中同样可能影响标志位的值。完成指令跳转、分支操作需要如下指令:spc:保存pc的值jpa:跳转到指定位置jpr:跳转到相关位置brz:以零标志位为条件的分支brc:以进位标志位为条件的分支spc、jpa、jpr指令为程序的循环执行创造了基础,brz、brc指令为程序的分支执行创造了基础。如果一个程序不只是顺序执行,那么这些指令是必不可少的。“spcRdI”将

5、当前PC值与立即数I相加的结果送给通用寄存器Rd,“brcI”如果进位标志位C为1,将当前PC的值与立即数I相加的结果作为PC的值。完成对窗口指针的操作需要如下指令:cwp:清除窗口指针awp:窗口指针与立即数相加窗口指针用于存放通用寄存器的窗口偏移值,达到扩大通用寄存器数量的目的。在最终的指令格式中通用寄存器地址(编号)只有两比特,也就是直接表示只能表示4个寄存器,经验证无法完成本课程设计所设计所要求的完成流水灯的程序编写,而加上窗口指针偏移值后,就可以表示更多的通用寄存器以达到课程设计要求。完成无操作、中断需要如下指令:nop:无操作hlt:中断建议本课程设计所设计的CPU的指令格式

6、为:15-12bit规定指令的类型;11-8bit选择寄存器,共设有8个寄存器,前2位为目的寄存器,后2位为源寄存器;7-0bit为立即数。部分示例指令如下表2-1所示,其中D、S分别为目的、源寄存器,I为立即数。表2-1部分指令集系统助记符及定义比特15:0注释nop无操作0000-00-00-00000000无操作hlt中断0000-00-01-00000000中断,遇到停止19szf对零标志位置10000-00-10-00000000Z<=’1’czf清除零标志位0000-00-11-00000000Z<=’0’scf对进位标志位置10000-01-00-00000000C<=’1

7、’ccf清除进位标志位0000-01-01-00000000C<=’0’cwp清除窗口指针0000-01-10-00000000WP<=’000’mvr转移寄存器数据0001-D-S-00000000Rd<=Rslda载入指定地址数据0010-D-S-00000000Rd<=(Rs)sta储存数据到指定地址0011-D-S-00000000(Rd)<=Rsinp从端口输入0100-D-S-00000000把端口Rs进来的数据写入Rd

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

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

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