Altera可编程逻辑器件开发软.ppt_第1页
Altera可编程逻辑器件开发软.ppt_第2页
Altera可编程逻辑器件开发软.ppt_第3页
Altera可编程逻辑器件开发软.ppt_第4页
Altera可编程逻辑器件开发软.ppt_第5页
已阅读5页,还剩284页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 Altera可编程逻辑器件开发软件,3.1 概述 3.2 MAX+PLUS开发软件 3.3 Quartus开发软件,3.1 概 述,Altera公司在推出开发工具软件 : 早期的A+PLUS、 MAX+PLUS 目前的MAX+PLUS、 Quartus、 Quartus。,MAX+PLUS和Quartus具有完全集成化易学易用的可视化设计环境, 还具有工业标准EDA工具接口, 并可运行在多种操作平台上。 MAX+PLUS和Quartus提供了一种与结构无关的设计环境, 设计人员无须精通器件的内部结构, 只需运用自己熟悉的输入工具(如原理图输入或高级行为描述语言)进行设计, 就可通过MAX+PLUS和Quartus把这些设计转换为最终结构所需要的格式。 有关结构的详细知识已装入开发工具软件, 设计人员无须手工优化自己的设计, 因此设计速度非常快。,3.1.1 设计软件流程图 使用MAX+PLUS和Quartus软件开发可编程逻辑器件, 包括设计输入、 项目编译、 设计校验及器件编程等过程。 如图3.1所示。,图 3.1 MAX+PLUS和Quartus的设计流程图,MAX+PLUS和Quartus提供了全面的逻辑设计能力, 设计人员可将文本、 图形和波形等设计方法自由组合, 建立起层次化的单器件或多器件设计。 编译过程完成最小化逻辑综合、 适配设计项目于单个器件或多个器件以及形成编程和配置数据等工作。 设计校验包括功能仿真、 时序仿真、 影响速度的关键路径的延时预测以及多种系列器件混合使用的多器件仿真。,3.1.2 MAX+PLUS开发软件简介 1. 特点 MAX+PLUS是Multiple Array Matrix and Programmable Logic User System的缩写, 它提供了与结构无关的设计环境, 支持FLEX、 MAX及Classic系列器件, 目前已升级至10.1版本。 MAX+PLUS具有开放的界面, 可与其它工业标准的EDA设计输入、 综合及校验工具相连接。提供与结构无关的设计环境, 支持多平台工作, 既可以在Windows下运行, 也可在SunSPAC Stations、 HP9000 Series 700/800和IBM RISC System/6000工作站上运行。, MAX+PLUS提供丰富的逻辑功能库供设计人员调用, 其中包括74系列全部器件的等效宏功能库和多种特殊的宏功能(Macro Function)模块以及参数化的宏功能(Magefunction)模块。 MAX+PLUS还具有开放核的特点, 允许设计人员添加自己的宏功能模块。 充分利用这些逻辑功能模块, 可以大大减轻设计的工作量, 成倍缩短开发周期。 MAX+PLUS软件支持各种HDL语言设计输入, 包括VHDL、 Verilog HDL和Altera自己的硬件描述语言AHDL。,2. 设计流程 使用MAX+PLUS的设计过程包括以下几步。 如图3.2所示:,图 3.2 MAX+PLUS的设计流程,1) 输入设计项目 逻辑设计的输入方法: 原理图形输入(.gdf)、 文本输入(.vhd)、 波形输入(.wdf)及 第三方EDA工具生成的设计网表文件输入(.sch、 .edf、 .xnf)等。,2) 编译设计项目 首先, 根据设计项目要求设定编译参数和编译策略, 如选定器件、 锁定引脚、 设置逻辑综合方式等。 然后,对设计项目进行网表提取、 逻辑综合、 器件适配, 并产生报告文件(.rpt), 延时信息文件(.snf)和器件编程文件(.pof , .sof , .jed), 供分析、 仿真和编程使用。,3) 校验设计项目 设计项目校验方法包括功能仿真、 模拟仿真和定时分析。 功能仿真是在不考虑器件延时的理想情况下仿真设计项目的一种项目验证方法, 称为前仿真。 通过功能仿真可以验证一个项目的逻辑功能是否正确。, 模拟仿真(时序仿真)是在考虑设计项目具体适配器件的各种延时的情况下仿真设计项目的一种项目验证方法, 称为后仿真。 不仅测试逻辑功能, 还测试目标器件最差情况下的时间关系。 通过时序仿真, 在设计项目编程到器件之前进行全面检测, 以确保在各种可能的条件下都有正确的响应。 定时分析用来分析器件引脚及内部节点之间的传输路径延时、 时序逻辑的性能(如最高工作频率、 最小时钟周期等)以及器件内部各种寄存器的建立保持时间。,4) 编程验证设计项目 用MAX+PLUS编程器通过Altera编程硬件或其它工业标准编程器, 将经过仿真确认后的编程目标文件编入所选定的Altera可编程逻辑器件中, 然后加入实际激励信号, 测试是否达到设计要求。,3.2 MAX+PLUS开发软件 3.2.3.1 图形设计输入方法(步骤): 1: 建立新文件 (1)在 File 菜单中选择 New, 将出现New对话框。 (2) 在New对话框中选择Graphic Editor File项, 然后按下OK按钮, 将会出现一个无标题的图形编辑器窗口。 (3)执行filesave as或保存工具,设置文件名。,图 3.10 在File菜单中选择 New,图3.11 New对话框,2:指定设计项目名称 ( 注意: 每个设计必须有一个项目名, 并且要保证项目名与设计文件名一致。) (1) 在 File 菜单中选择Project Name项, 将出现如图3.9所示Project Name对话框。 (2) 在Project Name框内键入你的设计项目名, 如test或带目录的文件名pldtest。 (3) 在Directories栏中选中max2workchiptrip或其它目录作为当前目录。 (4) 选择OK按钮, 则MAX+PLUS标题条会变成新项目的路径及名称。,图 3.9 指定项目名对话框,3. 输入图元和宏功能符号 (Max2workmaxlib 子目录下图元和宏功能符号库: Prim :altera的图元库,包括:逻辑门、缓冲器、触发器、锁存器、输入/输出端口等 Mf:宏功能模块库,包括:74系列/总线/体系结构/特殊运用宏功能模块库等 Mega_lpm兆功能模块库,包括:参数化模块库 Lmp/宏功能高级模块(如busmux、 csfifo、 cadram、 parallel-add等)和IP功能模块(如UARTs、 FFT、 FIR、 PCI等)。 Edif :edif接口库 附常见图元名称:参见PRIM、MF库 附常见图元和宏功能符号名称:,Lpm-参数化 门单元模块:And与门 or或门 xor异或门 Bustri三态缓冲器 clshift逻辑移位器 constant常数产生器 decode解码器 inv反向器 busmux总线选择器 mux选择器 算术运算模块:abs绝对器运算 add_sub加/减法器 compare比较器 mult乘法器 存储器模块:ff D触发器 latch锁存器 rom ROM shiftreg移位寄存器 Csfifio先进先出队列 csdpram双口RAM ram_dq输入输出分开的参数化RAM ram_io输入输出复用的参数化RAM 其它功能模块: pll锁相环电路 ntsc NTSC图象控制信号产生器,图 3.12 MAX+PLUS图形编辑器窗口,图 3.13 输入Altera 图元,在图形设计文件中输入图元和宏功能符号的步骤如下: 1) 输入Altera 图元的步骤如下: (1) 选择工具按钮有效时, 在图形编辑器窗口的空白处单击鼠标左键以确定输入位置。 (2) 在Symbol菜单中选择Enter Symbol或单击鼠标右键并选择Enter Symbol, 或双击鼠标左键, 将出现一个Enter Symbol 对话框, 在Symbol Libraries框中双击选“maxplus2max2libprim”。,(3) 所有的Altera 图元以列表方式显示出来, 选择你想输入的图元, 然后双击或选择 OK按钮。 此时所选中的图元就出现在图形编辑器窗口中, 如图3.13 所示。 只要重复上述三步, 就可连续选取图元。,2) 输入74系列的符号步骤如下: 74 系列的符号的输入方法与图元的输入方法相似。 (1) 当Enter Symbol 对话框出现后, 在Symbol Libraries 对话框中双击选择“.maxplus2max2libmf”路径。 (2) 在 Symbol Files 对话框中选择需要的 74 系列符号, 然后双击或选择 OK按钮, 所选中的74 系列符号就出现在图形编辑器窗口中, 如图3.14所示。 图中的74138就是所选中的74 系列符号。 如要连续选取74 系列器件, 则只要重复上述几步就可以了。,图 3.14 输入74系列符号,3) 输入 LPM 符号的步骤如下: LPM(Library Parameterized Megafunction)符号的输入方法与前两种符号的输入方法相似。 (1) 在Enter Symbol对话框出现后, 在Symbol Libraries框中双击选择 “.maxplus2max2libmega-lpm”路径。 (2) 在 Symbol Files 框中选择需要的 lpm 符号, 然后点击 OK按钮, 或双击选择需要的 lpm 符号。 此时lpm 符号就出现在图形编辑器窗口中, 并出现输入参数对话框, 如图3.15 所示。 输入需要的参数后点击OK按钮。,图 3.15 lpm符号输入参数对话框,(3) 在图形编辑器窗中双击lpm符号的参数框 (位于符号的右上角), 也出现lpm符号参数对话框, 可输入或改变参数。 在Port Status 框中选择 Unused , 可将不需要的信号去掉。 (4) 也可利用MegaWizard Plug In Manager 输入宏功能符号和LPM库函数。 如输入一个存储器的步骤如下: 在图形编辑器窗口空白处双击鼠标左键, 出现Enter Symbol对话框后点击MegaWizard PlugIn Manager按钮, 或在File菜单中选择MegaWizard Plug In Manager项, 然后选中Create a new custom megafunction variation, 再点击Next按钮。,在Available Megafunctions 列举中点击“+”按钮, 扩展storage文件夹, 然后选择 LPM-ROM, 在右边的对话框中输入你所希望的输出文件名和类型, 如rom和AHDL,如图3.16所示。 在其后的address input bus宽度输入8, q output bus宽度输入4, 输出符号名为rom, 其它为缺省值, 然后点击OK按钮。 在所希望的地方点击左键插入rom符号。 一个新名为rom的符号出现在图形编辑器窗中, 双击rom符号, 还可对具体参数进行编辑。 用户以后就可以直接调用该符号了。,图 3.16 MegaWizard Plug In Manager窗口,4. 连线 方法一:可将鼠标移到其中一个端口, 这时鼠标自动变为“+”形状, 然后可按以下步骤操作: (1) 一直按住鼠标的左键并将鼠标拖到第二个端口。 (2) 放开左键, 则一条连接线被画好了。 (3) 如果需要删除一根连接线, 单击这根连接线并按 Del 键即可, 如图3.17所示。 方法二:单击工具三画直线,图 3.17 连线图,5. 为引脚和节点命名 1) 放置输入引脚和输出引脚 ( 注意: 放置输入引脚和输出引脚的方法与图元的输入方法相似) 在图形编辑器窗口的空白处单击鼠标左键以确定输入位置, 然后在Symbol菜单中选择Enter Symbol或双击鼠标左键, 将出现一个Enter Symbol 对话框。 只要在Enter Symbol对话框中键入Input(Output), 然后选择 OK按钮, 符号INPUT(OUTPUT)就出现在图形编辑器窗口中。,(注意:如果要重复放置同一符号或器件, 用复制的方法, 可提高图形输入的效率。 法一:将符号选中利用edit中的copy命令进行复制,然后粘贴。 法二:是将鼠标放在所要复制的符号或器件上, 按下Ctrl键和鼠标左键不放, 拖曳鼠标至所需要的位置, 这样就完成了符号或器件的复制。),2) 为引脚命名 在引脚上的PIN-NAME处双击鼠标左键, 然后输入指定的名字。 3) 为连线命名 点击鼠标左键选中需命名的线, 然后输入名字。 对 n 位宽的总线 A 命名时, 可以采用 An 10 形式, 其中单个信号用 A0, A1, A2, , An 形式 。,图 3.19 4位计数器,约翰逊六进制计数器,图 3.18 3线8线译码器,6. 图形编辑选项 在图形编辑窗口中的Options菜单中列出了一些图形编辑时的选项, 如图3.20所示, 包括文本的字型(Font)、 大小控制(Text Size)、 线形(Line Style)、 显示任务、 网络控制等, 设计时用户可根据需要进行选择。,图 3.20 图形编辑选项,7. 保存文件并检查错误 在设计过程中, 如需要保存新文件或将文件重新命名, 选择 File 菜单中的 Save As 项, 将出现Save As对话框, 如图3.21所示 。 在 File Name 对话框内输入设计文件名, 然后点击 OK 按钮即可保存文件。,图 3.21 Save As对话框,若是为了保证输入逻辑的正确性, 可将此逻辑文件保存起来并进行错误检查。 其具体操作步骤如下: (1) 在File 菜单中选择 Save & Check命令项或工具17, 该文件就被保存起来, 同时MAX+PLUS编译器窗口打开。 编译器网表提取器模块检查该文件的错误, 更新层次结构的显示, 同时给出错误和警告数目的信息等, 如图3.22所示。,图 3.22 MAX+PLUS编译器窗口及消息处理器窗口,(2) 选择“确定”按钮。 如果Save & Check命令执行成功, 无错误和警告信息, 就选择编译器标题条右侧的关闭按钮或双击编译器标题条左侧的编译器图标, 关闭编译器窗口, 返回到图形编辑器窗口。,(3) 如果编译器发出了错误和警告信息, 可在消息处理器窗口中点击Message按钮选择一条消息, 通过选择定位(Locate)或双击该条消息来找到消息的产生地方。 用户还可选择Help on Message功能得到有关的解释, 这样就可以定位设计文件中的错误并加以改正。 接下来再次执行Save & Check命令, 直到无错误和警告信息。 如果消息处理器窗口没有自动显示出来, 可选择菜单命令Message Processor来打开消息处理器窗口。,8. 创建一个默认的逻辑符号 对于一个经过保存且检查没有错误的设计文件, 可以创建一个代表该文件的符号文件(.sym)。 该符号就像其它符号(如74138)一样, 可被其它图形设计文件(.gdf)调用。 (1) 在 File菜单中选择 Create Default Symbol 项, 即可创建一个默认的逻辑符号。 该符号可被高层设计调用。 (2) 若选择File菜单中的 Create Default Include File项, 则可创建一个默认的逻辑文件(.inc)供其它AHDL文本设计文件调用。 (3) 可以通过选择File菜单中的Symbol命令编辑所选符号。,图 3.23 模12同步计数器m12.gdf,9. 关闭文件 如果要关闭文件, 选择File菜单中的Close命令, 或用鼠标左键单击图形编辑器右上角的关闭按钮来关闭图形编辑器窗口。,图 3.24 同步脉冲分配器PD.gdf,3.2.3.2 文本设计输入方法 MAX+PLUS支持AHDL、 VHDL和Verilog HDL等硬件描述语言。 AHDL是Altera Hardware Description Language的缩写, 它是一种高级硬件行为描述语言, 该语言可以使用布尔方程、 算术关系运算表达式、 真值表、 条件语句等方式进行描述, 适合于大型的、 复杂的状态机设计。,VHDL和Verilog HDL是符合IEEE标准的高级硬件行为描述语言, 也都适合于大型的、 复杂的设计。 这些语言都是用文本来进行设计, 它们的输入方式既有共同之处, 又各有特点, 设计人员可根据实际情况选择使用。 例如, 利用AHDL语言进行文本设计7段数码管的方法如下:,(1) 在File 菜单中选择Project Name项, 键入设计项目名称,如led7segm, 然后点击OK按钮。 (2) 在File 菜单中选择New, 然后选择Text Editor File, 点击OK按钮后打开一个无标题的Text Editor窗口。 若有必要, 可点击Maximize按钮, 使文本编辑器窗口变为最大。,(3) 在File 菜单中选择Save As, 然后在File Name框内键入7segm.tdf, 点击OK按钮, 这时文本编辑就变成了以7segm.tdf为文件名的编辑窗, 在该窗口中就可以输入AHDL语言程序了。,(4) AHDL语言的输入格式如图3.25所示。 在AHDL文件的开头是一个以Subdesign开头的说明输入和输出的说明区, 紧接着是文件名7segm, 特别要注意的是必须保证这里的文件名与(3)中的文件名一致, 接下来的括号中是输入或输出引脚说明。 四个二进制输入是i0, i1, i2, i3; 7段码的输出是a, b, c, d, e, f, g, 这两行后面的INPUT、 OUTPUT表示数据流向, 信号和数据流向用冒号隔开, 信号间用逗号分开, 每行用分号结束。,接下来的是以Begin开头的功能描述, 内容可以是布尔代数、 条件语句或真值表等, 此例选择真值表输入。 用字符串Table为先导, 第一行为输入信号对应的七段码的真值表说明, 从第二行开始是真值表的值。 若7段码为共阳极, 则低电平驱动数码管; 若为共阴极, 则高电平驱动数码管。 本例选择共阴极。 用“End Table;”结束真值表输入, 最后用“End;”结束AHDL语言程序。,图 3.25 7段LED的译码器7segm.tdf,(5) 保存并检查语法错误, 在File 菜单中选择 Save & Check命令项, 直到无错误和警告信息, 并切换回文本编辑窗口。 (6) 创建一个默认的逻辑符号。 在 File菜单中选择 Create Default Symbol 项, 并点击OK按钮, 就产生了7segm.sym符号文件, 供将来在顶层图形文件中调用。 (7) 选择File菜单中的Close命令, 关闭7segm.tdf。 一个用AHDL语言编写的设计文件就完成输入了。,3.2.3.3 创建顶层设计文件 MAX+PLUS支持层次化设计输入方法, 其主要思想是: (1) 当前设计项目文件为顶层设计文件。 (2) 顶层设计文件中调用的符号所代表的文件为底层设计文件。 (3) 顶层设计文件可通过打包(即在File菜单中选择 Create Default Symbol 项)的方法降为底层设计文件, 供其它顶层设计文件调用。,(4) 在同一设计项目中, 允许顶层及底层设计单向调用底层设计符号, 不允许顶层文件与符号文件之间及符号文件与符号文件之间的直接相互调用或间接相互调用, 也不允许顶层文件或任一符号文件自身递归调用。 (5) 在同一设计项目中, 顶层设计文件名及各底层设计符号所对应的设计文件名必须是唯一的。 例如, 不允许同时存在7segm.gdf和7segm.tdf两个设计文件。,(6) 在同一设计项目中的各个设计文件都可以重新编辑、 修改、 保存、 打包。 在重新打包之后, 应在调用该符号文件的上一层设计文件中更新该符号并保存。 (7) 硬件描述语言设计文件通过调用包含文件的方法实现层次化设计输入, 此时应通过建立默认符号的方法形成顶层文件。 顶层设计文件就是把一个设计的各个模块放在一起, 形成一个便于阅读的图形形式。 如图3.26所示, 该电路的模块都是采用前面所创造的符号, 每个模块都包含着各自的实现电路。双击各个模块就显示各自的实现电路。,图 3.26 顶层设计文件,3.2.3.4 层次显示 层次显示方式就是以一个层次树的形式显示整个项目和电路的设计文件。 打开层次显示方法1: 从MAX+PLUS菜单中选择Hierarchy Display项 方法1: 工具10。 一个项目的层次就显示出来了。 ( 注意:层次中的每个文件都可以通过双击文件名打开, 并带到前台来显示。) 图3.27为图3.26顶层设计文件的层次显示。,图 3.27 层次显示,上面介绍的几种设计输入方法各有优缺点, 适用于不同的场合, 设计人员可根据需要灵活使用, 使设计达到最佳效果。 另外, 有些命令除了菜单项外还有快捷键方式, 使用快捷键可提高速度, 在实际操作中可慢慢熟练掌握。,3.2.3.5 编辑用户库 MAX+PLUS允许设计人员对用户库进行编辑。方法: 在Options菜单中选择User Libraries., 这时就会出现用户库编辑框。 想要加入一个新的用户库, 可以在Directory name输入框中直接键入用户库所在的路径和名称, 然后点击Add按钮, 或者通过Directories和Drives对话框确定所要加入的用户库。 如果想要改变用户库在列表中的先后次序, 可以通过点击Up或Down按钮来完成。 Delete按钮用于删除已选中的库。 点击OK按钮即完成用户库的编辑。,3.2.4 设计项目的编译 使用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)。 下面是使用MAX+PLUS编译器编译的过程。,3.2.4.1 编译前准备 1. 打开编译器窗口 (1) 在 MAX+PLUS菜单内选择Compiler 项或工具12, 则出现编译器窗口, 如图3.28所示。 (2) 选择 Start按钮即可开始编译, MAX+PLUS编译器将检查项目是否有错, 并对项目进行逻辑综合, 然后配置到一个 Altera 器件中, 同时将产生报告文件、 编程文件和用于时间仿真用的输出文件。 (3) 但是在开始编译前, 还必须设定一些其它的选项 。,图3.28 编译窗口,2. 选择一个器件 首先, 设计人员需要为项目指定一个器件系列, 然后设计人员可以自己选择某个具体的器件, 也可以让编译器在该器件系列内自动选择最适合设计人员项目的器件。 确定器件系列的步骤如下: (1) 在Assign菜单内选择Device项, 将出现Device对话框, 如图 3.29 所示。 (2) 在Device Family框中选择一个器件系列。 (3) 在Devices框中选择某一器件或选择AUTO, 让MAX+PLUS 为你选择一个器件。 (4) 点击OK按钮。,图 3.29 选择器件,3. 打开设计规则检查工具 编译时, 可选的设计规则检查(Design Doctor)工具将检查项目中所有设计文件, 以发现在器件编程时可能存在的可靠性不好的逻辑。 打开Design Doctor并为其指定一系列设计规则的步骤如下: (1) 从Processing菜单中选择Design Doctor项, 在菜单中该选项的边上就出现一个确认标记, 并且Design Doctor的图标将显示在Complier窗口的Logic Synthesizer模块下方。,(2) 从Processing菜单中选择Design Doctor Setting项, 如图3.30所示。 (3) 对于MAX7000系列, 选择EPLD Rules(EPLD规则), 然后点击OK按钮。 (4) 若不再需要设计规则检查, 就再次从Processing菜单中选择Design Doctor项, 即关闭设计规则检查工具。,图 3.30 设计规则检查设置,4. 打开保密位 MAX+PLUS允许设计人员为项目中的所有器件指定默认的保密位设置, 保密位能防止一个器件被探测(being interrogated)或被无意地重新编程。 (1) 在Assign菜单中选择Global Project Device Options菜单, 出现如图3.31所示对话框。 (2) 如有必要, 选中Security Bit(保密位), 然后点击OK按钮。,图 3.31 保密位设置,5. 管脚分配 (适用于:设计人员自己选择的芯片) Altera 推荐让编译器自动为设计人员的项目进行管脚分配, 但如果设计人员需要自己分配管脚时, 请按以下步骤进行: (1) 首先确定设计人员已经选择了一种器件。 (2) 在 Assign Menu菜单中选择 Pin/Location/Chip项, 出现如图3.32所示对话框。,图 3.32 管脚分配,(3) 在 Node Name 框内输入管脚的名字。 (4) 在 Chip Resource 对话框内选择管脚并输入管脚的序列数。 (5) 点击Add按钮。 (6) 设计人员分配的管脚将出现在左下方框内。 (7) 点击 OK按钮。,6. 选择一种全局逻辑综合方式 默认的逻辑综合方式是常规(NORMAL), 该方式的逻辑综合优化目标是让整个设计占用最少的逻辑单元。 选择全局逻辑综合方式的步骤如下: (1) 在 Assign Menu 菜单内选择Global Project Logic Synthesis项, 将出现如图3.33所示的Global Project Logic Synthesis 对话框。,图 3.33 选择全局逻辑综合方式,(2) 在 Global Project Synthesis Style 下拉列表中选择设计人员需要的方式。 缺省(Default)的逻辑综合方式是NORMAL。 综合方式FAST 可以改善项目性能, 但通常使设计人员的项目配置变得比较困难。 综合方式WYSIWYG(所见即所得)的逻辑综合量最小。 (3) 可以在010之间移动Optimize(优化)栏中的滑块, 移到0时, 最优先考虑占用器件的面积; 移到10时, 系统的运行速度得到最优先考虑。,(4) 对 MAX 器件进行多级综合。 对于 MAX (乘积项)器件, 设计人员可以选择多级综合, 充分利用所有可使用的逻辑选项。 这种逻辑综合方式用于处理含有特别复杂的逻辑项目, 而且配置时不需要用户干涉。 对于 FLEX 器件, 这个选项自动有效, 如图3.34所示。,图 3.34 多级综合方式,7. FLEX 器件的进位/级联链 进位链提供逻辑单元之间非常快的向前进位功能。 利用级联链可以实现扇入很多的逻辑函数。 ( 注意: 如选择FAST 综合方式, 则进位/级联链选项自动有效。) 按如下步骤可人工选择该选项是否有效:,图 3.35 FLEX器件的进位/级联链,(1) 在 Global Project Logic Synthesis 对话框内选择 Define Synthesis Style 项, 将出现如图3.35所示Define Synthesis Style 窗口。 (2) 如需使用进位链功能, 则从Carry Chain下拉菜单中选择 Auto。 (3) 如需使用级联链功能, 则从Cascade Chain下拉菜单中选择Auto。,8. 设置定时要求 设计人员可以对整个项目设定全局定时要求, 如传播延时、 时钟到输出的延时、 建立时间和时钟频率。 (注意:对于FLEX10K、 FLEX8000和FLEX6000系列器件, 定时要求的设置将会影响项目的编译。) 用户可以按如下步骤设置定时要求: (1) 在 Assign Menu菜单内选择 Global Project Timing Requirements项, 将出现如图3.36所示Global Project Timing Requirements 对话框。 (2) 在相应的对话框内输入设计人员对项目的定时要求, 然后点击 OK 按钮。,图 3.36 设置定时要求,9. 打开功能仿真器与定时模拟器网表文件提取器 MAX+PLUS支持编译器功能仿真(前仿真)和模拟仿真(后仿真)。 若要进行功能仿真, 则须选择Processing菜单中的Functional SNF Extractor命令, 打开功能仿真器网表文件提取器; 若要进行定时模拟仿真, 则须选中Processing菜单中的Timing SNF Extractor命令,打开定时模拟器网表文件提取器, 如图3.37所示。,图 3.37 功能仿真器与定时模拟器网表文件提取器,(注意:MAX+PLUS编译器能创建一个仿真/模拟器网表文件(.snf), 该文件包含了许多逻辑信息和时间信息, 并被用作MAX+PLUS的模拟器(Simulator)和定时分析器(Timing Analyzer)的输入。 定时模拟器网表文件是一个二进制文件, 它包含了模拟、 延时预估和定时分析所需要的逻辑与定时信息。),10. 指定在报告文件中需要产生的部分 MAX+PLUS编译器适配(Fitter)模块产生报告文件(.rpt), 它显示出所编译的项目使用器件资源情况。 用户可以为编译器指定报告文件中应当包含的信息, 操作步骤如下: (1) 在Processing菜单中选择Report File Settings项, 将出现Report File Settings对话框, 如图3.38所示。 (2) 默认情况下, 报告文件中所有部分都被打开。 如果某些部分还没有打开, 就选中ALL项, 然后点击OK按钮。,图 3.38,3.2.4.2 运行编译器 在 Processing 菜单下, 还有一些会对编译产生一定影响的选项, 如图3.39所示。 运行编译器的过程如下: (1) 在编译器(Compiler)窗口中选择Start开始编译。 在编译器编译设计项目期间, 所有的信息、 错误和警告将在自动打开的信息处理窗口中显示出来。 如果有错误发生, 选中该错误信息,,图 3.39 设置选项对编译的影响,然后按下locate按钮, 就可找到该错误在设计文件中所处的位置, 通过点击信息处理器窗口中的Help on Message按钮, 显示该信息产生的原因和解决该问题应做的工作。 当编译器的Partitioner(划分)和Fitter(适配)模块处理项目时, Stop按钮将会变成Stop/Show Status按钮。,(2) 此时, 若选择编译器窗口中的Stop/Show Status按钮, Partitioner/ Fitter Status对话框就会显示出来。 该对话框中列出设计项目中的所有芯片以及当前对它们进行适配的状态, 如图3.40所示。,图 3.40 划分和适配状态,(3) 在Partitioner/ Fitter Status对话框中选择Continue Compilation按钮继续进行编译。 编译是在后台进行的, 对于小项目编译时间很短, 但是, 如果对一个比较大或者复杂的项目进行编译, 所需时间就较长, 用户可以在开始编译后转到别的应用程序继续工作。 编译结束后, 那些由编译器产生的代表输出文件的图标将会出现在各模块框的下面, 用户可以通过双击适当的图标来打开这些输出文件。,(4) 阅读报告文件。 报告文件一般包含两种类型的信息: 项目信息(如器件列表、 项目编译信息、 文件层次结构信息)和器件信息(如资源使用、 布线资源、 逻辑单元互连等)。 用户可直接从编译器窗口中打开当前编译所产生的报告文件。 打开报告文件的方法是在Compiler窗口中的报告文件图标上双击鼠标左键, 报告文件就显示在文本编辑器窗口中。 阅读完报告文件后, 关闭文本编辑器并回到Compiler窗口中, 然后关闭Compiler窗口。,3.2.4.3 在底层平面图编辑器中观察适配结果 (适用于:设计人员自己选择的芯片,且自己分配管脚) 可以在底层平面图编辑器(Floorplan Editor)中观察编译器的划分和适配结果, 并对项目的器件资源进行编辑和修改。 1. 打开底层平面图编辑器窗口 打开底层平面图编辑器窗口的方法是在MAX+PLUS菜单中选择Floorplan Editor项, 底层平面图编辑器被打开并显示出当前设计项目所选定的器件, 如图3.41所示。,图 3.41 底层平面图编辑器,2. 选择视图显示方式 底层平面图编辑器提供两种显示方式, 即器件视图和逻辑阵列块(LAB)视图。 器件视图显示器件封装的所有引脚以及它们的功能。 LAB视图显示器件内部所有的逻辑阵列块结构, 对于某些器件封装LAB视图还显示出引脚的位置。 通过选择菜单命令Layout/View Device来选择器件视图, 通过选择菜单命令Layout/View LAB来选择逻辑阵列块视图。 通过双击视图区的方法在器件视图和逻辑阵列块视图之间切换。,3. 显示最后一次编译所生成的底层平面图 在Layout菜单下选择Last Compilation Floorplan项, 底层平面图编辑器将显示由最后一次编译所生成的不可编辑(只读)视图, 该视图被存储在适配文件中。 任何不合法的分配都将被高亮度显示在未分配的节点和引脚列表中。,4. 编辑适配结果 在底层平面图编辑器中编辑适配结果的方法称为后配置。 该方法是在底层平面图编辑器中选择菜单Assign中的Back Annotate(回注编译结果, 即将上一次产生的器件及资源情况拷贝到原始的设计中), 然后可对回注结果进行编辑、 修改; 再通过选择Layout菜单中的Current Assignments Floorplan项, 即允许设计人员在底层平面图编辑器中编辑修改当前的分配(存放在分配与配置文件(.acf)中)。,底层平面图编辑器提供项目中未被分配的节点和引脚名字列表, 每个名字边上都带有一个把柄, 将这一把柄用鼠标拖到器件视图或逻辑阵列块视图中的单个引脚、 逻辑单元或I/O单元上, 也可以将一个已分配的节点或引脚拖回到未分配节点和引脚列表中, 或拖到器件的不同位置上。,3.2.4.4 引脚锁定 (适用于:设计人员自己选择的芯片,且自己分配管脚,在编辑适配结果以后) 在前面的图形编辑窗口中仅仅对输入/输出引脚作了名称的定义, 但没有对输入/输出引脚规定在器件中的具体引脚号码。 规定引脚号码称为引脚锁定, 其操作方法如下: (1) 在底层平面图编辑器中(两种视图的任何一种)用鼠标的左键选中输入或输出引脚符号, 在Assign下拉菜单中选择Pin/Location/Chip项, 出现Pin/Location/Chip对话框;或者用鼠标的右键选中输入或输出引脚符号, 出现下拉菜单, 在Assign中选择Pin/Location/Chip项, 这样也会出现Pin/Location/Chip对话框, 如图3.42所示。,图 3.42 引脚锁定,(2) 在Chip Resource窗口中选中Pin, 键入要定位的引脚号码, 然后在Pin type中选择输入或输出。 如果输入的号码不是I/O引脚, 返回将会出现错误信息。 (3) 如有必要, 可选用Assign Device项重新规定器件, 然后再次执行Save & Compile命令, 完成配置过程。,3.2.5 模拟仿真和定时分析 设计输入和编译仅仅是整个设计过程的一部分, 成功的编译只能保证为项目创建了一个编程文件, 并不能保证该项目将完全按照所期望的那样工作。 仿真的目的就是为了对所设计项目的正确与否进行验证, 在项目编程到器件之前进行全面检测, 以确保所设计的功能在各种可能的条件下都是正确的。 仿真是整个设计过程中很重要的一环, 除非是设计人员特别熟悉的小设计, 可以跳过这一过程, 对于新的、 复杂的大设计都必须进行仿真。,仿真为设计人员提供最快最容易的项目验证方法, 既省时又省力, 否则器件编程完后, 在实际电路工作中出现问题, 然后再对整个设计进行修改, 那就比较麻烦了。 许多初学者误以为学习仿真是一个很慢很难的过程而不愿意去学, 其实, 学习用MAX+PLUS进行仿真与学习设计输入和编译一样容易。,仿真包括功能仿真和模拟仿真。 功能仿真又称前仿真, 是在不考虑器件延时的理想情况下仿真设计项目的一种验证方法。 通过功能仿真可验证一个项目的逻辑功能是否正确。 模拟仿真(时序仿真)又称后仿真, 是在考虑设计项目的具体适配器件的各种延时情况下仿真设计项目的一种项目验证方法。 时序仿真不仅可测试逻辑功能, 还可测试目标器件在最差情况下的时间关系。,在模拟仿真过程中, 需要给MAX+PLUS仿真器提供输入向量, 仿真器将产生与这些输入激励信号相对应的输入信号。 仿真结果将与实际的可编程逻辑器件在同一条件下的时序关系完全相同。,3.2.5 模拟仿真和定时分析 1. 创建一个仿真器通道文件 (1) 打开波形编辑器窗口, 从File菜单中选择New, 在对话框中选择Waveform Editor File,并从下拉列表中选择.scf扩展名, 然后点击OK按钮, 即可创建一个新的无标题文件, 如图3.43所示。 (2) 从File菜单中选择End Time, 键入仿真的时长值如1 s, 然后点击OK按钮, 则设置了仿真文件的结束时间, 如图3.44所示。,图 3.43 波形编辑器窗口,图 3.44 设置结束时间,(3) 从Options菜单中选择Grid Size , 键入时间轴网格大小值如20 ns, 然后点击OK按钮, 则设定了时间轴网格大小, 通常用网格大小来表示信号状态的基本维持时间, 如图3.45所示。 如有必要, 从Options菜单中选择Show Grid, 竖直网线就会以20 ns的间隔显示在波形编辑器窗口中。,图 3.45 设置时间轴网格,(4) 从Node菜单中选择Enter Nodes from SNF, 或在窗口内的空白区单击鼠标右键, 则出现Enter Nodes from SNF对话框, 如图3.46所示(前提要求是已对设计项目进行了输入和编译)。,图 3.46 节点输入对话框,(5) 如仅选择Type中的Inputs和Outputs项, 点击List按钮, 则在Available Nodes & Groups栏内列出所有的Inputs和Outputs节点。 (6) 按住Ctrl键, 点击Available Nodes & Groups栏中所需要观察的节点, 或者按住鼠标左键, 在节点上拖动可连续选择节点, 然后选择右箭头, 则将已选中的节点拷贝到Selected Nodes & Groups栏。,(7) 点击OK按钮, 所选的节点刷新波形编辑器。 在这里, 所有未编辑的输入节点波形都默认为低逻辑电平, 而所有输出和隐含节点波形都默认为未定义(X)逻辑电平, 如图3.47所示。 (8) 对波形编辑器中的节点可以进行添加和重新排列顺序, 用鼠标点击后, 就可拖到不同的位置, 也可以按Delete键将节点删除。,图 3.47 编辑仿真器通道文件节点波形,(9) 编辑输入节点波形。 通过编辑输入节点的激励波形为仿真器提供输入向量。 在对某一项目进行仿真时, 根据项目设计输入的原理, 仿真器对输入节点的逻辑电平进行计算, 会得出隐含节点和输出节点的逻辑电平。 因此, 根据项目设计的要求, 设计人员可对每一个输入节点的激励波形自己进行编辑。 在图3.46中, 左边的一些工具按钮就是编辑波形的, 首先用鼠标选中要编辑的输入节点名(全选该节点的波形)或节点中的一段波形, 然后根据需要点击左边的高、 低电平或时钟工具按钮, 可得到任意的数字信号, 完成激励波形的输入。,(10) 保存文件。 选择FileSave As, 在File Name框中自动出现默认的当前项目名, 扩展名为.scf, 然后点击OK按钮来保存文件, 如图3.48所示。,图 3.48 仿真通道文件,. 运行仿真器 1) 打开仿真器窗口 在MAX+PLUS菜单中选择Simulator, 即打开仿真器, 并自动装载当前项目的仿真器网表文件和上面刚创建的与当前项目同名的仿真器通道文件(.scf), 如图3.49所示。,图 3.49 仿真器窗口,2) 设置仿真时间 在Start Time对话框中输入仿真器起始时间, 在End Time对话框中输入仿真器终止时间, 二者都应处于.scf文件所设置的时间范围内, 如按前面的设置应小于等于1 s, 并且终止时间应大于起始时间。,3) 进行仿真 按下Start按钮, 即开始仿真当前项目。 在仿真过程中进度指示条将朝着100%的方向移动, 仿真过程在后台进行, 仿真输出逻辑电平将记录在.scf文件中。 如果.scf文件所在的波形编辑器窗口是打开的, 则可以看到仿真输出波形的更新过程, 但这会降低仿真速度。,3. 分析仿真结果 在仿真器窗口中选择Open SCF, 即打开当前项目的.scf文件, 使用波形编辑器窗口周围的图形缩、 放、 前景按钮及滚动条可详细观察波形。 如果输出结果不正确, 就要对设计进行修改, 直到满足设计要求为止。 有经验的设计人员都要用多组输入来多次仿真他们的设计, 以得到期望的设计结果。 这就要求重新编辑修改输入激励信号波形并重复仿真该设计项目。,4. 定时分析 1) 启动定时分析工具 编译完成后,设计人员可以利用定时分析器来分析设计项目的性能。 定时分析器提供了三种分析模式, 如表3.1所示。,表3.1 定时分析器的三种分析模式,2) 传播延迟分析 如果在打开定时分析器窗口时Delay Matrix分析模式没有自动打开的话, 则在 Analysis菜单中选择Delay Matrix项, 然后点击 Start按钮, 则定时分析器立即开始分析设计人员的当前项目并计算项目中每对连接的源节点(输入引脚)和目标节点(输出引脚)之间的最大和最小传播延迟, 如图3.50所示。,图 3.50 传播延迟分析,3) 时序逻辑电路性能分析 在 Analy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论