单周期CPU设计2018版体会.doc

单周期CPU设计2018版体会.doc

ID:57675115

大小:249.00 KB

页数:6页

时间:2020-08-31

单周期CPU设计2018版体会.doc_第1页
单周期CPU设计2018版体会.doc_第2页
单周期CPU设计2018版体会.doc_第3页
单周期CPU设计2018版体会.doc_第4页
单周期CPU设计2018版体会.doc_第5页
资源描述:

《单周期CPU设计2018版体会.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、11条MIPS指令单周期CPU设计2018元月份,我按照袁春风老师的第三版教材,又重新设计了11条MIPS指令的单周期CPU。这次的设计与我2017年7月份的单周期CPU还是有些区别。2017年7月份设计的CPU主要是参考《计算机组成与设计-硬件/软件接口DavidA.Patterson》。设计中的几点体会如下:一.基本流程1.首先要分析清楚这11条指令的格式和特点。按照MIPS指令的格式和特点,完全掌握它们的功能和执行的过程。2.这些指令执行过程中需要哪些硬件部件和控制信号,这些部件如何连接构成数据通路。3

2、.对所有需要的控制信号进行归纳分析,列出真值表,设计相应的控制电路。二.具体设计过程1.ALU的设计。ALU的设计重点在于先设计出32位的加法器,减法运算是利用加法的“变反加一”。同时要产生各种运算结果的信号:溢出(OF)、进位(CF)、符号位(SF)、零符号位(Zero)。OF=Cn⊕Cn-1;CF=Cout⊕Cin。至于需要其它的运算指令,如逻辑运算、移位运算、乘除法运算,都可以直接调用logisim库中的器件,添加到ALU中,这些运算的结果可以同时产生,只是最后用多路选择器来选择那种指令的结果输出,用的

3、控制信号是OPctr。在ALU中需要设计一个控制信号生成部件,用于产生ALU内部需要的各种控制信号。见袁春风老师教材P155。(第一次实验:ALU部件的设计)(ALU设计中,现在的加法器只是串行的,可以让好的学生用先行进位加法器)图1:ALU电路图1.设计寄存器部件。设计一个32个*32位的寄存器部件。两路输入和两路输出,可读写。(第二次实验:寄存器部件的设计)图2:寄存器电路图2.数据通路的设计。通路的设计不能急于求成,要一条指令一条指令来分析和设计。首先设计R-type中的add、sub、subu、slt

4、、sltu等的通路。要注意是否要判断溢出。在此基础上,再分析I-type带立即数运算指令的数据通路,分析出需要添加哪些部件。再分析sw、lw指令的数据通路,分支指令的数据通路,无条件跳转指令的数据通路。通过逐步添加部件,最后就实现了整个数据通路。其实添加新部件的过程,就是不断添加多路选择器的过程。1.控制器的设计。分析设计完成了数据通路,就知道所需要的所有控制信号。按照信号产生的条件,就可以写出真值表P166、P167,产生逻辑电路,即控制器。其实控制器的设计过程,就是写真值表。(第三次实验:单周期CPU的设

5、计)。图3:11条指令的单周期CPU电路图三.Logisim的使用同学们自己网上查找资料。四.编写测试程序(test_11.asm)1.利用用Mars4.5软件编写测试程序。测试程序使用自己设计的11条MIPS指令来实现。2.打开Mars4.5软件,用Edit编辑汇编源代码,后缀是.asm3.汇编源代码程序编写完成后,用Run菜单中的Assemble进行汇编,得到机器代码。1.需要设置mars界面中setting的MemoryConfigration,将内存模式设置为下图的模式,这样数据段起始位置就是0开始的

6、位置。2.程序汇编后可以利用File菜单中的DumpMemory功能将代码段和数据段导出,采用十六进制文本的方式导出到某个文本文件,然后在文件第一行加入“v2.0raw”即可在logisim中加载到ROM或RAM。1.将test_11文件加载到指令存储器,在数据存储器第1、2号单元中输入指定的数据,执行测试程序,再查看运行结果,验证程序运行是否正确。Add、sub是加减指令,判断溢出,如有溢出,则不保存运算结果;Subu是减法指令,但不判断溢出;Slt是有符号数比较大小、sltu是无符号数比较大小。具体见教材

7、P155,表5.2用于测试的数据表如表1可以用test_11程序和表1中的数据来验证学生设计的CPU是否能正确运行。(只需要在数据存储器中的1#和2#单元输入测试数据,在第3#--7#号单元中查看运算结果是否正确)表1:test_11程序测试表存储器地址结果数据1#2#3#4#5#6#7#输入数据S1输入数据S2addsubsubusltsltu测试110测试200测试37ffffffd7ffffffd01测试400测试5相等数据,测试Beg指令正确说明:对于测试2中的测试数据(对两个都是负数的测试数据),s

8、lt指令的结果与分析的实际结果不同。两次CPU设计之间的差别主要差别有下列几点:1.ALU的实现(alu-11)。2017版是参考华科的实验。可实现的算术运算、逻辑运算、移位等指令条数较多。加减溢出判断是自己采用真值表来实现的。2018版是按照袁老师P155实现的。第一个实验(11条指令的ALU设计)就准备让学生这样实现。2.取指令部件的实现(fetch_IR)。2017版中有BEQ指令,但没有实现

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

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

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