第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web...

45
第1第 第第 EDA 第第第第第第第第 第第第第 本本本本本 Altera MAX+plusXilinx ISE Series Lattice ispDesignEXPERT 本本本本本本 EDA 本 本 本 ,,、VHDL本本本本本本本本本本本本本本本本本 第第第第 本本本本本本本本 本本本本本本本本本本本 LATTICEALTERAXILINX 本 本 本 一,本本 本本本 。。 第 第 第MAX+plusISE SeriesispDesignEXPERT 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 本本 本本 ,: SynopsysCadenceViewLogicSynplicityMentor 本 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 64 64 256

Transcript of 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web...

Page 1: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

第1章 常用 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 的软硬件要求

Page 2: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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 64 64 256物理 RAM/MB 128 16 32 32 32 128

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。

Page 3: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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Ⅱ 的设计过程主要由设计输入、项目编译、项目校验和器件编程四部分组成。

Page 4: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在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 的标注。

Page 5: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.6 MAX+plus II 图形编辑器④ 编辑图形文件以设计一个十进制加法计数器为例,介绍编辑一个原理图文件的步骤。首先是添加元件和宏功能符号:a.在选择工具按钮有效时,在图形编辑器的绘图区域,单击鼠标左键,将出现一个闪

烁的黑点,该点为添加元件和宏功能符号的位置。b. 选择菜单命令 Symbol/Enter Symbol 项目,或者在确认添加元件位置双击左键,

系 统 将 弹 出 输 入元件 Enter Symbol 对 话 框 , 如 图 4.7 所 示 。元件库列 表 Symbol Libraries 提供了一系列的元件库:

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

·mf:宏功能库,主要放置 74 系列逻辑宏功能符号。 ·mega_lpm:参数化模块库,主要放置参数化宏功能模块(能够根据不同的参数来

产生同一类的不同功能的模块)。·edif: 主要放置工业标准器件。

添加文本选择画正交线画对角线画弧线画圆放大视图缩小视图与窗口适配连接点断接拖动功能打开拖动功能关闭

图 形 编 辑 窗口绘图区域

Page 6: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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 所示。

Page 7: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.8 十进制计数器再接着是引脚的命名:在引脚命名之前,输入输出引脚名均为系统默认的 PIN_NAME,为了进行编译,须要

重命名。把鼠标移 PIN_NAME 上,双击鼠标,原引脚名变为黑色,直接输入新的引脚名。如图 4.9 所示。

图 4.9 标记引脚后的电路图最后是保存文件:原理图编辑完成后,选择命令菜单 File/Save,保存新建的文件,在弹出的文件目录

对话框中选择本设计的项目文件夹 c:\baseline 下的 myproject (步骤(1)中所建),在文件名对话框中输入文件名,如 counter10.gdf,点击 OK 按钮,完成保存,如图 4.10所示。

Page 8: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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

Page 9: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

命令,则弹出工程项目名对话框,如图 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 列表中器件型号也将发生相应的变化。为了

Page 10: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

选择所有速度级别的器件,应将列表框下方标有“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 按扭开始编译。如果发现错误,系统会给出相应的错误信息,排除错误

Page 11: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

后再次编译。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 前面的“√”,以便能够任意设置输入电平位置,或设置输入时钟信号的周期。

Page 12: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.18 在 Option 菜单中取消 Snap to Grid 的选择④ 设定仿真时间。选择命令菜单 File/End Time 项,在弹出的对话框中输入适当的仿

真时间域。如可选 50us 以便有足够长的观察时间。⑤ 编辑输入信号波形。如图 4.19 的标注,利用时钟周期赋值功能键为输入时钟信号

CLK 设定周期(这里设定周期为 100ns),以便仿真后能测试 QA、QB、QC、QD 和 RCO输出信号。

图 4.19 为输入信号设定测试波形⑥ 波形文件存盘。选择命令菜单 File/Save as,弹出 Save as 对话框,其中波形文件

名是默认的(这里是 counter10.scf),按下 OK 按钮即可。(2)运行仿真器选择命令菜单 MAX+plusⅡ/Simulator,单击弹出的仿真器对话框中的 Start 按钮,如

放大缩小

将某段总线拖黑,由此按钮赋值

赋值‘ 0’赋值‘ 1’赋值不定值‘ X’赋值高阻值‘ Z’赋值取反时钟周期赋值总线顺序赋值总线赋值FSM状态赋值

Page 13: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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 中。其中左排的列表是输入信号,上排列出输出信号,中间是对应的延时量,这个延时量是针对所选定的目标器件的。

Page 14: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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都能由此下载。此项设置只在初次装软件后第一次编程前进行,设置确定后就不必重复设置了。

Page 15: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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 所示。

Page 16: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.25 ISE5.2i 安装界面(2)单击此时安装界面上的操作选择“下一步”直到出现图示对话框,输入有效的

Registration ID。之后单击“下一步”选择安装路径;再之后点击“下一步”,会弹出图4.26 的对话框,可以选择器件模型。

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

Page 17: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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

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

变量名:Xilinx变量值:C:\Xilinx(即安装路径)

具体设置如图 4.28 所示。

图 4.28 环境变量设置操作图3)安装第三方软件在 PC 上安装完 ISE 之后,还需要安装第三方仿真软件,如 ModelSim 等。

Page 18: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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 公

Page 19: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

司的 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 所示。

Page 20: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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):该模板给出了可综合实现的一些基本单

Page 21: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

元模块的范例,如乘法器、计数器和触发器等。(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 程序。

Page 22: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.33 添加文件对话框

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

--COUNT_T.VHDLIBRARY 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 ISSIGNALCNT1 : STD_LOGIC_VECTOR(21 DOWNTO 0):="0000000000000000000000";SIGNAL CLK1 : STD_LOGIC:='0';BEGIN--10HZ 时钟形成进程PROCESS(CLK) BEGIN IF CLK='1' AND CLK'EVENT THEN

Page 23: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

IF CNT1="1001100010010110100000" THEN 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.VHDLIBRARY 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 ISSIGNAL LED1,LED2,LED3 :STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN WITH L1 SELECT --十位 LED1<= "10011111" WHEN "0001", --1 "00100101" WHEN "0010", --2 "00001101" WHEN "0011", --3 "10011001" WHEN "0100", --4 "01001001" WHEN "0101", --5 "01000001" WHEN "0110", --6 "00011111" WHEN "0111", --7 "00000001" WHEN "1000", --8 "00001001" WHEN "1001", --9 "00000011" WHEN OTHERS; --0

WITH L2 SELECT --个位 LED2<= "10011110" WHEN "0001", --1 "00100100" WHEN "0010", --2 "00001100" WHEN "0011", --3 "10011000" WHEN "0100", --4 "01001000" WHEN "0101", --5 "01000000" WHEN "0110", --6 "00011110" WHEN "0111", --7 "00000000" WHEN "1000", --8 "00001000" WHEN "1001", --9

Page 24: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

"00000010" WHEN OTHERS; --0

WITH L3 SELECT --小数 LED3<= "10011111" WHEN "0001", --1 "00100101" WHEN "0010", --2 "00001101" WHEN "0011", --3 "10011001" WHEN "0100", --4 "01001001" WHEN "0101", --5 "01000001" WHEN "0110", --6 "00011111" WHEN "0111", --7 "00000001" WHEN "1000", --8 "00001001" WHEN "1001", --9 "00000011" WHEN OTHERS; --0

PROCESS(SCAN_CLK,LED1,LED2,LED3) BEGIN CASE SCAN_CLK IS WHEN "00" => SEG<=LED1; A<="0100"; WHEN "10" => SEG<=LED2; A<="0010"; WHEN "01"=> SEG<=LED3; A<="0001";

WHEN "11"=> SEG<=LED3; A<="0001";

WHEN OTHERS => SEG<="11111111"; A<="0000"; END CASE;END PROCESS;END BEHAVIORAL;

--SEC_1.VHDLIBRARY 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 ISTYPE STATES IS (S0,S1,S2);SIGNAL ST : STATES:=S0;SIGNAL CNT3 : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000";SIGNAL CNT4 : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000";SIGNAL CNT5 : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000";BEGIN--24秒倒计时

Page 25: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

-- 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="0000" THEN IF CNT4="0000" THEN

IF CNT3="0000" THEN ST<=S0;ELSE CNT4<="1001"; CNT5<="1001"; CNT3<=CNT3-1;END IF;

ELSE CNT5<="1001"; CNT4<=CNT4-1;

END IF;ELSE CNT5<=CNT5-1;END IF;

WHEN S2 => CNT5<="0000"; CNT3<="0010"; --十位

CNT4<="0100"; WHEN OTHERS => NULL; END CASE;

END IF; END PROCESS; L3<=CNT5; L2<=CNT4; L1<=CNT3; END BEHAVIORAL;

3)逻辑综合(Synthesize)选中 Synthesize 选项,点 进行参数设置, 可以对任何操作进行参数设置。设

置完成后,双击 Synthesize 选项,或右键选择 Run 选项。对其他两个 VHDL 程序进行同样的操作。

Page 26: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.35 综合参数设置示意图

图 4.36 综合完成后界面4)设计中的有关仿真(1) 创建 Testbench 波形源文件在工程项窗口 Project Window 的源文件中选中 count_t.vhd ,用鼠标右点,在弹出的窗

口中选择 New Source(如图 4.37 所示),出现 New 对话框,再选择 Test Bench Waveform文件类型,并输入文件名 wave_1,点击下一步,再点击下一步,完成创建并进行初始化时间设置(如图 4.38 所示)。

Page 27: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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

图 4.38 创建 Testbench 波形文件的初始化时间设置(2) 设置输入信号初始值根据被仿真模块的设计要求,对各个输入信号进行初始化设置(如图 4.39 所示)。初

始化设置完毕后将 testbench 文件存盘,这时 HDL Bencher 会提示我们设置希望仿真的时钟周期数(默认值为 1),设置完毕后点击 OK退出 HDL Bencher。

图 4.39 输入信号的初始设置

Page 28: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

(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 测试激励的覆盖率示意图

Page 29: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

(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 时序仿真操作示意图

Page 30: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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 后,执行”下一步”,即完成了原理图文件的创建,进入原理图的编辑状态。

Page 31: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.48 原理图的创建操作(3)原理图的编辑① 放置元件(Symbols):在 Symbols 的 e:/xilinx/bin/24sec 中选中所需元件的

原理图符号,并在右边的图中期望的位置点左键进行放置,如图 4.49 所示。若位置不合适,可进行移动调整。

图 4.49 在原理图中放置元件的操作② 元件间的连线:点 ,进行连线操作。③ 放置 I/O端口并编辑端口名:点 ,放置I/O端口。选中端口,点右键,在弹出

的对话框中选择“Rename Port”后,再在弹出的对话框中输入系统设定的端口名。或者双击端口,在弹出的对话框中输入系统设定的端口名。

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

Page 32: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.50 编辑好的顶层原理图⑤ 原理图错误的检查:为了检查原理图是否有错,可执行原理图的检错操作。若有错,

则改正,直到完全正确为止。⑥ 原理图的逻辑综合:若原理图经过检查没有错误,可进行逻辑综合。6)设计 ucf 文件首先选中 pic_top ,按右键在弹出的窗口中选择 New Source,再在弹出的新建文件窗

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

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

图 4.52 本设计的 ucf 文件

Page 33: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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 所示。

Page 34: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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 配置方式选择示意图

Page 35: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.57 下载文件选择示意图

图 4.58 下载操作示意图

图 4.59 下载成功示意图4.3 Lattice ispDesignEXPERT 的使用

Lattice 公司推出 的 ispDesignEXPERT 是 Lattice Semiconductor 的主 要集 成环 境, 在ispDesignEXPERT 中可以进行 VHDL、Verilog 及 ABEL 语言的设计输入、综合、适配、仿真和在系统下载。ispDesignEXPERT 是目前流行的 EDA 软件中最容易掌握的设计工具之一,它

Page 36: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

界面友好,操作方便,功能强大,并与第三方 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,进入“ispDesignEXPERT Project Navigator”主窗口。如图 4.60 所示。

Page 37: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

选 择 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.60 ispDesignEXPERT Project Navigator 主窗口

图 4.61 具有项目名称的 ispDesignEXPERT Project Navigator 主窗口

图 4.62 图形选项的设置选项及作用

设置输入文本字体的大小

设置绘图时光标起点的相对位置

设置绘图的线条的粗细,使用粗线条时要求与左边的字体设置相配合

设置绘图时的最小移动距离

设置输入文本的放置方向,由水平和垂直两种

Page 38: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

3)图形绘制(Add)图形绘制的基本单元操作选项如图 4.64 所示。图形绘制的基本单元操作有两条途径,即菜单栏中“Add”子菜单选项和“View”子菜

单中激活“Drawing Toolbar”选项。其中最常用的基本单元操作有调用系统库中的元件符号(Symbol)、绘制直线(Wire)、弧(Arc)、园(Circle)、矩形(Rectangle)和输入文本(Text)。其中:调用元件符号(Add Symbol)操作方法是:在子菜单/工具条中激活该操作项,出现图

4.65 所示的库元件选择对话框。激活对应库元件名,该元件图形自动粘帖在鼠标上,移动鼠标在预期的位置点击鼠标左键确认,点击鼠标右键退出放置该符号。绘制基本单元的操作方法是:先在子菜单/工具条中激活该操作项,再在绘图的起点按

住鼠标至绘图的终点松开鼠标即可。

图 4.63 优选项的设置选项及作用

设置绘图时是否显示网格

设置图形复制的格式(位图、矢量图)

设置绘图时使用的十字光标的长短

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

图 4.65 库元件选择

Page 39: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

输入文本(Draw Text)以及添加网络名(Add Net Name)等操作方法是:先在子菜单/工具条中激活该操作项,则在编辑窗口的下侧出现编辑栏,输入文本或网络名,点击回车“Enter”键,编辑的内容自动粘帖在鼠标上,移动鼠标在预期的位置点击鼠标左键确认,同时退出放置该文本或网络名。引入信号输入端或输出端符号(I/OMarker)的操作方法是:在定义了信号输入或输出

端的网络名的前提下,在子菜单/工具条中激活该操作项,出现图 4.66 所示的 I/OMarker 选择对话框。选择模式后激

活网络名,输入端或输出端的符号自动标注或绘制出。

4)图形编辑(Edit)图形编辑主要是指对已存在的图形进行移动、旋转、内复制、删除、外拷贝等操作。各种

操作项目如图 4.67 所示。

最基本的操作有已绘图形的移动(Move)、90º旋转(Rotate)、镜面旋转(Mirror)、复制多用(图形内)(Duplicate)、删除(Delete)以及库符号的编辑(Symbol)、已绘图

图 4.66 I/OMarker 选择

图 4.67 图形编辑的操作项目

Page 40: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

形的拷贝(对外)输出(Copy)等。移动、内复制、删除的操作方法是:先在子菜单/工具条中选中该操作项,再用鼠标点中

或按住鼠标用一个方框选中该操作对象后,松开鼠标或移动/复制到指定的地方即可。旋转的操作方法是:先使被旋转的对象处于放置、移动或复制多用状态,再在子菜单 /

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

击被编辑的符号即可进入符号编辑状态,再执行相应的与前类似的编辑操作。编辑完后注意存盘。

图形的拷贝输出操作方法是:先在子菜单中选中“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 所示的对话框。

Page 41: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.69 源文件设置窗 图 4.70 VHDL源文件框架设置窗

选好目录“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 文件。

读者可在“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”等处有一绿勾,表示编译通过。

Page 42: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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管脚定义语句,用于说明管脚标识符与真实器件管脚间的关系,并可给出可

Page 43: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

编程器件管脚的属性。其语句格式如下:[!]管脚名[,[!]管脚名]......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.ABVMODULE 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 所示)。

Page 44: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 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 测试向量调试选择操作图

Page 45: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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

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

图 4.77 测试向量仿真执行操作选择示图第二组测试向量的赋值及仿真。先执行 Signal→Next Test Vectors→Debug,接着按

照前述的方法,在弹出的窗口给第二个测试向量赋值,赋值完后并执行。按照同样的方法对其余的测试向量进行赋值和仿真,直到将 N组测试向量赋值和仿真

完毕,如图 4.78 所示。

Page 46: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.78 测试向量赋值及仿真执行后界面③ 设置波形观察格式先按键 “Run”,即弹出仿真结果波形观察窗。点击此窗口中的 “Edit” → “Show”,即

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

图 4.79 波形观察格式的设定若显示的波形不符合自己的要求,可用鼠标先点击需去掉的信号名,如 CIN,再点击

当前窗口中的 “Edit” → “Hind” ,即可将该波形隐蔽掉。重复该步骤,直到将所有不需显示的信号全部隐蔽掉。

如果希 望 以总线形 式显示 , 如显示 AIN(3) ,…, A(0 ) , 可 以 用鼠标 点 击

Page 47: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

“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 时序仿真的十六进制显示

Page 48: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.83 时序仿真的二进制显示4)器件引脚的锁定(1)编辑引脚锁定文件在 ispDesignEXPERT 主 窗 口 上 选 “ Window”→“Text Editor” 进 入 文 本 编 辑 器 , 选

“File”→“New”,然后按照以下方式来锁定引脚。此文件取名为ADDER4B.PPN,并存于同一目录中后退出。

//引脚锁定文件 ADDER4B.PPN//FORMAT:PINNAME PINTYPE LOCK

AIN(0) IN 6AIN(1) IN 27AIN(2) IN 28AIN(3) IN 29BIN(0) IN 30BIN(1) IN 31BIN(2) IN 32BIN(3) IN 33CIN IN 3S(0) OUT 45S(1) OUT 46S(2) OUT 47S(3) OUT 48CONT 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 管脚锁定菜单项选择示意图

Page 49: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

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

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

图 4.87 管脚锁定结果示意图5)系统编程及硬件测试

(1)硬件测试系统连接

Page 50: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

首先将 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 在系统编程下载窗口(1) 硬件的编程下载

Page 51: 第4章 - messagedata.eefocus.com/myspace/3/19052/bbs/1193822725/996ba914.doc · Web view若采用VHDL或Verilog HDL语言文本设计输入进行逻辑电路的设计,则其输入文件的创建方式如下。这里以VHDL语言为例说明在MAX+plusⅡ系统下进行文本输入的方法。

图 4.90 ISP 在系统编程下载成功示意图系统连接与上电情况检查无误后,即可进行在系统下载操作。在在系统下载操作窗口

( 如 图 4.89 所 示 ) 对 话 框 中 用 “ Browse” 按 钮 选 择 ADDER4B.JED 文 件 , 选 择 菜 单“Command” →“Run Operation”菜单(或直接点击上排“小人”键),即可将 ADDER4B下载到电路板上 的芯片中 。 下载成 功 后 , 下侧的子窗 口 会显示 “ Run Operation :successful”。

(3)系统的测试如果实验系统是 GW48,可选择电路模式 1,4位二进制的被加数和加数分别由键 1、键

2 输入,低位来的进位由键 7 输入,加法运算的结果显示在数码管“数码 5”上,向高位的进位显示在发光二极管D1 上。