第4章Altera可编程逻辑器件开发软件
Download
Report
Transcript 第4章Altera可编程逻辑器件开发软件
第4章 Altera可编程逻辑器件开发软件
第4章 Altera可编程逻辑器件开发软件
4.1 综述
4.2 MAX+PLUSⅡ基本操作
4.3 进一步掌握MAX+PLUSⅡ
4.4 AHDL硬件描述语言
4.5 应用实例
第4章 Altera可编程逻辑器件开发软件
4.1
综 述
Altera公司在推出各种CPLD的同时也在不断地升
级相应的开发工具软件。 Altera公司的CPLD开发软件
已从早期的第一代A+PLUS、 第二代MAX+PLUS发展
到 目 前 的 第 三 代 MAX+PLUSⅡ 和 第 四 代 Quartus 。
MAX+PLUSⅡ 和Quartus具有完全集成化的易学、 易
用的可视化设计环境, 还具有工业标准EDA工具接口,
并且可以运行在多种操作平台上。
第4章 Altera可编程逻辑器件开发软件
1. 设计、 开发流程
使用Quartus 和MAX+PLUSⅡ开发可编程逻辑器
件包括设计输入、 项目编译、 设计验证及器件编程等
过程, 如图4.1所示。 Quartus和MAX+PLUSⅡ提供了全
面的逻辑设计能力, 设计者可以自由组合文本、 图形和
波形输入方法, 建立起层次化的单器件或多器件设计。
编译过程完成最小化逻辑综合、 适配设计项目于单个
器件或多个器件以及形成编程/配置数据等工作。 设计
校验包括功能仿真、 时序仿真、 影响速度的关键路径
的延时预测以及多种系列器件混合使用的多器件仿真。
第4章 Altera可编程逻辑器件开发软件
图 4.1 使用Quartus 和MAX+PLUSⅡ的设计流程图
第4章 Altera可编程逻辑器件开发软件
2. MAX+PLUSⅡ开发工具
MAX+PLUSⅡ提供了与结构无关的设计环境, 确
保了易于输入设计、
MAX+PLUSⅡ支持FLEX、 MAX及Classic系列器件,
目前已升级到V9.5版。 使用MAX+PLUSⅡ软件, 设计
者无需精通器件内部的复杂结构, 只需用自己熟悉的设
计输入工具, 如高级行为语言、 原理图或波形图进行设
计输入, MAX+PLUSⅡ将这些设计转换成目标结构所
要求的格式。 由于有关的结构模型已装入开发工具, 使
得设计者不需手工优化自己设计, 从而简化了设计过程。
第4章 Altera可编程逻辑器件开发软件
MAX+PLUSⅡ提供了丰富的逻辑功能库(包括74
系 列 逻 辑 器 件 等 效 宏 功 能 库 、 特 殊 宏 功 能 (Macro
Function)模块库以及参数化的兆功能(Mage Function)
模块库)供设计者使用。 MAX+PLUSⅡ还具有开放核
的特点, 允许设计人员添加自己的宏功能模块。 充分利
用这些逻辑功能模块, 可大大减轻设计工作量。
第4章 Altera可编程逻辑器件开发软件
3. Qutartus 开发工具
Altera的强大的第四代软件满足了多或门器件如新
Altera APEX 20K系列的要求。 为迎合紧缩的设计周期
和不断增长的设计复杂度, Qutartus软件含有工作组计
算、 集成逻辑分析功能、 EDA工具集成、 多过程支
持、 增强重编译和IP集成等特性。 Quartus软件还有网
络意识, 它设有最新的Internet技术。 从软件内部, 设计
者 就 可 直 接 通 过 Internet 得 到 Altera 的 技 术 支 持 (Atlas
SM)。 基于命题数据可立刻寻求普通设计问题的方案。
对一些特殊的论题, 设计者可在线直接对Altera应用部
提出服务申请, 提交设计题案, Altera工程师可以准确地
模拟设计环境并找到解决方案。
第4章 Altera可编程逻辑器件开发软件
4. 多平台及EDA工具支持
Altera致力于支持电路设计者都很熟悉的逻辑开发
环境。 Quartus及MAX+PLUSⅡ软件可与许多公司的
EDA工具接口, 如Cadence、 Exemplar Logic、 Menter
Graphics 、
OrCAD 、
Synopsys 、
Synplicity 及
ViewLogic。 MAX+PLUSⅡ软件与这些EDA工具通过
EDIF网表文件、 SRAM目标文件(.sof)、 参数化的
模块库(LPM)、 Verilog HDL、 VHDL及DesignWare
组件来共享信息。 MAX+PLUSⅡ编译器工作于PC及
Unix工作站环境, 使其成为业唯一的具有独立平台和独
立构架的可编程逻辑设计环境。
第4章 Altera可编程逻辑器件开发软件
Altera与业界处于领先地位的EDA工具商家组成的
ACCESS联盟, 确保了Altera EDA工具与这些支持Altera
器件的EDA工具之间顺畅接口。
Quartus软件的NativeLink特性在Quartus软件与其
它设计工具之间建立了紧密的联系, 其它工具能够直接
调用Quartus工具进行设计编辑, Quartus工具也能调用
其它工具进行综合仿真。
第4章 Altera可编程逻辑器件开发软件
4.2 MAX+PLUSⅡ基本操作
4.2.1 设计环境与设计方法
1. 安装MAX+PLUSⅡ
1) 推荐的PC系统配置
① 233 MHz奔腾或更好的 PC机。
② 256 MB 以上有效内存, 不低于128 MB的物理内存。
③ 460 MB 以上的硬盘空间。
第4章 Altera可编程逻辑器件开发软件
④ Windows 95、 Windows 98、 Windows NT 4.0
或Windows NT 3.51操作系统。
⑤ 17英寸以上显示器。
2) 版本
MAX+PLUSⅡ软件按使用平台可分为PC机版和工
作站版, 按使用对象可分为商业版、 基本版和学生版。
商业版: 支持全部输入方式和版本发行时的除APEX 系
列之外的所有Altera CPLD器件。 商业版运行时需要一
个授权码和一个附加的并口硬件狗。
第4章 Altera可编程逻辑器件开发软件
基本版(BaseLine): 在商业版上作了一些限制。 如,
不支持VHDL, 不能进行功能仿真和时序仿真, 不支持
某些器件等。 基本版不需要并口硬件狗, 只需向Altera
申请一个基本版授权码即可使用。 学生版(E+MAX):
支持商业版的全部功能, 但可使用的逻辑功能模块受到
限制, 且只支持几个器件。 若要安装学生版, 应向Altera
公司大学项目部申请学生版授权码。
第4章 Altera可编程逻辑器件开发软件
3) 安装
MAX+PLUSⅡ几种版本的安装方法基本相同, 这
里仅介绍基于PC机的Windows 98平台的安装过程。
① 插入MAX+PLUSⅡ安装光碟, 出现图4.2所示安
装界面。
② 选择Full / Custom / FLEXlm项, 即开始安装商业
版。 若要安装基本版或学生版, 应选择BASELINE /
E+MAX项。
③ 按屏幕提示进行操作。 安装完后, 在Question提
示框中选择“是”, 即打开Read.me文件, 并显示Altera
文件夹内容, 如图4.3所示。 Read.me文件包含一些重要
信息, 应仔细阅读。
第4章 Altera可编程逻辑器件开发软件
图 4.2 MAX+PLUSⅡ安装界面
第4章 Altera可编程逻辑器件开发软件
图 4.3 Altera MAX+PLUSⅡ文件夹
第4章 Altera可编程逻辑器件开发软件
图 4.4 授权协议信息框
第4章 Altera可编程逻辑器件开发软件
4) 第一次运行MAX+PLUSⅡ
为了保证安装好的MAX+PLUSⅡ能正常使用, 在
第一次运行MAX+PLUSⅡ时, 还需要做许多工作。
① 在图4.3所示MAX+PLUSⅡ软件目录中, 双击
MAX+PLUSⅡ图标, 或选择Windows 98开始菜单的程
序 项 中 的 Altera 组 内 的 MAX+PLUSⅡ 项 , 开 始 运 行
MAX+PLUSⅡ。 第一次运行MAX+PLUSⅡ时, 屏幕上
会出现图4.4所示关于授权码的提示窗口。
第4章 Altera可编程逻辑器件开发软件
② 阅读完授权码窗口信息后, 选择Yes, 出现防止
复制警告信息。 若选择 No, 则退出MAX+PLUSⅡ。
③ 在复制警告信息框中选择“是”, 则显示如何
获得基本版授权码的帮助信息。 若有硬件狗, 则选择
“否”, 并将硬件狗插在并口(打印机口上)。
④ 在http://www.Altera.com上申请授权码, 将获得
的授权码文件License.dat拷到 \max2plus文件夹里(也
可拷到别的路径下)。
第4章 Altera可编程逻辑器件开发软件
⑤ 设置授权码。 回到MAX+PLUSⅡ界面, 选择菜
单命令Option / License Setup, 出现图4.5所示界面。 通
过Browse钮选择License.dat文件或直接在License File or
Server Name对话框中输入带全路径名的License.dat文
件名。
⑥ 设置好授权码文件后, 选择OK, 就会回到
MAX+PLUSⅡ管理器界面开始进行设计了。
第4章 Altera可编程逻辑器件开发软件
图 4.5 设置授权码图解
第4章 Altera可编程逻辑器件开发软件
图 4.6 MAX+PLUSⅡ组成
第4章 Altera可编程逻辑器件开发软件
2. MAX+PLUSⅡ操作环境
1) MAX+PLUSⅡ的组成
MAX+PLUSⅡ由设计输入、 项目处理、 项目校
验和器件编程等四部分组成, 如图4.6所示, 所有这些部
分都集成在一个可视化的操作环境下。
2) MAX+PLUSⅡ管理器窗口
MAX+PLUSⅡ管理器窗口包括项目路径、 工作文
件标题条 , MAX+PLUSⅡ菜单条 , 快捷工具条和工作
区等几部分。 设置好授权码后, 启动MAX+PLUSⅡ即
进入 MAX+PLUSⅡ管理器窗口, 如图4.7所示。
第4章 Altera可编程逻辑器件开发软件
图 4.7 MAX+PLUSⅡ管理器
第4章 Altera可编程逻辑器件开发软件
3) MAX+PLUSⅡ在线帮助
MAX+PLUSⅡ提供了强大的在线帮助功能。 通过
使用在线帮助, 用户可以获得设计中所需要的最新的全
部信息。 在线帮助可以通过使用功能键或鼠标进行。
按F1键可以获得对话框内容、 高亮度菜单命令或弹出
式内容的帮助信息; 按F1+Shift键或点击 快捷工具钮即
进入在线帮助状态(鼠标指针变为↑?), 此时点击屏
幕上任何部件或条目, 都可获得有关该项的帮助信息。
3. MAX+PLUSⅡ的设计方法
使用MAX+PLUSⅡ的设计过程包括以下几步, 若任
一步出错或未达到设计要求则应修正设计, 重复各步。
如图4.8所示。
第4章 Altera可编程逻辑器件开发软件
设计输入
编译项目
仿真与定时分析
编程测试
修改设计
图 4.8 MAX+PLUSⅡ 开发流程
完成
第4章 Altera可编程逻辑器件开发软件
1) 输入设计项目
逻辑设计的输入方法有图形输入、 文本输入、 波
形输入及第三方EDA工具生成的设计网表文件输入等。
输入方法不同, 生成的设计文件也不同, 如图4.9所示。
第4章 Altera可编程逻辑器件开发软件
图 4.9 MAX+PLUSⅡ的设计输入方法
第4章 Altera可编程逻辑器件开发软件
2) 编译设计项目
首先, 根据设计项目要求设定编译参数和编译策略,
如选定器件、 锁定引脚、 设置逻辑综合方式等等。 然
后, 根据设定的编译参数和编译策略对设计项目进行
网表提取、 逻辑综合、 器件适配, 并产生报告文件、
延时信息文件和器件编程文件, 供分析、 仿真及编程用,
如图4.10所示。
第4章 Altera可编程逻辑器件开发软件
图 4.10 MAX+PLUSⅡ 的编译方法
第4章 Altera可编程逻辑器件开发软件
3) 校验设计项目
项目校验方法包括功能仿真、 模拟仿真和定时分析。
功能仿真是在不考虑器件延时的理想情况下仿真设
计项目的一种项目验证方法, 称为前仿真。 通过功能仿
真可以用来验证一个项目的逻辑功能是否正确。
第4章 Altera可编程逻辑器件开发软件
模拟仿真(时序仿真)是在考虑设计项目具体适
配器件的各种延时的情况下仿真设计项目的一种项目
验证方法, 称为后仿真。 时序仿真不仅测试逻辑功能,
还测试目标器件最差情况下的时间关系。 通过时序仿
真, 在把项目编程到器件之前全面检测项目, 以确保在
各种可能的条件下都有正确的响应。 MAX+PLUSⅡ的
仿真过程如图4.11所示。
定时分析用来分析器件引脚及内部结点间的传输
路径延时、 时序逻辑的性能(如最高工作频率、 最小
时钟周期等)以及器件内部各种寄存器的建立/保持时
间, 如图4.12所示。
第4章 Altera可编程逻辑器件开发软件
图 4.11 MAX+PLUSⅡ 的仿真过程
第4章 Altera可编程逻辑器件开发软件
延时矩阵
MMAX+PLUSⅡ
AX +P LU SⅡ
平面编辑器
平面编辑器
建立/
保持矩阵
建立/保持
MMAX+PLUSⅡ
AX +P LU SⅡ
图形编辑器
图形编辑器
延时矩阵
M AX +P LU SⅡ
MAX+PLUSⅡ
编译器
编译器
.s nf
矩阵
时序性能
时序性能
MMAX+PLUSⅡ
AX +P LU SⅡ
文本编辑器
文本编辑器
图 4.12 MAX+PLUSⅡ 的定时分析过程
第4章 Altera可编程逻辑器件开发软件
4) 编程验证设计项目
用MAX+PLUSⅡ编程器通过Altera编程硬件或其
它工业标准编程器将经过仿真确认后的编程目标文件
编入所选定的Altera CPLD器件中, 然后加入实际激励
信号进行测试, 检查是否达到设计要求。
第4章 Altera可编程逻辑器件开发软件
4.2.2 设计输入
1. 建立图形设计文件
完成一个线路图文件设计的一般步骤:
① 指定本设计项目的名字。
② 进入图形编辑器, 创建一个.gdf的新文件。
③ 输入线路图:
· 输入图元和宏功能符号;
· 连线;
· 命名引脚、 引线及符号。
第4章 Altera可编程逻辑器件开发软件
④ 保存文件并检查基本错误。
⑤ 形成一个默认符号或包含文件。
⑥ 关闭文件。
下面是完成图形文件设计项目输入的一个实例 ,
该实例建立的con60.gdf文件具有模60 十进制同步计数
器功能。 具体步骤如下:
第4章 Altera可编程逻辑器件开发软件
1) 指定设计项目的名字
MAX+PLUSⅡ编译器的工作对象是项目, 所以在
进行一个逻辑设计时, 首先要指定该设计的项目名称,
并且要保证一个设计项目中所有文件均出现在该项目
的层次结构中。 对于每个新的项目, 应该建立一个独立
的子目录。 如果这个子目录不存在, MAX+PLUSⅡ将
自动创建。 初学者切记: 每个设计必须有一个项目名,
并且要保证项目名与设计文件名一致。
第4章 Altera可编程逻辑器件开发软件
① 选中菜单项File / Project / Name 或点击 快捷钮,
出现图4.13 所示对话框。
② 在Project Name 对话框中键入con60。
③ 在Directories栏中, 选中\max2work\time作为当
前目录。 如果只有\max2work目录, 请在Project Name
项中键入\time\con60。
④ 选择OK, 则 MAX+PLUSⅡ标题条会变成显示
新的项目名字: MAX+PLUSⅡ Manager-d: \
\max2work\time\con60。
第4章 Altera可编程逻辑器件开发软件
2) 建立一个新的图形文件
① 选择菜单项File / New, 或点击 快捷钮, 出现图
4.14所示 New对话框。
② 在New对话框中选择Graphic Editor File(图形
编辑器文件)。
③ 在图形文件格式下拉列表框中选择扩展名 .gdf。
第4章 Altera可编程逻辑器件开发软件
图 4.13 指定项目名对话框
第4章 Altera可编程逻辑器件开发软件
图 4.14 MAX+PLUSⅡ 的New对话框
第4章 Altera可编程逻辑器件开发软件
④ 选择OK, 出现无名称的图形编辑窗口,
如图
4.15所示。 可以通过点击图形编辑器标题条中的缩放
钮将图形编辑器窗口放至最大。
⑤ 选择菜单File \ Save 或点击 快捷钮 , 出现Save
As 对话窗口。
⑥ 选择OK, 即将con60.gdf文件保存到当前项目子
目录下。
第4章 Altera可编程逻辑器件开发软件
图 4.15 MAX+PLUSⅡ图形编辑窗口
第4章 Altera可编程逻辑器件开发软件
3) 输入图元和宏功能符号
MAX+PLUSⅡ 提供了丰富的图元和宏功能符号
(Primitive & Macrofunction)库, 它们分类放在
Max2work\maxlib\子目录下。
① Prim: Altera的图元(基本逻辑块)。
② mf:7400系列逻辑等效宏库。
③ mega-lpm:
参数化模块库、 兆功能模块(如
busmux , csfifo等)、 兆核功能模块(如UARTs、 FFT、
FIR、 PCI等)。
④ edif: edif接口库。
第4章 Altera可编程逻辑器件开发软件
在图形设计文件中输入图元和宏功能符号的步骤如下:
① 在图形编辑器窗口(作图工具 按钮有效时)空白
处双击鼠标左键, 出现图4.16所示符号输入对话框。
② 双击Symbol Libraries窗口中的mf,
在Symbol
File(符号列表)框内选中74160。 或者直接在Symbol
Name框中直接输入74160。
③ 选择OK, 74160符号在输入点附近显示出来。
74160宏功能块是一个四位十进制同步计数器 。 在
con60.gdf中使用两个74160宏功能块。
第4章 Altera可编程逻辑器件开发软件
④ 重复步骤①至③, 输入图中其它符号。
⑤ 可以用复制的方法输入相同的符号, 其操作方
法与一般Windows图形编辑器类似。 如, 使用剪贴板
的“选中—复制—粘贴”。
第4章 Altera可编程逻辑器件开发软件
图 4.16 符号输入对话框
第4章 Altera可编程逻辑器件开发软件
4) 建立和显示导引线(Guide line)
为了增加逻辑图的可读性, 可将逻辑符号经由水平
和垂直导引网格线定位。 可以设定导引线线距和显示/
隐藏导引线:
① 选择菜单Options / Guideline Spacing, 显示出导引
线线距对话框。
② 在X Spacing(水平)和Y Spacing(垂直)对话
框中均键入15。
③ 选择OK。
④ 选择菜单Options / Show Guidelines, 即显示导引
线, 如图4.17所示。
第4章 Altera可编程逻辑器件开发软件
图 4.17 显示导引线、 旋转符号示例
第4章 Altera可编程逻辑器件开发软件
5) 移动逻辑符号
① 点击74160符号, 即选定这个符号(符号颜色发
生变化)。
② 按住鼠标左键, 拖动74160符号并将其左上角定
位在最近的导引线相交点上。 符号的外形边界线随符
号一起移动, 这样就可以对此符号进行精确定位。
③ 符号定位后, 释放鼠标左键。
④ 在nand3符号上, 右击鼠标出现图 4.17 中所示下
拉 菜 单 。 通 过 选 择 Rotate 、 Flip Horizontal 或 Flip
Vertical项, 可分别对nand3符号进行旋转、 水平镜像或
垂直镜像操作。
第4章 Altera可编程逻辑器件开发软件
⑤ 按下鼠标左键并拖动到一定位置松开, 即可选定
一个矩形区域。 可按照上述 ②、 ③、④ 步移动该选
定区域。
在MAX+PLUSⅡ图形或符号编辑器中, 应用上述
方法可以移动各种所选择的符号或其它图形或文本块。
第4章 Altera可编程逻辑器件开发软件
6) 输入Input(输入)和Output(输出)引脚
① 在符号74160的左边空白处点击鼠标右键, 在出
现的菜单中选择Enter Symbol 。 或者像前面所述, 在空
白处双击鼠标即可显示Enter Symbol(符号输入)对话
框。 在符号名框(Symbol Name)中键入INPUT, 选
OK, 即显示出INPUT符号。
第4章 Altera可编程逻辑器件开发软件
② 在INPUT符号上同时按下Ctrl键和鼠标左键, 拖
曳鼠标至该符号下方再放开,
即复制出该符号。 这是
不使用剪贴板的复制方法。
③ 重复第②步, 输入第3个INPUT符号。
④ 重复第①步, 在符号74160右侧建立输出符号
OUTPUT。
第4章 Altera可编程逻辑器件开发软件
7) 命名引脚
在一个图形文件中, 每个图元及宏功能符号都有唯
一的用数字表示的ID标识号。 MAX+PLUSⅡ图形编辑
器会按输入次序自动为图元及宏功能符号赋于ID号。
① 双击图4.17中左上方INPUT端口的默认引脚名
“PIN-NAME”, 或者点击鼠标右键, 在出现的菜单中选
择Edit Pin Name。
② 键入PE, 则该INPUT端口更名为PE。
第4章 Altera可编程逻辑器件开发软件
③ 将其余的INPUT和OUTPUT引脚名按图4.18更改。
当编辑好一个引脚名后, 如果按回车键,则会自动选中其
下面的一个端口的引脚的名字供编辑。
图4.18中的输入端口PE、 CLR和CLK 分别为计数
器使能、 异步清除及时钟输出端口;
QH[3 ..0] 、
QL[3 ..0] 是十进制总线的名字, 代表计数器的高四
位总线及低四位总线输出。
第4章 Altera可编程逻辑器件开发软件
图 4.18 命名引脚示例图
第4章 Altera可编程逻辑器件开发软件
8) 连接逻辑符号
① 使用菜单命令Options / Rubberbanding 或做图工
具钮打开( )或关闭( )橡皮筋连接功能。 如果使两个符
号的引线端直接接触或通过引线相连, 则这两个符号便
在逻辑上连接起来。 在橡皮筋连接功能打开时, 移动其
中任一符号, 都会自动在两个符号的引线端之间形成新
的连线结点或总线, 或者延伸原有的连线。
第4章 Altera可编程逻辑器件开发软件
② 移动逻辑符号到适当位置。
③ 选择连线工具。 点击正交线工具 钮(或其它
连线工具), 鼠标变为“+”形状, 表示当前为连线模式。
在各种情况下, 将鼠标移到引脚、 符号或连线的端口,
鼠标也会变为“+”形状, 允许画线。
④ 选择连线类型。 选择菜单命令Option / Line
Style, 出现连线类型列表, 在下拉列表框中选择实线类
型(MAX+PLUSⅡ默认选择实线类型)。 也可以在工
具条上的连线类型下拉列表
框中指定连线类型(只
有在较高分辨率屏幕上才有此项)。
第4章 Altera可编程逻辑器件开发软件
⑤ 连线。 将鼠标移向输入引脚PE的输出引线端,
一直按住鼠标左键拖动到74160的ENT输入引线端, 释
放鼠标左键。
⑥ 用正交线工具, 可画直线或画带有一个拐折点
的线。 如果要画多个拐折连线, 就需要在画完一条线之
后, 再画与这条线端点相连接的第二条线。 只有当两条
连线类型相同时, 这两条线才会从逻辑上连接起来。
第4章 Altera可编程逻辑器件开发软件
⑦ 当一条连线端点落在另一条线上时, 会自动产生
连接结点。 可以通过点击结点产生工具钮 , 将两条交
叉线连接起来。
⑧ 重复步骤③至⑥, 画出其它连线如图4.19所示。
⑨ 画总线。 如图4.19所示, 连接到QL[3 ..0]、
QH[3 ..0] 输出的引线应是一条总线, 所以要选择总
线类型(Bus Line Style)。
第4章 Altera可编程逻辑器件开发软件
图 4.19 连线示例图
第4章 Altera可编程逻辑器件开发软件
9) 删除连线
① 点击待删除引线则选中鼠标所指处线段, 双击待
删除引线则选中与鼠标所指处线段相连的所有连线。
② 按Del键, 即删除所选中的连线或线段。 也可
以通过在已选中的线段上右击鼠标选Cut项的办法删除
所选中的连线或线段。
第4章 Altera可编程逻辑器件开发软件
10) 用名字来连接结点和总线(Nodes Buses)
如果一个总线中的某个成员名与一个连线(结点)
名相同(不区分大、 小写), 那么它们的逻辑连接就存
在了。 例如, 可以用名字ql0、 ql1、 ql2、 ql3把74160
符号的引线输出端QA、 QB、 QC和QD上的连线(结
点)接到与QL[3 ..0]相连的总线上去, 如图4.20所示。
第4章 Altera可编程逻辑器件开发软件
① 选择菜单命令Options / Text Size更改文字大小。
如在文字大小列表中选10。 也可以在工具条上的文字
大小下拉列表框
中指定文字大小(只有在较高分辨
率屏幕上才有此项)。
② 选择菜单命令Options / Font 更改字体。 如果
没有选择Altera, 从可用的Fonts下拉列表中选择Altera,
也可以在工具条上的字体下拉列表框
中指定线的类
型(只有在较高分辨率屏幕上才有此项)。
第4章 Altera可编程逻辑器件开发软件
③ 点击74160符号的QA引线端延伸出去的连线(结
点), 则在该线下出现小方块插入点。
④ 键入ql0, ql0就出现在这条线上面。 如果一个连
线或总线名重叠在某个符号上, 可以用鼠标把它拖到该
连线或总线之上的其它地方。
⑤ 重复步骤③、 ④给其余的结点与总线命名。
如图4.20所示, 通过结点名把ql0、 ql1、 ql[2](与
ql2等同)和ql3结点与总线QL[3 ..0] 从逻辑上连接
起来(MAX+PLUSⅡ不区分大小写), 尽管它们在几何上
并未连接。
第4章 Altera可编程逻辑器件开发软件
PE
C LR
C LK
INPUT
VCC
INPUT
VCC INPUT
VCC
7 41 60
L DN
A
B
QA
C
QB
D
QC
E NT
QD
E NP
R CO
C LR N
C LK
C OU NT ER
OUTPUT
q l0
q l1
q l[ 2]
q l3
Q L[ 3. .0 ]
CN
7 41 60
L DN
A
B
QA
C
QB
D
QC
E NT
QD
E NP
R CO
C LR N
C LK
C OU NT ER
OUTPUT
Q H[ 3. .0 ]
q H0
Q H1
Q H[ 2]
Q H3
CN
G ND
图 4.20 con60.gdf图形文件
OUTPUT
CO
第4章 Altera可编程逻辑器件开发软件
1) 保存文件并检查基本错误
① 选择菜单命令File / Project / Save & check 或点
击 快捷钮, 即保存当前项目文件, 打开MAX+PLUSⅡ
编译器窗口, 运行编译器网表提取器模块检查该文件的
错误, 更新层次结构的显示, 给出错误和警告数目的信
息等, 如图4.21 所示。
第4章 Altera可编程逻辑器件开发软件
图 4.21 MAX+PLUSⅡ 编译器窗口及消息处理器窗口
第4章 Altera可编程逻辑器件开发软件
② 选择“确定”。 如果Save & Check命令执行成
功, 无错误和警告信息, 即点击编译器标题条右侧的关
闭钮或双击编译器标题条(菜单条)左侧的编译器图
标, 以关闭编译器窗口, 返回到图形编译器。
③ 如果编译器发出了错误或警告消息, 可在消息
处理器窗口中点击Message钮选择一条消息。 通过点击
Locate钮或者双击该条消息来找到该消息的产生地方,
再通过点击Help on Message功能钮而得到相关的解释。
应将设计文件中的错误加以改正并再次执行Save &
Check, 直到无错为止。 如果消息处理器窗口没有自动
显 示 出 来 , 可 选 择 菜 单 命 令 MAX+PLUSⅡ/ Message
Processor来打开消息处理器窗口。
第4章 Altera可编程逻辑器件开发软件
12) 形成一个默认的逻辑符号
① 选择菜单命令File / Create Default Symbol, 即可
创建一个默认的逻辑设计符号con60.sym, 它可以像其它
符号(如74160)一样在其它图形设计文件(.gdf)中调用。
② 若选择菜单命令File / Create Default Include File,
则可创建一个默认的con60.inc文件供其它AHDL文本文
件调用。 在创建默认的逻辑设计符号时, 如果存在同名
符号, 就会得到提示信息, 询问是否覆盖现存的符号。 若
选 “确定”, 则用最新信息更新原符号文件内容。 可以
通过选择菜单命令File / Symbol编辑所选符号。
第4章 Altera可编程逻辑器件开发软件
13) 关闭文件
选择菜单命令File / Close , 或双击图形编辑器标题
条(菜单条)左侧的图形编辑器图表,或点击图形编辑
器标题条中的关闭钮, 即关闭正显示con60.gdf文件的图
形编辑器窗口。
练习1: 修改、完善图4.20所示电路, 并形成默认符
号m60.sym。
第4章 Altera可编程逻辑器件开发软件
练习2: 建立、输入图4.22所示脉冲分配器电路。
要求通过Save&Check。
练习3: 建立、输入图4.23 所示的模12计数器文件
m12.gdf 。 要 求 通 过 Save&Check, 并 形 成 默 认 符 号
m12.sym。
第4章 Altera可编程逻辑器件开发软件
PE
C LR
C LK
INPUT
VCC
INPUT
VCC INPUT
VCC
7 41 63
L DN
A
B
QA
C
QB
D
QC
E NT
QD
E NP
R CO
C LR N
C LK
C OU NT ER
7 41 38
Y 0N
A
Y 1N
B
Y 2N
C
Y 3N
G1
Y 4N
G 2A N Y 5N
G 2B N Y 6N
Y 7N
3 :8 D EC OD ER
图 4.22 同步脉冲分配器PD.gdf
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
第4章 Altera可编程逻辑器件开发软件
PE
C LR
C LK
7 41 61
L DN
A
B
QA
C
QB
D
QC
E NT
QD
E NP
R CO
C LR N
C LK
C OU NT ER
INPUT
VCC
INPUT
VCC INPUT
VCC
Q0
Q1
Q2
Q3
G ND
图 4.23 模12同步计数器m12.gdf
OUTPUT
Q [3 .. 0]
第4章 Altera可编程逻辑器件开发软件
2. 建立文本设计文件(AHDL)
MAX+PLUSⅡ支持AHDL、 VHDL及Verilog等硬
件描述语言。 AHDL是Altera Hardware Description
Language的缩写, 该语言可以使用布尔方程、 算术关系
运算表达式、 真值表、 条件分支等描述方法, 适合于
较大型的、 复杂的状态机设计。 有关AHDL的详细信
息可以在MAX+PLUSⅡ的帮助信息(Help)或
MAX+PLUSⅡ手册中找到。 在线帮助功能总是给出最
新的信息, 它可以把有关的内容连接起来, 并给出实例
及术语的定义, 因而在上机时使用在线帮助更为方便。
设计一个AHDL文件通常包括以下几步:
第4章 Altera可编程逻辑器件开发软件
① 指定项目并建立新文件。
② 输入子设计部分。
· 输入设计名。
· 输入输入端、 输出端及双向端口名。
③ 输入变量说明部分。
· 申明普通结点。
· 申明寄存器结点。
第4章 Altera可编程逻辑器件开发软件
④ 输入逻辑描述部分。
· 输入布尔方程。
· 输入其它行为描述。
⑤ 保存文件并检查、 修改句法错误。
⑥ 建立一个默认逻辑符号。
⑦ 关闭文件。
第4章 Altera可编程逻辑器件开发软件
在这一节中, 我们将使用MAX+PLUSⅡ文本编辑
器去输入并保存两个文本设计文件(TDF文件), 这两
个文件以Altera的硬件描述语言形式(AHDL)书写。
其中, 7seg.tdf完成BCD码到7段共阳LED数码显示的逻
辑译码功能, Con4m.tdf是一个模 4 M计数器/分频器。
设计7seg.tdf的步骤如下:
第4章 Altera可编程逻辑器件开发软件
1) 指定项目名并建立一个新文件
① 选择菜单命令File / Project / Name或点击 快捷
钮, 在Project对话框中把项目名字改成7seg (参照图
4.13)。
② 选择菜单命令File / New或点击 快捷钮, 在New
对话框中选择Text Editor file(参照图4.14), 再选择
OK, 即出现一个无标题的文本编辑器(Text Editor)窗
口, 如图4.24所示。 双击文本编辑器标题条中部, 将文
本编辑器窗口最大化。
第4章 Altera可编程逻辑器件开发软件
③ 选择菜单命令File / Save as, 在File Name框内键
入7seg.tdf。
④ 确保在Directory is栏中的当前目录是
\max2work\time, 选择OK, 将7seg.tdf文件保存起来。
第4章 Altera可编程逻辑器件开发软件
图 4.24 文本编辑器界面
第4章 Altera可编程逻辑器件开发软件
2) 输入设计名、 输入信号端口及输出信号端口
在AHDL文件的开头, 应首先建立一个说明输入和
输出端口的子设计部分。
在MAX+PLUSⅡ AHDL Help的Style Guide中提供
了行首缩进及空格的处理方法。 输入设计名、 输入信
号端口及输出信号端口的步骤如下:
① 选择菜单命令Template / AHDL(AHDL模板菜
单)。
② 选择Subdesign Section(子设计部分)。 如图
4.25所示。
第4章 Altera可编程逻辑器件开发软件
③ 选择OK, 在插入点将出现一个模板子设计部分。
每个变量名均由两段下划线(--)开始, 每个关键字都
用大写。 为改善可读性, 可用菜单命令Option / Font或
Option/ Text Size命令改变文本编辑器窗口中的字体及
文字大小。 也可以从工具条上的字体下拉列表及字体
大小下拉列表来改变字体及文字的大小。
第4章 Altera可编程逻辑器件开发软件
图 4.25 AHDL模板
第4章 Altera可编程逻辑器件开发软件
④ 双击--design name变量并键入7seg。
⑤ 添加输入名字。 双击第一个--input-name变量并
键入IN[3 ..0], 然后双击第二个--input name变量并用
Del键删除该变量, 再依此方法删除--constant-value变量
及前面的等号(=)。
⑥ 添加输出名字。 参照第⑤步键入a , b , c , d , e ,
f , g换掉--output name。
⑦
删 除 含 有 BIDIR , MACHINE INPUT 和
MACHINE OUTPUT关键字的行。
第4章 Altera可编程逻辑器件开发软件
⑧ 加入空格及列表符(Tab)以改变文件的可读性。
⑨ 可打开菜单项Option / auto - indent, 使文本行首
缩进。 可以用菜单命令Option / Tab Stops设定Tab 键代
表的空格数。 可以用Backspace键删除不必要的Tab空
格。 可通过键入Shifte+F1或点击快捷钮
帮助。
来获取在线
第4章 Altera可编程逻辑器件开发软件
3) 输入逻辑描述段
① 选择菜单命令Template / AHDL , 双击 Logic
Section 调入逻辑描述部分的起始(Begin)和结尾
(End)标志。 在Begin后面按两次回车键, 插入两个空
行, 以便插入逻辑描述内容。
② 按Tab键, 右移光标, 然后选择模板菜单命令
Template / AHDL , 双击 Truth Table State, 插入真值表描
述语句模板结构。
③ 参照图4.26, 以真值表描述语句模板为基础输入
7段共阳LED译码器的逻辑真值表。
第4章 Altera可编程逻辑器件开发软件
图 4.26
共阳7段LED译码器7seg.tdf
第4章 Altera可编程逻辑器件开发软件
4) 保存文件并检查句法错误
① 选择菜单命令File / Project / Save &Check, 或者
点击 快捷钮。
② 选择菜单命令Window / 7seg.tdf文件, 或者选择
菜单MAX+PLUSⅡ / Text Editor, 或者点击快捷钮, 把操
作切换回7seg.tdf文件编辑窗口。
第4章 Altera可编程逻辑器件开发软件
5) 建立默认符号及包含文件
选择菜单命令File / Create Defaut Symbol , 并选择
OK来建立7seg.sym符号文件, 供将来在顶层图形设计文
件中调用。 双击编译器标题条(菜单条)左侧的编译
器图标或点击标题条右侧的关闭钮, 以关闭编译器窗口。
若要建立包含文件, 则选菜单命令File / Create Defaut
Include File。
6) 关闭文件
选择菜单命令File /Close, 或双击文本编辑器标题
条(菜单条)左侧的文本编辑图标, 或点击标题条右侧
的关闭钮, 以关闭7seg.tdf文件的文本编辑窗口。
第4章 Altera可编程逻辑器件开发软件
设计Con4m.tdf文件的步骤如下:
1) 建立一个新的文本文件并指定设计项目为该
文件
① 选择菜单命令File / New或点击
快捷钮, 在
New对话框中选择Text Editor file(参照图4.14), 再选
择OK, 即出现一个无标题的文本编辑器(Text Editor)
窗口(参照图4.24)。 双击文本编辑器标题条中部, 将文
本编辑器窗口放至最大。
② 选择菜单命令File / Save as, 在File Name框内
键入Con4m.tdf。
第4章 Altera可编程逻辑器件开发软件
③ 确保在Directory is栏中的当前目录是
\max2work\time, 然后选择OK, 将Con4m.tdf文件保存
起来。
④ 点击快捷钮, MAX+PLUSⅡ自动把项目名字改
成当前文本编辑器文件名Con4m。
第4章 Altera可编程逻辑器件开发软件
2) 输入设计名 , 输入信号端口及输出信号端口
① 选择菜单命令Template / AHDL(AHDL模板菜
单)。
② 选择Subdesign Section(子设计段)并选择OK。
③ 更改设计名为 Con4m, 输入端口名为 CLR、
CLK, 输出端口名为CSP、 CSN。
④ 删除含有BIDIR , MACHINE INPUT和
MACHINE OUTPUT关键字的行, 加入空格及列表符
(Tab)以改变文件的可读性。
第4章 Altera可编程逻辑器件开发软件
3) 申明一组寄存器结点
在变量部分用Register Declaration功能可建立一个
寄存器。 在这个例子中将申明22个名为count[21 ..0]
的D型触发器(DFF)。
① 在 subdesign段后重起一行, 键入VARIABLE关
键字, 并按回车键。
② 选择菜单命令 Template / AHDL Template。
③ 双击Register Declaration, 在插入点出现一个寄
存申明的模板。
第4章 Altera可编程逻辑器件开发软件
④ 在Register Declaration前面插入一个列表空格
(Tab), 以改善文本的可读性。
⑤
双 击 --register-instance-name 变 量 并 键 入
COUNT[21 ..0], 双击--register-name变量并键入DFF。
4) 输入布尔方程
布尔方程用来把信号连接到D触发器的数据输入口。
布尔方程应包含在Logic Section(逻辑描述部分), 由
BEGIN 和 END 关 键 字 来 定 界 。 利 用 Help 菜 单 中 的
Search for Help on 可得到Boolean Equations的帮助信息。
第4章 Altera可编程逻辑器件开发软件
① 把光标移到DFF之后, 按回车键。
② 键入BEGIN并按回车键。
③ 键入count[ ].clk=CLK ; CSP=(count[ ]
==0) ; CSN=!(count[ ]==1); 并插入回车键。
④ 键入END。
在上述逻辑方程中, [ ]表示是整个组范围, 第一
个方程把子设计的clk输入到各触发器的时钟端, 第二个
方程根据count[ ]的值来控制输出端CSP, 第三个方程
根据count[ ]的值来控制输出端CSN。 显然, CSP为
正极性输出, CSN为负极性输出, 且CSP超前CSN一个时
钟周期。
第4章 Altera可编程逻辑器件开发软件
5) 输入一个IF语句
通过点击快捷钮进入在线帮助方式, 再点击文件中
的IF关键字, 可以得到AHDL IF语句的帮助信息。 本设
计中用IF语句描述模 4 计数器逻辑。
① 把光标放在count[ ]后面按回车键两次, 插入
两个空行, 使程序增加可读性。
② 按Tab键, 右移游标, 然后在模板菜单(Template
Menu)中选择AHDL Template。
第4章 Altera可编程逻辑器件开发软件
③ 双击IF语句, 在插入点出现一个IF语句的模板。
④ 编辑语句的变量部分, 使其完成这样的功能: 若
count[ ]的值小于3999999, 则把count[ ]+1的值赋
给变量count[ ]; 否则, count[ ]的值为零。 如图
4.27所示。
第4章 Altera可编程逻辑器件开发软件
图 4.27 模 4 分频/计数器Con4m.tdf
第4章 Altera可编程逻辑器件开发软件
6) 检查句法错误及建立默认符号
① 点击快捷钮, 开始执行Save&Check。 如出现错
误, 则修改设计, 重新执行Save&Check, 直到通过。
② 选择菜单Window / Con4m.tdf, 或者选择菜单
MAX+PLUSⅡ / Text Editor, 或者点击快捷钮, 把操作切
换回Con4m.tdf文件编辑窗口。
③ 选择菜单命令File / Create Defaut Symbol , 并选
择OK来建立7seg.sym符号文件, 供将来在顶层图形设计
文件中调用。 双击编译器标题条(菜单条)左侧的编
译器图标或标题条右侧的关闭钮, 以关闭编译器窗口。
若要建立包含文件, 则选菜单File / Create Defaut Include
File。
第4章 Altera可编程逻辑器件开发软件
④ 选择菜单命令File / Close, 或双击文本编辑器标
题条(菜单条)左侧的文本编辑图标, 或点击标题条右
侧的关闭钮, 以关闭Con4m.tdf文件的文本编辑窗口。
练习4: 修改、 完善图4.26所示LED 7段译码器
AHDL描述程序, 并形成默认符号7seg.sym。
练习5: 修改、 完善图4.27所示模 4 M计数/分频器
AHDL描述程序, 并形成默认符号Con4m.sym。
练习6: 建立、 输入图4.28 所示的流水灯控制电路
的AHDL描述程序SC.tdf。 要求通过Save&Check, 并形
成默认符号SC.sym。
第4章 Altera可编程逻辑器件开发软件
3. 创建顶层图形设计文件
MAX+PLUSⅡ支持层次化设计输入方法, 其主要
思想是:
① 当前设计项目文件为顶层设计文件。
② 顶层设计文件中调用的符号所代表的文件为底
层设计文件。
③ 顶层设计文件可通过打包(即创建默认符号)
的方法降为底层设计文件, 供其它顶层文件调用。
④ 在同一设计项目中, 允许顶层及底层设计单向调
用底层设计符号, 不允许出现顶层文件与符号文件之间
及符号文件之间的直接相互调用或间接相互调用, 也不
允许出现顶层文件或任一符号文件自身递归调用。
第4章 Altera可编程逻辑器件开发软件
⑤ 在同一设计项目中, 顶层设计文件名及各底层
符号所对应的设计文件名必须是唯一的。例如, 不允许
同时存在7seg.gdf和7seg.tdf两个设计文件。
⑥ 同一设计项目中的各个设计文件都可以重新编
辑、 修改、 保存、 打包。 在打包之后, 应在调用该设
计符号的上一层设计文件中更新该符号, 并保存(如有
必要, 应继续打包上一层设计文件)。
第4章 Altera可编程逻辑器件开发软件
⑦ 硬件语言设计文件通过调用包含文件的方法实
现层次设计输入。 此时, 应通过建立默认符号的方法形
成底层设计文件。
在这一节中, 我们将使用MAX+PLUSⅡ的图形编
辑器来为项目LED60创建顶层图形设计文件 LED60.gdf,
该文件将用到前面章节中创建的两个底层文件
con60.gdf及 7seg.tdf的设计符号。
第4章 Altera可编程逻辑器件开发软件
创建LED60.gdf文件步骤如下:
① 将项目名称指定为LED60, 并确保该项目在
\max2work\Time目录下。
② 创建一个GDF文件并将其保存为LED60.gdf。
③ 输入前面已创建的底层设计文件符号con60 和
7seg。 注意: 在图形编辑器中, 符号格式为〈符号名〉
〈符号标识号〉, 符号标识号与输入顺序有关。 在用
Create Default Symbol(创建默认的符号)命令创建的
符号中, 引脚名总是用大写字母来表示。
第4章 Altera可编程逻辑器件开发软件
④ 输入五个INPUT引脚和三个OUTPUT引脚。
⑤ 命名引脚。 如图 4.29 所示。
⑥ 用连线和总线将符号连接起来。 应确保所有连
线(包括在几何上没有连接的连线)连接到一个符号
的引线端上。 可以通过点击作图工具栏交叉结点钮, 在
交叉线上自动插入连接点或去掉原有的交叉结点。 也
可以通过在两条线的交点处右击鼠标 , 选择菜单项
Toggle Connection Dot手工插入一个连接点或去掉原有
的交叉结点。
第4章 Altera可编程逻辑器件开发软件
⑦ 命名未连接的引线, 通过名字来连接它们(本
例中, 符号间已全部连接)。
⑧ 选择菜单命令File / Save 或快捷钮保存该文件。
练习7: 修改、 完善图4.29所示模60 LED7段显示
计数器的顶层设计文件, 要求通过Save&Check, 并形成
默认符号LED60.sym。
练习8: 建立、 输入图4.30所示模12 LED7段显示
计数器的顶层设计文件, 要求通过Save&Check, 并形成
默认符号LED12.sym。
练习9: 建立、 输入图4.31 所示的实时钟及流水灯
显示逻辑Time.tdf, 要求通过Save&Check。
第4章 Altera可编程逻辑器件开发软件
图 4.28 流水灯控制电路SC.tdf
第4章 Altera可编程逻辑器件开发软件
图 4.28 流水灯控制电路SC.tdf
第4章 Altera可编程逻辑器件开发软件
7 se g
D AT [3 .. 0 ]
PE
C LR
C LK
INPUT
VCC
INPUT
VCC
INPUT
VCC
C ON 60
PE
Q L[ 3. .0 ]
C LR
Q H[ 3. .0 ]
C LK
CO
A
B
C
D
E
F
G
OUTPUT
OUTPUT
OUTPUT
OUTPUT
A
B
C
D
E
F
G
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
7 se g
D AT [3 .. 0 ]
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
图 4.29 模60 LED 显示计数器LED60.gdf
LA
LB
LC
LD
LE
LF
LG
HA
HB
HC
HD
HE
HF
HG
CO
第4章 Altera可编程逻辑器件开发软件
7 se g
m 12
PE
C LR
C LK
INPUT
VCC
INPUT
VCC
INPUT
VCC
PE
C LR
C LK
Q [3 .. 0]
D AT [3 .. 0]
A
B
C
D
E
F
G
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
图 4.30 模12 LED 7段显示计数器LED12.gdf
A
B
C
D
E
F
G
第4章 Altera可编程逻辑器件开发软件
图 4.31 实时钟顶层图形设计文件Time.gdf
第4章 Altera可编程逻辑器件开发软件
4.2.3 设计项目的处理
1. 在层次显示中观察设计项目
在这一节中, 将在项目的层次显示窗口中观察Time
项目的层次结构。
1) 打开层次显示窗口
选择菜单命令MAX+PLUSⅡ / Hierarchy Disply
(层次显示)或点击快捷钮, 即打开层次显示窗口, 显
示出Time的层次树结构, 如图4.32所示。 在层次图中,
在已打开的文件图标最上方会显示一个小条, 如图4.32
中的LED60:2。
第4章 Altera可编程逻辑器件开发软件
图 4.32 MAX+PLUSⅡ层次显示窗口
第4章 Altera可编程逻辑器件开发软件
2) 将Time.gdf带到前台
在层次显示窗口中, 允许将项目层次中的任何一个
设计文件以及任何一个与项目名称同名的辅助文件快
速打开或带至前台。 在层次显示窗口中打开文件的同
时, MAX+PLUSⅡ自动地打开相应的文件编辑器。 双
击紧随Time文件名之后的GDF图标, 即把图形编辑窗口
以及文件Time.gdf带到前台, 供浏览、 编辑用。
第4章 Altera可编程逻辑器件开发软件
3) 关闭所有打开的文件
在层次显示中, 关闭已打开的文件:
① 通过点击某文件的文件名或图标来选择单个已
打开的文件; 或通过按住Shift键并点击任意个已打开的
文件名或图标来选择多个打开文件。
② 选择菜单命令File / Close Editor或点击鼠标右键,
在出现的菜单中选Close Editor, 以关闭已打开的文件和
相应的编辑器。
③ 双击层次显示窗口标题条左侧的层次窗口图标
或标题条右侧的关闭钮, 以关闭层次显示窗口。
第4章 Altera可编程逻辑器件开发软件
2. 编译项目
使用MAX+PLUSⅡ编译器编译设计项目时, 编译器
将进行错误检查、 网表提取、 逻辑综合、 器件适配,
并产生仿真文件、 定时分析文件和编程配置文件。 使
用编译器编译设计项目的步骤如下:
① 打开编译器窗口。
② 选择一种器件系列(Device Family)。
③ 启用设计规则检查工具。
④ 打开保密位(Security Bit)。
第4章 Altera可编程逻辑器件开发软件
⑤ 锁定引脚。
⑥ 选择全局项目逻辑综合方式。
⑦ 设置全局定时要求。
⑧ 打开功能仿真器或定时模拟器网表文件提取器。
⑨ 指定在报告文件中需要产生的部分。
10
运行编译器。
11
确定一条消息的来源。
12
获得关于一条消息的帮助信息。
13
阅读报告文件。
第4章 Altera可编程逻辑器件开发软件
在这一节中, 我们将使用MAX+PLUSⅡ编译器编
译设计项目Time。 如果没有完成前面的几节辅导课程
内容, 即没有创建Time项目的con60.gdf、
7seg.tdf 、
Con4m.tdf 、
m12.gdf、
Sc.tdf 、 LED60.gdf 、
LED12.gdf和Time.gdf等文件设计, 则无法编译Time项目。
具体步骤如下:
1) 打开编译器窗口
选择菜单命令MAX+PLUSⅡ / Compiler 或快捷钮,
即打开编译器窗口, 如图4.33所示。 注意: 显示在屏幕
上的模块和图标可能会与图中有所不同, 这与
MAX+PLUSⅡ的初始设置有关。
第4章 Altera可编程逻辑器件开发软件
图 4.33 MAX+PLUSⅡ 编译器窗口
第4章 Altera可编程逻辑器件开发软件
2) 选择一种器件系列
在编译项目时, 需要为项目指定一种器件系列, 再
由设计人员自己指定某个具体器件, 或者让编译器自动
地从该器件系列中选择最适合该项目的器件。 确定一
种器件系列的步骤如下:
① 选择菜单项Assign / Device, 出现图4.34所示
Device对话框。
第4章 Altera可编程逻辑器件开发软件
图 4.34 选择器件对话框
第4章 Altera可编程逻辑器件开发软件
② 从Device Family下拉列表框中选择MAX 7000S
系列。
③ 在Device(器件)列表框中选择7128SLC84-15
或选择AUTO。
④ 选择OK。
⑤ 如有必要, 可点击Assign Device钮重新选定器件。
第4章 Altera可编程逻辑器件开发软件
3) 启用设计规则检查工具
编译时, 可选的设计规则检查(Design Doctor)工
具将检查项目中的所有设计文件, 以发现在编程器件中
可能存在的可靠性不好的逻辑。 打开Design Doctor工
具并为其指定一系列设计规则的步骤如下:
① 选择菜单命令Processing / Design Doctor, 将会
在Design Doctor菜单项的左侧出现一个确认标记, 并且
将会在Compiler 窗口中Logic Synthesizer模块的下方显
示Design Doctor图标, 如图4.35和图4.33所示。 为了简
化学习过程, 可关闭设计规则检查项, 使Design Doctor
图标消失。
第4章 Altera可编程逻辑器件开发软件
图 4.35
设计规则检查标记
第4章 Altera可编程逻辑器件开发软件
图 4.36 设置设计规则检查
第4章 Altera可编程逻辑器件开发软件
② 选择菜单命令Processing / Design Doctor Settings,
出现Design Doctor Settings对话框, 如图4.36所示。
③ 对于MAX7000S系列, 选择EPLD Rules(EPLD
规则), 然后选择OK。
④ 若不需要, 再次选择菜单命令Processing / Design
Doctor, 即关闭设计规则检查工具。
第4章 Altera可编程逻辑器件开发软件
图 4.37 保密位设置对话框
第4章 Altera可编程逻辑器件开发软件
4) 打开保密位
MAX+PLUSⅡ允许设计人员为项目中的所有器件
指定默认的保密位设置。 保密位能防止一个器件被探
测(Being Interrogated)或被无意地重新编程。
① 选择菜单命令 Assign / Global Device Option, 出
现Global Device Option对话框,如图4.37所示。
② 如有必要, 打开Security Bit(保密位), 然后选
择OK。
③ 若不需要(如在设计、 调试时), 则在第②步
关闭Security Bit, 然后选择OK。
第4章 Altera可编程逻辑器件开发软件
5) 锁定引脚
只有在为设计项目选定器件以后, 才可锁定顶层设
计中各端口所对应的引脚号。 可以通过Assign菜单项
或在项目顶层设计图中锁定引脚(称前锁定), 也可以
在平面布局图编辑器上编辑适配结果(称后锁定)。
编译前锁定引脚步骤如下:
① 选择菜单命令Assign / Pin/Location/Chip, 或者
打开项目顶层设计图, 右击待锁定的引脚, 选Assign /
Pin/Location/Chip 菜 单 项 , 则 出 现 图 4.38 所 示 的
Pin/Location/Chip 对话框。
第4章 Altera可编程逻辑器件开发软件
图 4.38 引脚锁定对话框
第4章 Altera可编程逻辑器件开发软件
图4.39 引脚选择列表框
第4章 Altera可编程逻辑器件开发软件
② 在Node Name对话框中输入要锁定的端口名; 也
可以通过点击Search 进入Search Node Data Base, 再点
击List, 在Name in Data Base 列表中选择要锁定的端口
名, 如图4.39所示。
③ 在Resource栏中, 选中Pin, 参照表4.1键入要锁
定的引脚号。
④ 点击Add钮或OK。 若输入的引脚号不是器件
的I/O引脚, 则会出现错误信息。 在本书中, 我们使用
笔者为西安电子科技大学国家电工电子教学基地开发
的ISPB-99 系列实验套件来验证设计项目。 对于Time
项目, 应按表4.1来锁定引脚。 要进一步了解ISPB-99系
列实验套件, 请参考附录。
第4章 Altera可编程逻辑器件开发软件
表 4.1 ISPB-99 EPM7128S引脚锁定表
第4章 Altera可编程逻辑器件开发软件
6) 选择全局项目逻辑综合方式
设计人员可以为项目选择一种逻辑综合方式, 以便
在编译的过程中指导编译器的逻辑综合模块的工作。
默认的逻辑综合方式是Normal(常规)。 该方式的逻
辑综合优化目标是使逻辑单元使用数达到最少。 步骤
如下:
① 选 择 菜 单 命 令 Assign / Global Project Logic
Synthesis, 出现Global Project Logic Synthesis对话框, 如
图4.40所示。
第4章 Altera可编程逻辑器件开发软件
图 4.40 设定全局逻辑综合方式
第4章 Altera可编程逻辑器件开发软件
② 在Global Project Logic Synthesis下拉列表框中
选择NORMAL、 FAST(快速)、 WYS/WYG(我行我素)
等逻辑综合方式之一。
③ 移动Optimize(优化)栏中的滑动块。 若移动到0,
则逻辑综合时优先考虑减少器件的资源占用率; 若移动
到10, 则逻辑综合时优先考虑系统执行速度。
④ 选择多级逻辑综合方式选项。 该方式可以充分
利用所有可使用的逻辑选项, 适用于处理含有复杂逻辑
的设计项目, 而且不需要用户干预适配。 对于FLEX系
列器件, 该选项自动有效。
第4章 Altera可编程逻辑器件开发软件
⑤ 设置是否自动使用全局信号端口。 若要用其它
端口作时钟、 清除、 预置、 输出使能,则设置相应选
项无效。 对于Time 项目, 该项设置为全部自动使用全
局信号端口。
第4章 Altera可编程逻辑器件开发软件
7) 设置全局定时要求
通过设置全局定时要求, 可使编译器按所设定的传
输延时、 时钟到输出延时、 建立时间和时钟频率等全
局定时要求进行逻辑综合与器件适配。 全局定时要求
设置仅对FLEX6000、 FLEX8000、 FLEX10K器件的编
译有效, 但是, 不管怎样, 编译器还是会检验编译结果是
否达到设定的要求。 设定步骤如下:
第4章 Altera可编程逻辑器件开发软件
① 选择菜单命令Assign / Global Time Requirements,
出现Global Project Timing Requirements对话框, 如图
4.41所示。
② 在相应的编辑框内输入所要求的定时时间。
③ 将双向引脚反馈通路和清除/预置路径选项设置
为关断, 即不计这些延时。
④ 点击 OK。
第4章 Altera可编程逻辑器件开发软件
图 4.41 设置全局定时要求
第4章 Altera可编程逻辑器件开发软件
图 4.42 选择功能仿真与时序仿真
第4章 Altera可编程逻辑器件开发软件
8) 打开功能仿真器或定时模拟器网表文件提取器
MAX+PLUSⅡ支持功能仿真(前仿真)和模拟仿
真(后仿真)。 若要进行功能仿真, 则需选择菜单命令
Processing/Functional SNF Extractor 打开功能仿真器网表
文件提取器; 若要进行模拟仿真, 则需选择菜单命令
Processing / Timing SNF Extractor 打开定时模拟器网表
文件提取器。 如图4.42所示。
第4章 Altera可编程逻辑器件开发软件
MAX+PLUSⅡ编译器能创建一个仿真/模拟器网表
文件(.snf), 该文件包含了许多逻辑信息和时间信息,
并被用作MAX+PLUSⅡ模拟器(Simulator)或定时分
析器(Timing Analyzer)的输入。 定时模拟器网表文
件是一种二进制文件, 它包含了模拟、 延时预估和定时
分析所需的逻辑与时间信息。
9) 指定在报告文件中需要产生的部分
MAX+PLUSⅡ编译器适配(Fitter)模块产生报告
文件(.rpt), 它显示所编译项目使用器件资源的情况。
可以为编译器指定报告文件中应当包含的信息。 步骤
如下:
第4章 Altera可编程逻辑器件开发软件
图 4.43 选择报告文件内容
第4章 Altera可编程逻辑器件开发软件
① 选择菜单命令Processing / Report File, 将出现
Report File对话框, 如图4.43所示。
② 设置需要产生的报告文件内容项。
③ 默认情况下, 报告文件中所有部分都被打开。
如果某些部分还没被打开, 可打开All选项。
⑤ 选择OK。
第4章 Altera可编程逻辑器件开发软件
10) 运行编译器
① 在已打开的编译器窗口选择Start按钮,
即开始
处理Time项目。 在编译器处理项目Time过程中, 全部
信 息 、 错 误 和 警 告 都 将 显 示 在 自 动 打 开 的 Message
Processor窗口中。 若编译器窗口未打开, 则可通过选择
菜单命令File / Project / Save & Compile 或点击快捷钮
来保存当前项目文件, 打开MAX+PLUSⅡ编译器窗口,
并自动进行编译。
第4章 Altera可编程逻辑器件开发软件
② 当编译器的Partitioned(划分)和Fitter(适配)
模块处理此项目时, Stop按钮将变成Stop / Show Status
按钮。 此时, 若点击Stop / Show Status按钮, 则会出现
Partition/ Fitter Status(划分/试配状态)对话框。 对话
框中列出项目中的所有芯片和当前对它们适配的状态,
如图4.44所示。
第4章 Altera可编程逻辑器件开发软件
图 4.44 项目的器件划分与适配情况
第4章 Altera可编程逻辑器件开发软件
③ 在Partition / Fitter Status对话框中选择Continue
Compilation按钮继续编译。 编译过程在后台进行, 这使
得计算机能够同时做别的工作。 对于Time这样的小项
目, 编译时间很短, 不需要等待多久。 如果编译一个更
大的、 更为复杂的项目, 可以在开始编译之后转到别的
应用程序继续工作。 编译结束后, 那些由编译器产生的
代表输出文件的图标将出现在各模块框的下面。 可以
通过双击适当的文件图标来打开这些输出文件。 编译
Time项目产生的消息框如图4.45 所示。