微程序控制的运算器设计.docx
《微程序控制的运算器设计.docx》由会员分享,可在线阅读,更多相关《微程序控制的运算器设计.docx(18页珍藏版)》请在冰点文库上搜索。
微程序控制的运算器设计
山东英才学院
课程设计(论文)
设计题目:
微程序控制的运算器设计
课程名称:
计算机组成原理
院(系)部:
计算机电子信息工程学院
****************
班级:
11级计算机本科一班
专业:
计算机科学与技术
成绩:
指导教师:
***
设计时间:
山东英才学院教务处制
二O年月
微程序控制的运算器设计
摘要在进行运算器设计的时候,通过电脑ispLSI1032Esystem软件来实现虚拟的运算,利用层次化的设计方法首先设计三个寄存器JCQ、一个八位全加器BWQJQ、一个计数器JSQ。
然后利用寄存器进行存储数据,通过全加器进行运算,计数器进行输入计数脉冲cp信号,在电脑绘制好电路以后,通过对实验设备的调试和运行,选择几个数据进行加法运算,进而验证其正确性,达到自己的理想效果。
AbstractWhenperformingarithmeticunitdesignedbycomputerispLSI1032Esystemtoimplementvirtualcomputingsoftware,theuseofhierarchicaldesignmethodfirstdesignthreeregistersJCQ,aneightfulladderBWQJQ,acounterJSQ.Thenuseregisterstostoredataforcomputingthroughfulladder,cpcountpulsecounterinputsignal,afterdrawingagoodcircuitinthecomputer,throughtocommissioningandoperationoflaboratoryequipment,selectseveraldataadder,andthenverifythecorrectresistance,toachievetheirdesiredeffect.
运算器设计
一、ispLSI1032E简介
美国Lattice公司是世界上第一片GAL的制造者.近年来,该公司在CPLD的研制方面也取得了很大进展,特别是1991年率先推出了在系统可编程技术,开拓了新一代的PLD.目前,Lattice公司生产的CPLD主要有:
1000(1000E),2000,3000,5000,6000,8000等六大系列.其中1000系列为基本系列,2000系列为高速系列,6000系列为高密度系列,其规模可达25000门,同时内部带有寄存器/计数器模块和4Kbit的先入先出寄存器或RAM,208脚的封装.8000系列是最近推出的高密度高达5万门.
1.Lattice公司的ispLSI1032E
ispLSI1000E是ispLSI1000的增强型,ispLSI1032E系列器件增加了2个新的全局输出使能(ispLSI1016E只增加一个)和可编程的快速率输出控制.
1000系列中ispLSI1032E是电可擦写的CMOS器件,其芯片84引脚PLCC封装,其中72个为I/O引脚,集成密度6000门,每片含有192各触发器,引教到引脚的延迟时间10纳秒.
2.ispLSI1032E的主要性能指标与使用环境
性能指标---主要指速度,功耗.ispLSI1032E—70LJ84表示最大工作速度70MHz,低功耗,84脚PLCC封装,商业级的ispLSI1032E芯片.
二、实验设备的结构
图1.实验平台的结构框图
如图1,该实验平台主要有两部分组成:
⑴可编程ispLSI1032E系统,就其结构上讲包括ispLSI1032E芯片、开关、LED(发光二极管)、时钟及复位键等;⑵单片机系统,包括单片机、存储器、显示及键盘等。
1.可编程ispLSI1032E系统
①输入装置
开关:
K15―8和K7―0分别接在1032E的33―26脚与60―53脚。
时钟信号:
连续时钟发生器经跨接插座J2后连接在1032E的20脚,占空比1:
1;单脉冲发生器接在1032E的73脚,按一下脉冲键,便产生一个宽度为20ms的负脉冲。
复位键RET2:
接在1032E的24脚上,按此键对1032E内部的所有电路进行复位。
②输出装置
状态指示灯:
由L15―0、LED15―0共32只发光二极管组成。
他们分别连接到1032E的41―34,52―45和10―3,83―76管脚;在分调模式下,L15―0不能使用。
2.单片机系统
①输入设置
数字键:
0-F共16个,键入代码16进制;下一单元键;上一单元键;选体键;单脉冲键。
存储器:
单元位数8位,容量256×8。
3#RAM用作程序存储器,分调时,通过键盘写入、读出数据;统调时,连入1032E系统。
2#ROM,1#ROM控制存储器,分调时,是两个独立的随机存储器,通过键盘写入、读出数据;统调时,为只读存储器连入1032E系统。
②数字显示
五位数字键:
最高位显示体号,中间两位某存储器单元地址;低两位该地址下单元内容。
复位键RET1
该实验平台也主要两种工作模式:
在计算机组成原理课程中,对于较复杂的课程设计,往往涉及的部件较多,部件与部件之间的连线较多,操作复杂,这给课程设计的调试及验证过程带来了很大的困难。
为了便于调试,在实验系统平台上设有一开关,确定了实验系统平台的两种工作模式。
当开关置于上方时,实验系统平台处于统调状态;当开关置于下方时,实验系统平台处于分调状态。
当实验系统处于分调工作模式时,这时实验系统平台被分成独立的两部分即可编程ispLSI1032E系统和单片机系统,这两部分在数据通路上完全被阻断,可以独立进行操作。
这时可编程ispLSI1032E系统可适用于数字逻辑系统的所有实验及课程设计,例如:
与计算机组成原理课程设计有关的部件,计数器、译码器、节拍发生器、堆栈、全加器、串行进位加法器、并行进位加法器,多路开关等都可方便进行设计,并通过下载线接收计算机的下载信息,并固化在isp1032E芯片中,利用外围电路进行调试或验证isp1032E中的逻辑功能。
当实验系统处于统调工作模式时,单片机系统向课程设计提供两种存储器,一种是微指令控制存储器;一种是指令与数据存储器,可以通过键盘方便的将编制好的微程序写入微指令控制存储器;将编制好的程序写入指令存储器,从而可以进行一些较复杂的组成原理实验例如微程序控制器、CPU、一个简单计算机的设计等。
在这种课程设计中,可编程isp1032E系统和单片机系统通过数据通路有机连接为一个整体,给较复杂的组成原理实验的设计、调试及功能测试提供了硬件条件
三、设计要求
设某计算机运算器,其中ALU为8位的加法器,具有加法和加1功能,两操作数由八位寄存器R0、R1提供,其结果放入R2中,具体何种操作可由微命令任意设定。
(1)运算器的结构
图2.运算器的结构图
(2)微程序控制器的结构图
当模式开关置于统调时,控制存储器ROM2#、ROM1#、IR15-8、IR7-0、L15-8、L7-0、、CPIR、A0~A7均连入1032E系统中。
其中,自行设计的微程序计数PC向控制存储器提供8位微地址,在控存读信号的作用下,读出一条长16位的微指令代码,并在打入命令CPIR的作用下,送入IR15-8、IR7-0。
L15-8、L7-0用于显示微指令寄存器IR15-8、IR7-0的内容。
每当按一次脉冲键便产生一个负脉冲,该脉冲的作用是:
1.作为读控存的命令。
2.负脉冲当作CPIR将读出的微指令打入微指令寄存器IR。
3.负脉冲的上升沿使PC+1形成下一条微指令的地址。
4.负脉冲反相后的上升沿作为寄存器打入脉冲。
(3)微指令格式
字段分配:
IR15-IR8:
定义为8位操作数;
IR7:
为1,C0=1;为0C0=0;
IR6:
为1,产生CPR0;
IR5:
为1,产生CPR1;
IR4:
为1,产生CPR2;
(4)编写微指令
实验要求:
用二进制代码写出下面3条指令的微程序:
例如55+AAR2执行过程55R0AAR1R0+R1R2结束
0101010101000000
1010101000100000
0000000000010000
(5)调试步骤
首先,将模式开关置于统调,涉及运算器和uPC逻辑线路并下载至1032E中;再将模式开关置于分调,键入微指令十六进制代码至空存ROM2#、ROM1#中,微指令从0号单元开始存放。
然后,将模式开关置于统调,按一次RET2键将uPC置零,每按一次脉冲键读出一条微指令。
当微程序执行完时检查并记录结果。
四、层次化的设计方法
层次化设计是指将整个设计分为顶层电路和底层电路,底层电路也可以包括次底层电路.其方法就是根据系统中实现的功能不同而将其划分为多个部分每部分定义一个模块,描述整个设计中各部分电路(模块)之间接口的关系的电路,称为顶层电路.实现各模块中逻辑关系的电路称为底层电路.上一层的模块还可以由下一层的模块来描述.
(1)底层电路一---八位全加器的设计
在项目管理器窗口中,打开菜单中的Source项,选择new命令,在弹出对话框中选择Schematic,并按OK随即弹出一个对话框,要求输入原理图名称,只要在文件名栏输入如:
Add8.sch并按保存按钮即进入原理图编辑窗口。
将如下八位全加器原理图输入即可。
图4.全加器原理图
当将八位全加器原理图编辑完成并确认没有错误之后,在原理图编辑窗口中,打开File菜单,点击其中的MatchingSymbol菜单项,此时,便生成了新的Add8元器件,出现在Local库中。
如图所示:
图5.全加器Add8电子元器件
(2)底层电路二---八位计数器的设计
在数字电路中,把记忆输入cp脉冲个数的操作叫做计数,能实现技术操作的电子电路称为计数器。
主要特点:
1.一般的说,计数器除了输入计数脉冲cp信号之外,很少有另外的输入信号,其输出通常也都实现态的函数,而输入计数脉冲CP是当作触发器的时钟信号对待的。
2.从电路组成看,其主要组成单元是时钟触发器。
计数就是计CP脉冲的个数,每来一个CP脉冲,计数器就加一个1,随着输入计数脉冲个数的增加,计数器中的数值也增大,当计数器计满时再来CP脉冲,计数器归零的同时给高位进位.根据二进制递增计数规律。
以三位二进制加法计数器为例,如其状态图如图6所示.
a)选择触发器
D触发器,凡是具有置0置1功能的电路,都叫D触发器
D触发器的特性表
特性方程:
Qn+1=DCP上升沿时刻有效
b)求时钟方程
由于要求构成的是异步计数器,显然各个触发器的时钟信号都应使用输入计数脉冲CP.
c)求输出方程C=Q2nQ1nQ0n
d)求状态方程
CP
根据状态图的规定,可画出异步三位二进制计数器的原理图,
图7.异步三位二进制计数器的原理图
同理,八位二进制计数器原理图如下:
图8.八位二进制计数器原理图
八位二进制计数器电子元器件生成,如图9:
图9.八位二进制计数器电子元器件
(3)底层电路二---八位寄存器的设计
寄存器:
具有寄存功能的电路。
寄存器是一种基本的时序电路,在各种数字系统中几乎无所不在,因为任何数字系统,都必须把需要处理的数据,代码寄存器来,以便随时取用。
特点:
(1)具有存储功能的触发器组合构成。
(2)任务是暂时存储二进制数据或代码,部队存储内容进行处理,逻辑功能比较单一。
本实验要求设计一个8位的寄存器,其中d7—d0、q7—q0分别为寄存器的输入和输出,cp为寄存器的时钟脉冲。
图电路为8位寄存器的线路原理图。
图10.八位寄存器的线路原理图
八位寄存器电子元器件生成,如图11:
图11.八位寄存器的电子元器件
五、实验步骤
1.创建新项目;
(1)启动ispEXPERTSYSTEM;在Windows98下,选LatticeSemiconductor项的ispEXPERTSYSTEM,单击后进入ispEXPERTSYSTEMProjectNavigator窗口。
(2)建立新项目,建立新项目的方法是:
选择项目管理其窗口中上排的菜单选项用鼠标单击File菜单下的NewProject···,弹出CreateNewProject对话框,首先从最上部的小窗口选择驱动器(假设使用D盘),然后用鼠标左键单击建“新文件夹”按钮,在对话框的提示栏中键入USER,并选择OK,这样就在D盘的根目录下建立了一个“USER”文件夹.
(3)在“文件名”窗口键入项目名“wcxkzysq.syn”以取代原来默认的New.syn,按“打开”确认,新项目建立完毕并自动进入项目管理器。
2.选择虚拟器件;
进入项目管理器之后,在其左边窗口可以看到虚拟器件:
VirtualDevice。
现在需要选择使用的具体目标器件,双击VirtualDevice,弹出ChooseDevice对话框。
我们的实验平台所用的器件为ispLSI1032E,则可在Devicefamily窗口中选择ispLSI1000(1000系列),再在Device窗口中按动Device器件目录中滚动条找到ispLSI1032E-70LJ84并选择OK即可。
如下图所示:
3.设计原理图输入;
在ispEXPERT中如何使用原理图输入的方法进行设计,主要步骤如下:
(1)原理图命名
在项目管理器窗口下,选择总菜单Source项下的New选项,此时将出现NewSource对话框。
选择其中的Schematic(原理图),并单击ok确认。
接着在随后弹出的对话框的“文件名(N)”项下键入原图名wcxkzysq.sch以取代原来的*.sch,并选择保存,即进入原理图编辑窗口。
(2)在原理图编辑器的图纸上添加器件,如附录一。
选择器件的方法:
在块接工具条中,点击符号打开器件库(或选择Add菜单下的Symbol),器件库的上部窗口Library表示器件的类别,下部窗口Symbol表示该类别所对应的器件。
本设计中先从Library中找到Add8,count8,Register8等电子元器件。
(3)添加连线;
在快捷工具条中点击画线按钮(或选择Add菜单中的Wire项),进入画线状态,单击左键定义连线的始端,将光标移至县的另一端,单击左键便可定义这根线。
在连完一根线之后,单击右键就可以结束这一连线,开始下一根线,依次完成全部的连线。
(4)为信号命名;
单击快捷工具栏中的信号命名按钮(或选择Add菜单下的NetName项),这时窗口的下方出现命令:
NetName-EnterName=,在此键入“uir8”并按回车键,连线名“uir8”会粘在鼠标的光标上,将十字光标的中心点移至该信号线的连线头上,单击鼠标即可。
用同样的方法在其余连线上加上信号名。
(5)添加I/OMarkers;
单击快捷工具按钮(或选择菜单下的I/OMarkers项),在弹出的对话框中选择“input”,在将鼠标的光标移至输入信号的连线末端(位于连线和连线名之间),并单击左键,这是会出现一个输入I/OMarkers框,标记里面是连线名,用同样的方法分别为其它加上输入I/OMarkers。
至此,原理图就全部输入完毕。
存盘退出即可。
(6)引脚所定
锁定ispLSI器件引脚方法:
单击快捷工具按钮(或在菜单条上选择Add项中的SymbolAttribute命令),这是会出现一个SymbolAttributeEditor对话框。
单击需要定义属性的输出I/OPad,对话框里会出现一系列可供选择的属性,选中“SynarioPin”属性,并且把文本框中的“*”替换成所需要的管脚号如‘34’,然后用鼠标在图纸的任意位置单击一下,I/OPad小方框中的“*”便被‘34’代替,(注意:
不同的器件,其各引脚的标号定义和功能都是不一样的,在定义管脚时请查阅ispLSI1032E的引脚标号和功能)。
单击其余需要锁定引脚的I/OPad,重复上述步骤,完成全部引脚锁定工作,最后选择File菜单下的Save选项存盘。
4.源文件编译;
源文件建立完毕之后,下一步是执行每一个源文件所对应的处理过程。
在主项目管理器中选择不同的源文件分别进行编译。
编译结束后如果出现两个绿色的勾,说明你的设计完全正确。
如果出现的是黄色的‘!
’,说明设计中有“Warnings”出现,一般情况下不会有问题。
如果出现的是红色的“×”,则说明设计中存在着严重的错误,必须对照automake.log报告仔细分析,找出设计中的错误予以排除,然后重新编译。
5.设计项目适配;
所谓适配就是将以上完成的逻辑设计针对以选定的器件,在EDA软件的帮助下,形成能写进芯片的熔丝图文件(*.jed),本例中也就是将设计项目适配到isp1032E中去。
这是一个将逻辑设计转化成为适合于具体isp器件的设计过程。
通过适配,将生成标准的JED熔丝图文件,以供编程到具体的芯片中之用。
适配的具体步骤是:
(1)基本参数设定;
对于以选择的器件ispLSI1032E。
选用鼠标左键单击右窗栏的(wcxkzq.sch)项,使其变深色,再单击右边栏的CompilerSchematic。
此时,栏下部的Properties…按钮会变为深色,单击此按钮后会跳出一窗口,其中的各有关项设定如下:
①“ISP”设为True,即在系统可编程的3条编程下载线定义为专用下载口线,不可用为第二功能。
②“ISPExceptY2”设为False,其功能同上。
③“Pullup”设为True,其功能可从“Help”键中得到。
④“Security”设为True,即加密允许。
⑤点击Close退出。
(2)适配控制属性参数设定。
用鼠标单击右窗栏的ispLSI1032E-70LJ84项,使其变深色,再单击右边栏的FitDesign。
与上相同,栏下部的Properties…按钮会变为深色,单击此按钮后会跳出一窗口。
请根据其中的有关的内容,对Properties窗口中的各有关项目进行设定,为方便设计,在这里也可点击Defaults键使各项取默认项。
点击Close退出。
用鼠标单击左边窗口的ispLSI1032E-70LJ84项,使其变深色,然后双击右边栏的FitDesign,使项目管理器完成对源文件的编译、连接、和逻辑分割,最后将所有设计的逻辑进行适配或者说映射到所选择的PLD器件中去。
适配结束后,如果通不过,在有关项目上会出现红色的叉,并弹出automake.log报告,找出问题的所在,重新进行适配运行,直到成功。
如果出现黄色的惊叹号,这也算成功。
但您不妨看一下automake.log报告,了解一下warnings产生的原因。
6.编程下载;
所谓编程下载就是将已完成的逻辑设计“烧录”到具体器件中去。
其基本步骤如下:
(1)按照微机组成原理实验系统的使用说明,将实验系统的工作电源连接好,再使用专用下载电缆将实验系统和微机连接好。
(2)用鼠标双击ISPDaisyChainDownload编程下载项目,此时弹出一窗口“LSCISPDaisyChainDownloadVersion7.1”。
(3)用鼠标点击菜单中的Configuration项,并选择ScanBoard,或单击窗口工具栏中Scan按钮。
如果电路板连接无误,这时电路板上的ISP器件的型号应当出现在菊花连下载窗口中。
(4)在Operation下拉框中,选择pv选项。
(5)单击Browse按钮,将弹出一个对话框,在该对话框中选择在上面设计中生成的JED文件add.jed,并按“打开”按钮退出。
此时,点击Command菜单项目下的RunOperation,或直接点击工具栏上的按钮(上面有一个跑步的小人),下载软件机会将JED文件以串行方式烧写到ISP器件中去。
如果下载成功,会出现“PASS”字样,然后在实验箱上进行验证,如果硬件检查结果正确则设计全部完成。
7.在实验箱上进行逻辑验证
(1)将模式开关置于分调,通过右下脚的小键盘,键入微指令十六进制代码至空存ROM2#、ROM1#中,微指令从0号单元开始存放。
代码如下:
0101010101000000
1010101000100000
0000000000010000
(2)将模式开关置于统调,按一次RET2键将uPC置零,每按一次脉冲键读出一条微指令,根据状态指示灯验证是否得到预期的结果。
附录一:
微程序控制的运算器设计原理图
参考资料
[1]唐朔飞.计算机组成原理(第二版)[M].北京:
高等教育出版社,2000.
[2]白中英,等.计算机组成原理(第二版)[M].3版.北京:
科学出版社,2002.