Lattice的ISPlever使用教程.docx
《Lattice的ISPlever使用教程.docx》由会员分享,可在线阅读,更多相关《Lattice的ISPlever使用教程.docx(17页珍藏版)》请在冰豆网上搜索。
Lattice的ISPlever使用教程
Lattice的ISPlever使用教程
ispLEVER使用教程
目录
第一节 ispLEVER简介
第二节 ispLEVER开发工具的原理图输入
第三节设计的编译与仿真
第四节 硬件描述语言和原理图混合输入
第五节 ispLEVER工具中VHDL和Verilog语言的设计方法
第六节 ispVMSystem-在系统编程的软件平台
第七节 约束条件编辑器(ConstraintEditor)的使用方法
附录一 ispLEVERSystem上机实习题
附录二ispLEVER软件中文件名后缀及其含义
第一节 ispLEVER 简介
ispLEVER是Lattice公司最新推出的一套EDA软件。
设计输入可采用原理图、硬件描述语言、混合输入三种方式。
能对所设计的数字电子系统进行功能仿真和时序仿真。
编译器是此软件的核心,能进行逻辑优化,将逻辑映射到器件中去,自动完成布局与布线并生成编程所需要的熔丝图文件。
软件中的ConstraintsEditor工具允许经由一个图形用户接口选择I/O设置和引脚分配。
软件包含Synolicity公司的“Synplify”综合工具和Lattice的ispVM器件编程工具。
ispLEVER软件提供给开发者一个简单而有力的工具,用于设计所有Lattice可编程逻辑产品。
软件支持所有Lattice公司的ispLSI、MACH、ispGDX、ispGAL、GAL器件。
ispLEVER工具套件还支持Lattice新的ispXPGATM和ispXPLDTM产品系列,并集成了LatticeORCAFoundry设计工具的特点和功能。
这使得ispLEVER的用户能够设计新的ispXPGA和ispXPLD产品系列,ORCAFPGA/FPSC系列和所有Lattice的业界领先的CPLD产品而不必学习新的设计工具。
软件主要特征:
1. 输入方式
*原理图输入
*ABEL-HDL输入
*VHDL输入
*Verilog-HDL输入
* 原理图和硬件描述语言混合输入
2.逻辑模拟
*功能模拟
*时序模拟
3.编译器
*结构综合、映射、自动布局和布线
4.支持的器件
*含有支持ispLSI器件的宏库及MACH器件的宏库、TTL库
*支持所有ispLSI、MACH、ispGDX、ispGAL、GAL、ORCAFPGA/FPSC、ispXPGA和ispXPLD器件
5.ConstraintsEditor工具
* I/O参数设置和引脚分配
6. ispVM工具
* 对ISP器件进行编程
软件支持的计算机平台:
PC:
Windows98/NT/2000/XP
第二节ispLEVER开发工具的原理图输入
I.启动ispLEVER(按Start=>Programs=>LatticeSemiconductor=>ispLEVERProjectNavigator)
II.创建一个新的设计项目
A.选择菜单File。
B.选择NewProject...。
C.在CreateNewProject对话框的ProjectName栏中,键入项目名d:
\user\demo.syn。
在Projecttype栏中选择Schematic/ABEL(ispLEVER软件支持Schematic/ABEL、Schematic/VHDL、Schematic/Verilog等的混合设计输入,在此例中,仅有原理图输入,因此可选这三种中的任意一种)。
D.你可以看到默认的项目名和器件型号:
UntitledandispLSI5256VE-165LF256。
III.项目命名
A.用鼠标双击Untitled。
B.在Title文本框中输入“DemoProject”,并选OK。
IV.选择器件
A.双击ispLSI5256VE-165LF256,你会看到DeviceSelector对话框(如下图所示)。
B.在SelectDevice窗口中选择ispMACH4000项。
C.按动器件目录中的滚动条,直到找到并选中器件LC4032V-10T44I。
D.揿OK按钮,选择这个器件。
E.在软件弹出的如下图显示的ConfirmChange窗口中,按Yes按钮。
F.因改选器件型号后,先前的约束条件可能对新器件无效,因此在软件接着弹出的如下图显示的ispLEVERProjectNavigato窗口中,按Yes按钮,以用来去除原有的约束条件。
V.在设计中增加源文件
一个设计项目由一个或多个源文件组成。
这些源文件可以是原理图文件(*.sch)、ABELHDL文件(*.abl)、VHDL设计文件(*.vhd)、VerilogHDL设计文件(*.v)、测试向量文件(*.abv)或者是文字文件(*.doc,*.wri,*.txt)。
在以下操作步骤中,你要在设计项目中添加一张空白的原理图纸。
A.从菜单上选择Source项。
B.选择New...。
C.在对话框中,选择Schematic(原理图),并按OK。
D.输入文件名demo.sch。
E.确认后揿OK。
VI.原理图输入
你现在应该进入原理图编辑器。
在下面的步骤中,你将要在原理图中画上几个元件符号,并用引线将它们相互连接起来。
A.从菜单栏选择Add,然后选择Symbol,你会看到如下图所示的对话框:
B.选择GATES.LIB库,然后选择G_2AND元件符号。
C.将鼠标移回到原理图纸上,注意此刻AND门粘连在你的光标上,并随之移动。
D.单击鼠标左键,将符号放置在合适的位置。
E.再在第一个AND门下面放置另外一个AND门。
F.将鼠标移回到元件库的对话框,并选择G_2OR元件。
G.将OR门放置在两个AND门的右边。
H.现在选择Add菜单中的Wire项。
I.单击上面一个AND门的输出引脚,并开始画引线。
J.随后每次单击鼠标,便可弯折引线(双击便终止连线)。
K.将引线连到OR门的一个输入脚。
L.重复上述步骤,连接下面一个AND门。
VII.添加更多的元件符号和连线
A.采用上述步骤,从REGS.LIB库中选一个g_d寄存器,并从IOPADS.LIB库中选择G_OUTPUT符号。
B.将它们互相连接,实现如下的原理图:
VIII.完成你的设计
在这一节,通过为连线命名和标注I/OMarkers来完成原理图。
当要为连线加信号名称时,你可以使用ispLEVER的特点,同时完成两件事-----同时添加连线和连线的信号名称。
这是一个很有用的特点,可以节省设计时间。
I/OMarkers是特殊的元件符号,它指明了进入或离开这张原理图的信号名称。
注意连线不能被悬空(dangling),它们必需连接到I/OMarker或逻辑符号上。
这些标记采用与之相连的连线的名字,与I/OPad符号不同,将在下面定义属性(AddAttributes)的步骤中详细解释。
A.为了完成这个设计,选择Add菜单中的NetName项。
B.屏幕底下的状态栏将要提示你输入的连线名,输入‘A’并按Enter键,连线名会粘连在鼠标的光标上。
C.将光标移到最上面的与门输入端,并在引线的末连接端(也即输入脚左端的红色方块),按鼠标左键,并向左边拖动鼠标。
这可以在放置连线名称的同时,画出一根输入连线。
D.输入信号名称现在应该是加注到引线的末端。
E.重复这一步骤,直至加上全部的输入‘B’,’C’,’D’和‘CK’,以及输出‘OUT’。
F.现在选择Add菜单的I/OMarker项。
G.将会出现一个对话框,请选择Input。
H.将鼠标的光标移至输入连线的末端(位于连线和连线名之间),并单击鼠标的左键。
这时回出现一个输入I/OMarker,标记里面是连线名。
I.鼠标移至下一个输入,重复上述步骤,直至所有的输入都有I/OMarker。
J.现在请在对话框中选择Output,然后单击输出连线端,加上一个输出I/OMarker。
K.至此原理图就基本完成,它应该如下图所示。
IX.定义器件的属性(Attributes)
你可以为任何一个元件符号或连线定义属性。
在这个例子中,你可以为输出端口符号添加引脚锁定LOCK的属性。
请注意,在ispLEVER中,引脚的属性实际上是加到I/OPad符号上,而不是加到I/OMarker上。
同时也请注意,只有当你需要为一个引脚增加属性时,才需要I/OPad符号,否则,你只需要一个I/OMarker。
A.在菜单条上选择Edit=>Attribute=>SymbolAttribute项,这时会出现一个SymbolAttributeEditor对话框。
B.单击需要定义属性的输出I/OPad。
C.对话框里会出现一系列可供选择的属性。
D.选择PinNumber属性,并且把文本框中的‘*’替换成‘4’(‘4’为器件的引脚号)。
这样,该I/OPad上的信号就被锁定到器件的第四个引脚上了。
E.关闭对话框。
F.请注意,此时数字‘4’出现在I/OPad符号内。
X.保存已完成的设计
从菜单条上选择File,并选Save命令。
再选Exit命令。
第三节 设计的编译与仿真
I.建立仿真测试向量(SimulationTestVectors)
moduledemo;
c,x=.c.,.x.;
CK,A,B,C,D,OUT PIN;
TEST_VECTORS
([CK, A, B, C, D]->[OUT])
[ c , 0 ,0, 0,0]->[x];
[ c , 0 ,0, 1,0]->[x];
[ c , 1 ,1, 0,0]->[x];
[ c , 0 ,1, 0,1]->[x];
END
A.在已选择LC4032V-10T44I器件的情况下,选择Source菜单中的New...命令。
B.在对话框中,选择ABELTestVectors并按OK。
C.输入文件名demo.abv作为你的测试向量文件名。
D.按OK。
E.文本编辑器弹出后,输入下列测试向量文本:
F.完成后,选择File菜单中的Save命令,以保留你的测试向量文件。
G.再次选择File,并选Exit命令。
H.此时你的项目管理器(ProjectNavigator)应如下图所示。
II.编译原理图与测试向量
现在你已为你的设计项目建立起所需的源文件,下一步是执行每一个源文件所对应的处理过程。
选择不同的源文件,你可以从项目管理器窗口中观察到该源文件所对应的可执行过程。
在这一步,请你分别编译原理图和测试向量。
A.在项目管理器左边的项目源文件(SourcesinProject)清单中选择原理图(demo.sch)。
B.双击原理图编译(CompileSchematic)处理过程。
C.编译通过后,CompileSchematic过程的左边会出现一个绿色的查对记号,以表明编译成功。
编译结果将以逻辑方程的形式表现出来。
D.然后从源文件清单中选择测试向量源文件(demo.abv)。
E.双击测试向量编译(CompileTestVectors)处理过程。
III.设计的仿真
ispLEVER开发系统不但可以进行功能仿真(FunctionalSimulation),而且可以进行时序仿真(TimingSimulation)。
在仿真过程中还提供了单步运行、断点设置功能。
IV.一、功能仿真
A. 在ispLEVERProjectNavigator的主窗口左侧,选择测试向量源文件(demo.abv),双击右侧的FunctionalSimulation功能条。
将弹出如下图所示的仿真控制窗口(SimulatorControlPanel)。
B. 在SimulatorControlPanel中,将根据(*.abv)文件中所给出的输入波形进行一步到位的仿真。
在SimulatorControlPanel中,按Simulate=>Run,再按Tools=>WaveformViewer菜单,将打开波形观察器WaveformViewer如下图所示。
C. 波形现在都显示在波形观察器的窗口中,如下图所示:
D. 单步仿真。
选SimulatorControlPanel窗口中的Simulate=>Step可对您的设计进行单步仿真。
ispLEVER中仿真器的默认步长为100ns,您可根据需要在按Simulate=>Settings菜单所激活的对话框(SetupSimulator)中重新设置您所需要的步长。
按SimulatorControlPanel窗口中的Simulate=>Reset菜单,可将仿真状态退回至初始状态(0时刻)。
随后,每按一次Step,仿真器便仿真一个步长。
下图是按了七次Step钮后所显示的波形(所选步长为100ns)。
E. 设置断点(Breakpoint)。
在SimulatorControlPanel窗口中,按Signal=>Breakpoints菜单,会显示如下图所示的断点设置控制的Breakpoint窗口。
在该窗口中按New按钮,开始设置一个新的断点。
在AvailableSignals栏中单击鼠标选择所需的信号,在窗口中间的下拉滚动条中可选择设置断点时该信号的变化要求,例如:
->0,指该信号变化到0状态;!
=1,指该信号处于非1状态。
一个断点可以用多个信号所处的状态来作为定义条件,这些条件在逻辑上是与的关系。
最后在Breakpoints窗口中,先选中ADD,再按Arm按钮使所设断点生效。
本例中选择信号OUT->?
作为断点条件,其意义是指断点条件成立的条件为OUT信号发生任何变化(变为0,1,Z或X状态)。
这样仿真过程中在0ns,700ns,1000ns时刻都会遇到断点。
F. 波形编辑(WaveformEdit)。
除了用*.abv文件描述信号的激励波形外,ispLEVER还提供了直观的激励波形的图形输入工具-WaveformEditor。
以下是用WaveformEditor编辑激励波形的步骤(仍以设计demo.sch为例):
1. 在SimulatorCotrolPanel窗口中,按Tools=>WaveformEditor菜单,进入波形编辑器窗口(WaveformEditingTool),如下图所示:
2. 在上述窗口中按Object=>EditMode,将弹出如下图所示的波形编辑子窗口:
3. 在WaveformEditingTool窗口中按Edit=>NewWave菜单,弹出如下窗口:
在该窗口中的Polarity选项中选择Input,然后在窗口下部的空格中输入信号名:
A,B,C,D,CK。
每输完一个信号名按一次Add钮。
4. 在完成上述步骤3以后,WaveformEditingTool窗口中有了A,B,C,D,CK的信号名,如下图所示:
单击窗口左侧的信号名A,开始编辑A信号的激励波形。
单击0时刻右端且与A信号所处同一水平位置任意一点,波形编辑器子窗口中将显示如下信息:
在States栏中选择Low,在Duration栏中填入200ns并按回车键。
这时,在WaveformEditingTool窗口中会显示A信号在0-200ns区间为0的波形。
然后在WaveformEditingTool窗口中单击200ns右侧区间任一点,可在波形编辑器的子窗口中编辑A信号的下一个变化。
重复上述操作过程,编辑所有输入信号A,B,C,D,CK的激励波形,并将它存盘为wave_in.wdl文件。
完成后,WaveformEditingTool窗口如下图所示:
5. 在WaveformEditingTool菜单中,按File=>ConsistencyCheck菜单,检测激励波形是否存在冲突。
在该例中,错误信息窗口会提示NoErrorsDected。
6. 至此,激励波形已描述完毕,剩下的工作是调入该激励文件(wave_in.wdl)进行仿真:
回到ispLEVERProjectNavigator主窗口,按Source=>Import菜单,调入激励文件wave_in.wdl。
在窗口左侧的源程序区选中Wave_in.wdl文件,双击窗口右侧的FunctionalSimulation栏进入功能仿真流程,以下的步骤与用*.abv描述激励的仿真过程完全一致,在此不再赘述。
二、时序仿真(TimingSimulation)
时序仿真的操作步骤与功能仿真基本相似,以下简述其操作过程中与功能仿真的不同之处。
仍以设计Demo为例,在ispLEVERProjectNavigator主窗口中,在左侧源程序区选中Demo.abv,双击右侧的TimingSimulation栏进入时序仿真流程。
由于时序仿真需要与所选器件有关的时间参数,因此双击TimingSimulation栏后,软件会自动对器件进行适配,然后打开与功能仿真时间相同的SimulatorControlPanel窗口。
时序仿真与功能仿真操作步骤的不同之处在于仿真的参数设置上。
在时序仿真时,打开SimulatorControlPanel窗口中的Simulate=>Settings菜单,产生SetupSimulator对话框。
在此对话框中可设置延时参数(SimulationDelay)最小延时(MinimunDelay)、典型延时(TypicalDelay)、最大延时(MaximunDelay)和0延时(ZeroDelay)。
最小延时是指器件可能的最小延时时间,0延时指延时时间为0。
在SetupSimulator对话框中,仿真模式(SimulationMode)可设置为两种形式:
惯性延时(InertialMode)和传输延时(TransportMode)。
将仿真参数设置为最大延时和传输延时状态,在WaveformViewer窗口中显示的仿真结果如下图所示:
由图可见,与功能仿真不同的是:
输出信号OUT的变化比时钟CK的上升沿滞后了5ns。
IV. 建立元件符号(Symbol)
ispLEVER工具的一个非常有用的特点是能够迅速地建立起一张原理图的符号。
通过这一步骤,你可以建立一个可供反复调用的逻辑宏元件,以便放置在更高一层的原理图纸上。
下一节将指导你如何调用。
这里仅教你如何建立元件符号。
A.双击原理图的资源文件demo.sch,把它打开。
B.在原理图编辑器中,选择File菜单。
C.从下拉菜单中,选择MatchingSymbol命令。
D.关闭原理图。
E.至此,这张原理图的宏元件符号已经建立完毕,并且被加到元件表中。
你可以在下一节中调用这个元件。
第四节 硬件描述语言和原理图混合输入
ispLEVER软件支持ABEL/原理图、VHDL/原理图、Verilog/原理图的混合输入。
这一节,我们以ABEL/原理图为例,介绍硬件描述语言和原理图混合输入的方法。
现在,你要建立一个简单的ABELHDL语言输入的设计,并且将其与上一节中完成的原理图进行合并,以层次结构的方式,画在顶层的原理图上。
然后对这个完整的设计进行仿真、编译,最后适配到器件中。
现在我们就开始吧!
I 启动ispLEVER
如果你在上一节的练习后退出了ispLEVER,点击Start=>Programs=>LatticeSemiconductor=>ispLEVER菜单,屏幕上你的项目管理器应该如下图所示。
II 建立顶层的原理图
A.仍旧选择LC4032V-10T44I器件,从菜单条上选Source。
B.选择New...
C.在对话框中选Schematic,并按OK。
D.在文本框中输入文件名top.sch,并按OK。
E.现在你就进入了原理图编辑器。
F.调用上节中创建的元件符号。
选择Add菜单中的Symbol项,这时会出现SymbolLibraries对话框,选择Local的库,你会注意到在下部的文本框中有一个叫demo的元件符号,这就是你在上一节中自行建立的元件符号。
G.选择demo元件符号,并放到原理图上的合适位置。
II.建立内含ABEL语言的逻辑元件符号
现在你要为ABELHDL设计文件建立一个元件符号。
只要知道了接口信息,你就可以为下一层的设计模块创建一个元件符号。
而实际的ABEL设计文件可以在以后再完成。
A.在原理图编辑器里,选择ADD菜单里的NewBlockSymbol...命令。
B.这时候会出现一个对话框,提示你输入ABEL模块名称及其输入信号名和输出信号名。
请按照下图所示输入信息:
C.当你完成信号名的输入,揿Run按钮,就会产生一个元件符号,并放在本地元件库中。
同时元件符号还粘连在光标上,随之移动。
D.把这个符号放在demo符号的左边。
E.单击鼠标右键,就会显示SymbolLibraries的对话框。
请注意abeltop符号出现在Local库中。
F.关闭对话框。
你的原理图应该如下图所示:
III.完成原理图
现在请你添加必需的连线,连线名称,以及I/O标记,来完成顶层原理图,使其看上去如下图所示。
如果你需要帮助,请参考第二节中有关添加连线和符号的指导方法。
当你画完后,请存盘再退出。
IV.建立ABEL-HDL源文件
现在你需要建立一个ABEL源文件,并把它链接到顶层原理图对应的符号上。
项目管理器使这些步骤简化了:
A.你当前的管理器应该如下图所示:
B.请注意abeltop左边的红色“?
”图标。
这意味着目前这个源文件还是个未知数,因为你还没有建立它。
同时也请注意源文件框中的层次结构,abeltop和demo源文件位于top原理图的下面并且偏右,这说明它们是top原理图的底层源文件。
这也是ispLEVER项目管理器另外一个有用的特点。
C.为了建立所需的源文件,请选择abeltop,然后选择Source菜单中的New...命令。
D.在NewSource对话框中,选择ABEL-HDLModule并按OK。
E.下一个对话框会问你模块名,文件名,以及模块的标题。
为了将源文件与符号相链接,模块名必须与符号名一致,而文件名没有必要与符号名一致。
但为了简单,你可以给它们取相同的名字。
按下图所示,填写相应的栏目:
F.按OK。
你就进入了TextEditor,而且可以看到ABELHDL设计文件的框架已经呈现在你的面前。
G.输入下列的代码。
确保你的输入代码位于TITLE语句和
END语