ispLEVER2.0培训教程
2002年12月
目录
第一节 ispLEVER2.0简介
第二节 ispLEVER2.0安装
第三节 ispLEVER2.0的原理图输入
第四节 设计的编译与仿真
第五节 ABEL语言和原理图混合输入
第六节 ispLEVER2.0中VHDL和Verilog语言的设计方法
第七节 在系统编程的操作方法
第八节 用ModelSim仿真
第九节 Constraint
第一节ispLEVER2.0简介
ispLEVER2.0是一套完整的EDA软件。设计输入可采用原理图、硬件描述语言、混合输入三种方式。能对所设计的数字电子系统进行功能仿真和时序仿真。编译器是此软件的核心,能进行逻辑优化,将逻辑映射到器件中去,自动完成布局与布线并生成编程所需要的熔丝图件。软件支持原有Lattice公司的GAL、ispLSI、MACH、ispGDX、ORCA2、
ORCA3、ORCA4和最新的ispMACH器件。
软件主要特征:
1 输入方式
* 原理图输入
* ABEL-HDL输入
* VHDL输入
* Verilog-HDL输入
* EDIF输入
2. 逻辑仿真
* 功能仿真
* 时序仿真
3. 编译器
* 结构综合、映射、自动布局和布线
4. 支持的器件
* 含有支持ispLSI的宏库及MACH的TTL库
* 支持所有ispLSI、MACH和ispMACH器件
第二节ispLEVER2.0安装
操作系统为windows2000,winNT,windowsXP时建议使用管理员权限(administrator)安装,windows98,windows98SE不存在此问题。安装前请关闭病毒防火墙(recommended)。
双击安装光盘的setup图标,出现下面的对话框:
点击第一个橙色方块表示安装project navigator以及一些第三方综合和仿真工具,ORCA Series 2,3,4表示安装ORCA系列FPGA,如果只做CPLD设计,请单击project navigator and 3 rd party tools。出现下图所示的版本对话框:
目前ispLEVER2.0有4个版本,每个版本都由各自的license所支持。其中HDL base版功能受一定限制;第二个HDL advance 版;EXM ADV是第三方的advance版;最后一个是不支持HDL的lattice advance版。安装光盘上的license为EXM ADV,所以我们选择第三个版本安装。
一路点击next,出现安装路径对话框,设定你所想安装的路径,在路径名中请避免出现空格(recommended)。
继续点击next,直至出现product options对话框,选择你需要安装的一些组件,建议全部选中组件。单击next直至安装完成。
在windows98系统下安装会出现license路径对话框,选择第一个选项auto modify autoexe.bat,安装程序会自动在autoexe.bat中添加license指定语句。
Windows2000,windowsXP的license路径在系统环境变量中,由安装程序自动设定。
安装完成后,将光盘中license目录下的license.dat拷贝到安装目录下的license目录下,用记事本打开此文件,根据里面提供的硬盘序列号修改C盘序列号。具体修改方法如下:
Windows2000,windowsXP
在命令提示符窗口中,进入硬盘序列号修改工具所在目录(光盘的license目录下或将它copy至自己所建目录)。执行volumeid.exe,如:volumeid c: 229b-6080即可,修改完毕后可以查看验证是否已经更改,系统可能会死机,重起后正常。
Windows98在MS-DOS方式下修改,方法与上述相同。
另外,还可以用其他工具如diskedit等修改,这里不再赘述。
执行光盘中的service pack 7.0升级ispLEVER2.0,执行update doc2.0升级tutorial,并可以通过开始菜单中的ispUPDATE进行网上更新。
第三节ispLEVER2.0的原理图输入
I. 启动ispLEVER2.0(按Start=>Programs=>Lattice Semiconductor=>ispLEVER菜单)
II. 创建一个新的设计项目
A. 选择菜单File。
B. 选择New Project...。
C. 键入项目名。
D. 你可以看到默认的项目名和器件型号:Untitled and ispLSI5256VE-165LF256。
III. 项目命名
A. 用鼠标双击Untitled。
B. 在Title框文本中输入项目名称,并选OK。
IV. 选择器件
A. 双击ispLSI5256VE-165LF256,你会看到Choose Device对话框(如下图所示)。
B. 在Choose Device窗口中选择器件系列。
C. 选择Macrocell数,速度等级,封装形式,单击ok,工具会提示你是否
Remove All Previous Constraints,选择Yes。
D. 在设计中增加源文件
一个设计项目由一个或多个源文件组成。这些源文件可以是原理图文件(*.sch)、ABEL-HDL文件(*.abl)、VHDL设计文件(*.vhd)、VerilogHDL设计文件(*.v)、仿真波形文件(*.wdl)、测试向量文件(*.abv)或者是文字文件(*.doc,*.wri,*.txt)。在以下操作步骤中,你要在设计项目中添加一张空白的原理图纸。
a) 从菜单上选择Source项。
b) 选择New...。
c) 在对话框中,选择Schematic(原理图),并按OK。
d) 输入原理图文件名。
e) 确认后点击OK,即可打开Schematic Editor。
E. 原理图输入
你现在应该进入原理图编辑器。在下面的步骤中,你将要在原理图中画上几个元件符号,并用引线将它们相互连接起来。
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门。
F. 添加更多的元件符号和连线
a) 采用上述步骤,从REGS.LIB库中选一个g_d寄存器,并从IOPADS.LIB库中选择G_OUTPUT符号。
b) 将它们互相连接,实现如下的原理图:
为了完成你的设计,通过为连线命名和标注I/O Markers来完成原理图。
当要为连线加信号名称时,你可以使用ispLEVER2.0的特点,同时完成两件事-----同时添加连线和连线的信号名称。这是一个很有用的特点,可以节省设计时间。I/O Markers是特殊的元件符号,它指明了进入或离开这张原理图的信号名称。注意连线不能被悬空(dangling),它们必需连接到I/O Marker或逻辑符号上。这些标记采用与之相连的连线的名字,与I/O Pad符号不同,将在下面定义属性(Add Attributes)的步骤中详细解释。
c) 为了完成这个设计,选择Add菜单中的Net Name项。
d) 屏幕底下的状态栏将要提示你输入的Net Name,输入‘A’并按Enter键,Net Name会粘连在鼠标的光标上。
e) 将光标移到最上面的与门输入端,并在引线的末连接端(也即输入脚左端的红色方块),按鼠标左键,并向左边拖动鼠标。这可以在放置Net Name称的同时,画出一根输入连线。
f) 输入信号名称现在应该是加注到引线的末端。
g) 重复这一步骤,直至加上全部的输入‘B’,’C’,’D’和‘CK’,以及输出‘OUT’。
h) 现在Add菜单的I/O Marker项。
i) 将会出现一个对话框,请选择Input。
j) 选择画图工具I/O Maker并选择Input,Output,Bidirection或None,拖动鼠标选择信号使之成为相应的端口。
k) 鼠标移至下一个输入,重复上述步骤,直至所有的输入都有I/O Marker。
l) 现在请在对话框中选择Output,然后单击输出Net Name,加上一个输出I/O Marker。
m) 至此原理图就基本完成,如下图所示。
G. 定义器件的属性(Attributes)
你可以为任何一个元件符号或连线定义属性。在这个例子中,你可以为输出端口符号添加引脚锁定LOCK的属性。请注意,在ispLEVER2.0中,引脚的属性实际上是加到I/O Pad符号上,而不是加到I/O Marker上。同时也请注意,只有当你需要为一个引脚增加属性时,才需要I/OPad符号,否则,你只需要一个I/OMarker.
A. 在菜单条上选择Edit=>Attribute=>Symbol Attribute项,这时会出现一个Symbol Attribute Editor对话框。
B. 单击需要定义属性的输出I/O Pad.
C. 对话框里会出现一系列可供选择的属性。
D. 选择Pin Number属性,并且把文本框中的‘*’替换成‘4’。
E. 关闭对话框。
F. 请注意,此时数字‘4’出现在I/OPad符号内。
H. 保存已完成的设计
从菜单栏上选择File,并选Save命令,再选Exit命令。
第四节 设计的编译与仿真
I. 建立仿真测试向量(Simulation Test Vectors)
A. 在已经选择器件的情况下,选择Source菜单中的New...命令。
B. 在对话框中,选择ABEL Test Vectors并按OK。
C. 给测试向量文件取名。
D. 按OK打开Text Editor。
E. 输入你的测试向量文本,如下例:
F. 完成后,选择File菜单中的Save命令,以保留你的测试向量文件。
G. 再次选择File,并选Exit命令。
H. 此时你的项目管理器(Project Navigator)应如下图所示。
II. 编译原理图与测试向量
现在你已为你的设计项目建立起所需的源文件,下一步是执行每一个源文件所对应的处理过程。选择不同的源文件,你可以ispLEVER主界面中观察到该源文件所对应的可执行过程。在这一步,请你分别编译原理图和测试向量。
A. 在项目管理器左边的项目源文件(Sources in Project)清单中选择原理图(*.sch)。
B. 双击原理图编译(Compile Schematic)处理过程。
C. 编译通过后,Compile Schematic过程的左边会出现一个绿色的查对记号,以表明编译成功。编译结果将以逻辑方程的形式表现出来。
D. 然后从源文件清单中选择测试向量源文件(*.abv)。
E. 双击测试向量编译(Compile Test Vectors)处理过程。
III. 设计的仿真
ispLEVER2.0开发系统较Lattice先前的开发系统而言,在仿真功能上有了极大的改进。它不但可以进行功能仿真(Functional Simulation),而且可以进行时序仿真Timing Simulation(只有对器件仿真时才有)。在仿真过程中还提供了单步运行、断点设置等功能。
IV.一、功能仿真
A. 在ispLEVER2.0 Project Navigator的主界面窗口左侧,选择测试向量源文件(*.abv),双击右侧执行窗口的Functional Simulation功能条。将弹出如下图所示的仿真控制窗口(Simulator Control Panel)。
B.在Simulator Control Panel中,将根据(*.abv)文件中所给出的输入波形进行一步到位的仿真。
在Simulator Control Panel中,单击工具栏上的step图标进行分步仿真,单击run图标进行全部仿真。在打开的Waveform Viewer中查看各个信号的功能或时序。
C.单步仿真
选Simulator Control Panel窗口中的Simulator=>Step可对您的设计进行单步仿真。ispLEVER2.0系统中仿真器的默认步长为100ns,您可根据需要在按File=>Setup菜单所激活的对话框(Setup Simulator)中重新设置您所需要的步长。按Simulator Control Panel窗口中的File=>Reset菜单,可将仿真状态退回至初始状态(0时刻)。随后,每按一次Step,仿真器便仿真一个步长。
D.设置断点(Breakpoint)
在Simulator Control Panel窗口中,按Signal=>Breakpoints菜单,会显示如下图所示的断点设置控制的Breakpoint窗口。
在该窗口中按New按钮,开始设置一个新的断点。在Available Signals栏中单击鼠标选择所需的信号,在窗口中间的下拉滚动条中可选择设置断点时该信号的变化要求,例如:->0,指该信号变化到0状态;!=1,指该信号处于非1状态。一个断点可以用多个信号所处的状态来作为定义条件,这些条件在逻辑上是与的关系。最后在Breakpoints窗口中,先选中ADD,再按Arm按钮使所设断点生效。
E.波形编辑(Waveform Editor)。
除了用*.abv文件描述信号的激励波形外,ispLEVER2.0系统还提供了直观的激励波形的图形输入工具-Waveform Editor。以下是用Waveform Editor编辑激励波形的步骤(仍以原来设计为例):
1.在主界面New Source对话框中选择Waveform Stimulus,选择此仿真波形文件适配的源文件或器件,命名该*.wdl后打开Waveform Editor,单击菜单栏Edit->Import Wave,如下图所示:
选择需要显示的信号Add,单击按钮Show。选定的信号出现在Wave中,并可由用户进行Edit。Note: clk信号可以先画好一个cycle的波形,然后在状态窗口中Repeat栏中设定重复的cycle次数,对于data,address等bus形式的信号,可以单击菜单栏Edit->New Wave或工具栏中的按钮,如下所示:
如图设定好添加的总线信号后单击Add按钮即可。
2. 在完成上述步骤以后,Waveform Editor窗口中有了A,B,S,Z的信号名。单击窗口左侧的信号名A,开始编辑A信号的激励波形。单击0时刻右端且与A信号所处同一水平位置任意一点,波形编辑器子窗口中将显示如下信息:
在States栏中选择Low,在Duration栏中填入200ns并按回车键。这时,在Waveform Editor窗口中会显示A信号在0-200ns区间为0的波形。然后在Waveform Editor窗口中单击200ns右侧区间任一点,可在波形编辑器的子窗口中编辑A信号的下一个变化。重复上述操作过程,编辑所有输入信号A,B,S,Z的激励波形,并将它存盘为*.wdl文件。
3. 在Waveform Editor菜单中,按File=>Consistency Check菜单,检测激励波形是否存在冲突。在该例中,错误信息窗口会提示No Errors Dected。
4. 至此,激励波形已描述完毕,剩下的工作是调入该激励文件(*.wdl)进行仿真:
回到ispLEVER主窗口,按Source=>Import菜单,激励文件*.wdl出现在左侧源文件窗口中。在窗口左侧的源程序区选中该*.wdl文件,双击窗口右侧的Functional Simulation栏进入功能仿真流程,以下的步骤与用*.abv描述激励的仿真过程完全一致,
在此不再赘述。
二、时序仿真(Timing Simulation)
时序仿真的操作步骤与功能仿真基本相似,以下简述其操作过程中与功能仿真的不同之处。
仍以本设计为例,在ispLEVER主窗口中,在左侧源程序区选中*.abv,双击右侧的Timing Simulation栏进入时序仿真流程。由于时序仿真需要与所选器件有关的时间参数,因此双击Timing Simulation栏后,软件会自动对器件进行适配,然后打开与功能仿真时间相同的Simulator Control Panel窗口。
时序仿真与功能仿真操作步骤的不同之处在于仿真的参数设置上。在时序仿真时,打开Simulator Control Panel窗口中的File=>Setup菜单,产生Setup Simulator对话框。在此对话框中可设置延时参数(Simulation Delay)最小延时(Minimun Delay)、典型延时(Typical Delay)、最大延时(Maximun Delay)和0延时(Zero Delay)。最小延时是指器件可能的最小延时时间,0延时指延时时间为0。需要注意的是,在ispLEVER中,典型延时的时间均设为0延时。
在Setup Simulator对话框中,仿真模式(Simulation Mode)可设置为两种形式:惯性延时(Inertial Mode)和传输延时(Transport Mode)。将仿真参数设置为最大延时和传输延时状态,在Waveform Viewer窗口中显示仿真结果。
IV. 建立元件符号(Symbol)
ispLEVER工具的一个非常有用的特点是能够迅速地建立起一张原理图的符号。通过这一步骤,你可以建立一个可供反复调用的逻辑宏元件,以便放置在更高一层的原理图纸上。下一节将指导你如何调用。这里仅教你如何建立元件符号。
A. 双击原理图的源文件*.sch,把它打开。
B. 在原理图编辑器中,选择File菜单。
C. 从下拉菜单中,选择Matching Symbol命令。
D. 关闭原理图。
E. 至此,这张原理图的宏元件符号已经建立完毕,并且被加到元件表中。你可以在下一节中调用这个元件。
第五节ABEL语言和原理图混合输入
这一节,你要建立一个简单的ABEL-HDL语言输入的设计,并且将其与上一节中完成的原理图进行合并,以层次结构的方式,画在顶层的原理图上。然后对这个完整的设计进行仿真、编译,最后适配到器件中。
现在我们就开始吧!
I. I启动ispLEVER2.0
如果你在上一节的练习后退出了ispLEVER2.0,点击Start=>Programs=>Lattice
Semiconductor=>ispLEVER2.0菜单。
II建立顶层的原理图
A.从菜单条上选Source。
B.选择New...
C.在对话框中选Schematic,并按OK。
D.选择路径并在文本框中输入文件名,并按OK。
E.现在你就进入了原理图编辑器。
F.调用上节中创建的元件符号。选择Add菜单中的Symbol项,这时会出现Symbol Libraries对话框,选择Local的库,你会注意到在下部的文本框中有一个元件符号,这就是你在上一节中自行建立的元件符号。
G.选择此元件符号,并放到原理图上的合适位置。
II.建立内含ABEL语言的逻辑元件符号
现在你要为ABEL-HDL设计文件建立一个元件符号。只要知道了接口信息,你就可以为下一层的设计模块创建一个元件符号。而实际的ABEL设计文件可以在以后再完成。
A.在原理图编辑器里,选择ADD菜单里的New Block Symbol...命令。
B.这时候会出现一个对话框,提示你输入ABEL模块名称及其输入信号名和输出信号名。
C.当你完成信号名的输入,按Run按钮,就会产生一个元件符号,并放在本地元件库中。同时元件符号还粘连在光标上,随之移动。
D.单击鼠标右键,就会显示Symbol Libraries的对话框。请注意生成的符号出现在Local库中。
III.完成原理图
现在请你添加必需的连线,Net Name,以及I/O标记,来完成顶层原理图,使其看上去如下图所示。如果你需要帮助,请参考第二节中有关添加连线和符号的指导方法。当
你画完后,请存盘再退出。
IV.建立ABEL-HDL源文件
现在你需要建立一个ABEL源文件,并把它链接到顶层原理图对应的符号上。项目管理器使这些步骤简化了:
A.请注意红色“?”图标。这意味着目前这个源文件还是个未知数,因为你还没有建立它。同时也请注意源文件框中的层次结构,abeltop和demo源文件位于top原理图的下面并且偏右,这说明它们是top原理图的底层源文件。这也是ispLEVER2.0项目管理器另外一个有用的特点。
B.为了建立所需的源文件,请选择abeltop,然后选择Source菜单中的New...命令。
C.在New Source对话框中,选择ABEL-HDL Module并按OK。
D.下一个对话框会问你模块名,文件名,以及模块的标题。为了将源文件与符号相链接,模块名必须与符号名一致,而文件名没有必要与符号名一致。但为了简单,你可以给它们取相同的名字。按下图所示,填写相应的栏目:
E. 按OK。你就进入了Text Editor,而且可以可见ABEL-HDL设计文件的框架已经呈现在你的面前。
F. 输入例如以下的代码,确保你的输入代码位于TITLE语句和END语句之间。
G. 当你完成后,选择File菜单中的Save命令。
H. 退出文本编辑器。
I. 请注意项目管理器中abeltop源文件左边的图标已经改变了。这就意味着你已经有了一个与此源文件相关的ABEL文件,并且已经建立了正确的链接。
V. 编译ABEL-HDL
A. 选择abeltop源文件。
B. 在处理过程列表中,双击Compile Logic过程。
VII.仿真
你现在可以对整个设计进行仿真。为此,你需要一个新的测试矢量文件。在这个例子中你只需要修改当前的测试矢量文件。
A. 双击先前的*.abv源文件,就会出现文本编辑器。
B. 按照下图修改测试矢量文件:
C. 完成后,存盘退出。
D. 仍旧选择测试矢量源文件,双击Functional Simulation过程,进行功能仿真。
E. 现进入Simulation Control Panel窗口。按Windows=>Waveform Viewer窗口,打开波形观测器准备查看仿真结果。
F. 为了看波形,你必须在Simulation Control Panel窗口中按Debug钮,使Simulation Control Panel窗口进入Debug模式。
G. 在Available Signals栏中选择信号,并且按Monitor钮。这些信号名都可以在波形观测器中观察到。再按Run钮进行仿真。
H. 在步骤D中,如双击Timing Simulation过程,即可进入时序仿真流程,以下仿真步骤与功能仿真相同。
VIII. 把设计适配到Lattice器件中
现在你已经完成了原理图和ABEL语言的混合设计及其仿真。剩下的步骤只是将你的设计放入Lattice器件中。因为你已经在第一节中选择了器件,你可以直接执行下面的步骤:
A. 在源文件窗口中选择器件作为编译对象,并注意观察对应的处理过程。
B. 双击处理过程Fit Design。这将迫使项目管理器完成对源文件的编译,然后连接所
有的源文件,最后进行逻辑分割,布局和布线,将设计适配到所选择的Lattice器件中。
C. 当这些都完成后,你可以双击Fitter Report,查看一下设计报告和有关统计数据。
D. 祝贺!!你现在已经完成了设计例子,并且掌握了ispLEVER2.0的主要功能。
IX. 层次化操作方法
层次化操作是ispLEVER2.0系统项目管理器的重要功能,它能够简化层次化设计的操作。
a) 在项目管理器的源文件窗口中,选择最顶层原理图“top.sch”.此时在项目管理器右边的操作流程清单中必定有Navigate Hierarchy过程。
b) 双击Navigate Hierarchy过程,即会弹出最顶层原理图“top.sch”。
c) 选择View菜单中的Push/Pop命令,光标就变成十字形状。
d) 用十字光标单击顶层原理图中的abeltop符号,即可弹出描述abeltop逻辑的文本文件abeltop.abl。此时可以浏览或编辑ABEL-HDL设计文件。浏览完毕后用File菜单中的Exit命令退回顶层原理图。
e) 用十字光标单击顶层原理图中的demo符号,即可弹出描述demo逻辑的底层原理图demo.sch。此时可以浏览或编辑底层原理图。
f) 若欲编辑底层原理图,可以利用Edit菜单中的Schematic命令进入原理图编辑器。
编译完毕后用File菜单中的Save和Exit命令退出原理图编辑器。
g) 底层原理图浏览完毕后用十字光标单击图中任意空白处即可退回上一层原理图。
h) 若某一设计为多层次化结构,则可在最高层逐层进入其底层,直至最底一层;退出时亦可以从最底层逐层退出,直至最高一层。
i) 层次化操作结束后用File菜单中的Exit命令退回项目管理器。
第六节ispLEVER2.0系统中VHDL和Verilog语言的设计方法
除了支持原理图和ABEL-HDL语言输入外,商业版的ispLEVER2.0系统中提供了VHDL和Verilog语言的设计人口。用户的VHDL或Verilog设计可以经ispLEVER2.0系统提供的综合器进行编译综合,生成EDIF格式的网表文件,然后可进行逻辑或时序仿真,最后进行适配,生成可下载的JEDEC文件。
I. VHDL设计输入的操作步骤
A. 在ispLEVER2.0 Project Navigator主窗口中,按File=>New Project菜单建立一个新的工程文件,此时会弹出对话框选择设计类型。请注意:在该对话框中的Project Type栏中,必须根据您的设计类型选择相应的工程文件的类型。本例中,选择VHDL类型。若是Verilog设计输入,则选择VerilogHDL类型。
B. 在ispLEVER2.0 Project Navigator主窗口中,选择Source=>New菜单。在弹出的New Source对话框中,选择VHDL Module类型。按OK后,填写file name,entity name,archtecture name等信息。按OK钮后,进入文本编辑器-Text Editor编辑VHDL文件后保存。
C. 此时,在ispLEVER2.0 Project Navigator主窗口左侧的源程序区中,*.vhd文件被自动调入。
D. 在主界面中单击源文件,可以对其进行综合,相应的栏目会出现在右窗口中,ispLEVER2.0包含了2个第三方的综合工具,我们可以在主菜单Options->Select RTL synthesis中选择synplify或leonardospectrum。
例如我们选择了synplify,双击synplify synthesize VHDL file综合,如果code中有错,双击状态窗口中的错误提示,在text editor中光标就会移到相应位置并高亮显示,便于查找错误,如下图所示:
综合通过后,可以继续添加源文件(原理图或VHDL),并重复上述操作。源文件之间若有调用关系(Hierarchical Design),工具会自动理清层次(与ABEL设计相仿)。
E. 仿真步骤与原理图输入设计一致(写测试向量*abv或者建Waveform Stimulus)
F. 将设计适配到器件的方法也完全一致,不再赘述。
II. Verilog设计输入的操作步骤
Verilog设计输入的操作步骤与VHDL设计输入的操作步骤完全一致,在此不再赘述。需要注意的是在产生新的工程文件时,工程文件的类型必须选择为VerilogHDL。
第七节 在系统编程的操作方法
LatticeISP器件的在系统编程能够在多种平台上通过多种方法来实现。在此仅介绍在教学与科研中最常用的基于PC机Windows环境的菊花链式的在系统编程方法。由于在系统编程的结果是非易失性的,故又可将编程称为“烧写”或“烧录”。
利用PC Window版的ISP菊花链烧写软件对连接在ISP菊花链中的单片或多片ISP器件进行编程时,烧写软件对运行环境的要求为:
* 每个待编程器件的JEDEC文件(由前面的设计过程所得)
* 连接于PC机并行口上的ISP烧写电缆
* Microsoft Windows98,Windows2000,WindowsXP或NT
* 带有ISP接口的目标硬件(如教学实验板、电路板或整机)
具体方法如下:
打开开始菜单->程序->Lattice Semiconductor->ispVM system,为下载chain上的每个器件指定各自的.jed和下载方式,在Advanced Device Information对话框中设定Usercode等相关信息,点击工具栏中的GO按钮进行下载。
对菊花链进行编程:
* 各个ISP器件的位置(序号)和型号
* 对各个ISP器件将要进行的操作(擦除、烧录、校验或无操作等)
若PC机已经通过在系统编程电缆连接到教学实验板或目标硬件板上,那么建立结构文件最简单的方法是点击菜单栏中ispTOOLS=>Scan Chan或按下工具栏中Scan按钮。这一操作执行之后就产生一个包含有菊花链中所有器件的基本结构文件。然而此时结构文件中还缺乏关于进行何种操作和写入哪一个JEDEC文件的信息。
下一步是为菊花链软件中象要编程的每个器件选择一个JEDEC文件。这可通过向File栏中直接键入文件名称或利用浏览键(Browse)来选择JEDEC文件。对每个器件还应当从
Operation栏中选择合适操作方式(默认方式为编程加校验)。注意经过加密的器件不能单独进行校验。
当结构文件建立起来时,为防止JEDEC文件所对应的器件与实际器件不符之类的错误,应当对其进行校验。为此可从主菜单中选择Project=>Check Configuration Setup。
结构文件一旦建立起来并通过校验后,就可进行器件编程。在编程过程中,每个器件的Status窗口会显示操作进程和结果。出现Pass表示编程完毕。一旦出现Fail,应根据Message窗口中的提示进行检查,待问题解决后才能重新编程。
新建立的或经过修改的结构文件如果在以后需要反复使用,可利用File=>Save(或SaveAs)命令将其存盘。这样在下次使用时只要用File=>Open命令就能调出整个结构文件。
第八节 用ModelSim仿真
ModelSim的使用方法
如果要用modelsim进行仿真,首先在主界面菜单栏
Options=>Environment=>Directories中重新指定modelsim的路径,为安装目录\\MODELSIM\\WIN32LOEM,有2种方法产生仿真波形文件*.vhd。
(1) 可以通过执行窗口中的VHDL test bench template产生.vht文件,打开后用代码写出波形,并修改entity的name,注意不要与VHDL source文件同名,默认name为testbench,编辑完成后将文件格式保存为*.vhd,然后如前所述在Source=>Import
对话框中选择VHDL testbench,并选择仿真的器件或源文件。
(2) 先用Waveform Editor建立一个*.wdl波形,方法参照前述,在Waveform Editor菜单中File=>Export,出现下面的对话框:
按图示设定output file的格式,点击Export。打开此*.vht文件,修改entity的name,默认name为testbench,修改component名为需要仿真的源程序或原理图名,默认为*.wdl波形文件名,编辑完成后将文件格式改为*.vhd,然后如前所述在Source=>Import对话框中选择VHDL testbench,并选择仿真的器件或源文件。
在项目管理器的源文件窗口中,点击仿真文件*.vhd,在执行窗口中双击Functional Simulation或Timing Simulation(只有对器件仿真时才有),打开modelsim进行仿真。
Modelsim的具体用法请参考安装目录下\\modelsim\\docs中的user manual。
第九节 Constraint
在项目管理器主界面窗口中,单击器件后在双击执行窗口中的Constraint Editor,打开Constraint Editor窗口。单击信号树列中的信号,在右边窗口中会高亮显示,可以对它
进行设置,包括IO type,pin locking,GLB,slewrate等。
单击菜单栏Device=>Package View或者单击工具栏中Package View按钮打开Package View窗口,点中信号树列中的信号并拖动鼠标至package中的相应pin号,完成一个信号的管脚绑定,是不是很方便啊!
另外,菜单栏中Pin Attribute选项下的Location Assignment也用来绑定管脚,Group Assignment用来将一些用户选定的信号组合在指定的GLB中,IO Type Setting用来选择每个IO管脚的电平标准,Default Setting为用户无特别设定信号的默认设定,在工具栏中都有相应的按钮。这些窗口如下:
保存constraint后在主界面里双击Fit Design产生*.jed文件,双击Timing Analysis打开下面的窗口:
对fmax,Tpd,Tco等作分析,如果各类参数都符合设计要求,可以将*.jed下载至chip中作进一步debug。
结束
因篇幅问题不能全部显示,请点此查看更多更全内容