组成原理-逻辑电路控制器CPU的设计_第1页
组成原理-逻辑电路控制器CPU的设计_第2页
组成原理-逻辑电路控制器CPU的设计_第3页
组成原理-逻辑电路控制器CPU的设计_第4页
组成原理-逻辑电路控制器CPU的设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 摘 要本次计算机组成原理课程设计课题是逻辑电路控制器CPU的设计。利用maxplus来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,设计控制器CPU的逻辑电路图,用逻辑电路图实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计在maxplus中完成存数据、取数据、加指令的CPU程序,用电路图实现了相关功能,设计maxplus的指令系统(包括存数据、取数据、加指令的CPU程序),形成具有一定功能的完整的电路图。关键词:maxplus、全加器、寄存器、逻辑电路图目 录1.实验软件maxplus11.1 maxplus简介11.2 maxplus的使用说明12.设

2、计目标43.系统设计43.1 四位二进制加法器43.2 寄存器53.3计数器63.4 微指令集电路图设计73.5 CPU程序设计流程图84.程序实现84.1 仿真电路图84.2 仿真结果95.总结与体会11参考文献111.实验软件maxplus1.1 maxplus简介Altera公司的MAX+PLUS的全称是Multiply Array matrix and Programmable Logic User System。MAX+PLUS支持所有的CPLD和25万门以内的FLEX和ACEX系列FPGA。它集设计输入、编译、仿真、综合、编程(配置)于一体,带有丰富的设计库,并有详细的联机帮助功能

3、,且许多操作与Windows下的操作方法完全一样,是一个集成化的、易学易用的PLD开发平台。用MAX+PLUS进行设计的一般过程,设计输入、编译、功能仿真、设计实现、时序仿真、下载、硬件检查,在对上述过程中有错误的进行设计修改。1.2 maxplus的使用说明逻辑设计的输入:指定项目名称,在“File”菜单中选择ProjectName打开“Project Name”对话框;选择适当的驱动器和目录,然后键入项目名;点击“OK”。建立原理图设计文件,第一步打开原理图编辑器,在管理器窗口的“File”菜单中选择“New”;选择“Graphic Editor File”和“.gdf”项;点击“OK”。

4、第二步输入元件和模块,原理图编辑窗口空白处双击鼠标左键或者在“Symbol”菜单中选择“Enter Symbol”,便打开了“Enter Symbol”对话框;选择适当的库及所需的器件(模块);点击“确定”。第三步放置输入、输出引脚,在“Symbol Name”框中键入input或output。第四步连线,将电路图中的两个端口相连,将鼠标指向一个端口,鼠标箭头会自动变成“+”;一直按住鼠标左键拖至另一个端口;放开左键,则会在两个端口间产生一根连线。输入/输出引脚和内部连线命名,输入/输出引脚命名的方法是在引脚的“PIN-NAME”位置双击鼠标左键,然后键入信号名。内部连线的命名方法是:选中连线

5、,然后键入信号名。第六步保存文件,在“File”菜单中选择“Save As”(若该文件已有,则选“Save”)或在工具栏点击按钮,如是第一次保存,需输入文件名。建立一个默认的符号文件,在层次化设计中,如果当前编辑的文件不是顶层文件,则往往需要为其产生一个符号,将其打包成一个模块,以便在上层电路设计时加以引用。建立一个符号文件的方法是,在“File”菜单中选择“Create Default Symbol”项即可。编译网表提取:MAX+PLUS的编译器包括两大功能:编译和设计实现。编译的作用是检查设计输入中有无描述性错误,若无描述性错误,则提取出电路网表(Netlist);若有描述性错误,则给出出

6、错信息(包括出错位置、错误性质),并有联机帮助功能帮助用户改正错误。运行编译器的方法是,在“MAX+PLUS”菜单中选“Compiler”选项或直接在工具栏中点击按钮。启动编译器后首先进行“编译与电路网表提取”工作。做完这一工作后编译器便停下来等待用户的指示。如果编译中未发现错误,则可以接着做“设计实现”的工作。设计实现包括数据库生成器(Database Builder)、逻辑综合器(Logic Synthesizer)、逻辑划分器(Partitioner)、设配器(Fitter)、时序仿真网表文件提取器(Timing SNF Extractor)和编程数据汇编器(Assembler)等步骤。

7、选项设置,编译器有很多选项设置,但并不是每一项都需要用户去设置,有些设置编译器可自动选择(如器件选择、引脚分配等),而其他的设置往往有默认值。在“Assign”菜单中选“Device”项,然后选择器件的系列和型号,型号可设为“Auto”,编译器自动选择;器件引脚分配,在原理图编辑窗口中,选中某个输入或输出信号,按鼠标右键,在弹出菜单中选“Pin/Location/Chip”,然后选引脚号。运行“设计实现”,按上述方法做好必要的设置后,在编译器窗口中按“Start”就可以连续执行后续的设计步骤,产生的数据文件的扩展名会出现在各个执行框的下方。仿真验证:仿真分功能仿真和时序仿真两种,两种仿真的做法

8、是一样的,由编译时生成的仿真网表文件类型决定仿真的类型。仿真过程分三步,首先要建立波形文件,确定需要观察的信号,设计输入波形,设定一些时间和显示参数。其次才是运行仿真程序。最后是根据仿真结果(波形)分析电路功能正确与否。建立波形文件,第一步打开原理图编辑器,在管理器窗口的“File”菜单中选择“New”或直接在工具栏上点击按钮,打开“New”列表框;选择“Waveform Editor File”和“.scf”项,按“OK”。第二步设定时间参数,从“File”菜单中选择“End Time”项,键入仿真结束时间,按“OK”;在“Options”菜单中选择“Grid Time”项,键入时间显示网格

9、间距,按“OK”。第三步确定需观察的信号,在“Node”菜单中或在波形图编辑窗口空白处单击鼠标右键选择“Enter Nodes From SNF”(SNF指仿真网表文件)项,打开“Enter Nodes From SNF”对话框;在“Type”框中选择信号类别,最常用的是“Input”和“Output”(输入、输出);点“List”按钮,将所选类别的所有信号均列于“Available Nodes & Groups”框;从“Available Nodes & Groups”框中选择信号,然后按“=>”箭头,使所选信号名进入“Selected Nodes & Grou

10、ps”框;选择“OK”,所选信号将出现在波形图编辑窗口中;根据需要编辑输入波形,编辑窗口左侧一列按钮非常有用;在“File”菜单中选择“Save As”或在工具栏点击按钮,如是第一次保存,需输入文件名。运行仿真程序,在“MAX+PLUS”菜单中选“Simulator”选项或直接在工具栏中点击按钮,出现仿真对话框;按“Start”开始仿真;仿真结果后,按“Open SCF”,在波形编辑窗口中将显示出仿真结果(波形)。仿真结果分析。底层图编辑:通过底层图编辑器可以观察和控制底层(物理)设计的细节,细节包括两个内容:引脚分配和逻辑单元分配,打开底层图编辑器的方法是,在“MAX+PLUS”菜单中选“F

11、loorplan Editor”选项或直接在工具栏中点击按钮。器件外观视图,在底层图编辑界面下,从“Layout”菜单中选择“Device View”就可以显示出器件的所有引脚及其功能。如果在“Lauout”菜单中选择“Last Compilation Floorplan”或点击底层图编辑窗口左侧的相应按钮,则显示最新一次经过编译的引脚分配情况。已分配过的引脚呈彩色,未分配过的引脚呈白色。如果在“Layout”菜单中选择“Current Assignment Floorplan”或点击底层图编辑窗口左侧的相应按钮,就可以重新进行引脚分配。但是,重新分配的结果必须经过编译才能生效。器件内部视图,

12、在底层图编辑界面下,从“Layout”菜单中选择“LAB View”就可以显示出器件的所有逻辑单元和引脚。如果在“Layout”菜单中选择“Last Compilation Floorplan”或点击底层图编辑窗口左侧的相应按钮,则显示最新一次经过编译的逻辑单元和引脚分配情况。已分配过的单元及引脚呈彩色,未分配过的单元及引脚呈白色。如果在“Layout”菜单中选择“Current Assignments Floorplan”或点击底层图编辑窗口左侧的相应按钮,就可以对逻辑单元和引脚进行重新分配。但是,重新分配的结果必须经过编译才能生效。下载:经过编译和设计实现后生成3个不同用途的编程文件:*.

13、POF、*.SOF、*.JED。*.POF文件用于Classic与MAX系列CPLD的编程。*.SOF文件用于对FLEX系列FPGA进行直接配置。打开编程窗口,在“MAX+PLUS”菜单中选“Programmer”选项或直接在工具栏中点击按钮。硬件连接,在编程界面下,从“Options”菜单中选择“Hardware Setup”;在“Hardware Setup”对话框中选择“ByteBlaster”或“BitBlaster”;用下载电缆将PC机并口(若选“ByteBlaster”)或串口(若选“BitBlaster”)与电路板上的PLD连接起来(通过接插件)。请注意:这一步工作最好在关断PC

14、机和电路板电源的情况下进行,可以在开机前预先接好。选择编程文件,缺省情况下,编程文件已根据当前项目名选好,并显示在编程窗口的右上角。如果发现文件名不对,可在“File”菜单中点“Select Programming File”项进行选择。下载,在编程窗口中按“Program”(对CPLD或配置用EPROM,此时文件为*.POF)或“Configure”(对FPGA,此时文件为*.SOF)。2.设计目标 本课程设计要求实现机器指令要求实现指令:LD(取数),ST(存数),ADD(算术加法);利用maxplus对于设计的微指令集用电路图进行实现,并分析结果是否正确,3.系统设计3.1 四位二进制加

15、法器全加器是用门电路实现两个二进制数相加并求出和的组成和电路的数字电路。除本位两个数相加外,还要加上从低位来的进位数。被加数Ai加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。能实现全加运算功能的电路称为全加电路。全加器的逻辑功能表如表1所列。本次课程设计中的四位二进制加法器是由四个全加器组成,四位加法器逻辑电路图如图1所示。信号输入端信号输出端AiBiCiSiC00000000110010101001001101101011100111111表1 全加器的逻辑功能表 图1 74183四位全加器 3.2 寄存器寄存器是CPU的组成部分,寄存器是有限存

16、储容量的高速存储部件,它们可用来暂存指令、数据和地址。在CPU的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在CPU的算术及逻辑部件中,包含的寄存器有累加器(ACC)。本次设计采用的74373M寄存器逻辑电路图如图2所示。图2 74373M寄存器3.3计数器计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲个数进行计数,以实现测量、计数、和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数

17、字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。本次设计将两个计数器组合成一个控制器,采用两个D触发器构成一个二位二进制计数器,寄存器逻辑电路图连接如下图3 所示,k为时钟输入端,Q1、Q2为两位的二进制输出。图3 7474计数器3.4 微指令集电路图设计微指令电路图由一个74183四位全加器,12个74373M寄存器,一个7474计数器,4个控制加减法的异或门组成。b0、b1、b2、b3为四位被减数由低到高的四个输入端,a0、a1、a2、a3为减数的四个输入端,s0、s1、

18、s2、s3为四个输出端。m为加减法控制端,分别与减数的四个输入端进行异或操作并分别输入到四个全加器的输入端A,k为计数器的时钟输入端。 四位被减数输入端的四个寄存器的存数据控制端G端连接到计数器的Q1输出端,四位减数输入端的四个寄存器的存数据控制端G和四位差的输出端的四个寄存器的村数据控制端G串联连接到计数器的Q2端口。寄存器的OEN端均接地。实现控制器CPU逻辑电路图如图4 所示。图4 指令集电路图3.5 CPU程序设计流程图开始设计程序指令集设计取数,存数,算数加法画出电路图Maxplus进行仿真结束编译建立工程图5 CPU程序设计流程图 4.程序实现4.1 仿真电路图 按照系统分析中得到

19、的指令集,在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所示,观察

20、仿真结果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中设计电路图(包括算术加,存数据,取数据指令),设计的目的是让我们增加自己的动手能力,真正的达到理论与实际的结合。由于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论