微机组成原理与接口第3章.docx
- 文档编号:5140616
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:32
- 大小:623.33KB
微机组成原理与接口第3章.docx
《微机组成原理与接口第3章.docx》由会员分享,可在线阅读,更多相关《微机组成原理与接口第3章.docx(32页珍藏版)》请在冰点文库上搜索。
微机组成原理与接口第3章
第3章EDA软件应用基础
3.1ispEXPERTSYSTEM安装方法
3.1.1ispEXPERT7.1软件介绍
ispEXPERT7.1是Lattice公司的EDA工具,支持原理图、ABEL-HDL、VHDL和Verilog-HDL输入方法,原理图和硬件描述语言可以混合设计,具备软件逻辑仿真功能;ispEXPERT7.1支持Lattice公司全系列的isp器件,是进行数字系统自动化设计较为理想的工作平台。
3.1.2ispEXPERT7.1的安装
将包含ispEXPERT7.1软件的光盘插入光盘驱动器(设光盘驱动器号为E:
),运行E:
\setup.exe后,出现图1-1所示的安装界面,在四个安装选项中选择“InstallLatticeSoftware”项,按屏幕提示完成ispEXPERTCompiler的安装即可。
3.1.3授权文件的申请
ispEXPERT7.1是Lattice公司的免费软件,但运行时需要到Lattice公司的网站()进行注册,注册成功后可以获得Lattice公司给予的授权文件(License),注册时需要填入您所用计算机C盘的序列号及您的电子邮件地址(接收Licese),收到Lattice给您的授权文件后,将电子邮件内容“|”号开始到最后的部分保存到磁盘文件中,文件名为LICENSE.DAT。
将LICENSE.DAT复制到指定的目录下即可。
获取C盘序列号的方法是:
在DOS环境下输入命令:
DIRC:
/P
则屏幕上方第二行有如下格式的文字:
VolumeSerialNumberisXXXX-XXXX
其中XXXX-XXXX即为C盘的序列号。
图1-1ispEXPERTSYSTEM的安装界面
选择该项安装
3.2ispEXPERT结构概述
较早的ispSynarioSystem和LATTICE最近推出的ispEXPERT在功能和使用方法上十分相似。
ispEXPERTSystem的逻辑描述语言是DataI/O公司早已成熟的ABEL,它的特点是易学易用,特别适合初学者使用。
ispEXPERTSystem是一套完整的EDA逻辑设计系统,它支持Lattice公司的ispLSI、pLSI、ispGAL、ispGDS等器件的设计、编译、逻辑模拟及适配。
该软件系统包括了DataI/O公司的Synario输入软件的全部功能,其中包括原理图输入法和ABEL硬件描述语言输入法。
系统具有自动逻辑化简和优化功能,并且还包括了功能模拟器和波形显示器。
DataI/O公司强有力的ProjectNavigator(项目管理器)为设计和调试提供了很大的方便。
ispEXPERT系统的混合式设计输入方式允许在同一器件的设计中同时采用原理图、高级语言、真值表和状态图输入形式。
ispEXPERT设计工具还具有将多个ABEL设计文件编译成高密度PLD设计的能力,由此开拓出一条将多个低密度PLD计升级成为高密度PLD设计的捷径。
ispEXPERT卓越的设计能力及其灵活多变的设计库,通过友好的Windows环境展现出来。
ispEXPERT的ProjectNavigator(项目管理器,其设计界面示于图3-3-1)将各种源文件联系在一起,以便于跟踪软件运行流程,编译中还将产生各种不同编译对象详尽的编译报告,便于设计者及时了解和把握自己的设计情况。
Lattice的ispDS+适配软件与ispEXPERT紧密结合,形成多种独具特色的功能,即多层次逻辑综合,自动逻辑分割与自动器件映射。
设计输入通过ispEXPERT软件包完成后,利用Lattice公司的ispDS+适配软件(Fitter)进行多层次的逻辑综合,能够将逻辑映射到设计者选中的器件中去,自动完成布层与布线,并生成编程所需的熔丝图文件*.jed,同时针对器件的性能及其利用率进行设计优化。
图3-1是ispEXPERTToispDS+逻辑设计流程图。
图3-1ispEXPERTToispDS逻辑实际流程图
3.3ispEXPERT软件的使用
本节通过四个设计实例系统地介绍ispEXPERT软件的使用方法。
目的是通过该节的学习,让同学们对ispEXPERT软件有一定的了解并基本掌握其使用方法,为应用该软件进行计算机组成原理实验奠定良好的基础。
3.3.1一位全加器的设计
下面我们以一位全加器的设计为例,详细讲述ispEXPERT的使用方法。
这里假设在WINDOWS95/98上已正确安装了ispExpert7.1软件。
本例题的设计要求是:
用门电路设计一个一位二进制全加器。
两个加数为a、b,低位进位为ci,本位和为s,向高位进位为co。
1、创建新项目
1)启动Expert(或Synario)。
(以下全部按ispEXPERT为例讲解)在Windows98下,选LatticeSemiconductor项的ispExpertSystem,单击后即进入ispExpertSystemProjectNavigator(图3-2)窗口。
图3-2ispEXPERT项目管理器窗口
2)建立新项目。
Expert将每一项数字系统设计作为一个项目(PROJECT)来对待,在该项目下,包括设计者设计的全部源文件和这些源文件对应的处理过程。
在项目管理器窗口中,左半窗口列出的文件项目是整个设计的各项源文件,它表示设计项目的各层次结构,称为源文件窗口。
而右半窗口所列的项目分别对应在源文件窗口(左边窗口)中选中的某一源文件的处理过程与结果,即当鼠标点中左窗某一文件时,右窗即显示该文件的所有处理过程及结果(为使用方便,最好为每一个项目建立一个单独的文件夹)。
图3-3ispEXPERT建立新项目窗口
建立新项目的方法是:
选择项目管理器窗口中上排的菜单选项,用鼠标单击File菜单下的NewProject...,弹出CreateNewProject对话框(图3-3),首先从最上部的小窗口中选择驱动器(假设使用D盘),然后用鼠标左键单击建“新文件夹”按钮,在对话框的提示栏中键入USER,并选择OK,这样就在D盘的根目录下建立了一个“USER”文件夹。
在商业版的ispExpert中,可以在Projecttype选项中选择其他语言输入方式,如VHDL,或VERILOG-HDL文本输入方式。
3)在“文件名”窗口键入项目名add.syn以取代原来默认的New.syn,按“保存”确认,新项目建立完毕并自动进入项目管理器。
2、选择器件
图3-4EXPERT元件选择窗
进入项目管理器之后,在其左边窗口可以看到虚设源文件和虚拟器件:
Unitiled和VirtualDevice。
现需给项目命名和选定使用的具体目标器件,如ispLSI1016或ispLSI1032E或isp1048E/C等等。
1、双击Untitled,在Title文本对话框中键入AddProject(也可取其它的名字),并选择OK。
2、双击VirtualDevice,弹出ChooseDevice对话框(如图3-4)。
假设所用器件为ispLSI1032E,则可在Devicefamily窗口中择择ispLSI1000(1000系列),再在Device窗口中按动Device器件目录中的滚动条找到ispLSI1032E-70LJ84并选择OK即可。
器件选择这一步骤也可放在最后逻辑仿真成功后再进行。
甚至如果设计的目的只是作一些逻辑功能的模拟,就根本不必进行此项选择。
因为不进行适配也能进行一切必要的功能模拟,还包括一定的实时仿真模拟。
3、设计输入
1)原理图输入。
ISPEXPERT的设计输入方法有三种:
原理图、硬件描述语言和状态图。
原理图输入法的优点是逻辑设计直观、易懂、综合效率高,特别是对初学者来说,这是一种较好的方法。
原理图输入的主要步骤如下:
图3-5新文件属性选择
(1)原理图命名。
在项目管理器窗口下,选择总菜单Source项下的New...选项,此时将出现NewSource对话框(图3-5)。
选择其中的Schematic(原理图),并单击OK确认。
接着您可在随后跳出的对话框的“文件名(N)”项下键入原理图名ADD.SCH,以取代原来的*.sch,并选择OK(或保存),即进入原理图编辑窗(图3-6)。
图3-6原理图编辑窗
(2)图纸选择。
点击右上角的小方框,将图放大至全屏幕,再根据需要,点击选择横档上的带有+或-的按钮,对图进行放大或缩小。
然后设定工程设计纸(SHEET)的大小,以便能容下比较大的设计项目。
首先选择上排菜单File的Sheets...项。
此时,将跳出一个“Sheets”对话框。
单击Resize按钮,出现的ResizeSheet窗下将列出多项不同Sheet的可选尺寸,选择一合适尺寸,再点OK即可。
为了改善Sheet的视觉效果,可点击顶栏的Options项,选Preferences...项。
在跳出的对话框中的Display项中选DisplayGrid,再关闭此窗。
(3)在原理图编辑器的Sheet上填加器件。
根据数字逻辑电路知识,一位全加器的逻辑表达式为:
s=a⊕b⊕ci3-3-1
co=a*b+(a⊕b)ci3-3-2
由式3-3-1和3-3-2可看出,选择与门、或门和异或门即可实现该全加器。
图3-7从器件库中选择器件
选择器件的方法是:
在快捷工具栏中,点击
符号打开器件库(或选择Add菜单下的Symbol...)如图3-7,器件库的上部窗口Library表示器件类别,下部窗口Symbol表示该类别所对应的器件。
选项“MISC”中列的内容是设计图纸的项目表;选项“ARITH.LIB”为一位加法器库;选项“GATES.LIB”为组合逻辑基本门电路库;选项IOPADS.LIB为各类输入输出接口库;选项MUXES.LIB为各类多路选择器库;选项“REGS.LIB”为各类基本触发器库;选项“[Local]”为自己设计的本项目中的各种逻辑器件库等等。
本设计先从Library中找到GATAS.LIB栏(门电路库),再从下面窗口中分别找到G_2AND(二输入与门),将光标移至原理图,G_2AND器件就会出现在光标上,将光标移至原理图中的适当位置,单击左键G_2AND被放置在该位置,用同样的方法将其余器件G_2OR(二输入或门)和G_XOR(异或门)放置好即可(图3-8)。
图3-8全加器的原理图
(4)添加连线。
在快捷工具栏中点击
符号(或选择Add菜单中的Wire项),进入画线状态,单击左键定义连线的始端,将光标移至线的另一端,单击左键便可定义这根线。
在连完一根线之后,单击右键就可以结束这一连线,开始下一根线,依次完成全部连线(图3-8)。
(5)添加其它器件。
ISPEXPERT规定,要连接到实际器件管脚的输入、输出信号需要添加缓冲器(IOPADS)。
在本设计中,若要a、b、ci、s、co连到1032的管脚上,选择IOPADS.LIB,然后选择库中的G_INPUT(输入缓冲器),将其分别放在a、b、ci的连线上。
接着选择G_OUTPUT,将其与各输出引脚的连线相连,按各自的位置排列好(图3-9)。
这时,如果想对所画的图作一些修改,可在Edit菜单项目中寻找修改工具。
如要删除,可选Delete,再用鼠标点击所要删除的内容即可。
但若想挽回已删除的内容,可选Edit下的Undo,若想移动图上的器件,可选Move,再去点击需要移动的器件,这时若想旋转此器件,可按键Ctrl的同时,按键R即可。
若想整块搬移,可在选了Edit的Move后,用鼠标点住待搬运块上的一点,然后按住向斜角方向拖动,到位后,松开鼠标即可移动此块,再点击后即可定位。
(6)为信号命名。
单击快捷工具栏中的
符号(或选择Add菜单下的NetName项),这时在图的最下方出现命令:
NetName-EnterName=,在此键入“a”并按回车键,连线名“a”会粘在鼠标的光标上,将十字光标的中心点移至该信号线的连线头上,单击鼠标即可。
用同样的方法在其余连线上加上信号名b、ci、s、co(图3-9)。
图3-9在原理图上加输入/输出缓冲器和信号名
(7)填加I/OMarkers。
I/OMarkers是很特殊的元件符号,它指明了进入或离开这张原理图的信号名称。
注意连线不能悬空(dangling),它们必须连接到I/OMarker或逻辑符号上。
I/OMarker与I/OPad符号不同,这将在下面定义属性(AddingAttributes)的步骤中详细解释。
单击快捷工具栏中的
符号(或选择Add菜单下的I/OMarker项),在弹出的对话框中选择“input“,再将鼠标的光标移至输入信号a的连线末端(位于连线和连线名之间),并单击左键,这时会出现一个输入I/OMark框,标记里面是连线名,用同样的方法分别为b、ci加上输入I/OMarker。
现在再回到I/OMAR...对话框中选择Output,为s、co分别加上一个输出I/OMarker。
至此,原理图就全部输入完毕,如图3-9所示,存盘退出即可。
2)引脚锁定。
定义ispLSI器件的引脚属性(Attributes),也就是确定此项设计中的各个输入、输出在真实器件中的引脚号。
应注意的是,在ispExpert中,引脚的属性实际上是加到I/OPad符号上的(即在原理图编辑中添加到图中的G_INPUT和G_OUPUT上),而不是在I/OMarker上,也就是说I/OMarker在原理图中虽足以表示一个输入输出引脚,但它只是逻辑上的引脚,不能代表ISP器件的物理引脚,如果一个引脚要被定义成ISP器件的实际引脚,则必须用I/OPad。
图3-10在原理图中锁定引脚
锁定ispLSI器件的引脚的方法有两种:
一是在原理图中直接锁定,二是建立扩展名为ppn的*.ppn文件。
这里,我们只介绍第一种方法,另外一种方法在以后介绍。
锁定引脚的方法是:
单击快捷工具栏中的
符号(或在菜单条上选择Add项中的SymbolAttribute命令),这时会出现一个SymbolAttributeEditor对话框。
单击需要定义属性的输出I/OPad(如a,图3-10中的I3),对话框里会出现一系列可供选择的属性,选中“SynarioPin”属性,并且把文本框中的‘*’替换成所需要的管脚号如‘11’,然后用鼠标在图纸的任意位置单击一下,I/OPAD小方框中的“*”便被“11”代替,如图3-10所示(不同的器件,其各引脚的标号定义和功能都是不一样的,在定义管脚时请查阅本书附录中ispLSI1032的引脚标号和功能)。
单击其余需要锁定引脚的I/OPad,重复上述步骤,完成全部引脚锁定工作,最后选择File菜单下的Save选项存盘。
需要说明的是,上述锁定引脚标号的工作并不是必须的,某些情况下,如果不加引脚号,即不进行引脚锁定,而以符号*代表引脚号,让ispEXPERT的编译器自动配置引脚号,对优化适配是有益的。
编译器自动配置引脚号,可在适配报告(ispEXPERTCompilerReport)中得到。
同时也请注意,除非需要将一个引脚的信号真正引出或引入器件,否则完全不必使用I/OPad符号,这时仅需一个I/OMarker即可,例如仅在功能模拟中用到这些信号。
3)仿真测试向量(SimulationTestVectors)的建立。
仿真是电子设计自动化技术的一项重要功能,它可以在硬件电路完成之前通过模拟测试预先知道自己所设计电路的逻辑功能是否正确,以便及时地对自己的设计进行改进。
虽然单纯的逻辑功能测试具有一定的局限性(例如无法对特定的真实器件的延时特性和其它一些特殊的硬件特性精确地进行考虑,故对所设计的逻辑电路功能的最可靠和最后的验证测试必须在实验开发板上进行硬件测试),但仿真测试具有的诸多优越性是直接硬件测试所不具备的,它已成为现代电子系统设计的非常重要的手段。
仿真测试文件的建立过程是:
在项目管理器的主窗口下,先用鼠标将光标条移至器件选项(即移至ispLSI1032E-70LJ84处),然后选择Source菜单下的New选项,在NewSource对话框中选择ABELTestVectors,并选择OK确认。
此时弹出NewFile对话框,键入add,并选择OK,这样就进入了测试向量文本输入编辑器。
在此编辑器中对需要进行模拟测试的设计编写与之对应的测试向量文件。
一位全加器的测试向量(SimulationTestVectors)源文件如下所示,该文件是使用ABEL语言编写的,有关ABEL语言的语法规则及使用方法请参考第四章。
ModuleADD
a,b,cipin;
s,copin;
x=.x.;
Test_vectors
([a,b,ci]->[s,co])
[0,0,0]->[x];
[0,0,1]->[x];
[0,1,0]->[x];
[0,1,1]->[x];
[1,0,0]->[x];
[1,0,1]->[x];
[1,1,0]->[x];
[1,1,1]->[x,x];
End
图3-11设计完成后的项目管理器窗口
检查无误后选择File菜单下的Save保存,再选择File菜单下的Exit返回项目管理器。
最后的项目管理器(ProjectNavigator)窗口应如图3-11所示。
书写测试向量文件需注意的问题是:
(1)输入输出信号符号必须是原理图器件上的I/OMarker内标的NetName。
(2)测试文本中不必列出所有的输入输出信号名,也不必注明每一信号的输入输出属性。
(3)利用.X.可代表所有的输出信号;
(4)一个总的设计项目只允许有一个测试向量文件*.abv。
它只对总的逻辑系统进行模拟测试。
如果只想得到其中某一层次的元件的模拟波形,可以使用如下两种方法:
A、在原理图中对此器件的待测引脚加NetName和I/OMarker。
这样就能在功能模拟波形显示窗中找到这个引脚的信号。
B、专门为此器件建立一个工程文件,以便单独进行测试。
4、源文件的编译与测试向量的仿真
源文件建立完毕之后,下一步是执行每一个源文件所对应的处理过程。
在主项目管理器中选择不同的源文件(包括原理图、ABEL语言描述、向量测试文件)分别进行编译。
1)原理图的编译。
先用鼠标左键单击右窗的ADD(add.sch)项,使其变深色。
此时右边ProcessesforCurrentSource栏中会出现ReduceSchematicLogic选项,双击该选项,就可以看到该工作过程。
编译结束后如果出现两个绿色的勾,说明你的设计完全正确。
如果出现的是黄色的“!
”,说明设计中有”Warnings”出现,一般情况下不会有问题。
但你也不妨可以看一下编译器给出的编译报告automake.log,看一下是什么原因引起的Warnings。
如果出现的是红色的“X”,则说明设计中存在严重的错误,必须对照automake.log报告仔细分析,找出设计中的错误并予以排除,然后重新编译。
2)测试向量的编译与仿真。
Synario/Expert提供功能仿真和时序仿真。
编写的测试向量源文件经过仿真器后,给出输出仿真波形图,以判断设计的逻辑功能是否正确。
仿真的步骤是,首先建立测试向量文件,输入所需要的测试向量,这一步上面已经完成了。
然后用鼠标左键单击add.abv,此时右边窗口即出现CompileTestVectors等与add.abv相关的处理项目。
请双击CompileTestVectors,如果向量测试的编译成功,CompileTestVectors出现一个绿色的勾,如果测试向量的编译出错,CompileTestVectors会出现一个红色的叉,可针对编译击FunctionaSimulation或TimingSimulation,并等待它完成。
如无问题,将出现仿真器控制面板(如图3-12)。
单击Window菜单下的报告(automake.log)的提示进行修改,直到编译成功。
再双击Waveformwiever,将弹出WaveformViewer窗口,在该窗口下选择Edit菜单下的Show选项,会跳出ShowWaveforms窗口(如图3-13)。
在Nets窗栏中选择您所要观察的波形信号名。
比如用鼠标左键单击A,然后点击Show按钮,你就可以在屏幕上看到A波形项了。
以同样的方法可以得到B、CI、S、CO等信号的波形项(图3-13)。
最后关闭ShowWaveform窗口,单击仿真器控制面板(图3-12)中的Run按钮,各选定信号的波形将出现在WaveformViewer窗口中(如图3-13)。
仔细观察一位全加器的工作波形,可以看出,我们的设计是正确的。
选择File菜单下的Save选项,存好波形文件后关闭波形观察窗口。
波形在屏幕上的显示大小可以通过View菜单下的ZoomIn(放大波形图)、ZoomOut(缩小波形图)来调整。
图3-12EXPERT模拟波形观察控制面板
图3-13Expert波形观察窗口
5、设计项目的适配
所谓适配就是将以上完成的逻辑设计针对已选定的器件,在EDA软件的帮助下,形成能写进芯片的熔丝图文件(*.jed),本例中也就是将设计项目适配到isp1032中去。
这是一个将逻辑设计转化成为适合于具体isp器件的设计过程。
通过适配,将生成标准的JED熔丝图文件,以供编程到具体的芯片中之用。
需要明白的是,前面各部分的设计“通过”并不能保证其适配也能“通过”。
因为以上的所有操作都是与具体器件无关的,不涉及器件的物理结构。
一般说来,只要逻辑上无误,编译上是很容易通过的,波形模拟也不会有问题。
但一旦涉及到实际的芯片,问题可能要复杂得多。
因此,在进行此项工作之前,建议大家看一看ispLSI器件部分的内容,以便对器件的物理结构有一定的了解,可以更好地指导你的设计。
适配的基本步骤是:
1)基本参数设定。
对于已选择的器件ispLSI1032E。
先用鼠标左键单击右窗栏的Add(add.sch)项,使其变深色,再单击右边栏的CompileSchematic。
此时,栏下部的Properties...按纽会变为深色,单击此按钮后会跳出一窗口。
其中的各有关项设定如下:
A、“ISP”设True,即在系统可编程的3条编程下载线定义为专用下载口线,不可用其第二功能。
B、“ISPExceptY2”设False,其功能同上。
C、“Pullup”设True,其功能可从“Help”键中的得到。
D、“Security”设True,即加密允许(也可设False)。
E、点击Close,退出。
2)适配控制属性参数设定。
用鼠标单击右窗栏的ispLSI1032E-70LJ84项,使其变深色,再单击右边栏的FitDesign。
与上相同,栏下部的Properties键会变为深色,单击此按钮后会跳出一窗口,对Properties窗口中的各有关项进行设定,为方便计,在这里也可点击Defaults键使各选项取默认项。
点击Close,退出。
用鼠标单击左边窗口的ispLSI1032E-70LJ84项,使其变深色,然后双击右边窗口的FitDesign,使项目管理器完成对源文件的编译、连接和逻辑分割,最后将所有设计的逻辑进行适配或者说映射到所选择的PLD器件中去。
适配结束后,如果不通过,在有关项目上会出现红色的叉,并弹出automak
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 组成 原理 接口