下载此文档

《简化CPU设计》-.doc


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
电子科技大学通信学院
简化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-00000000
无操作
hlt 中断
0000-00-01-00000000
中断,遇到停止
szf 对零标志位置1
0000-00-10-00000000
Z<=’1’
czf 清除零标志位
0000-00-11-00000000
Z<=’0’
scf 对进位标志位置1
0000-01-00-00000000
C<=’1’
ccf 清除进位标志位
0000-01-01-00000000
C<=’0’
cwp 清除窗口指针
0000-01-10

《简化CPU设计》- 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人一花一世
  • 文件大小454 KB
  • 时间2018-11-13