计算机组成原理课程设计.docx
《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计
计算机组成原理课程设计
题目一位全加器(QuartusllII)
学生
指导教师
年级2007级
专业计算机科学与技术
系别计算机系
学院计算机信息与工程学院
哈尔滨师范大学
2010年6月
1、课程设计要求
1.1课程设计问题描述............................................................................3
1.2课程设计任务要求...........................................................................3
2、概要设计
2.1加法器的基本概念....................................................................................3
2.2EDA概述.......................................................................................................5
2.3QuartusllII软件概述...............................................................................6
2.4一位全加器设计流程..................................................................................6
2.4.1一位全加器的基本概述....................................................................6
2.4.2一位全加器的原理图........................................................................6
三、详细设计
3.1.为本项工程设计建立文件夹...................................................................................8
3.2输入设计项目和存盘............................................................................................11
3.3将设计项目设置成可调用的元件..........................................................................12
3.4设计全加器顶层文件..............................................................................................14
3.5创建工程................................................................................................................14
3.6编译前设置.................................................................................................................
3.7全程编译.....................................................................................................................
3.8时序仿真.......................................................................................................................
四、收获及体会
5.1收获及体会...............................................................................................................18
五、参考文献
6.1参考文献.................................................................................................................19
六、附录
7.1一位全加器代码add.vf.........................................................................................20
一、课程设计要求
1.1课程设计问题描述
众所周知,算术逻辑单元(ALU)既能完成算术运算也能完成逻辑运算,是微处理器芯片中的一个十分重要的部件。
但从基本算术运算的实现,我们可以看到所有的加、减、乘、除运算最终都能归结为加法运算。
在ALU完成的操作中,逻辑操作是按位进行,各位之间彼此无关,不存在进位问题,这使得逻辑运算速度很快,且是一个常数,不需进行过多的优化工作。
但对于算术操作来说,因为存在进位问题,使得某一位计算结果的得出和所有低于它的位相关。
因此,为了减少进位传输所耗的时间,提高计算速度,人们设计了多种类型的加法器,如行波进位(RIP))~I法器、跳跃进位加法器(CSKA:
Carry—SKipAdders)、进位选择加法器(CSLA:
Carry—SeLectAdders)、超前进位加法器(CLA:
Carry—LookaheadAdders)等。
它们都是利用各位之间的状态(进位传递函数P、进位产生函数G等)来预先产生高位的进位信号,从而减少进位从低位向高位传递的时间。
要求掌握使用QuartusllII软件对用可编程逻辑器件PLD进行开发与设计,利用可编程逻辑器件PLD(programmablelogicdevice)QuartusllII软件对一位全加器的进行合理正确的设计并且进行输入信号的测试。
用门电路设计一个一位二进制全加器。
要求输入两个加数ain、bin和一个低进位cin,得出本位和sum和向高位进位cout。
1.2课程设计任务要求
全加器是一个能对两个一位二进制数及来自低位的“进位”进行相加,产生本位“和”及向高位“进位”的逻辑电路。
该电路有3个输入变量,分别是2个加数ain、bin和1个低进位cin,2个输出变量,分别是本位sum和向高进位cout。
在QuartusllII利用基本门电路中设计一位带进位加法器,通过该课程设计理解和掌握可编程逻辑器件PLD的应用和设计。
主要目的就是了解和学习这门新技术的原理与应用,让同学们尽快掌握使用EDA进行设计的方法,为后续课程的学习打下良好的基础。
二、概要设计
2.1加法器的基本概念
在数字电子系统领域,存在三种基本的器件类型:
存储器、微处理器和逻辑器件。
存储器用来存储随机信息,如数据表或数据库的内容。
微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。
逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、时序和控制操作、以及系统运行所需要的所有其它功能。
加法器是微处理器中最基本、最重要的模块,不仅在ALU、乘法器、除法器中均包含加法器模块,而程序指针PC的自加、跳转指令的目标地址计算以及访存地址的获得也需要加法器来完成。
从指令执行频率上看,算术逻辑单元、程序计数器、协处理器是CPU中使用频率最多的模块。
加法器是为了实现加法的,即是产生数的和的装置。
加数和被加数为输入,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。
常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。
对于1位的二进制加法,相关的有五个的量:
被加数ain,被加数bin,前一位的进位cin,此位二数相加的和sum,此位二数相加产生的进位cout。
前三个量为输入量,后两个量为输出量,五个量均为1位。
2.2EDA概述
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
2.3QuartusllII软件概述
2.4一位全加器设计流程
2.4.1一位全加器的基本概述
全加器是一个能对两个一位二进制数及来自低位的“进位”进行相加,产生本位“和”及向高位“进位”的逻辑电路。
该电路有3个输入变量,分别是2个加数ain、bin和1个低进位cin,2个输出变量,分别是本位sum和向高进位cout。
一位全加器(FA)的逻辑表达式为:
sum=ain⊕bin⊕cin
cout=ainbin+bincin+aincin
其中ain,bin为要相加的数,cin为进位输入;sum为和,cout是进位输出;
2.4.2一位全加器的原理图
根据一位全加器的运算法则可得知一位全加器的真值表,通过真值表可写出输出函数表达式:
sum=ain⊕bin⊕cin
cout=ainbin+bincin+aincin
由以上表达式可得出相应的逻辑电路如图所示。
三、详细设计
3.1为本项工程设计建立文件夹
为本项设计的文件夹取名为杨雪婷路径为E:
\杨雪婷
3.2输入设计项目和存盘
原理图编辑输入流程如下:
(1)打开QuartusII,选菜单File—>New,在弹出的对话框中选择DeviceDesignFiles页的原理图文件编辑输入项BlockDiagram/SchematicFile,按OK按钮后将打开原理图编辑窗口。
(2)在编辑窗口中的任何一个位置上右击鼠标,将出现快捷菜单,选择其中的输入元件项Insert—>Symbol,于是将弹出输入元件的对话框。
(3)单击按钮“…”,找到基本元件库路径项,选中需要的元件,单击“打开”按钮,此元件即显示在窗口中,然后单击Symbol窗口的OK按钮,即可将元件and2、not、xnor和输入输出引脚input和output分别调入原理图编辑窗口中。
然后分别在input和output的PINNAME上双击使其变黑色,再用键盘分别输入各引脚名:
a,b,co,so
(4)选择菜单File—>SaveAs,选择刚才为自己的工程建立的目录E:
\杨雪婷yangxueting,将已设计好的原理图文件取名为yangxueting1(注意默认的后缀是.bdf),并存盘在此文件夹内。
3.3将设计项目设置成可调用的元件
为了构成全加器的顶层设计,必须将以上设计的半加器yangxueting1.bdf设置成可调用的元件。
在打开半加器原理图文件yangxueting1.bdf的情况下,选择菜单File—>Create/Update—>CreateSymbolFileforCurrentFile项,即可将当前文件yangxueting.bdf变成一个文件符号存盘,以待在高层次设计中调用。
半加器yangxueting2.bdf
3.4设计全加器顶层文件
为了建立全加器的顶层文件,必须再打开一个原理图编辑窗口,方法同前,即再次选择菜单File—>New—>BlockDiagram/SchematicFile。
在新打开的原理图编辑窗口双击鼠标,选择yangxueting1.bdf元件所在的路径E:
\杨雪婷yangxueting,调出元件,并连接好全加器电路图。
全加器yangxueting1.bdf
3.5创建工程
在此要利用NewProjectWizard工具选项创建此设计工程,即令顶层设计yangxueting.vhd为工程,并设定此工程的一些相关信息,如工程名、目标器件、综合器、仿真器等。
(1)打开建立新工程管理窗口。
选择File—>NewProjectWizard命令,即弹出“工程设置”对话框(如图所示
(2)将设计文件加入工程
单击下方的Next按钮,在弹出的对话框中单击File栏的按钮,将与工程相关的所有文件加入进此工程。
方法有两种:
①单击AddAll按钮,将设定的工程目录中的所有文件加入到工程文件栏中;②单击“Add…”按钮,从工程目录中选出相关的文件(如图所示)。
(3)选择仿真器和综合器类型
单击Next按钮,在弹出的窗口选择仿真器和综合器类型,在此都选择默认项“NONE”。
(4)选择目标芯片
单击Next按钮,选择目标芯片。
首先在Family栏选芯片系列,在此选Cyclone系列,并在此栏下单击Yes按钮,即选择一确定目标器件。
再次单击Next按钮,选择此系列的具体芯片EP1C12Q240C8。
分别选择Package为PQFP;Pin为240和Speed为8(如图所示)。
(5)工具设置
单击Next按钮后,弹出的下一个窗口是EDA工具设置窗口:
EDAToolSettings。
此窗口有三项选择:
①EDAdesignentry/synthesistool,用于选择输入的类型和综合工具;②EDAsimulationtool,用于选择仿真工具;③EDAtiminganalysistool,用于选择时序分析工具。
(6)结束设置。
再单击Next按钮后即弹出“工程设计统计”窗口,最后点击Finish按钮,即已设定好此工程。
3.6编译前设置
(1)选择FPGA目标芯片。
步骤:
选择Assignments菜单中的Settings项,在弹出的对话框中选择Category项下Device。
首先选择目标芯片为EP1C12Q240C8。
(2)选择配置器件的工作方式。
单击Device&PinOptions按钮,进入选择窗口,这将弹出Device&PinOptions窗口,首先选择General项(如图所示)。
(3)选择配置器件和编程方式
选中Configuration页,在下方的Generatecompressedbitstreams处选择打钩,就能产生于EPCS的POF压缩配置文件。
在Configuration选项页,选择配置器件为EPCS1,其配置模式可选择ActiveSerial。
(4)选择目标器件闲置引脚的状态。
选择窗口的UnusedPins项,此页中可根据实际需要选择目标器件闲置引脚的状态,可选择为输入状态;或输出状态;或输出不定状态;或不做任何选择。
3.7全程编译
选择Processing菜单的StartCompilation项,启动全程编译
3.8时序仿真
(1)打开波形编辑器。
选择菜单File中的New项,在New窗口中选择OtherFiles中的VectorWaveformFile,单击OK按钮,即出现空白的波形编辑器
(2)设置仿真时间区域。
对于时序仿真来说,将仿真时间轴设置在一个合理的时间区域上十分重要。
通常设置的时间按范围在数十微妙内。
在Edit菜单中选择EndTime项,在弹出的窗口中的Time栏处输入50,单位选“us”,整个仿真域的时间即设定为50us,单击OK按钮,结束设置。
(3)波形文件存盘。
选择File中的Saveas项,命名为yangxueting.vwf的波形文件存入文件夹E:
\杨雪婷\yangxueting中。
(4)将工程yangxueting的端口信号节点选入波形编辑器
方法是首先选择View菜单中UtilityWindows项的NodeFinder选项。
在弹出的对话框中选Pin:
all,然后单击List按钮,于是在下方的NodesFound窗口中出现设计中的yangxueting工程的所有端口引脚名。
(5)编辑输入波形
单击时钟信号使之变成蓝色条,再单击左列的时钟设置键,在Clock窗口中设置时钟周期。
(6)仿真器参数设置。
选择菜单Assignment中的Settings,在Settings窗口下选择Category—>SimulatorSettings,在右侧的Simulationmode项下选择Timing,即选择时序仿真,并选择仿真激励文件名yangxueting.vwf。
选择SimulationOptions栏,确认选定Simulationcoveragereporting;毛刺检测Glitchdetection为1ns宽度;选中Runsimulationuntilallvectorstimuliareused全程仿真
。
(7)启动仿真器。
菜单Processing项下选择StartSimulation,直到Simulationwassuccessful,仿真结束。
(8)观察仿真结果。
五、收获及体会
本设计主要设计一位加法器,然而计算机内部都是多位加法器。
只是从简单层面上设计加法器的功能,而没有考虑到加法器的性能从上选择实验。
虽然在设计上没有实现,但是我们在理论上分析和讨论不同的加法器选择不同门电路在性能的差别。
从而得知在不同的计算机内部会采用不同的加法器机制,在具体设计时需要根据具体的应用环境和实现工艺确定采用哪一种加法器。
加法器的性能可以从延迟、功耗、面积等方面进行分析。
具体分析的方法有三种:
是通过门级模拟器来估算加法器的性能;二是采用标准单元库对每种加法器进行逻辑综合和布局布线来设计电路,然后从版图中反提取电路参数,针对其参数进行电路的模拟,从中得出各种加法器的比较结果;三是通过物理实现在芯片上实现各种加法器,然后通过实际测量进行比较。
逐位进位加法器,在每一位的计算时,都在等待前一位的进位。
那么不妨预先考虑进位输入的所有可能,对于二进制加法来说,就是0与1两种可能,并提前计算出若干位针对这两种可能性的结果。
等到前一位的进位来到时,可以通过一个双路开关选出输出结果。
这就是进位选择加法器的思想。
可编程逻辑的价值在于其缩短电子产品制造商开发周期,以及帮助他们更快地将产品推向市场的能力。
随着PLD供应商继续致力于在可编程逻辑器件中集成更多的功能、降低其成本并提高能够节约时间的IP核心的可用性,可编程逻辑一定会在数字设计人员中进一步普及开来。
培养学生正确的设计思想,理论联系实际的学习态度;培养学生综合运用所学计算机组成原理知识,分析和解决工程技术问题的能力。
训练提高学生查阅资料,运用计算机辅助工具绘制原理图,阅读原理图以及对原理图进行功能模拟的能力;提高学生对计算机的各组成部分的理解,进一步深入认识计算机系统,强化学生的系统意识;提高学生的动手能力。
PLD是电子设计领域中最具活力和发展前途的一项技术。
PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的TTL74序列电路,都可以用PLD来实现。
在PCB完成以后,还可以利用PLD的在线修改功能,随时修改设计而不必改动硬件电路。
PLD技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。
PLD设计依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言(HDL)为系统逻辑描述手段完成的设计文件,并自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件FPGA/CPLD,实现既定的电子电路设计功能。
硬件描述语言在PLD设计中占据极其重要的位置,目前国际上流行的硬件描述语言主要有VHDL和VerilogHDL。
六、参考文献
参考文献
[1]计算机组成原理课程设计.山东大学出版社.刘荣兴,王祖强,殷晓峰.[2005].
[2]数字逻辑(第二版).华中科技大学出版社.欧阳星明.[2008].
[3]32位并行乘法器的研究与设计[D].西安微电子技术研究所.许琪.[2002].
[4]计算机组成原理(第二版).高等教育出版社.唐朔飞.[2005]..
[6]PLD逻辑设计实务.清华大学出版社.邱耀煌[2002].
[7]ComputerArchitectureAQuantitativeApproach.Znd,Edition.(eBook).
7、附录
一位全加器原理生成代码
HEADER
{
VERSION=1;
TIME_UNIT=ns;
DATA_OFFSET=0.0;
DATA_DURATION=50000.0;
SIMULATION_TIME=0.0;
GRID_PHASE=0.0;
GRID_PERIOD=10.0;
GRID_DUTY_CYCLE=50;
}
SIGNAL("bin")
{
VALUE_TYPE=NINE_LEVEL_BIT;
SIGNAL_TYPE=SINGLE_BIT;
WIDTH=1;
LSB_INDEX=-1;
DIRECTION=INPUT;
PARENT="";
}
SIGNAL("cin")
{
VALUE_TYPE=NINE_LEVEL_BIT;
SIGNAL_TYPE=SINGLE_BIT;
WIDTH=1;
LSB_INDEX=-1;
DIRECTION=INPUT;
PARENT="";
}
SIGNAL("cout")
{
VALUE_TYPE=NINE_LEVEL_BIT;
SI