组成原理逻辑电路控制器CPU的设计Word文档格式.docx

上传人:b****3 文档编号:6500887 上传时间:2023-05-06 格式:DOCX 页数:14 大小:392.03KB
下载 相关 举报
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第1页
第1页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第2页
第2页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第3页
第3页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第4页
第4页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第5页
第5页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第6页
第6页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第7页
第7页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第8页
第8页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第9页
第9页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第10页
第10页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第11页
第11页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第12页
第12页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第13页
第13页 / 共14页
组成原理逻辑电路控制器CPU的设计Word文档格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

组成原理逻辑电路控制器CPU的设计Word文档格式.docx

《组成原理逻辑电路控制器CPU的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《组成原理逻辑电路控制器CPU的设计Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。

组成原理逻辑电路控制器CPU的设计Word文档格式.docx

4.1仿真电路图8

4.2仿真结果9

5.总结与体会11

参考文献11

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”项;

第二步输入元件和模块,原理图编辑窗口空白处双击鼠标左键或者在“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&

选择“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

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.5CPU程序设计流程图

图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所示,观察仿真结果S端s3s2s1s0为结果的反码0010,在加0001得到正确结果0011。

图7仿真结果

(1)

(2)S=B+A=0001+0011=0100

运算仿真结果如下图8所示,观察仿真结果S端s3s2s1s0为结果的反码0011,在加0001得到正确结果0100。

图8仿真结果

(2)

(3)S=B+A=0111+0110=1101

运算仿真结果如下图8所示,观察仿真结果S端s3s2s1s0为结果的反码1100,在加0001得到正确结果1101。

图7仿真之后结果

通过maxplus的“Simulator”进行仿真微程序指令系统,执行程序电路图,验证设计的指令集是否存在不当之处。

5.总结与体会

本次课程设计要求我们设计逻辑电路的控制器CPU,在maxplus中设计电路图(包括算术加,存数据,取数据指令),设计的目的是让我们增加自己的动手能力,真正的达到理论与实际的结合。

由于自己对计算机硬件知识了解的并不是非常透彻,对maxplus的操作并不是很熟悉,在刚开始设计感觉到无从下手,只能够由网上的简单例子进行相关的试验,并查阅相关资料漫漫的由浅入深达到设计的目的。

经过本次逻辑电路控制器CPU的课程设计,更加明白理论与实际相结合得重要性,因为有时并不是具备了理论知识动手能力就会强,当真正动起手来发现自己需要学得知识还是很多的,在以后的学习中,自己一定会加强理论与实际的结合,让自己符合新型社会所需要的全面发展人才的新标准。

经过为期四周的课程设计,我发现整个研究过程中存在着很多问题。

当初拿到课程设计题目的时候由于只是掌握了基础理论的知识,缺乏动手实践的能力,开始的时候自己并没有很好的设计思路,在通过和小组成员的探讨以及查阅相关资料之后,发现有时候能从网上的资料学习到很多新的知识。

更多时候是在你不懂的地方,和同学讨论研究之后突然发现问题不是那么困难解决,换种思路和同学交流一下就可以收获到不同的思想。

在此次的设计中,非常感谢老师对我们的帮助和指导。

虽然在部分过程还不够完善,希望能得到老师的继续指导;

在设计的过程中,由于和同学的交流沟通解决了不少难题,更加懂得小组合作的重要性。

参考文献

[1]计算机组成原理实验指导书.王诚,宋佳兴,董长洪编著.清华大学出版社,2002.

[2]《计算机组成原理》学习指导与训练.旷海兰等编著.中国水利水电出版社,2004.

[3]计算机原理与设计.宋焕章张春元王保恒.长沙:

国防科技大学出版社,2000.

[4]白中英.计算机组成原理(第二版).北京:

科学出版社,1998

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2