常用EDA工具软件操作指南

更新时间:2024-01-30 00:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第4章 常用EDA工具软件操作指南

本章提要:本章阐述了Altera MAX+plusⅡ,Xilinx ISE Series、Lattice ispDesignEXPERT等常用的主流EDA工具软件的基本使用方法,包括软件的安装,原理图、VHDL等输入方式的设计操作的步骤与方法。

学习要求:在对三个软件作简单介绍的基础上,概括地讲述三个主流厂家LATTICE、ALTERA、XILINX公司的设计开发软件中的一个的使用,并要求学生通过实验和上机熟悉地掌握其中一个软件的使用。对其余的两个软件至少有个基本的了解。

关 键 词: MAX+plusⅡ,ISE Series、ispDesignEXPERT

4.1 Altera MAX+plusⅡ操作指南

4.1.1 MAX+plusⅡ10.2的安装

4.1.2 MAX+plusⅡ开发系统设计入门 4.2 Xilinx ISE Series的使用

4.2.1 ISE的安装

4.2.2 ISE工程设计流程 4.2.3 VHDL设计操作指南 4.2.4 ISE综合使用实例

4.3 Lattice ispDesignEXPERT的使用

4.3.1 ispDesignEXPERT的安装 4.3.2 原理图输入方式设计操作 4.3.3 VHDL输入方式设计操作

4.1 Altera MAX+plusⅡ操作指南

Alter公司的MAX+plusⅡ是一个高度集成化的可编程逻辑器件开发系统,可以开发Alter公司的MAX系列和FLEX系列的可编程器件。该系统的主要特点如下:

① 支持多种设计输入方式。如:原理图、VHDL语言、AHDL语言、波形图等。同时还支持主流的第三方EDA工具,如:Synopsys、Cadence、ViewLogic、Synplicity、Mentor和Model Technology等等。

② 提供完善的功能仿真,同时还提供精确的时间仿真。

③ 该系统把设计输入、功能仿真、时间仿真、设计编译以及器件编程集成于统一的开发环境下,从而更方便、更快捷。

④ MAX+plusⅡ开发系统还具有编译快捷,设计实现优化的功能。

4.1.1 MAX+plusⅡ10.2的安装

1)安装MAX+PLUSII10.2的软硬件要求

MAX+PLUSII PC版可以在以下几种操作系统下运行:Windows NT 4.0/Windows 98/Windows 2000/Windows XP。表4.1中列出了用于不同器件所需的有效内存。

表4.1 MAX+PLUSII系统所需的存储器 器件系列 ACEX1K MAX7000 MAX9000 FLEX6000 FLEX8000 FLEX10K 最小内存/MB 256 48 64 32 64 32 64 32 256 128 物理RAM/MB 128 16 2)安装MAX+PLUSII10.2 PC版

下面介绍MAX+PLUSII PC版在Windows 98操作系统下的安装过程。若在其他操作系统下安装,可参照此方法操作。

(1)将MAX+PLUSII10.2安装光盘放入光驱,安装窗口将自动出现图4.1所示的界面。

图4.1 MAX+PLUSII 10.2安装界面

你可以选择MAX+PLUSII 10.2安装类型如下:Custom、BASELINE、Programmer Only和ACCESS Key Guidelines。开始安装之前,你还可以阅读Help文件、Read Me文件、License Agreement文件和ACCESS Key Guidelines。单击任一安装选项,即开始安装。安装过程中按照屏幕上的提示进行操作。

(2)安装好后, 双击MAX+plusII图标或在“开始”菜单内选择MAX+plusII项,开始运行MAX+plusII。第一次运行MAX+plusII时,将会出现授权协议对话框,仔细阅读后,按下Yes按钮。

(3)系统若没有安装Software guard(软件狗),则在接受授权协议后,将出现如图4.2所示的MAX+plusII版权保护对话框,若希望查看如何获得License的信息,则单击按钮‘是(Y)’,否则单击按钮‘否(N)’。

4.2 MAX+plusII版权保护对话框

(4) 选择菜单命令Option/License Setup,则弹出License Setup对话框,如图4.3所示。单击System Info 按钮,弹出System Info对话框,记录硬盘的驱动序列号,然后通过访问Altera公司的网站:http://www.Altera.com 获得授权文件license.dat。

图4.3 License Setup对话框

(5) 收到Altera公司的授权文件license.dat后,将license.dat复制到MAX+plusII的安装目录,打开MAX+plusII,按照步骤(4)打开License Setup对话框,在“License File or Server Name”对话框中填入license.dat文件的路径及文件名,单击OK按钮。至此,MAX+plusII安装完毕。

4.1.2 MAX+plusⅡ开发系统设计入门

MAX+plusⅡ开发系统的工程管理器集成了开发Altera公司生产的各种器件的全部功能,主要包括工程项目管理、设计输入、功能仿真、时序仿真、设计约束等等。MAX+plusⅡ开发系统的工程管理器的用户主界面如图4.4所示。在“MAX+plusⅡ”菜单下给出了MAX+plusⅡ软件的主要功能,各项的具体含义如下:

·Hierarchy Display:显示当前项目层次图。 ·Graphic Editor:原理图编辑器。 ·Symbol Editor:图形符号编辑器。 ·Text Editor:文本编辑器。

·Waveform Editor:波形编辑器。供仿真阶段用,或用于编辑波形图输入文件。 ·Floorplan Editor:引脚平面编辑器。可以观察编译后器件内的资源,如逻辑单元、I/O单元、LAB行或列以及引脚。

·Compiler:编译窗口。 ·Simulator:仿真窗口。

·Timing Analyzer:定时分析窗口。 ·Programmer:器件编程(下载)窗口。

·Message Processor:信息窗口。给出处理过程中的一些系统信息。

MAX+plusⅡ的设计过程主要由设计输入、项目编译、项目校验和器件编程四部分组成。

图4.4 MAX+plus II主界面

1)设计输入

(1)建立设计输入文件

我们先以原理图文件输入方式为例进行介绍: ① 为本项目工程设计建立文件夹 任何一项设计都是一项工程(Project),最好为此项工程单独建立一个文件夹以存放与此工程相关的所有文件。假设本项设计的文件夹取名为myproject,路径为:c:\\baseline\\myproject。

② 打开MAX+plusⅡ,选择菜单命令File/New,弹出新文件对话框(New),如图4.5所示。

图4.5 新文件对话框

③ 在新文件对话框(New)中,选择图形编辑器,单击OK按钮,弹出一个无名称的图形编辑窗口,此时界面将转变为图形编辑器菜单,如图4.6所示。在图形编辑器的左侧为绘图工具,其功能见图4.6的标注。

选择 添加文本

画正交线

画对角线

画弧线 画圆

放大视图

缩小视图 与 窗口适配 连接点断接

拖动功能打开

拖动功能关闭

图形编辑窗

口绘图区域

图4.6 MAX+plus II图形编辑器

④ 编辑图形文件

以设计一个十进制加法计数器为例,介绍编辑一个原理图文件的步骤。 首先是添加元件和宏功能符号:

a.在选择工具按钮有效时,在图形编辑器的绘图区域,单击鼠标左键,将出现一个闪烁的黑点,该点为添加元件和宏功能符号的位置。

b. 选择菜单命令Symbol/Enter Symbol项目,或者在确认添加元件位置双击左键,系统将弹出输入元件Enter Symbol对话框,如图4.7所示。元件库列表Symbol Libraries提供了一系列的元件库:

·prim:基本元件库,主要存放的是基本器件(基本门电路、各种触发器、输入输出引脚及直流电源和地)。

·mf:宏功能库,主要放置74系列逻辑宏功能符号。

·mega_lpm:参数化模块库,主要放置参数化宏功能模块(能够根据不同的参数来产生同一类的不同功能的模块)。

·edif: 主要放置工业标准器件。

图4.7 输入元件对话框

c.选择Enter Symbol对话框中元件库列表中的一个元件库,双击鼠标左键,将更新符号元件列表Symbol Files中的元件。在本例中选择mf库,并选择74160(同步十进制加法计数器),单击OK按钮,带红色边框的74160符号显示在原理图绘图区。

d.重复上述操作,在Prim库中分别选择Vcc,GND,INPUT,OUTPUT元件输入到绘图区。 e.若需要相同的元器件,用鼠标选定已有的元器件,在工具栏上选择复制,粘贴图标,即可复制出该元器件。

其次是元件的移动操作:

添加元件后若需要重新调整元件位置,则方法如下: a.在绘图工具栏中选定选择按扭。

b.移动光标到需要移动的目标文件外围虚线区域内,当光标以箭头形式出现时,单击鼠标确定,选定的器件将被红线所包围。按下左键并保持按下状态,拖动鼠标到目的位置,释放左键,则完成对器件的一次拖动。

c.如果需要同时移动多个目标,则可在欲移动的目标外围按左键,拖动鼠标,将出现一个选择框,当目标完全处于选择框内时释放左键,则目标被红线包围。拖动方法同上。

接着是连线及旋转操作:

如果需要将两个元件输入输出端相连,则将鼠标移动到其中一个元件的输入或输出端上,这时鼠标指示符自动变为“+”形状,然后可按下述步骤操作:

a.按住鼠标左键,光标将由小“+”,变成大“+”,拖动鼠标到另一个元件的输入或输出端上,释放左键,则一条连接线被画好了。

b.如果要删除某条连接线,可单击那根连线使其变为高亮线,然后按键盘上的Del键或在Edit菜单中选择Cut项即可。

c.如果要旋转某器件,右键单击欲旋转的元件,则该元件的外围变为红线,在弹出菜单中选择Rotate项目,再选择旋转角度即可。在本例中绘制的原理图如图4.8所示。

图4.8 十进制计数器

再接着是引脚的命名:

在引脚命名之前,输入输出引脚名均为系统默认的PIN_NAME,为了进行编译,须要重命名。把鼠标移PIN_NAME上,双击鼠标,原引脚名变为黑色,直接输入新的引脚名。如图4.9所示。

图4.9 标记引脚后的电路图

最后是保存文件:

原理图编辑完成后,选择命令菜单File/Save,保存新建的文件,在弹出的文件目录对话框中选择本设计的项目文件夹c:\\baseline下的myproject (步骤(1)中所建),在文件名对话框中输入文件名,如counter10.gdf,点击OK按钮,完成保存,如图4.10所示。

图4.10 Save As对话框

若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

① 创建VHDL设计工程

在MAX+plusⅡ系统的主界面下,在文件File菜单中选择工程名Project Name,并在对话框中输入工程名。

② 编辑VHDL源程序文件

在文件File菜单中选择New选项,在弹出的新文件对话框中选择文本编辑器Text Editor file,单击OK,系统会自动打开文本编辑器。在文本编辑器中输入VHDL源程序。然后,在File菜单选择保存文件Save选项,在打开的对话框中输入文件名。注意,此文件名必须与VHDL源代码中的实体名一致,后缀名为.vhd。 (2)将设计项目设置成工程文件(Project)

为了使MAX+plusⅡ能对输入的设计项目按设计者的要求进行各项处理,必须先将设计文件,如十进制计数器counter10.gdf,设置为工程(Project)。如果设计项目由多个设计文件组成,则应该将它们的主文件,即顶层文件设置成Project。如果要对其中某一底层文件进行单独编译、仿真和测试,也必须首先将其设置成Project。

将设计项目(如counter10.gdf)设置成Project的步骤如下:

① 如图4.11所示,选择命令菜单File/Project中的Set Project to Current File命令,即将当前设计文件设置成Project。选择此项后可以看到标题栏显示出所设文件的路径,如图4.12所示。这点很重要,此后的设计中应该特别关注此路径的指向是否正确。

图4.11 将当前设计文件设置成工程文件

图4.12 将当前设计文件设置成工程文件后

② 如果设计文件未打开,可如图4.12所示,选择命令菜单File/Project中的Name命令,则弹出工程项目名对话框,如图4.13所示。在Directries小窗口中找到设计文件

图4.13 工程项目名对话框

的目录c:\\baseline\\myproject,在其Files小窗口中双击设计文件counter10.gdf,此时即选定此文件为本次设计的工程了。

2) 编译设计项目

MAX+plusⅡ编译器可以检查项目中的错误并进行逻辑综合,生成仿真、定时分析和器件编程所需要的文件。

MAX+plusⅡ编译器既能接受多种输入文件格式,又能输出多种文件格式。其能接受的设计文件包括:①MAX+plusⅡ自己的图形文件(.gdf)、AHDL文件(.tdf)、VHDL文件(.vhd);②第三方EDA工具输入文件,如:EDIF文件(.edf)、库映射文件(.lmf)、OrCAD文件(.sch)、Xilinx文件(.xnf)以及赋值和配置文件(.acf)。MAX+plusⅡ编译器的输出文件包括设计校验文件、MAX+plusⅡ的模拟器网表文件(.snf)、第三方EDA工具所用的网表文件(.vo)和标准格式的SDF文件(.sdo).另外还可以输出可编程文件,包括用于编程器下载的目标文件(.pof)、用于在线配置的SRAM目标文件(.sof)和JEDEC文件(.jed)。

编译的步骤如下: (1)选择目标器件

为了获得与目标器件对应的、精确的时序仿真文件,在对文件编译前必须选定最后实现本项目的目标器件,在MAX+plusⅡ环境中需选Altera公司的FPGA或CPLD。

① 选择命令菜单Assign/Device/,将弹出Device对话框如图4.14所示。

图4.14 选择实现本项设计的目标器件

② 在对话框的Device Family列表中选择所需要的器件系列,Device列表中选择所需的器件。当改变不同系列的器件后, Device列表中器件型号也将发生相应的变化。为了选择所有速度级别的器件,应将列表框下方标有“Show Only Fastest Speed Grades”选项的“√”消去。在本例中选择FLEX10K系列中的EPF10K10LC84-4。单击OK按钮。

如果不能确定所需的器件型号,可在列表中不选择具体器件,选择AUTO Device,则编译系统将进行自动的器件选择。

(2)引脚锁定

编译器既可以自动为项目设定引脚,也可以根据使用者的需要自行设置引脚,但一定要

注意先选器件再设置引脚。这里假设根据实际需要将计数器的端口CLK、QA、QB、QC、QD和RCO分别与目标器件EPF10K10LC84-4的第6、7、8、9、10和11脚相接,操作如下:

① 选择命令菜单中的Assign/Pin/Location/Chip,或者用鼠标右键单击引脚符号,在出现的下拉菜单中选Assign/Pin/Location/Chip,弹出Pin/Location/Chip对话框。

② 在Node Name栏输入端口名,在Pin下拉列表中选择引脚号,在Pin Type中选定引脚类型。单击ADD按钮,重复上述操作,完成所有端口的引脚锁定,如图4.15所示。

图4.15 计数器引脚锁定

③ 单击OK按钮,如果输入的引脚号不是器件的I/O引脚,系统将给出错误信息。 ④ 在File菜单中选择Save项,保存设计文件。 (3)编译文件

① 选择命令菜单MAX+plusⅡ/Compiler,弹出Compiler对话框如图4.16所示。此编译器的功能包括编译网表文件提取(Compiler Netlist Extractor)、数据库建立(Database Builder)、逻辑综合(Logic Synthesizer)、逻辑分区(Partitioner)、适配(Fitter)、时序仿真文件提取(Timing SNF Extractor)、编程下载文件装配(Assembler)等。

图4.16 对工程文件进行编译、综合和适配等操作

② 单击Start按扭开始编译。如果发现错误,系统会给出相应的错误信息,排除错误后再次编译。

3)设计校验

设计项目编译完成之后,能否实现所要求的逻辑功能,还需要进一步检验。MAX+plusⅡ支持功能仿真和时序仿真两种仿真形式,功能仿真可以验证项目的逻辑功能是否正确;时序仿真不仅可以验证项目的逻辑功能是否正确,还可测试器件最差情况下的时间关系。

在仿真时,需要加入激励信号,该激励信号可以用MAX+plusⅡ软件中的波形编辑器编辑波形文件,也可以先用文本编辑器按软件给定的语法规则编辑成文本文件,再转换成波形文件,也可二者结合进行。常用的方法是对时钟或简单的波形信号用波形编辑器输入,而较复杂的信号则用文本编辑器生成。在同一条件下,时序仿真的仿真结果与实际的可编程器件的时序关系完全相同。

下面仍以counter10.gdf文件为例,介绍如何进行时序仿真。 (1)创建仿真波形文件

① 选择命令菜单MAX+plusⅡ/Waveform Editor,弹出一个Untitled-Waveform Editor无标题的波形编辑窗口。

② 输入信号节点。选择菜单命令Node/Enter Nodes from SNF,弹出Enter Nodes from SNF对话框。单击List按钮,则Avaliable Nodes & Groups栏中列出所有信号节点。单击向右箭头(=>),把选中的需要观察的节点送到Selected Nodes & Groups 栏中,如图4.17所示。单击OK按钮,即可看见输入、输出信号出现在波形编辑窗口中。此时波形编辑窗口中,所有编辑的输入节点的波形都默认为逻辑低电平;输出和隐埋节点波形都默认为不定状态。

图4.17 列出并选择需要观察的信号节点

③ 设置波形参量。在为波形编辑窗的计数器的输入信号CLK设定必要的测试时钟之前,首先需设定相关的仿真参数。如图4.18所示,在Option菜单中消去网格对齐项Snap to Grid前面的“√”,以便能够任意设置输入电平位置,或设置输入时钟信号的周期。

图4.18 在Option菜单中取消Snap to Grid 的选择

④ 设定仿真时间。选择命令菜单File/End Time项,在弹出的对话框中输入适当的仿真时间域。如可选50us以便有足够长的观察时间。

⑤ 编辑输入信号波形。如图4.19的标注,利用时钟周期赋值功能键为输入时钟信号CLK设定周期(这里设定周期为100ns),以便仿真后能测试 QA、QB、QC、QD和RCO输出信号。

将某段总线拖黑,由此按钮赋值 放大缩小 赋值‘0’ 赋值‘1’ 赋值不定值‘X’ 赋值高阻值‘Z’ 赋值取反 时钟周期赋值 总线顺序赋值 总线赋值 FSM状态赋值 图4.19 为输入信号设定测试波形

⑥ 波形文件存盘。选择命令菜单File/Save as,弹出Save as对话框,其中波形文件名是默认的(这里是counter10.scf),按下OK按钮即可。

(2)运行仿真器

选择命令菜单MAX+plusⅡ/Simulator,单击弹出的仿真器对话框中的Start按钮,如图4.20所示。仿真结束后,将弹出仿真信息提示对话框,单击确定按钮。

图4.20 运行仿真器

(3) 观察仿真结果

如果当前设计的波形编辑器已打开,在屏幕上选择波形编辑器,则在编辑器上可以看到仿真结果。否则就在仿真窗口单击Open SCF按扭即可打开当前波形文件。图4.21是仿真运算完成后的时序波形。注意,刚进入图4.21的窗口时,应将最下方的滑块拖向最左侧,以便观察到初始波形。由十进制计数器的逻辑功能可知图4.21中的时序波形是正确的。图中还可以进一步了解信号的延时情况。图4.21中右侧的竖线是测试参考线,其上方标出的450.8ns是此线所在的位置,它与鼠标箭头间的时间差显示在窗口上方的“Interval”小窗中。

图4.21 十进制计数器的仿真波形

(4) 时序仿真的定时分析

为了精确测量计数器输入输出之间的延时,可打开时序分析器。选择Max+plusII/Timing Analyzer项,弹出Timing Analyzer窗口,如图4.22所示。单击Timing Analyzer窗口中的Start按钮,延时信息即刻显示在图表Delay Matrix中。其中左排的列表是输入信号,上排列出输出信号,中间是对应的延时量,这个延时量是针对所选定的目标器件的。

图4.22 打开延时时序分析窗

4)器件编程

MAX+plusⅡ提供了多种对器件编程方式,比较常用的方式是利用ByteBlaster编程电缆对MAX系列器件进行编程或对FLEX系列器件进行配置。具体步骤如下:

(1)ByteBlaster编程电缆的一端与微机的并行口相连,另一端10针编程头与装有可编程逻辑器件的PCB板上的编程插座相连。该PCB板还必须为ByteBlaster编程电缆提供电源。

(2)选择菜单命令MAX+plusⅡ/Programmer,系统将弹出编程对话框,所选择的器件不同,对话框相对应的有效按钮也不同。在本例中选择的器件是EPF10K10LC84-4,编程对话框如图4.23所示。

图4.23 编程对话框

(3)选择Options/Hardware Setup,弹出Hardware Setup窗口,如图4.24所示。在其下拉菜单中选择ByteBlaster(MV)编程方式,单击OK按钮。

此编程方式对应计算机的并行口下载通道,“MV”是混合电压的意思,主要指对Altera的各类芯核电压(如5V、2.5V、1.8V等)的FPGA/CPLD都能由此下载。此项设置只在初次装软件后第一次编程前进行,设置确定后就不必重复设置了。

图4.24 设置编程下载方式

(4)下载。单击Programmer 对话框中的Configure按钮,向EPF10K10LC84-4下载配置文件counter10.sof,如果连线无误,应出现报告配置完成的信息提示。

到此为止,完整的原理图输入的设计流程已经结束。

4.2 Xilinx ISE Series的使用

4.2.1 ISE的安装

现以ISE 5.2i为例介绍Xilinx ISE Series的安装过程。 1)系统配置要求

ISE 5.2i推荐的系统配置与设计时选用的芯片有关。因为在综合与实现过程中运算量非常大,所以对系统配置要求很高。为了提高综合、仿真、实现过程的速度,对于计算机的CPU的主频、主板和硬盘的工作速度,尤其是内存大小配置都有非常高的要求。在ISE 5.2i支持的所有Xilinx的FPGA/CPLD中,要求最低的Spartan II和XC9500/XL/XV等系列需要的内存和虚拟内存推荐值均达到128MB,而对于Virtex-II XC2V8000来说,需要的内存和虚拟内存推荐值均高达3GB。

2)ISE 5.2i的安装

以中文版Windows XP操作系统为例加以说明。

(1)启动Windows XP,插入ISE5.2i安装光盘,自动或选择执行Install.exe,安装

界面如图4.25所示。

图4.25 ISE5.2i安装界面

(2)单击此时安装界面上的操作选择“下一步”直到出现图示对话框,输入有效的Registration ID。之后单击“下一步”选择安装路径;再之后点击“下一步”,会弹出图4.26的对话框,可以选择器件模型。

图4.26 器件模型选择对话框

(3)点击“下一步”,如图4.27所示,可以选择器件种类。

图4.27 器件种类选择对话框

通过以上步骤后,可根据具体情况来选择,继续“下一步”即可完成安装。 安装完成后,环境变量应作如下描述:

若操作系统是Windows NT/2000/XP,选择开始->控制面板->系统->选项->系统->高级->环境变量,在环境变量中加入:

变量名:Xilinx

变量值:C:\\Xilinx(即安装路径) 具体设置如图4.28所示。

图4.28 环境变量设置操作图

3)安装第三方软件

在PC上安装完ISE之后,还需要安装第三方仿真软件,如ModelSim等。

4.2.2 ISE工程设计流程

下面主要概述ISE的基本开发流程以及在开发过程中的各个阶段需要用到的工具软件。

图4.29 说明了利用Xilinx公司的ISE开发设计软件的工程设计流程,具体分为五个步骤:即输入(Design Entry)、综合(Synthesis)、实现(Implementation)、验证(Verification)、下载(Download)。

1)图形或文本输入(Design Entry)

图形或文本输入包括原理图、状态机、波形图、硬件描述语言(HDL),是工程设计的第一步,ISE集成的设计工具主要包括HDL编辑器(HDL Editor)、状态机编辑器(StateCAD)、原理图编辑器(ECS)、IP核生成器(CoreGenerator)和测试激励生成器(HDL Bencher)等。

常用的设计输入方法是硬件描述语言(HDL)和原理图设计输入方法。原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在ISE软件的图形编辑器中作出设计原理图,ISE中设置了具有各种电路元件的元件库,包括各种门电路、触发器、锁存器、计数器、各种中规模电路、各种功能较强的宏功能块等用户只要点击这些器件就能调入图形编辑器中。这种方法的优点是直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性差,不利于模块建设与重用。更主要的缺点是:当所选用芯片升级换代后,所有的原理图都要作相应的改动。故在ISE软件中一般不利用此种方法。

为了克服原理图输入方法的缺点,目前在大型工程设计中,在ISE软件中常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog HDL。它们的共同优点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化,更利于向ASIC的移植,故在ISE软件中推荐使用HDL设计输入法。

波形输入及状态机输入方法是两种最常用的辅助设计输入方法,使用波形输入法时,只要绘制出激励波形的输出波形,ISE软件就能自动地根据响应关系进行设计;而使用状态机输入时,只需设计者画出状态转移图,ISE软件就能生成相应的HDL代码或者原理图,使用十分方便。其中ISE工具包中的StateCAD就能完成状态机输入的功能。但是需要指出的是,后两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不适合所有的设计。

图4.29 ISE的工程设计流程

2)综合(Synthesis)

综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。一般来说,综合是针对VHDL来说的,即将VHDL描述的模型、算法、行为和功能描述转换为FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。

在Xilinx ISE中,综合工具主要有Synplicity公司的Synplify/Synplify Pro,Synopsys公司的FPGA Compiler II/ Express, Exemplar Logic公司的 LeonardoSpectrum和Xilinx ISE 中的XST等,它们是指将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求优化所形成的逻辑连接,输出edf和edn等文件,供CPLD/FPGA厂家的布局布线器进行实现。

3)实现(Implementation)

实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。Xilinx ISE的实现过程分为:翻译(Translate)、映射(Map)、布局布线(Place & Route)等3个步骤。

ISE集成的实现工具主要有约束编辑器(Constraints Editor)、引脚与区域约束编辑器(PACE)、时序分析器(Timing Analyzer)、FPGA底层编辑器(FGPA Editor)、芯片观察窗

(Chip Viewer)和布局规划器(Floorplanner)等。

4)验证(Verification)

验证(Verification)包含综合后仿真和功能仿真(Simulation)等。功能仿真就是对设计电路的逻辑功能进行模拟测试,看其是否满足设计要求,通常是通过波形图直观地显示输入信号与输出信号之间的关系。

综合后仿真在针对目标器件进行适配之后进行,综合后仿真接近真实器件的特性进行,能精确给出输入与输出之间的信号延时数据。

ISE可结合第三方软件进行仿真,常用的工具如Model Tech公司的仿真工具ModelSim和测试激励生成器HDL Bencher ,Synopsys公司的VCS等。通过仿真能及时发现设计中的错误,加快设计中的错误,加快设计进度,提高设计的可靠性。

每个仿真步骤如果出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设计。

5)下载(Download)

下载(Download)即编程(Program)设计开发的最后步骤就是将已经仿真实现的程序下载到开发板上,进行在线调试或者说将生成的配置文件写入芯片中进行测试。在ISE中对应的工具是iMPACT。

4.2.3 VHDL设计操作指南

首先进入ISE工程管理器(Project Navigator)界面,如图4.30所示。 Project Navigator是ISE所用集成工具的连接纽带,通过使用Project Navigator,设计者可以创建、组织和管理自己的设计。

ISE提供了许多示例工程,这些工程都存放在ISE文件当中,可以通过File->Open Example来打开。

ISE为我们提供了一个很有特色的工具,那就是语言辅助模板(Language Templates)。点击Edit->Language Templates,可以调用语言辅助模板,其界面如图4.31所示。

图4.30 ISE工程管理器界面

图4.31 ISE语言辅助模板示意图

在语言模板中存放了很多HDL语言的通用语法结构和使用范例,特别是许多根据Xilinx器件IP核与硬件原语编写的实例化程序。使用语言模板,可以方便地把这些语法结构和范例插入到设计者自己的代码文件中,大大方便了程序的编写,提高了工作效率。语言模板按照ABEL、COREGEN、UCF、Verilog和VHDL的顺序存放在模板视窗中。其中COREGEN的UCF是ISE 5.x新增辅助模板。COREGEN模板由两个目录组成,分别存放当前工程中生成的IP核的Verilog和VHDL实例化文件,基内容与IP核生成器生成IP核时自动生成的实例化文件(.veo,.vho)相同。UCF模板也分成两个目录,依次存放CPLD和FPGA的用户约束文件(.ucf)的约束范例。这个模板使手工编辑UCF文件更加容易。

ABEL、Verilog和VHDL三大语言模板大致可以分为下列4个项目: (1)器件例化(Component Instantiation):该模板仅存在于Verilog和VHDL中,给出了块RAM(Block RAM)、数字时钟延迟锁相环(Clock DLL)、数字时钟管理单元(DCM)、分布式RAM/ROM(Distributed RAM/ROM)、全局时钟缓冲(Global Clock Buffer)、查找表(LUT)、基于查找表的移位寄存组(SRLUT)、I/O器件、乘法器和选择器(MUX)等器件模块的实例化范例。

(2)语法模板(Language Templates):该模板给出了基本语法规则和应用范例。 (3)综合模板(Synthesis Templates):该模板给出了可综合实现的一些基本单元模块的范例,如乘法器、计数器和触发器等。

(4)用户模板(User Templates):该模板存放用户自己创建的特定结构,是语言模板的功能扩展。

4.2.4 ISE综合使用实例

在NBA篮球比赛中有一个24秒进攻规则,即从获取球权到投篮击中篮板、篮框、命中或投篮被侵犯,其有效时间合计不能超过24秒,否则被判违例,将失去球权。在此过程中,设置24秒、启动倒计时、暂停倒计时或者中途终止24秒(即球权归对方)均由裁判控制。本实例就是设计一个用于篮球比赛的24秒倒计时器,并且为了模拟现场比赛情况,系统中设置了24秒预设键K1、倒计时启动键K2和倒计时暂停键K3,并将计时精度设置为0.1秒。各按键具体功能如下:K1键按下,LED灯显示24秒;K2键按下,倒计时;K3键按下,计时停止。

1)新建一个工程(Project)

选择File / New Project命令,在图4.32所示对话框中输入工程名和工程目录,并设置器件参数。本设计使用的器件为Spartan2,xc2s100,tq144,-5。使用VHDL硬件描述语言编程。点击OK按钮确认。

图4.32 新建工程对话框

2)建立和编辑VHDL源文件 选中工程,点右键选New Source选项(如图4.33所示),添加文件count_t.vhd,led_2.vhd,sec_1.vhd(如图4.34所示)。并在文件中输入相应的VHDL程序。

图4.33 添加文件对话框

图4.34 新建VHDL文件对话框 本设计中将要用到的VHDL源程序如下:

--COUNT_T.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY COUNT_T IS

PORT (CLK : IN STD_LOGIC; CLK_S: OUT STD_LOGIC;

SCAN_CLK : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END COUNT_T;

ARCHITECTURE BEHAVIORAL OF COUNT_T IS

SIGNALCNT1 : STD_LOGIC_VECTOR(21 DOWNTO 0):=\SIGNAL CLK1 : STD_LOGIC:='0'; BEGIN

--10HZ时钟形成进程 PROCESS(CLK) BEGIN

IF CLK='1' AND CLK'EVENT THEN

IF CNT1=\ CNT1<=(OTHERS =>'0'); CLK1<=NOT CLK1; ELSE

CNT1<=CNT1+1; END IF; END IF;

END PROCESS; CLK_S<=CLK1;

SCAN_CLK<=CNT1(15 DOWNTO 14); END BEHAVIORAL;

-- LED_2.VHD LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY LED_2 IS

PORT ( SCAN_CLK : IN STD_LOGIC_VECTOR(1 DOWNTO 0); L1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); L2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); L3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); A : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END LED_2;

ARCHITECTURE BEHAVIORAL OF LED_2 IS

SIGNAL LED1,LED2,LED3 :STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

WITH L1 SELECT --十位 LED1<= \, --1 \, --2 \, --3 \, --4 \, --5 \, --6

\, --7 \, --8 \, --9 \ --0

WITH L2 SELECT --个位 LED2<= \, --1 \, --2 \, --3 \, --4 \, --5 \, --6 \, --7 \, --8 \, --9 \ --0

WITH L3 SELECT --小数 LED3<= \, --1 \, --2 \, --3 \, --4 \, --5 \, --6 \, --7 \, --8 \, --9 \ --0

PROCESS(SCAN_CLK,LED1,LED2,LED3) BEGIN

CASE SCAN_CLK IS

WHEN \ A<=\ WHEN \ A<=\ WHEN \ A<=\ WHEN \ A<=\

WHEN OTHERS => SEG<=\ A<=\ END CASE; END PROCESS;

END BEHAVIORAL;

--SEC_1.VHD LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SEC_1 IS

PORT (CLK_S : IN STD_LOGIC; K1 : IN STD_LOGIC;

K2 : IN STD_LOGIC; K3 : IN STD_LOGIC; L1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); L2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); L3 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END SEC_1;

ARCHITECTURE BEHAVIORAL OF SEC_1 IS TYPE STATES IS (S0,S1,S2); SIGNAL ST : STATES:=S0;

SIGNAL CNT3 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL CNT4 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL CNT5 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\BEGIN

--24秒倒计时

-- K1: 设置24秒,并暂停,进入状态S2; -- K2: 停表,强制进入状态S0 (什么也不做);

-- K3: 开始倒计时 S1,至0秒时自动停止,进入状态S0; PROCESS(CLK_S) BEGIN

IF CLK_S='1' AND CLK_S'EVENT THEN

IF K1='1'AND K2='0'AND K3='1' THEN ST<=S0; END IF;

IF K1='0'AND K2='1'AND K3='1' THEN ST<=S2; END IF;

IF K1='1'AND K2='1'AND K3='0' THEN ST<=S1; END IF;

CASE ST IS

WHEN S0=> NULL; WHEN S1=> IF CNT5=\ IF CNT4=\ IF CNT3=\ ST<=S0; ELSE CNT4<=\ CNT5<=\ CNT3<=CNT3-1; END IF; ELSE CNT5<=\ CNT4<=CNT4-1; END IF; ELSE CNT5<=CNT5-1; END IF; WHEN S2 => CNT5<=\ CNT3<=\--十位 CNT4<=\ WHEN OTHERS => NULL; END CASE; END IF;

END PROCESS; L3<=CNT5;

L2<=CNT4; L1<=CNT3;

END BEHAVIORAL;

3)逻辑综合(Synthesize)

选中Synthesize选项,点进行参数设置,可以对任何操作进行参数设置。设置完成后,双击Synthesize选项,或右键选择Run选项。对其他两个VHDL程序进行同样的操作。

图4.35 综合参数设置示意图

图4.36 综合完成后界面

4)设计中的有关仿真

(1) 创建Testbench波形源文件

在工程项窗口Project Window的源文件中选中count_t.vhd ,用鼠标右点,在弹出的窗口中选择New Source(如图4.37所示),出现New对话框,再选择Test Bench Waveform文件类型,并输入文件名wave_1,点击下一步,再点击下一步,完成创建并进行初始化时间设置(如图4.38所示)。

图4.37 选中源文件并创建Testbench波形文件

图4.38 创建Testbench波形文件的初始化时间设置

(2) 设置输入信号初始值

根据被仿真模块的设计要求,对各个输入信号进行初始化设置(如图4.39所示)。初始化设置完毕后将testbench文件存盘,这时HDL Bencher会提示我们设置希望仿真的时钟周期数(默认值为1),设置完毕后点击OK退出HDL Bencher。

图4.39 输入信号的初始设置

(3) 生成预期的输出响应

由于系统时钟为50MHz,要分频实现1Hz时钟波形过长,因此,下面以sec_1.vhd为例介绍仿真。

选择对应sec_1.vhd的仿真波形文件wave_3.tbw,执行Generate Expected Simulation Results操作(如图4.40所示),即可得到预期的输出响应波形(如图4.41所示),从图中可以看出,输出响应的波形满足设计要求。点击

,可查看测试激励的覆盖率(如图4.42所示)。

图4.40 生成预期的输出响应操作示意图

图4.41 生成预期的输出响应

图4.42 测试激励的覆盖率示意图

(4)使用ModelSim进行仿真 根据HDL Bencher中产生的预期结果,接着就可以使用Modelsim进行仿真(Simulate)Modelsim进行仿真可分为行为仿真(亦即功能仿真)和布局布线后仿真(时序仿真)。

我们先进行行为仿真。选择wave_3.tbw,执行Simulate Behavioral VHDL Model(行为仿真)操作(如图4.43所示),可得到如图4.44所示的行为仿真结果,从仿真波形可以看出,仿真结果是正确的。仿真完后关闭Modelsim主窗口退出Modelsim。

图4.43 行为仿真操作示意图

图4.44 行为仿真波形图

再进行时序仿真:选择wave_3.tbw,执行Simulate Post-Place & Route VHDL Model(布局布线后仿真,即时序仿真)操作(如图4.45所示),可得到如图4.46所示的时序仿真结果,从仿真波形可以看出,仿真结果是正确的,并且从输入到产生输出,有一定的时间延迟。仿真完后关闭Modelsim主窗口退出Modelsim。

图4.45 时序仿真操作示意图

图4.46 时序仿真波形图

依照上述的操作步骤,分别对其他程序进行有关的仿真及分析。 5)建立和编辑顶层原理图文件

对于顶层文件,即可使用VHDL文本输入方式,也可使用原理图输入方式。这里我们将使用原理图的输入方式来建立顶层文件。

(1)原理图形符号的生成(Symbol)

为了在原理图的设计中利用前面已使用VHDL进行有关设计的成果,我们先要将经过编译后的VHDL程序生成可供原理图设计中直接调用的原理图形符号。

选择 count_t.vhd,执行Create Schematic Symbol操作(如图4.47所示),即可生成可供原理图设计中直接调用的原理图形符号count_t。同理,对其他两个文件执行相同的操作。

图4.47 原理图形符号的创建操作

(2)顶层原理图文件的创建

选中工程,鼠标右点,在弹出的窗口中选择New Source(如图4.48所示) ,再在弹出

的窗口中选择文件的类型为Schematic,并输入文件名pic_top后,执行”下一步”,即完成了原理图文件的创建,进入原理图的编辑状态。

图4.48 原理图的创建操作

(3)原理图的编辑 ① 放置元件(Symbols):在Symbols 的e:/xilinx/bin/24sec中选中所需元件的原理图符号,并在右边的图中期望的位置点左键进行放置,如图4.49所示。若位置不合适,可进行移动调整。

图4.49 在原理图中放置元件的操作

② 元件间的连线:点

,进行连线操作。

③ 放置I/O端口并编辑端口名:点,放置I/O端口。选中端口,点右键,在弹出的对话框中选择“Rename Port”后,再在弹出的对话框中输入系统设定的端口名。或者双击端口,在弹出的对话框中输入系统设定的端口名。

④ 原理图的保存:原理图编辑好后(如图4.50所示),应执行存盘操作,将原理图进行保存。

图4.50 编辑好的顶层原理图

⑤ 原理图错误的检查:为了检查原理图是否有错,可执行原理图的检错操作。若有错,则改正,直到完全正确为止。

⑥ 原理图的逻辑综合:若原理图经过检查没有错误,可进行逻辑综合。 6)设计ucf文件

首先选中pic_top ,按右键在弹出的窗口中选择New Source,再在弹出的新建文件窗口中选择Implementation Constraints File,并输入文件名top.ucf(如图4.51所示)。接着执行“下一步”,即进入ucf文件的编辑操作,这时我们可根据系统的输入输出要求并参照下载板的用户手册,对系统的端口进行管脚锁定(如图4.52所示)。管脚全部锁定并检查无误后应进行存盘操作。

图4.51 ucf文件的建立操作示意图

图4.52 本设计的ucf文件

7)设计实现

运行设计实现(Implement Design):选中pic_top,运行Implement Design,如图4.53所示。

在FloorPlanner中查看设计布局:展开Place & Route,运行View/Edit Placed Design (FloorPlanner),即可查看设计布局,如图4.54所示。

图4.53 运行设计实现操作图

图4.54 在FloorPlanner中查看设计布局操作图

8)系统的时序仿真

在完成任务上述步骤后,我们可以按照前面已经介绍的方法,对系统(顶层文件)进行时序仿真。

9)系统的配置和硬件验证

首先选中pic_top,执行Generate Programme File ,生成配置文件,如图4.55所示。

图4.55 配置文件生成示意图

接着双击Configure Device(iMPACT),启动iMPACT进行配置。设置配置方式选为Slave Serial Mode(如图4.56所示),对应的下载板上拨码开关也设置成Slave Serial Mode模式,即M0,M1,M2,PROG,JTAG,SV_SrI对应的状态为OFF,OFF,X,ON,OFF,ON。单击完成,运行后弹出Add Device 对话框,选中pic_top.bit (如图4.57所示),点击打开按钮,这时窗口中会出现芯片图样(如图4.58所示),点右键,选Program,即执行编程下载功能。执行完毕后出现Programming Succeeded(如图4.59所示),则表示下载成功。下载成功后,即可根据系统的设计要求在EDA实验开发系统上进行硬件验证。

图4.56 配置方式选择示意图

图4.57 下载文件选择示意图

图4.58 下载操作示意图

图4.59 下载成功示意图

4.3 Lattice ispDesignEXPERT的使用

Lattice公司推出的ispDesignEXPERT是Lattice Semiconductor的主要集成环境,在ispDesignEXPERT中可以进行VHDL、Verilog及ABEL语言的设计输入、综合、适配、仿真和在系统下载。ispDesignEXPERT是目前流行的EDA软件中最容易掌握的设计工具之一,它界面友好,操作方便,功能强大,并与第三方EDA工具兼容性良好。

4.3.1 ispDesignEXPERT的安装

1)系统需求

ispDesignEXPERT在PC机上运行,支持Windows NT4.0,Windows95,Windows98或更高版本。下面是其最低配置要求:

(1)IBM486、Inter Pentium或与Pentium兼容的PC; (2)64MB以上内存; (3)硬盘容量:FAT16安装约为900MB,FAT32安装约为450MB,NT安装约为350MB; (4)SVGA显示器,分辨率为800?600或以上;

(5)若为LSC_ADVANCED用户,应通过E-mail向Lattice公司申请授权,获取有关的解密文件。

2)系统安装

(1)安装:运行光盘根目录“\\Lattice\\ispexp\\”双击setup.exe进行安装,安装时使用默认选项。

(2)解密:安装完毕后将光盘上的解密文件“\\ispexp\\License\\License.dat”拷贝到硬盘上的“X:ispTOOLS\\ispcomp\\License”目录下完成安装。

(3)若需使用1032E、1016E等早期的芯片,尚需将“ispexp\\License\\SP1\\plsi1k.sds”拷贝到硬盘上对应的“X:\\ispTOOLS\\ispsys\\config、\\ispTOOLS\\ispsys\\config\\8kalt、\\ispTOOLS\\ispsys\\config\\8knorm”三个目录下,将“LICENSE\\SP1\\lscpart.lst”拷贝到“X:\\ispTOOLS\\ispcomp\\config”目录下覆盖原有的文件,即可打开器件库。

(4)重新启动计算机,软件即可使用。

4.3.2 原理图输入方式设计操作

1)系统的启动

在“程序”栏中选“Lattice Semiconductor”→“ispDesignEXPERT”→进入“ispDesignEXPERT Project Navigator”主窗口。也可以通过页面的快捷方式,双击直接启动

ispDesignEXPERT,进入“ispDesignEXPE

RT Project Navigator”主窗口。如图4.60所示。 图4.60 ispDesignEXPERT Project Navigator主窗口

择File菜单,点击New Project?,在期望的根目录下,如D:\\documents and settings,输入项目名称EDA.SYN,同时选择Project Type为Schematic/VHDL,主窗口形式变为如图4.61所示。

在图4.61中,选择“Window”→“Schmatic Editor”菜单即可进入原理图的设计。 这里的原理图的设计,不但可用于VHDL设计的原理图输入方式的设计,还可以用于书稿、论文等各种插图的绘制。使用该软件绘制插图,不但操作方便,可绘制各种形式的插图,而且对于已绘的图形,可任意剪辑、复制和删除,绘制效率高。同时使用该软件绘制的插图,经复制、粘帖插入WORD等文档后,不但可根据需要任意对图形惊醒拉伸和压缩,拉伸和压缩后图中的文字不变形,而且文档存储空间的大小较WORD中的绘图板、CoreDraw等绘制的文件小30%以上。

在原理图的设计中,最基本的操作有绘图环境设置(Options)、图形绘制(Add)、图形编辑(Edit)和文件管理(File)等操作。

2)绘图环境设置(Options)

绘图之前,首先要进行绘图环境的设置。绘图环境的设置,通过选择原理图主菜单中的“Options”下的各菜单项来实现。绘图环境的设置共有四项内容,常用的绘图环境的设置项有两个,即图形选项(Graphic Options)和优先选项(Preferences)。其各项目的设置选项及作用如图4.62和图4.63所示。 设置绘图的线条的设置输入文本

粗细,使用粗线条时 字体的大小 要求与左边的字体

设置绘图时光标设置相配合 起点的相对位置 设置输入文本的 放置方向,由水平 和垂直两种 设置绘图时的 设置绘图时是最小移动距离 否显示网格 图4.62 图形选项的设置选项及作用 设置绘图时使用的十 字光标的长短

设置图形复制的格式

(位图、矢量图)

3)图形绘制(Add)

图形绘制的基本单元操作选项如图4.64所示。 图4.63 优选项的设置选项及作用

图形绘制的基本单元操作有两条途径,即菜单栏中“Add”子菜单选项和“View”子菜单中激活“Drawing Toolbar”选项。其中最常用的基本单元操作有调用系统库中的元件符号(Symbol)、绘制直线(Wire)、弧(Arc)、园(Circle)、矩形(Rectangle)和输入文本(Text)。其中:

调用元件符号(Add Symbol)操作方法是:在子菜单/工具条中激活该操作项,出现图4.65所示的库元件选择对话框。激活对应库元件名,该元件图形自动粘帖在鼠标上,移动鼠

标在预期的位置点击鼠标左键确认,点击鼠标右键退出放置该符号。

绘制基本单元的操作方法是:先在子菜单/工具条中激活该操作项,再在绘图的起点按住鼠标至绘图的终点松开鼠标即可。

图4.64 图形绘制的基本单元操作选项

图4.65 库元件选择 输入文本(Draw Text)以及添加网络名(Add Net Name)等操作方法

是:先在子菜单/工具条中激活该操作项,则在编辑窗口的下侧出现编辑栏,输入文本或网络名,点击回车“Enter”键,编辑的内容自动粘帖在鼠标上,移动鼠标在预期的位置点击鼠标左键确认,同时退出放置该文本或网络名。

引入信号输入端或输出端符号(I/OMarker)的操作方法是:在定义了信号输入或输出端的网络名的前提下,在子菜单/工具条中激活该操作项,出现图4.66所示的I/OMarker选择对话框。选择模式后激活网络名,输入端或输出端的符号自动标注或绘制出。

4)图形编辑(Edit) 图4.66 I/OMarker选择

图形编辑主要是指对已存在的图形进行移动、旋转、内复制、删除、外拷贝等操作。各种操作项目如图4.67所示。

最基本的操作有已绘图形的移动(Move)、90o旋转(Rotate)、镜面旋转(Mirror)、复制多用(图形内)(Duplicate)、删除(Delete)以及库符号的编辑(Symbol)、已绘图形的拷贝(对外)输出(Copy)等。

移动、内复制、删除的操作方法是:先在子菜单/工具条中选中该操作项,再用鼠标点中或按住鼠标用一个方框选中该操作对象后,松开鼠标或移动/复制到指定的地方即可。

旋转的操作方法是:先使被旋转的对象处于放置、移动或复制多用状态,再在子菜单/工具条中选中该操作项后,点击鼠标左键即可。也可以通过热键操作,即,在被旋转的对象处于放置、移动或复制多用状态下,“Ctrl+R”实现90o旋转(Rotate),“Ctrl+E”实现镜面旋转(Mirror)。

库符号的编辑(Symbol)方法是:在子菜单/工具条中选中该操作项后,用鼠标左键双击被编辑的符号即可进入符号编辑状态,再执行相应的与前类似的编辑操作。编辑完后注意存盘。

图4.67 图形编辑的操作项目 图形

的拷贝输出操作方法是:先在子菜单中选中“Copy Image”操作项,再按住鼠标用一个方框选中欲拷贝的图形,最后在子菜单中选中“Copy”操作项即可。这时在剪贴板中即保存了被拷贝的图形。

5)文件管理(File)

图形绘制完后,应进行存盘保存。使用原理图编辑器绘制的图形,其文件的扩展名为.sch,要使用原理图编辑器才能打开该文件。

4.3.3 VHDL输入方式设计操作

为了能快速地掌握ispDesignEXPERT基于VHDL设计输入方式的操作,下面介绍一个4位二进制并行加法器的设计和测试全过程。

【例4.3.1】4位二进制并行加法器的源程序adder4b.vhd。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER4B IS

PORT(CIN: IN STD_LOGIC;

AIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); BIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CONT: OUT STD_LOGIC); END ADDER4B;

ARCHITECTURE ART OF ADDER4B IS

SIGNAL SINT: STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL AA,BB:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN

AA<='0'&AIN; BB<='0'&BIN; SINT<=AA+BB+CIN; S<=SINT(3 DOWNTO 0); CONT<=SINT(4);

END ARCHITECTURE ART;

1)创建VHDL设计工程及源程序文件 (1)创建VHDL设计工程

首先,为该设计建立一个单独的目录,这里设为“F:\\ispexam”,然后在“程序”栏中选“Lattice Semiconductor → ispDesignEXPERT”进入“ispDesignEXPERT Project Navigator”主窗口,如图4.60所示。选择“File”→“New Project”菜单以便建立一个新的工程文件,此时会弹出如图4.68所示的对话框。

选好目录“F:\\Ispexam”,再在该对话框下面的“Project Type”栏中,根据设计类型选择相应的工程文件类型,本设计应选择Schematic/VHDL类型。在“Project”栏中填入“adder4b”,即将以上的VHDL源程序的工程名定为“adder4b.syn”,按“保存”键即完成工程名设定。

图4.68 建立工程文件对话框

(2)编辑VHDL源程序文件

接着在“ispDesignEXPERT Prject Navigator”主窗口中,选择“Source”→“New”菜单,在弹出如图4.69所示的“New Source”对话框,选择“VHDL Module”类型。此时将弹出如图4.70所示的对话框“New VHDL Source”,在对话框的各栏中分别填入如图所示的信息,按“OK”按钮后,即进入文本编辑器“Text Editor”,以编辑VHDL文件。

图4.69 源文件设置窗

图4.70 VHDL源文件框架设置窗

读者可在“Text Editor”中输入上述的adder4b.vhd源程序,并存盘和退出此编辑器。 此时,在主窗口左侧的源程序区中,adder4b.vhd文件被自动调入当前工程中。单击或激活源程序区中的“ispLSI1016-60LH44/883”栏,此时的主窗口将呈现如图4.71所示界面。

2)系统逻辑综合 (1)目标器件的选择

本设计拟采用的器件为ispLSI1032EA-70LJ84,这时须双击源程序区中的“ispLSI1016-60LH44/883”,在弹出的“Choose Device”窗口中改换器件为ispLSI1032EA-70LJ84。

(2)源程序的编译、综合

双击窗口右侧的“Compile Design”,对文件ADDER4B.vhd进行编译,在此过程中,ispDesignEXPERT自动进行VHDL编译,并进入“ispDesignEXPERT Process”窗口。当被编译文件有错时,系统自动弹出“Report Viewer”窗口生成automake.log文件并提示错误的原因以及错误所在,修改错误并存盘,再编译直至没有错误;若整个编译、综合过程无错误,也一样生成automake.log文件,并自动返回到如图4.71所示窗口,且能看见“Compile Design”等处有一绿勾,表示编译通过。

图4.71 ispDesignEXPERT Project Navigator

双击窗口右侧的“Timing Analysis”,对文件ADDER4B.vhd进行时序分析;双击窗口右侧的“Generate Board-level Stamp Model”,对文件ADDER4B.vhd进行创建印制板图模型。只要“Compile Design”编译通过,时序分析以及印制板图模型都会顺利通过,至此,窗口中相关各项处有以绿勾,表示综合通过。

3)设计中的有关仿真

通过VHDL综合后,ispDesignEXPERT可对设计进行功能和时序仿真,但不能进行行为仿真。

(1)编辑测试文件

在ispDesignEXPERT中,测试程序必须用ABEL-HDL语言编写。 下面简单地介绍一下ABEL语言的程序结构及测试相量的编写方法。

一个ABEL源文件由1个或多个相互独立的模块组成,每个模块中又由模块声明、定义段、逻辑描述或测试向量段组成,并且每个模块必须有一个模块声明部分,其它部分可选,而且每个部分必须用一个相应的关键字加以标识 。ABEL源文件结构如下所示:

MODULE START //模块开始

FLAGS //标志语句

TITLE //标题语句 DECLARATIONS //定义段 CONSTANT DECLARATIONS //常量定义 MACRO DECLARATIONS //宏定义 DEVICE DECLARATIONS //器件定义

PIN AND NODE ASSIGNMENTS //管脚及节点定义 ATTRIBUTE DECLRATIONS //属性定义

//逻辑描述段

BOOLEAN EQUATIONS //布尔方程 TRUTH TABLES //真值表 STATES DIAGRAMS //状态表

//测试向量段

TEST VECTORS //测试向量头 MODILE END //模块结束

其中PIN管脚定义语句,用于说明管脚标识符与真实器件管脚间的关系,并可给出可编程器件管脚的属性。其语句格式如下:

[!]管脚名[,[!]管脚名]......PIN [IN 器件名] 管脚号[=’属性[,属性] ...’] [,管脚号[=,属性[,属性] ...]] ... 如:!CLOCK,RESET,S1 PIN IN U12,12,15,13;

该管脚定义语句将器件U12的管脚12,15,3分别用CLOCK,RESET,S1来代表,语句中使用的[!]运算符,表示该管脚为低电平有效,在语言处理程序进行处理时,会自动将其取反。

TEST VECTORS测试向量语句,用于对器件的内部模式进行仿真,并对编程后的器件进行功能测试。测试向量表的语句格式如下:

TEST_VECTORS [IN 器件名][注释] (输入向量—>输出向量)

[ 输入向量值—>输出向量值;]

测试向量定义了输入输出信号的逻辑关系,测试向量表列出了各种输入信号的组合及相应的输出信号,表中可包含所有的组合形式,也可以只写出其中的一部分。要求表中所有信号值必须用定义过的常量或数值常量及特殊常量“.X..”、“.Z.”等,表中每一行(即每一组输入输出信号)必须以分号结尾。

【例4.3.2】ABEL测试文件ADDER4B.ABV MODULE ADDER4B;

AIN,BIN,CIN,S,CONT PIN;

//测试向量中,输入输出信号可不分开书写,也不必要注明输入或输出的性质 X = .X.; //定义常量

TEST_VECTORS ([AIN,BIN,CIN] ->[S,CONT]); [^H9,^HA,0] ->[X, X]; [^HB,^H1,1] ->[X, X]; [^HA,^H8,0] ->[X, X]; [^HC,^H5,1] ->[X, X]; …… END;

在 “ispDesignEXPERT System Project Navigator”主窗口中选择 “Source”→ “New”菜单,将弹出 “New Source” 对话框,选择ABEL Test Vectors 类型,此时弹出 “New File” 对话框,在对话框的上栏中填入仿真文件名ADDER4B(默认.abv文件),按“OK”按钮后,进入Text Editor。在此,将例4.3.2程序输入编辑器编辑结束后存盘,即获得测试向量文件Adder4b.abv。在主窗口的左栏中可以看见此文件(排在ADDER4B的上方)。

测试向量文件的格式十分宽松,因为所有的功能信息都已在综合好的文件中。文件中一般只需在左边写好输入信号值即可,右边一律写任意值“.x.”。为简便起见,一般可在TEST_VECTOR前先将“.X.”赋值给X,即X=.X .,这时在测试向量的右边直接写上X即可。

现在,在ispDesignEXPERT主窗口中选中(鼠标单击)左侧的“Adder4b.Abv ”文件,再双击右侧的 “Compile Test Vectors”,以编辑测试向量文件,若无问题,会出现绿勾(如图4.72所示)。

图4.72 向量文件的编译测试

(2)系统的功能仿真

① 进入功能仿真

双击右侧的 “Functional Simulation”栏,进行功能仿真。这时会弹出Synplify窗口,表示先进行综合,综合通过后,关闭Synplify窗口,片刻即进入功能仿真控制窗口“Simulator Control Panel”(如图4.73所示)。

图4.73 仿真控制板窗口

② 测试向量的赋值及仿真

第一组测试向量的赋值及仿真。在仿真控制窗状态下,执行Signals→Debug??(如图4.74所示),弹出如图4.75所示的调试(Debug)窗口,再在左边选择需赋值的信号,点击中间的赋值选择下拉框选择需赋的值(有0,1,X,Z四种值,如图4.75所示),后选择赋值形式(有Preset、Force、Monitor、Clear四种形式,如图4.76所示)。重复上述步骤,

直到将第一组测试向量赋值完毕。接着输入仿真单步执行时间(Step Interval),如100ns,整个仿真运行时间(Run To Time),如400ns,执行Simulates→Step(如图4.77所示),则第一个测试向量仿真完毕。

图4.74 测试向量调试选择操作图

图4.75 调试窗口测试向量赋值下拉选择框图

图4.76 测试向量赋值形式选择示图

图4.77 测试向量仿真执行操作选择示图

第二组测试向量的赋值及仿真。先执行Signal→Next Test Vectors→Debug,接着按照前述的方法,在弹出的窗口给第二个测试向量赋值,赋值完后并执行。

按照同样的方法对其余的测试向量进行赋值和仿真,直到将N组测试向量赋值和仿真完毕,如图4.78所示。

图4.78 测试向量赋值及仿真执行后界面

③ 设置波形观察格式

先按键 “Run”,即弹出仿真结果波形观察窗。点击此窗口中的 “Edit” → “Show”,即弹出显示波形窗口“Show Waveforms” ,如图4.79所示,在此窗口右栏已列出所有的输入、输出信号名,用鼠标点击其中的一个信号名,如CIN,再点击 “Show” ,可看到CIN的波形,如此重复,就可将所有信号的波形全部显示于窗口。

图4.79 波形观察格式的设定

若显示的波形不符合自己的要求,可用鼠标先点击需去掉的信号名,如CIN,再点击当前窗口中的 “Edit” → “Hind” ,即可将该波形隐蔽掉。重复该步骤,直到将所有不需显示的信号全部隐蔽掉。

如果希望以总线形式显示,如显示AIN(3),?,A(0),可以用鼠标点击 “Bus”,这时右边将弹出一窗口,用鼠标在左栏的AIN(3),?,A(0)4个信号上拖动变成黑色,再点击右边的 “Add Nets” ,这时4个信号将出现在另栏中。点击 “Reverse”,使4个信号换

位,使高位在前,接着按 “Save Bus” 键,再按 “Show” 键,这时将出现总线式波形图。总线的显示形式有四种,分别是二进制(Binary),八进制(Octob),十进制(Decimel),十六进制(Hex),可通过在波形显示状态下选择设置选项Options→Bus来完成。接着,按当前窗口最上栏选项 “View” → “Zoom In”后,再用键点击波形,使其放大,直至可看见总线图中的数值为止。本例题的功能仿真的二进制、十六进制总线式波形分别如图4.80、图4.81所示。

图4.80 功能仿真的总线波形的二进制显示

图4.81 功能仿真的总线波形的十六进制显示

(3)系统的时序仿真

若返回到ispDesignEXPERT System主窗口,选中左侧的Cnt4b.abv文件,双击右侧的 “Timing Simulation” 栏,即进入时序仿真。时序仿真的过程与功能仿真类似。本例题的时序仿真的二进制、十六进制总线式波形分别如图4.82、图4.83所示。从时序仿真波形可以看出,加入各种输入信号后,输出首先处于一种不稳定状态,是一些毛刺信号,当经过一定的延时后,输出才达到稳定的状态。

图4.82 时序仿真的十六进制显示

图4.83 时序仿真的二进制显示

4)器件引脚的锁定 (1)编辑引脚锁定文件

在ispDesignEXPERT主窗口上选“Window”→“Text Editor”进入文本编辑器,选“File”→“New”,然后按照以下方式来锁定引脚。此文件取名为ADDER4B.PPN,并存于同一目录中后退出。

//引脚锁定文件ADDER4B.PPN

//FORMAT:PINNAME PINTYPE LOCK

AIN(0) IN 6 AIN(1) IN 27 AIN(2) IN 28 AIN(3) IN 29 BIN(0) IN 30 BIN(1) IN 31 BIN(2) IN 32 BIN(3) IN 33 CIN IN 3 S(0) OUT 45 S(1) OUT 46 S(2) OUT 47 S(3) OUT 48 CONT OUT 68

(2)器件引脚的锁定

在主窗口右侧用鼠标点击“Constraint Manager / Physical Viewer”,进入ISPEXPERT COMPLILER,在执行如下操作:Assign \\ Pin Locations(如图4.84所示)→在弹出的窗口右下端选择“Read Pin File” (如图4.85所示) →在弹出的窗口选择用于管脚锁定的文件(如图4.86所示)并关闭返回上一级窗口→选择“Compliler Result”执行编译进行器件(如图4.85所示),这时即可在弹出的窗口右边查看管脚的锁定结果(如图4.87所示)。

图4.84 管脚锁定菜单项选择示意图

图4.85 管脚锁定菜单项执行界面

图4.86 管脚锁定文件选择界面

图4.87 管脚锁定结果示意图

5)系统编程及硬件测试 (1)硬件测试系统连接

首先将ISP下载电缆与计算机的打印机接口LPT1连接好,在ispDesignEXPERT Projector Navigator主窗口下执行TOOLS \\ ISPLCD(如图4.88所示)后进入ISP下载窗口(如图4.89

所示),再在下载窗口选择菜单“Configuration”→“Scan Board”(或直接点击上排菜单键“SCAN”)检测芯片的型号。如果接线无误,目标系统工作正常,可以将电路板上接在菊花链上的所有的Lattice ISP扫描出来,否则将不可能得到如图4.89所示中显示的关于1032E的条目。

图4.88 进入进入ISP下载窗口示意图

图4.89 ISP在系统编程下载窗口

(2) 硬件的编程下载

图4.90 ISP在系统编程下载成功示意图

系统连接与上电情况检查无误后,即可进行在系统下载操作。在在系统下载操作窗口(如图4.89所示)对话框中用“Browse”按钮选择ADDER4B.JED文件,选择菜单“Command” →“Run Operation”菜单(或直接点击上排“小人”键),即可将ADDER4B下载到电路板

上的芯片中。下载成功后,下侧的子窗口会显示“Run Operation:successful”。 (3)系统的测试

如果实验系统是GW48,可选择电路模式1,4位二进制的被加数和加数分别由键1、键2输入,低位来的进位由键7输入,加法运算的结果显示在数码管“数码5”上,向高位的进位显示在发光二极管D1上。

本文来源:https://www.bwwdw.com/article/i64w.html

Top