计算机组成原理课程设计设计逻辑控制电路CPU解读.docx
- 文档编号:24585340
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:15
- 大小:385.70KB
计算机组成原理课程设计设计逻辑控制电路CPU解读.docx
《计算机组成原理课程设计设计逻辑控制电路CPU解读.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计设计逻辑控制电路CPU解读.docx(15页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计设计逻辑控制电路CPU解读
计算机组成原理
课程设计报告书
题目:
设计逻辑电路控制器CPU(含至少3条指令)
院系:
计算机科学与工程学院
专业班级:
物联网工程13-1班
学号:
学生姓名:
指导教师:
詹林
2015年12月15日
安徽理工大学课程设计(论文)任务书
计算机科学与技术工程学院物联网系
学号
学生姓名
专业(班级)
物联网13-1
设计题目
设计逻辑电路控制器CPU(含至少3条指令)
设
计
技
术
参
数
1.通过试验箱系统连接设计取数据、存数据、加指令。
2.画出电路图实现相关的功能。
设
计
要
求
设计要求:
在maxplus设计取数据、存数据、加指令的CPU程序。
工
作
量
1.课程设计说明书2500字;
2.画出流程图,编写微指令代码和程序;
3.编写出试验过程、试验结果。
工
作
计
划
3.第一天学习微程序控制器,了界实验箱中的各结构。
4.第二天分析题目,查阅资料,画出流程图,设计出微指令。
5.第三天第四天按实验要求连线,编写程序在实验箱上运行
6.第五天写课程设计报告
参
考
资
料
[1]白中英著 ,计算机组成原理。
[2]张功萱著 ,计算机组成原理,清华大学出版社,2005年09月
[3]王诚著,计算机组成原理实验指导书,清华大学出版社,2002
[4]杨小龙.计算机组成原理与系统结构实验教程.西安:
西安电子科技大学出版社,2004
指导教师签字
系主任签字
2015年12月11日
指导教师评语:
成绩:
指导教师:
年月日
安徽理工大学课程设计(论文)成绩评定表
摘要
本次计算机组成原理课程设计课题是逻辑电路控制器CPU的设计。
利用maxplus来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,设计控制器CPU的逻辑电路图,用逻辑电路图实现了一系列的指令功能,最终达到将理论与实践相联系。
本次设计在maxplus中完成存数据、取数据、加指令的CPU程序,用电路图实现了相关功能,设计maxplus的指令系统(包括存数据、取数据、加指令的CPU程序),形成具有一定功能的完整的电路图。
关键词:
maxplus、全加器、寄存器、逻辑电路图
目录
1.实验软件maxplus6
1.1Maxplus简介6
1.2maxplus的使用说明6
2.设计目标9
3.系统设计9
3.1四位二进制加法器9
3.2寄存器10
3.3计数器10
3.4微指令集电路图设计11
3.5微指令集设计12
3.6CPU程序设计流程图13
4.程序实现13
4.1仿真电路图13
4.2仿真结果14
总结与体会16
参考文献17
1.实验软件maxplus
1.1Maxplus简介
Altera公司的MAX+PLUSⅡ的全称是MultiplyArraymatrixandProgrammableLogicUserSystem。
MAX+PLUSⅡ支持所有的CPLD和25万门以内的FLEX和ACEX系列FPGA。
它集设计输入、编译、仿真、综合、编程(配置)于一体,带有丰富的设计库,并有详细的联机帮助功能,且许多操作与Windows下的操作方法完全一样,是一个集成化的、易学易用的PLD开发平台。
用MAX+PLUSⅡ进行设计的一般过程,设计输入、编译、功能仿真、设计实现、时序仿真、下载、硬件检查,在对上述过程中有错误的进行设计修改。
1.2maxplus的使用说明
逻辑设计的输入:
①指定项目名称,在“File”菜单中选择Project→Name打开“ProjectName”对话框;选择适当的驱动器和目录,然后键入项目名;点击“OK”。
②建立原理图设计文件,第一步打开原理图编辑器,在管理器窗口的“File”菜单中选择“New”;选择“GraphicEditorFile”和“.gdf”项;点击“OK”。
第二步输入元件和模块,原理图编辑窗口空白处双击鼠标左键或者在“Symbol”菜单中选择“EnterSymbol”,便打开了“EnterSymbol”对话框;选择适当的库及所需的器件(模块);点击“确定”。
第三步放置输入、输出引脚,在“SymbolName”框中键入input或output。
第四步连线,将电路图中的两个端口相连,将鼠标指向一个端口,鼠标箭头会自动变成“+”;一直按住鼠标左键拖至另一个端口;放开左键,则会在两个端口间产生一根连线。
输入/输出引脚和内部连线命名,输入/输出引脚命名的方法是在引脚的“PIN-NAME”位置双击鼠标左键,然后键入信号名。
内部连线的命名方法是:
选中连线,然后键入信号名。
第六步保存文件,在“File”菜单中选择“SaveAs”(若该文件已有,则选“Save”)或在工具栏点击按钮,如是第一次保存,需输入文件名。
建立一个默认的符号文件,在层次化设计中,如果当前编辑的文件不是顶层文件,则往往需要为其产生一个符号,将其打包成一个模块,以便在上层电路设计时加以引用。
建立一个符号文件的方法是,在“File”菜单中选择“CreateDefaultSymbol”项即可。
编译网表提取:
MAX+PLUSⅡ的编译器包括两大功能:
编译和设计实现。
编译的作用是检查设计输入中有无描述性错误,若无描述性错误,则提取出电路网表(Netlist);若有描述性错误,则给出出错信息(包括出错位置、错误性质),并有联机帮助功能帮助用户改正错误。
运行编译器的方法是,在“MAX+PLUSⅡ”菜单中选“Compiler”选项或直接在工具栏中点击按钮。
启动编译器后首先进行“编译与电路网表提取”工作。
做完这一工作后编译器便停下来等待用户的指示。
如果编译中未发现错误,则可以接着做“设计实现”的工作。
设计实现包括数据库生成器(DatabaseBuilder)、逻辑综合器(LogicSynthesizer)、逻辑划分器(Partitioner)、设配器(Fitter)、时序仿真网表文件提取器(TimingSNFExtractor)和编程数据汇编器(Assembler)等步骤。
①选项设置,编译器有很多选项设置,但并不是每一项都需要用户去设置,有些设置编译器可自动选择(如器件选择、引脚分配等),而其他的设置往往有默认值。
在“Assign”菜单中选“Device”项,然后选择器件的系列和型号,型号可设为“Auto”,编译器自动选择;器件引脚分配,在原理图编辑窗口中,选中某个输入或输出信号,按鼠标右键,在弹出菜单中选“Pin/Location/Chip”,然后选引脚号。
②运行“设计实现”,按上述方法做好必要的设置后,在编译器窗口中按“Start”就可以连续执行后续的设计步骤,产生的数据文件的扩展名会出现在各个执行框的下方。
仿真验证:
仿真分功能仿真和时序仿真两种,两种仿真的做法是一样的,由编译时生成的仿真网表文件类型决定仿真的类型。
仿真过程分三步,首先要建立波形文件,确定需要观察的信号,设计输入波形,设定一些时间和显示参数。
其次才是运行仿真程序。
最后是根据仿真结果(波形)分析电路功能正确与否。
①建立波形文件,第一步打开原理图编辑器,在管理器窗口的“File”菜单中选择“New”或直接在工具栏上点击按钮,打开“New”列表框;选择“WaveformEditorFile”和“.scf”项,按“OK”。
第二步设定时间参数,从“File”菜单中选择“EndTime”项,键入仿真结束时间,按“OK”;在“Options”菜单中选择“GridTime”项,键入时间显示网格间距,按“OK”。
第三步确定需观察的信号,在“Node”菜单中或在波形图编辑窗口空白处单击鼠标右键选择“EnterNodesFromSNF”(SNF指仿真网表文件)项,打开“EnterNodesFromSNF”对话框;在“Type”框中选择信号类别,最常用的是“Input”和“Output”(输入、输出);点“List”按钮,将所选类别的所有信号均列于“AvailableNodes&Groups”框;从“AvailableNodes&Groups”框中选择信号,然后按“=>”箭头,使所选信号名进入“SelectedNodes&Groups”框;选择“OK”,所选信号将出现在波形图编辑窗口中;根据需要编辑输入波形,编辑窗口左侧一列按钮非常有用;在“File”菜单中选择“SaveAs”或在工具栏点击按钮,如是第一次保存,需输入文件名。
②运行仿真程序,在“MAX+PLUSⅡ”菜单中选“Simulator”选项或直接在工具栏中点击按钮,出现仿真对话框;按“Start”开始仿真;仿真结果后,按“OpenSCF”,在波形编辑窗口中将显示出仿真结果(波形)。
③仿真结果分析。
底层图编辑:
通过底层图编辑器可以观察和控制底层(物理)设计的细节,细节包括两个内容:
引脚分配和逻辑单元分配,打开底层图编辑器的方法是,在“MAX+PLUSⅡ”菜单中选“FloorplanEditor”选项或直接在工具栏中点击按钮。
①器件外观视图,在底层图编辑界面下,从“Layout”菜单中选择“DeviceView”就可以显示出器件的所有引脚及其功能。
如果在“Lauout”菜单中选择“LastCompilationFloorplan”或点击底层图编辑窗口左侧的相应按钮,则显示最新一次经过编译的引脚分配情况。
已分配过的引脚呈彩色,未分配过的引脚呈白色。
如果在“Layout”菜单中选择“CurrentAssignmentFloorplan”或点击底层图编辑窗口左侧的相应按钮,就可以重新进行引脚分配。
但是,重新分配的结果必须经过编译才能生效。
②器件内部视图,在底层图编辑界面下,从“Layout”菜单中选择“LABView”就可以显示出器件的所有逻辑单元和引脚。
如果在“Layout”菜单中选择“LastCompilationFloorplan”或点击底层图编辑窗口左侧的相应按钮,则显示最新一次经过编译的逻辑单元和引脚分配情况。
已分配过的单元及引脚呈彩色,未分配过的单元及引脚呈白色。
如果在“Layout”菜单中选择“CurrentAssignmentsFloorplan”或点击底层图编辑窗口左侧的相应按钮,就可以对逻辑单元和引脚进行重新分配。
但是,重新分配的结果必须经过编译才能生效。
下载:
经过编译和设计实现后生成3个不同用途的编程文件:
*.POF、*.SOF、*.JED。
*.POF文件用于Classic与MAX系列CPLD的编程。
*.SOF文件用于对FLEX系列FPGA进行直接配置。
①打开编程窗口,在“MAX+PLUSⅡ”菜单中选“Programmer”选项或直接在工具栏中点击按钮。
②硬件连接,在编程界面下,从“Options”菜单中选择“HardwareSetup”;在“HardwareSetup”对话框中选择“ByteBlaster”或“BitBlaster”;用下载电缆将PC机并口(若选“ByteBlaster”)或串口(若选“BitBlaster”)与电路板上的PLD连接起来(通过接插件)。
请注意:
这一步工作最好在关断PC机和电路板电源的情况下进行,可以在开机前预先接好。
③选择编程文件,缺省情况下,编程文件已根据当前项目名选好,并显示在编程窗口的右上角。
如果发现文件名不对,可在“File”菜单中点“SelectProgrammingFile”项进行选择。
④下载,在编程窗口中按“Program”(对CPLD或配置用EPROM,此时文件为*.POF)或“Configure”(对FPGA,此时文件为*.SOF)。
2.设计目标
本课程设计要求实现机器指令要求实现指令:
LD(取数),ST(存数),ADD(算术加法);利用maxplus对于设计的微指令集用电路图进行实现,并分析结果是否正确,
3.系统设计
3.1四位二进制加法器
全加器是用门电路实现两个二进制数相加并求出和的组成和电路的数字电路。
除本位两个数相加外,还要加上从低位来的进位数。
被加数Ai加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。
能实现全加运算功能的电路称为全加电路。
全加器的逻辑功能表如表1所列。
本次课程设计中的四位二进制加法器是由四个全加器组成,一位加法器逻辑电路图如图1所示。
信号输入端
信号输出端
Ai
Bi
Ci
Si
C0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
表1全加器的逻辑功能表
图174183一位全加器
3.2寄存器
寄存器是CPU的组成部分,寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和地址。
在CPU的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。
在CPU的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
本次设计采用的74373M寄存器逻辑电路图如图2所示。
图274373M寄存器
3.3计数器
计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲个数进行计数,以实现测量、计数、和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。
计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
本次设计将两个计数器组合成一个控制器,采用两个D触发器构成一个二位二进制计数器,寄存器逻辑电路图连接如下图3所示,k为时钟输入端,Q1、Q2为两位的二进制输出。
图37474计数器
3.4微指令集电路图设计
微指令电路图由一个74183四位全加器,12个74373M寄存器,一个7474计数器,4个控制加减法的异或门组成。
b0、b1、b2、b3为四位被减数由低到高的四个输入端,a0、a1、a2、a3为减数的四个输入端,s0、s1、s2、s3为四个输出端。
m为加减法控制端,分别与减数的四个输入端进行异或操作并分别输入到四个全加器的输入端A,k为计数器的时钟输入端。
四位被减数输入端的四个寄存器的存数据控制端G端连接到计数器的Q1输出端,四位减数输入端的四个寄存器的存数据控制端G和四位差的输出端的四个寄存器的村数据控制端G串联连接到计数器的Q2端口。
寄存器的OEN端均接地。
实现控制器CPU逻辑电路图如图4所示。
图4指令集电路图
3.5微指令集设计
本次实验能实现简单的四位二进制剪发算术运算S=B+A,本次试验采用了一个三位微指令,如下表2所示
MQ0Q1
指令功能
000
取指周期
001
取数据Bx端到加法器
010
取数据Ax端到加法器并进行运算
011
输出运算结果S
表2三位微指令表
3.6CPU程序设计流程图
图5CPU程序设计流程图
4.程序实现
4.1仿真电路图
按照系统分析中得到的指令集,在maxplus实验软件中新建指令系统,生成.gdf文件。
在maxplus实验软件中新建.gdf文件,画出电路图,进行“Compiler”编译,进行仿真操作如图6所示。
图6对电路图进行仿真
4.2仿真结果
编译过后进行仿真Simulator,设置m为持续高电平0,k端为时钟信号clock。
B、A端设置了三组四位二进制数据。
(1)S=B+A=0001+0010=0011
图7仿真结果
(1)
运算仿真结果如上图7所示。
(2)S=B+A=0001+0011=0100
运算仿真结果如下图8所示。
图8仿真结果
(2)
(3)S=B+A=0111+0110=1101
运算仿真结果如下图9所示。
图9仿真结果(3)
通过maxplus的“Simulator”进行仿真微程序指令系统,执行程序电路图,验证设计的指令集是否存在不当之处。
总结与体会
通过这次课程设计,使我更加扎实的掌握了有关计算机组成原理有关方面的知识,在设计过程中虽然也遇到了一些棘手的问题,但经过自己一次又一次的思考,请教老师等方法终于找出了原因所在,也暴露了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
本次课程设计要求我们设计逻辑电路的控制器CPU,在maxplus中设计电路图(包括算术加,存数据,取数据指令),设计的目的是让我们增加自己的动手能力,真正的达到理论与实际的结合。
由于自己对计算机硬件知识了解的并不是非常透彻,对maxplus的操作并不是很熟悉,在刚开始设计感觉到无从下手,只能够由网上的简单例子进行相关的试验,并查阅相关资料漫漫的由浅入深达到设计的目的。
在设计逻辑控制电路控制器CPU的设计中,受到了老师很多的帮助和指导,也明白了团队合作的重要性,如果没有老师的指导和团队的合作,我觉得我们不能这么快的做完课程设计。
在此次设计中,也明白了自己的不足之处,希望在以后的学习中能够弥补自己的不足之处,使自己能够更好的接受社会的考验。
参考文献
[1]计算机组成原理实验指导书.王诚,宋佳兴,董长洪编著.清华大学出版社,2002.
[2]计算机组成原理学习指导与训练.旷海兰等编著.中国水利水电出版社,2004.
[3]计算机原理与设计.宋焕章张春元王保恒.长沙:
国防科技大学出版社,2000.
[4]白中英.计算机组成原理(第二版).北京:
科学出版社,1998
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 设计 逻辑 控制电路 CPU 解读