第6章使用Design Direct软件开发MACH器件

Download Report

Transcript 第6章使用Design Direct软件开发MACH器件

第6章 使用Design Direct软件开发MACH器件
第6章 使用Design Direct软件开发
MACH器件
6.1 Design Direct软件简介
6.2 项目管理
6.3 ABEL-HDL设计与输入
6.4 原理图输入与EDIF网表导入
6.5 编译
6.6 方程式仿真
第6章 使用Design Direct软件开发MACH器件
6.1 DesignDirect软件简介
Vantis公司的PLD器件开发工具门类齐全, 既有独立
开发的, 又有与第三方合作开发的, 既有工作于DOS环
境 下 的 PALASM 、 MACHXL 等 软 件 , 又 有 工 作 于
Windows 环 境 下 的 MicroSim / AMD 、 Synario 和
DesignDirect等软件, 其共同特点是易学易用, 灵活方便。
此外, 许多EDA厂商如Cadence、 Data I/O、 Mentor、
MicroSim、 OrCAD、 Synopsys和Viewlogic等所出品的
设计工具也都支持MACH器件, 从而能够满足不同用户
的各种需要。
第6章 使用Design Direct软件开发MACH器件
其中, DesignDirect软件的功能较强, 其界面和使用方法
等 与 Synario 以 及 Lattice/Vantis 新 近 推 出 的 ISP
DesignExpert软件都很相似, 因而最具代表性。 本章将
围绕该软件的使用来介绍MACH器件开发的全过程。
第6章 使用Design Direct软件开发MACH器件
6.1.1 概述
DesignDirect 软 件 系 统 ( 以 下 简 称 DD 软 件 ), 是
Lattice/Vantis推出的适用于该公司全系列MACH和PAL
器件开发的可编程逻辑设计整体解决方案。 该软件共
有三种版本, 分别是基本版(Base)、 高级版(Vista)
和完全版(Summit)。 其中, Base版包含设计所需的
主要功能且免费提供, 用户可直接访问Vantis公司的网
站(www.vantis.com)下载该软件或者申请CD-ROM光
盘, 也可在当地的代理商(如中泰康公司)处索取。
Vista版和Summit版则需付费购买。
第6章 使用Design Direct软件开发MACH器件
本章将重点介绍Base版的DD软件, 它主要由下列功
能模块构成:
① 项目管理器(Project Manager)。 作为DD软件
的主要界面, 是对项目(即设计)所含的各个成份及其
处理过程进行管理以及访问各种设计工具的集成环境。
② 层次化导引器(Hierarchy Navigator)。 引导用
户很方便地穿梭于整个设计之中, 浏览、 分析和修改一
个多层设计的所有成份。
③ 文本编辑器(Text Editor)。 用于创建和编辑文本
文件, 如ABEL―HDL设计文件、 测试向量文件等。
第6章 使用Design Direct软件开发MACH器件
④ 原理图编辑器(Schematic Editor)。 可用于创建
和修改原理图文件。
⑤ 符号编辑器(Symbol Editor)。 可用于创建器件
符号, 或者生成代表某个原理图模块的图形符号, 还可
用于生成一些修饰性的符号, 如标题框等。
⑥ 库管理器(Library Manager)。 对在原理图编辑
器中使用的符号库进行管理、 浏览和维护, 包括符号文
件的增加、 删除、 拷贝或改名等操作。
第6章 使用Design Direct软件开发MACH器件
⑦ 方程式仿真器(Equation Simulator)。 使用用户
提供的测试向量对所设计的逻辑或方程式进行仿真, 这
种仿真不考虑可编程器件的实际特性如延时等, 因而又
称为功能仿真。
⑧ 适配器(Fitter)。 可根据逻辑设计和用户所选的
可编程器件进行布局布线。 该过程可以全自动地执行,
也可由用户设置有关选项来加以干预。
⑨ 波形浏览器(Waveform Viewer)。 主要用于查看
仿真的结果。 它与层次化导引器交互作用, 用户点击原
理图中的任一节点便会自动地显示出该节点的波形。
第6章 使用Design Direct软件开发MACH器件
10
性能分析器(Performance Analyst)。 可在对设
计进行优化和适配之后分析其速度性能。
11
ISP编程器(VantisPRO)。 可对ISP型的MACH
器件进行JTAG链编程和检验。
第6章 使用Design Direct软件开发MACH器件
Vista 版 在 此 基 础 上 引 入 了 用 于 硬 件 描 述 语 言
VHDL和Verilog―HDL的综合引擎LeonardoSpectrum和
RTL(寄存器传输级)仿真器ModelSim, 将当今系统设
计方面的三大热点——高层次的Verilog和VHDL―HDL
综合、 RTL仿真和在系统可编程逻辑器件紧密地结合
为一体。 除具备上述Base版的所有功能外, Vista版还支
持VHDL和Verilog―HDL描述文件的输入、 综合、 功
能仿真、 时序仿真等, 支持用户使用硬件描述语言开发
MACH器件。
第6章 使用Design Direct软件开发MACH器件
Summit版有分别用于微机和工作站的两种版本。
微机版在Vista版的基础上增加了对浮动节点的支持; 工
作站版以Solaris为系统平台, 支持ABEL―HDL输入、
功能仿真、 器件适配、 时序仿真和浮动节点。 简单地
说, DD软件系统具有以下主要特点:
① 该软件本身自成体系, 可支持从设计输入到器
件编程的全部设计过程, 为用户提供功能强大而又使用
便利的集成设计环境。
第6章 使用Design Direct软件开发MACH器件
② 该软件支持层次化设计方法, 允许原理图、
ABEL―HDL和VHDL等多种描述方式的混合输入, 项
目管理器和层次化导引器、 符号编辑器等紧密结合, 使
得层次化设计直观而且方便,因而能够满足高密度和高
性能数字系统设计的需要。
③ 该软件高效而灵活。 适配器能够自动而快速地
完成错误检查和分析、 设计优化、 逻辑综合和分配、
自动布局和布线等工作, 达到最佳的速度性能和/或器
件资源利用率而无需人工干预。 对于有特殊需要的用
户, 则可借助约束编辑器等设置有关的选项和选择适当
的优化策略等, 掌握CPLD实现过程的各个方面, 包括引
脚分配和保留、 摆速和功耗等级, 等等。
第6章 使用Design Direct软件开发MACH器件
④ 该软件具有完善的仿真和纠错手段, 既可进行
功能仿真又可进行时序仿真, 波形浏览器可以清楚而直
观地显示仿真的结果; 错误报告、 自动错误定位等和
“上下文关联”式在线帮助相配合, 使用户可以很快找
到错误发生的位置并加以排除。
⑤ 该软件全面支持标准化硬件描述语言VHDL和
Verilog―HDL的输入、 综合、 仿真和适配, 经过优化
的编译器使用户既可使用硬件描述语言来提高设计的
效率又不必牺牲设计性能和降低器件的资源利用率, 仿
真器则有助于及早发现错误和缩短设计过程。
第6章 使用Design Direct软件开发MACH器件
⑥ 该软件是一个开放的设计环境。 DD软件支持
多种工业接口标准, 包括EDIF、 SDF等, 可作为独立的
硅编译工具, 通过标准接口与业界最流行的第三方设计
输入、 综合和仿真工具无缝结合, 构成用户“定制”的
设计环境。
由于具有上述突出的优点, 使用DD软件开发基于
Vantis可编程逻辑器件的硬件电路, 既能够充分发挥器
件的优越性能, 又能够显著加快设计过程, 缩短产品的
上市时间。
第6章 使用Design Direct软件开发MACH器件
6.1.2 安装
安装和运行DD软件所需的最低系统配置为:
① 奔腾(Pentium)级CPU。
② 操作系统为Windows 95/98或Windows NT 4.0, 中、 英
文版均可。
③ 32 M内存, 300 M以上的硬盘空间。
④ CD―ROM驱动器、 鼠标器等。
第6章 使用Design Direct软件开发MACH器件
在中文版Windows 98环境下, 其安装过程大致如下:
① 关闭所有的Windows应用程序, 将DD软件光盘
插入CD―ROM驱动器。
② 首先安装DD软件。 在桌面上选择“开始>运行
(R)”, 在“打开”一栏中键入光驱的盘符(如e: )
和安装程序的路径“\pc\ddirect\setup.exe”后, 点击“确
定”或回车便开始安装。 此后的安装过程与一般的
Windows应用程序相似, 只需选择所需的版本(用户级
别)并按照屏幕上的提示操作即可。
第6章 使用Design Direct软件开发MACH器件
③ 申请授权码。 安装后的DD软件还需经过授权
方可使用。 此时, 需先打开并阅读DD软件包中的
License.dat文件(命令为: 开始 > 程序>
DesignDirect―CPLD > DesignDirect―CPLD
Licensing), 找到“User Information”一段中的“HOST
ID”(主机编号)并记录下来。 然后, 访问Vantis的网
站(www.vantis.com), 选择授权级别并填写有关的申
请表格(主要包括用户信息、 HOST ID 和Email地址等)
后, Vantis公司便会将授权信息以Email形式发送给用户。
第6章 使用Design Direct软件开发MACH器件
④ 输入授权码。 收到Vantis公司的Email后, 复制
其中处于“cut here”和“end cut”两行之间的一段文字
并粘贴到License.dat文件的结尾处即可。
⑤ 接着需安装在系统编程软件MACHPRO。 选择
“开始 > 运行(R)”, 再输入其安装程序的路径
“\pc\machpro\setup.exe”, 之后按提示操作即可。
⑥ 此后, 可安装74系列器件库。 选择“开始 > 运
行(R)”, 再输入其安装程序的路径
“\pc\macro\setup.exe”, 之后按提示操作即可。
第6章 使用Design Direct软件开发MACH器件
在上述安装完成之后, 选择“开始 > 程序 >
DesignDirect―CPLD”, 便可看到DD程序组所包含的各
程序项:
① DesignDirect―CPLD。 是DD集成设计环境的入
口, 选择该项即可启动项目管理器。
② DesignDirect―CPLD Licensing。 用于阅读和修
改授权文件。
③ Install Acrobat Reader 3.01。 选择该项将安装
PDF文件的阅读程序, 用于阅读DD光盘的Databook目录
下存放的数据手册和应用资料。
第6章 使用Design Direct软件开发MACH器件
④ VantisPRO。 选择该项可启动MACHPRO, 对
MACH器件等进行在系统编程和校验。
⑤ Release Notes。 选择该项, 可了解诸如新增功能、
安装方法、 存在的问题和解决方法等重要信息。
如果用户选择了Vista或Summit版安装, 则该程序组
中还包括另外两个用于支持硬件描述语言VHDL和
Verilog―HDL的程序项, 分别是综合引擎
“Leonardospectrum”和仿真模块“Modelsim”。
第6章 使用Design Direct软件开发MACH器件
6.1.3 设计流程
如图6.1所示, Base版DD软件的设计流程主要包括
以下步骤:
① 设计输入。 即输入和编辑ABEL―HDL设计文
件和原理图, 以及导入其它EDA工具产生的EDIF网表。
② 设计实现。 在对输入的三种源文件分别进行编
译或转换后, 将它们连接成一体, 再进行化简和优化, 最
后进行适配, 即求得能初步满足该设计要求的可编程器
件编程方案。
第6章 使用Design Direct软件开发MACH器件
设计输入
A BE L- HD L文件
原 理 图
E DI F网表
编译
编译
转换
连接
设计实现
优化
适配
设计检验
器件编程
功能仿真
时序仿真
I SP 编程
图 6.1 DD软件的基本工作流程
性能分析
第6章 使用Design Direct软件开发MACH器件
③ 设计检验。 包括功能仿真、 时序仿真和定时性
能分析, 其中, 功能仿真在编译和连接之后、 适配之前
进行, 用来考察设计方案是否具备所需的功能, 时序仿
真和定时性能分析则考察适配的结果是否满足性能上
的要求。
④ 器件编程。 将经过仿真的适配结果下载到可编
程器件中, 得到具有特定功能的硬件电路。
在整个设计过程中, 用户随时可以按F1键、 打开Help菜
单或者单击工具栏中的Help图标等, 来使用DD软件所
提供的“在线帮助”,
第6章 使用Design Direct软件开发MACH器件
从中获得包括高级特性、 设计技巧与提示、 命令格式
与参数、 错误类型与原因分析等重要信息。 该“在线
帮助”中还包含有完整的DD软件使用手册(对应Help
菜单中的User Guide项)和实用教程(Tutorials项), 用
户可边学边用, 很快便能掌握该软件的使用方法。
第6章 使用Design Direct软件开发MACH器件
6.2 项目管理
DD软件系统将一项设计称为一个项目(Project),
利用项目管理器对与设计有关的各种要素进行管理和
处理。 项目管理器是DD集成设计环境的入口和基本界
面, 也是用户访问有关设计工具的主要途径。 用户可以
通过项目管理器输入各种格式的设计描述文件、 测试
向量文件, 装配形成项目文件, 并按照项目管理器提示
的处理步骤, 对不同的设计成份进行不同的处理, 使设
计从最初的概念阶段逐步过渡到具有所需功能的实际
硬件电路。
第6章 使用Design Direct软件开发MACH器件
6.2.1 使用项目管理器
1. 启动项目管理器
在 Winows 98 桌 面 上 , 选 择 “ 开 始 > 程 序 >
DesignDirect―CPLD > DesignDirect-CPLD”, 便可启动
项目管理器。 当然, 也可以使用其它的启动方式, 例如
双击放在桌面上的DesignDirect―CPLD图标。
第6章 使用Design Direct软件开发MACH器件
2. 项目管理器界面
如图6.2所示, 项目管理器界面除包括通常的标题栏、
菜单栏和工具栏等之外, 还包括两个窗口: 源窗口和处
理窗口。 位于左侧的源窗口用来列出所有与设计有关
的待处理对象, 包括原理图、 ABEL―HDL文件、 测试
矢量、 目标器件等。 这些对象依照其逻辑和层次顺序
自上而下地排列, 每个源对象前面都带有一个图标, 用
来区分不同的对象类型。 表 6.1 列出了项目管理器所
能处理的主要对象类型, 可供参考。
第6章 使用Design Direct软件开发MACH器件
图 6.2 项目管理器界面
第6章 使用Design Direct软件开发MACH器件
表 6.1 主要的源对象及其用途
第6章 使用Design Direct软件开发MACH器件
在所列出的描述文件中, 只有一个是顶层模块, 其
类型可以是 ABEL―HDL模块、 原理图或EDIF 文件。
顶层模块对将被映射到器件的输入输出信号进行定义,
并引用低层次模块中的逻辑描述(称为例化)。 其它
模块也可包含更低层次的模块并引用其逻辑描述。 各
模块所处的层次和相互关系通过缩进格式来表现。
在任何时候, 源窗口中都有且只有一个源对象被选
中, 作为当前待处理的对象。 该对象显示区域的底色不
同于其它对象, 以示区别。
处理窗口位于项目管理器的右侧, 用来列出当前被
选定对象所对应的各种操作。典型的操作包括网表生
成、 编译、 逻辑化简、 逻辑分析、 适配等。
第6章 使用Design Direct软件开发MACH器件
DD软件的一大优点就是项目管理器对处理过程
的“上下文”敏感, 并能按你所要做的事情自动调整处
理项目。 首先, 处理流程会依据源窗口中被选定对象类
型的不同而自动调整。 例如, 如果你选择了一个原理图
文件(.sch), 在处理窗口中会出现网表生成、 编译、
逻辑化简等操作步骤, 但如果你选择一个ABEL测试向
量文件(.abv), 则只显示该文件所需的功能仿真处理。
其次, 对同一个源文件, 其对应的处理也会随着目标器
件的改变而改变。 例如, CPLD器件的设计过程显然不
同于SPLD器件。 当你更换目标器件时, 项目管理器会
自动地改变处理步骤等, 来适应新的目标器件。
第6章 使用Design Direct软件开发MACH器件
要查看当前项目的处理步骤, 可在源窗口中选择器
件图标, 在处理窗口中即会出现该项目对应的处理步骤。
同样, 要查看某一源对象的处理步骤, 只需选择该对象
即可。
此外, 项目管理器还自动将各设计步骤与其需要使
用的设计工具相关联。 例如, 对于ABEL―HDL源文件,
项目管理器会连接文本编辑器对其进行处理; 而对于原
理图文件, 则会提供原理图编辑器、 符号编辑器、 层
次化导引器和库管理器工具等以备使用。 更妙的是, 项
目管理器可替你选择有关参数, 即自动地设置适用于大
多数系统的缺省选项。
第6章 使用Design Direct软件开发MACH器件
3. 指定设计项目
在启动项目管理器之后, 可以创建新的设计项目:
① 在项目管理器的File菜单中, 选择New Project命
令项, 打开Create New Project(创建新项目)对话框,
如图 6.3 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.3 创建新的设计项目
第6章 使用Design Direct软件开发MACH器件
② 在该对话框中选择用于存放项目的文件夹。 建
议不要将多个项目放在同一个目录下,而应使用Create
Directory按钮为每个项目建立独立的文件夹。
③ 在Filename一栏中输入项目名。 其命名规则为
最长八个字符, 不允许有空格。 缺省的项目名为
Untitled.dpj。
④ 最后, 点击“保存”按钮。
第6章 使用Design Direct软件开发MACH器件
按照下列步骤, 则可以打开已有的设计项目:
① 在项目管理器的File菜单中, 选择Open Project命
令项, 打开Open Project(打开项目)对话框。
② 在该对话框中选择项目所在的文件夹, 选择要打
开的项目。
③ 点击“打开”按钮即可。
第6章 使用Design Direct软件开发MACH器件
4. 设计描述
要描述一项设计, 首先必须选定目标器件, 即用来
实现所设计逻辑的一种实际器件。 在用户未进行选择
之前, 项目管理器指定虚拟器件(Virtual Device)作为
目标器件。 所谓虚拟器件, 是一般性的与结构无关的器
件模型, 可用于验证设计的逻辑和功能, 但不能生成编
程所需的文件。 如果用户不了解器件或不能确定应选
择哪一种器件, 可先沿用该选择, 待功能仿真通过并且
知道实现该设计所需的逻辑规模后再选择实际的物理
器件。
第6章 使用Design Direct软件开发MACH器件
要选择特定的物理器件, 可在源文件窗口中双击目
标器件图标, 打开器件选择对话框, 如图6.4 所示。 在该
对话框中会列出所有可用的Vantis器件。 可先选择一个
器件系列, 查看该系列中的所有器件, 这些器件在左下角
的选择框中按规模从小到大排列。 从中选择一个器件
并为该器件选择选项, 而后点击OK按扭。 这时, 会弹出
一个对话框, 询问是否确实要选择新的目标器件(因为
这可能意味着放弃以前做过的处理)。 点击Yes按扭确
认, 新选定的目标器件便会出现在源窗口中。
第6章 使用Design Direct软件开发MACH器件
图 6.4 选择目标器件
第6章 使用Design Direct软件开发MACH器件
其次, 需指定构成项目的源文件。 可以导入已有的
源文件 , 创建新的源文件或者使用编辑器修改已有的源
文件。 导入一个现存的源文件, 可按以下步骤进行:
① 选择Source菜单中的Import命令, 打开导入文件
对话框, 如图 6.5 所示。
② 改变列表框显示的路径和文件类型, 找到你要导
入的源文件。
③ 选择要导入的文件后, 单击OK, DesignDirect便
会将所选的文件导入到项目中, 并显示在源窗口中。
第6章 使用Design Direct软件开发MACH器件
图 6.5 导入已有的源文件
第6章 使用Design Direct软件开发MACH器件
图 6.6 创建新的源文件
第6章 使用Design Direct软件开发MACH器件
创建一个新的源文件, 可按以下步骤进行:
① 选择Source菜单中的New命令, 打开新建源文件
对话框, 如图 6.6 所示。
② 在对话框中选择所要创建的文件类型, 点击OK。
③ 在编辑器中创建源文件, 具体的文件格式和操作
步骤等将在以后几节中介绍。 修改源文件时只要双击
项目中的任一源文件, 即可打开相应的编辑器来进行修
改。 修改完成后加以保存。
第6章 使用Design Direct软件开发MACH器件
除此之外, 有时还需要删去项目中已有的源文件。
这时, 切记不能使用Windows的Delete命令, 而必须使用
DD软件的Remove命令按以下步骤进行:
① 在源窗口中, 选择想要删去的源文件。
② 选择Source菜单中的Remove命令, DD软件便会
删去该源文件并将源窗口中该源文件的图标改为
“?”。
第6章 使用Design Direct软件开发MACH器件
5. 设计处理
如前所述, 项目及其包含的所有源文件均有特定处
理过程与之对应, 这些处理步骤显示在项目管理器的处
理窗口中。
若要对某个源文件进行处理, 需先在项目管理器的
源窗口中选择该源文件(单击即可)。 而后, 可以在处
理窗口中选择一个处理步骤, 再选择Process > Start, 或
者单击位于处理窗口下方的Start按钮; 直接双击处理窗
口中的对应处理步骤, 也可以达到同样的
效果。
第6章 使用Design Direct软件开发MACH器件
要对整个项目进行处理(如设计适配), 应选择目
标器件作为源对象。 方程式仿真应以测试向量文件作
为源对象。 具体的步骤将在后面陆续介绍。
第6章 使用Design Direct软件开发MACH器件
6. 保存项目
在保存项目之前, 可以先对项目内容进行整理。
选择File菜单中的Cleanup项, 可删除在项目中起过渡作
用的文件。 若选择File菜单中的Clean All项, 则可删除
过渡文件和报告文件。 而后, 选择File菜单中的Save项,
即可完成项目文件(扩展名为.dpj)的保存。
如果要将项目按新的名字或路径保存, 则可选择
File菜单中的Save As项。 项目管理器会要求你输入新
项目的名字, 正确输入后点击OK按钮即可。
在保存项目的同时, DD软件会自动通知原理图编
辑器和文本编辑器, 保存正在编辑的文件。
第6章 使用Design Direct软件开发MACH器件
7. 定制项目管理器环境
DD软件允许用户根据需要和喜好来设定项目管理
器的环境变量, 改变项目管理器和它所调用的应用程序
的有关设置, 甚至可以增加菜单来访问其它Windows程
序。 可通过下列方式之一定制用户自己的项目管理器
环境:
① 选择Options菜单中的Environment命令, 打开环
境选项对话框, 如图 6.7 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.7 定制项目管理器环境
第6章 使用Design Direct软件开发MACH器件
此后, 设置环境选项, 主要有:
窗口设置: Open Previous Project ——选择在
DesignDirect启动时是否自动打开上次运行所处理的项
目; Use File Associations——如果选择该项, 则将项目中
的文本文件与Windows应用程序而非项目管理器内含
的编辑器相连接。
系统设置: Fast Redraw——如果选择该项, 项目管理
器显示刷新速度将快于屏幕的刷新速度, 只有当你的屏
幕刷新速度非常慢时才需选择该项; Update on Editor
Save——选择该项后, 在保存正在编辑的文件时, 项目管
理器会自动刷新源文件窗口。
第6章 使用Design Direct软件开发MACH器件
强制处理: Automake——自动执行, 即在进行过一项
处理之后, 如果被处理的源对象没有改变, 则不再执行
该项处理; One Level ——允许强制执行最后一步处理;
Full——允许强制执行所有的处理步骤。
DOS 处理: Iconic——在一个由图标代表(最小化)
的DOS窗口下运行所有的DOS处理; Observe——在一个
可视的窗口下运行所有的DOS处理, 这对调试很有用;
Observe and Pause ——在一个可视的窗口下运行所有
DOS处理, 并在每一步处理后暂停以便用户查看程序的
输出。
第6章 使用Design Direct软件开发MACH器件
② 修改由项目管理器等程序使用的 .ini文件。
③ 逐个选择Option菜单中的其它命令项, 修改原理
图工具(如原理图编辑器、 层次化导引器和符号编辑
器)所使用的 .ini文件。
第6章 使用Design Direct软件开发MACH器件
6.2.2 使用层次化导引器
层次化导引器与原理图编辑器、 文本编辑器和符
号编辑器等配合使用, 使设计者可以很方便地浏览一个
层次化设计描述的全貌, 并对构成该层次化描述的每一
部分进行浏览、 创建、 修改和跟踪。 对整个设计及其
每一个层次, 层次化导引器都可检查信号连线的正确性
和一致性, 及早指出错误或避免错误的发生。 此外, 层
次化导引器还提供了一个分析和优化电路性能的集成
环境, 并且将各个描述文件整合为一体, 供仿真器等以
整个设计作为处理对象的设计工具使用, 从而全面支持
层次化设计。
第6章 使用Design Direct软件开发MACH器件
1. 引导原理图文件
① 在项目管理器源窗口中, 选择一个原理图文件
(.sch), 在处理窗口中便会出现层次化导引器图标。
② 在处理窗口中双击层次化导引器图标, 便可启动
层次化导引器并打开所选择的原理图文件, 可供浏览和
修改。 如图 6.8 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.8 层次化导引器窗口
第6章 使用Design Direct软件开发MACH器件
图 6.9 使用Sheets命令选择一页原理图
第6章 使用Design Direct软件开发MACH器件
2.“巡视”整个设计
利用层次化导引器File菜单中的Hierarchy Navigator
Sheets命令, 可以在当前所处的设计层次中任意移动。
此外, 还可以使用Sheets命令来跳到另一页原理图中, 而
不必考虑它的具体位置:
① 选择File>Sheet, 打开Sheet对话框, 如图 6.9 所示。
对话框中会列出当前所选定的层次中所有已定义的原
理图页面。
第6章 使用Design Direct软件开发MACH器件
② 要转到另外某一页原理图, 可双击列表框中对应
的页码, 或选择该页码后再单击Open按钮。
③ 要转到设计中包含的另一页原理图, 而不管它位
于哪一层, 可单击Go To Page按钮。 在弹出的对话框中,
输入需要转到的页面编号, 然后单击OK, 层次化导引器
便会显示所选的一页原理图。
第6章 使用Design Direct软件开发MACH器件
3. 改变所处的设计层次
① 选择View > Push/Pop, 光标会变为十字形状, 如
图 6.10 所示。
② 将鼠标移到一个原理图符号上并单击左键, 便可
进入该符号所处的下一级层次。 如果所单击的符号对
应一个原理图模块, 便会打开该原理图的第一页; 如果
对应的是ABEL-HDL模块, 则会打开文本编辑器并显示
该模块的ABEL―HDL描述。
③ 如果要向上移动一层, 可在原理图区域内, 单击
原理图模块的外围, 层次化导引器便会重现高一层的原
理图页面。
第6章 使用Design Direct软件开发MACH器件
图 6.10 使用Push和Pop命令改变所处的层次
第6章 使用Design Direct软件开发MACH器件
4. 查看统计结果
层次化导引器能够报告关于当前设计的一些统计
信息。
要得到这些统计信息, 可以选择File>Statistics来打
开和阅读统计报告。
除了上面介绍的这些以外, 层次化导引器还可用于
为原理图对象如符号、 引脚和节点等加上标记(选择
DRC > Mark), 对它们进行查询(选择 DRC > Query),
以及检查设计中的各个层次的“一致性”, 等等。 具体
细节将在后续的有关部分中详细介绍。
第6章 使用Design Direct软件开发MACH器件
6.3 ABEL―HDL设计与输入
ABEL―HDL是DD软件内含的一种硬件描述语言,
具有逻辑表达式、 状态图和真值表等多种描述方式并
支持层次化描述, 可以用来描述逻辑设计和编写测试向
量文件。 考虑到它并非标准的硬件描述语言而且本节
的篇幅有限, 因此, 下面仅对其结构及语法要点等做简
单的介绍, 再结合实例说明ABEL―HDL的基本描述方
法。 如果需要, 读者可以使用DD软件的在线帮助系统,
获得更详细的ABEL―HDL语言描述。
第6章 使用Design Direct软件开发MACH器件
6.3.1 ABEL―HDL描述的基本结构
在ABEL―HDL语言中, 将具有完整结构的一段程
序称为模块, 它可以是对整个电路的逻辑描述, 也可以
是对部分电路的逻辑描述。 ABEL―HDL源文件可以
由一个或多个模块组成, 各模块间相互独立。 由于每个
模块分别对应不同的子电路, 因此是并行操作的, 甚至
模块内的各条语句之间一般也是并行处理的。 这一点
与常规的程序设计语言大不相同, 请读者务必注意。
第6章 使用Design Direct软件开发MACH器件
一个模块主要包括以下五个部分:
① 首部。 可包含以下基本单元:
模块说明。 标志一个模块的开始, 必须有。 格式为:
Module <模块名>。
接口语句。 是可选项, 用于低层模块中, 说明其与上一
层模块的连接信号。
模块标题。 是可选项, 用来为模块加上标题或简单描
述。 格式为: Title ′〈字符串〉′。
第6章 使用Design Direct软件开发MACH器件
② 声明部分。 每个模块必须至少有一个说明部
分, 并且这些说明只在定义它们的模块中有效。 该部
分可以包括以下几部分, 其中信号说明最为常用: 关
键字说明。
接口和功能块说明。
信号说明。 包括引脚(Pin)和节点(Node)说
明, 可使用ISTYPE语句规定信号的属性。
常量说明。 定义符号常量, 其一般格式为: 标识符
= 常数或常量。
第6章 使用Design Direct软件开发MACH器件
宏说明。
库说明。
器件说明。 说明该模块所使用的器件。 格式为: <
器件标号>
device ′〈实际器件型号〉′。 每个模块中
至多只能做一次器件说明。
③ 逻辑描述部分。 可以使用方程式、 真值表、
状态图、 熔丝、 XOR因子等基本单元来描述设计。
除此之外, “.”扩展名(例如在说明部分中的属性)可
用于更精确地描述电路的行为, 使之能够用不同的器件
实现。
第6章 使用Design Direct软件开发MACH器件
④ 测试矢量部分。 由测试矢量(一组输入的激励
值和对应的期望输出值)、 可选的跟踪(Trace)语句
和测试脚本等组成。 具体的格式和编写方法将在后面
详细介绍。 值得注意的是, 该测试向量仅用于方程式仿
真或JEDEC 仿真, VHDL和Verilog―HDL仿真则需要有
专用的测试基准。
⑤ 结束说明。 固定为END, 标志一个模块的结束,
是不可缺少的。
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 1] 模块结构实例。
module detail 1 首部
title ′Onebit Synchronous Circuit with Inverted Qout′
首部
d1 device ′P16R8′;
"Input
Clk pin 1;
声明部分
Toggle pin 2; 声明部分
Ena pin 11;
"Output
Qout pin 19 istype ′reg
-D′;
第6章 使用Design Direct软件开发MACH器件
equations
!Qout.D = Qout.Q & Toggle;
Qout.CLK = Clk;
Qout.OE = !Ena;
逻辑描述
第6章 使用Design Direct软件开发MACH器件
test
-vectors([Clk, Ena, Toggle] -> [Qout])
[.c., 0 , 0 ] -> 0;
[.c., 0 , 1 ] -> 1;
[.c., 0 , 1 ] -> 0;
[.c., 0 , 1 ] -> 1;
测试向量
[.c., 0 , 1 ] -> 0; 测试向量
[.c., 1 , 1 ] -> .Z.;
[ 0 , 0 , 1 ] -> 1;
[.c., 1 , 1 ] -> .Z.;
[ 0 , 0 , 1 ] -> 0;
end 结束
结束
第6章 使用Design Direct软件开发MACH器件
模块的结构必须合乎以下规则:
① 一个模块必须包含唯一的首部。
② 源文件的其它部分可按任意顺序排列和重复, 但
声明部分必须紧跟着标题行或DECLARATIONS关键字。
③ 对符号的声明必须放在引用该符号之前。
④ 注释以双引号(")或双斜杠(//)开始, 可以放在任
何需要的地方。
例 6 ― 1 针对一个典型的模块实例, 标出了各个结
构成份, 请读者结合上面的介绍来阅读, 以便对模块的
结构有一个初步的认识。
第6章 使用Design Direct软件开发MACH器件
6.3.2 ABEL―HDL的语法要点
1. 一般性规定
① 除模块首部和结束语句(END)外, 每个完整的
语句行都应以分号“; ”结尾。
② 允许使用的ASCII字符, 包括所有的大小写字母、
数字和大多数普通键字符。
③ 关键字对大、 小写不敏感, 可以用大写、 小写
或大小写混合。
④ 关键字、 标识符和数之间最少要用一个分割符
(空格、 逗号、 运算符或括号)隔开。
第6章 使用Design Direct软件开发MACH器件
2. 标识符
标识符用于标识器件、 引脚及节点、 功能块等对
象的名称, 其命名规则要点可概括为:
① 最长31个字符。
② 必须以字母或下划线开头, 其后可以是字母、
数字、 波浪号(~)和下划线。
③ 不允许在标识符中使用空格。
④ 标识符对大小写敏感。
第6章 使用Design Direct软件开发MACH器件
3. 常量
常量包括常数和非数值的常量。 ABEL―HDL中预
定义了几种专用的非数值常量, 其一般形式为一个字母
两边各带一个句号“.”, 常用的有: .C.——时钟正脉
冲, .D.——时钟下降沿, .K.——时钟负脉冲输入, .U.——时钟
上升沿, .X.——任意状态, .Z.——三态值, 引用时必须保留
两边的句号。 为了方便, 常定义新的常量来代替它们。
例如, 语句“C = .C.; ” 便定义了新的常量C同样可代表
时钟正脉冲。
第6章 使用Design Direct软件开发MACH器件
4. 块
块是包含在花括号({ })中的一段(一行或多行)文
本称为一个块, 可用于方程式、 状态图、 宏和命令中。
块可以嵌套。
5. 注释
注释起解释作用, 并不影响源码的意义。 注释不能
插入到关键字中。 可以用两种方法插入注释:
① 用双引号(″)开始并用另一个双引号或行结束
(回车)来结束注释。
② 用双斜杠(//)开始并以行结束来结束注释。
第6章 使用Design Direct软件开发MACH器件
6. 数
ABEL―HDL中的所有数字精确到二进制的第128
位。 允许使用四种不同的数制并用不同的前缀来加以
区分, 分别是: 二进制(前缀为^b)、 八进制(^o)、
十进制(^d)、 十六进制(^h)。 如果一个数不带有前
缀, 则系统默认为十进制。 此外, 还允许用一个或多个
字母组成的字符串来表示数, 由各位字母的ASCII码
“拼接”出对应的数字。
第6章 使用Design Direct软件开发MACH器件
7. 字符串
字符串是用一对单引号括起来的多个ASCII字符
(包括空格)。 字符串可使用在
TITLE、
MODULE和OPTIONS描述中, 以及引脚、 节点和属性
声明中。
第6章 使用Design Direct软件开发MACH器件
8. 点扩展名
点扩展名用于描述与主信号或电路元件(如触发
器)有关的各种附属信号, 可分为以下两类:
① 通用的(又称为引脚到引脚的)点扩展名。 常
用的有: .ACLR——异步寄存器复位; .ASET——异步寄存
器置位; .CLK——边沿型触发器的时钟; .CLR——同步寄
存 器 复 位 ; .COM—— 组 合 型 反 馈 ; .FB—— 寄 存 器 反
馈; .OE——输出使能; .PIN——引脚反馈; .SET——同步寄存
器置位。
第6章 使用Design Direct软件开发MACH器件
② 专用于特定的器件结构或配置的点扩展名。 常
用的有: .AR——异步寄存器复位; .AP——异步寄存器置
位; .CE——门控型触发器的时钟使能; .D——D触发器数据
输入或对应的内部反馈(用于方程式右边时); .LE——寄存
器锁存使能; .PR——寄存器置位(同步或异步); .Q——寄存
器反馈; .SP——同步寄存器置位; .SR——同步寄存器复位。
第6章 使用Design Direct软件开发MACH器件
9. 运算符
ABEL―HDL共有四种运算符:
① 逻辑运算符。 共有五种: !(非)、 &(与)、
#(或)、 $(异或)和! $(同或), 均在表达式中使
用。
② 算术运算符。 定义表达式中各项之间的算术关
系。 包括: -(对2取补)、 -(减)、 +(加)、 *
(乘)、 /(无符号数整除)、 %(取模)、 <<(逻
辑左移。 算符左侧为移位对象, 算符右侧为移位次数)、
>>(逻辑右移, 用法同左移)。
第6章 使用Design Direct软件开发MACH器件
③ 关系运算符。 用于比较两个量。 所有的关系运
算都是无符号的, 其结果为“真” (用-1代表)或
“假”(用0代表)。 共有六种关系运算符: ==(等
于)、 ! =(不等于)、 <(小于)、 >(大于)、
<=(小于等于)、 >=(大于等于)。
④ 赋值运算符。 把表达式的值分配给输出信号。
用于方程式中, 而不能用于表达式。 共有四种赋值运算
符, 分别是: =(组合型或详细赋值)、 :=(隐含的寄存
器型赋值)、 ?=(组合型或详细赋值)和?:=(隐含的
寄存器型赋值)。 其中, 组合型或详细赋值无延时立即
地执行, 而寄存器型赋值则必须在有关的时钟信号的下
一个脉冲到来时才进行赋值。
第6章 使用Design Direct软件开发MACH器件
10. 表达式
表达式是标识符和运算符的组合, 根据所包含的具
体运算符来进行计算并产生一个结果。 任何逻辑、 算
术或关系运算符都可以使用在表达式中。
第6章 使用Design Direct软件开发MACH器件
11. 方程式
方程式是将表达式的值赋给逻辑描述中的一个信
号或信号集。 标识符和表达式必须符合其规则。 方程
式使用赋值运算符= , ?=(组合的)、 :=和 ?:=(寄存器的)
进行赋值。 可以将运算符!(非)放在待赋值的信号名
的前面, 表示将方程式右边的表达式值取非后再赋给该
信号, 这样, 便可以很容易地实现负逻辑。
第6章 使用Design Direct软件开发MACH器件
12. 集合
集合是信号和常数的汇集, 它与硬件电路中的总线
相对应, 由于可以用一个名字来引用一组信号, 使
ABEL―HDL的逻辑描述和测试矢量得以简化。
① 其表示形式为包含在方括号([ ])中的一组常
数和信号的排列, 各常数、 信号之间用逗号或范围运算
符(..)隔开。 例如, SEL=[S2, S1, S0] ,
MULTOUT=[B0..B7]及 [Q1, Q2,.X., A10..A7]都是
合法的集合表示。
第6章 使用Design Direct软件开发MACH器件
② 集合中的每一个元素都依其在集合中的排列次
序具有唯一的编号, 称为集合索引号。 排在最左边的元
素, 其索引号为0, 其次的索引号为1, 依此类推。 可以利
用“集合名[索引号]”的形式来引用对应的元素。
例如, SEL[0]代表S2, MULTOUT[6]对应于B6。
第6章 使用Design Direct软件开发MACH器件
③ 适用于集合的运算主要有: 关系运算、 逻辑运
算、 +、 -(减和取补)、 赋值运算(=和: =)。 参加
运算的集合必须有同样多的元素。 任何对集合的运算
都作用于集合中的每一个元素。 例如, 对方程式 select
= [a15..a0] == ^H80FF, 当16位地址总线取值为80FF
(十六进制)时, 信号select取值为TRUE。
第6章 使用Design Direct软件开发MACH器件
6.3.3 常用的ABEL―HDL语句
1. CASE
状态转移语句, 常用于指明有限状态机的状态转移。
其一般格式为
CASE 〈条件表达式 1〉:
状态标识1;
…
〈条件表达式N〉:
ENDCASE;
状态标识n;
第6章 使用Design Direct软件开发MACH器件
执行时, 该语句将检查各条件表达式的取值, 使状
态机转移至取值为“真”的表达式对应的状态。 例如:
CASE A==0: 3;
A==1: 0;
A==2: 1;
A==3: 2;
ENDCASE;
第6章 使用Design Direct软件开发MACH器件
2. GOTO
无条件状态转移语句。 格式为
GOTO 〈表达式〉
执行时, 状态机将转移至表达式指明的状态。 例如:
GOTO X+Y
3. IF―THEN―ELSE
状态转移语句。 其一般格式为
IF 〈表达式〉 THEN
ELSE
状态标识 1
状态标识 2;
第6章 使用Design Direct软件开发MACH器件
其中的ELSE分支是可选的。 执行时, 若表达式为
“真”, 则转移至状态标识1代表的状态, 否则转移至状
态标识2代表的状态。 要表达更为复杂的条件, 可以将
多个IF―THEN-ELSE语句嵌套或链接使用。
第6章 使用Design Direct软件开发MACH器件
4. Istype
属性说明语句, 用来定义信号(引脚和节点)的属
性, 对器件的结构特性进行补充和说明。 其一般格式为
信号名 [, 信号名...]
Istype
[Pin/Node]
′ 属性[, 属性...] ′;
[##S]
其中, [Pin/Node]表
示可选用关键字Pin或Node或者都不选, [##S]表示
各信号(引脚)的编号。 关键字Istype之前部分同Pin
语句或Node语句的格式非常相似。 如果选用了该部分,
则同时说明了信号和附加给它们的属性, 实际设计时常
用这种形式。 下面是常用的一些属性:
第6章 使用Design Direct软件开发MACH器件
com——组合型输出;
dc——对未规定的逻辑值可任意处理;
neg——对未规定的逻辑值默认为0;
pos——对未规定的逻辑值默认为1;
reg——受时钟控制的存储元件(寄存器);
reg
-d——D型触发器;
XOR——所规定的信号用异或门实现。
第6章 使用Design Direct软件开发MACH器件
5. Node
节点说明语句。 节点是电路的内部信号。 该语句
的格式为
[!]节点标识 [, [!]节点标识...] Node [节
点号[, 节点号...]] [Istype ′属性串′];
例如:
A, B, C Node;
第6章 使用Design Direct软件开发MACH器件
6. Pin
引脚说明语句。 其格式与节点说明语句相似:
[!]节点标识 [, [!]节点标识...] Din [引脚号[,
引脚号...]] [Istype ′属性串′];
例如:
A1, B1, C1 Pin 3, 1, 2;
第6章 使用Design Direct软件开发MACH器件
7. WHEN―THEN―ELSE
方程式描述语句, 用于描述一个函数。 其一般格式为
[ WHEN 〈条件表达式〉 THEN ]
[!]元素 〈赋值
运算符〉 表达式;
[ ELSE 〈方程式〉 ];
或
[ WHEN 〈条件表达式〉 THEN ] 〈方程式〉;
[ ELSE 〈方程式〉 ];
第6章 使用Design Direct软件开发MACH器件
其中, 元素可以是信号、 信号集或实际集合的标识
符。 元素前面的“!”在此处表示先将表达式取值取补
后再赋值给该元素。 选用“!”可以实现负逻辑或者简
化逻辑。 =、 :=、 ?=和
?:= 是可以使用的四种赋值运
算符。 显然, 该语句既可以实现有条件的赋值, 也可以
实现无条件的赋值。
第6章 使用Design Direct软件开发MACH器件
8. WITH
状 态 输 出 语 句 。 需 要 与 IF―THEN―ELSE 、
CASE等语句配合使用, 指明状态转移时相应的输出。
其一般格式为
WITH 〈输出方程式〉
例如:
State 5: IF A==1 THEN 1 WITH { X: =1; Y: =0 }
ELSE 2 WITH { X: =0;
Y: =1 };
第6章 使用Design Direct软件开发MACH器件
6.3.4 常用的逻辑描述方法与实例
下面, 通过几个典型的ABEL―HDL设计实例, 说明
Equations(方程式)、 State -iagram (状态图)、
Truth -table(真值表)和Test -vectors(测试向量)
等语句的用法, 以及逻辑描述的具体方法。 为了便于读
者理解, 在例子中加入了汉字注释, 但在实际设计时不
提倡使用汉字注释。
第6章 使用Design Direct软件开发MACH器件
1. 方程式描述方式
使用该方式描述逻辑前, 需要手工分析电路的输入
输出关系并写出对应的逻辑表达式, 而后转化为合乎
ABEL―HDL语法的方程式。
[例 6 ― 2] 用方程式方式描述的模2同步计数器,
Clock为时钟, Preset为置位信号, Q1为计数器输出。
第6章 使用Design Direct软件开发MACH器件
module Q1
-1
Q1 pin istype ′reg′;
//定义Q1为寄存器型输出信号
Clock, Preset pin; //定义Clock和Preset为组合型输入
Equations
//″Equations″为关键字, 代表方程式描述
Q1.clk = Clock;
//说明Clock为触发器的时钟
Q1 := !Q1.fb Preset;
// Q1.fb为与Q1相连的内部反馈信号
"以下几行, 以状态转移表的形式定义测试矢量
第6章 使用Design Direct软件开发MACH器件
test
-vectors ([Clock, Preset] -> Q1)
[ .c. , 1 ] -> 1;
[ .c. , 0 ] -> 0;
[ .c. , 0 ] -> 1;
[ .c. , 0 ] -> 0;
[ .c. , 1 ] -> 1;
end
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 3] 4 位二进制加法计数器的描述, 使用了XOR
因子来减少实现该电路所需的乘积项数目。
module X2
q3, q2, q1, q0 pin istype ′reg, xor′;
//定义计数器输出并使用XOR属性
clock pin;
count = [q3..q0];
equations
count.clk = clock;
count := count.FB + 1;
end
//定义集合以简化描述
第6章 使用Design Direct软件开发MACH器件
由上面的两个例子可以看出, 方程式描述的一般形式为
Equations
方程式1;
…
方程式n;
第6章 使用Design Direct软件开发MACH器件
2. 真值表描述方式
在ABEL―HDL中的真值表, 与数字电路设计中常
用的真值表在形式上非常相像, 是一种非常容易和直接
的描述方法, 很适合在组合逻辑中使用。 对组合逻辑,
真值表描述的一般形式为Truth -Table( 输入信号列表
-> 输出信号列表 )
输入组合1
-> 输出取值列表1;
…
输入组合n
-> 输出取值列表n;
第6章 使用Design Direct软件开发MACH器件
其中, 当只有一个输入信号时, 输入信号列表即为
该信号名; 当有多个信号时, 输入信号列表的形式为:
[信号1, 信号2, …, 信号n]。 输入组合、 输出信号列
表、 输出取值列表等的形式也是同样。 所有的输出取
值必须是常量。
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 4] 用真值表形式描述的双2选1数据选择器,
使用了任意项 .X. 来简化真值表。
MODULE DEMO2
TITLE ′Module 2′
X = .X.
//定义常量X, 以便引用任意项 .X.
" Inputs
A0, B0, A1, B1, sel pin;
"Output
Out0, Out1 pin istype ′com′;
//定义Out0和Out1为组合型输出
第6章 使用Design Direct软件开发MACH器件
Truth
-Table([A0, B0, A1, B1, sel] -> [Out0, Out1] )
//SEL=0时, 选择Ai
[0, X, 0, X, 0] -> [0, 0];
[0, X, 1, X, 0] -> [0, 1];
[1, X, 0, X, 0] -> [1, 0];
[1, X, 1, X, 0] -> [1, 1];
//SEL=1 时, 选择Bi
[X, 0, X, 0, 1] -> [0, 0];
[X, 0, X, 1, 1] -> [0, 1];
[X, 1, X, 0, 1] -> [1, 0];
[X, 1, X, 1, 1] -> [1, 1];
END
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 5] 用真值表形式描述的译码器: 当输入
[A, B, C]=[0, 1, 0]和[1, 1, 1]时, 输出out为1; 对
其余组合, 输出为0。
MODULE DEMO1
TITLE ′Module 1′
" Inputs
A, B, C pin;
"Output
第6章 使用Design Direct软件开发MACH器件
Out pin istype ′com′;
Truth
//定义Out为组合型输出
-Table( [A, B, C] -> Out )
[0, 1, 0] -> 1;
[1, 1, 1] -> 1;
[0, 0, 1] -> 0;
[1, 0, 0] -> 0;
END
// Resulting Reduced Equation :
// Out = (!A & B & !C) (A & B & C);
第6章 使用Design Direct软件开发MACH器件
在该例中, 真值表中只列出了八种输入组合中的四
种, 省略了其余四种输出为 0 的组合。 DD软件所使用
的ABEL―HDL允许这样做。 对时序逻辑, 真值表描述
的一般形式为Truth
-Table( 输入信号列表 :> 寄存器
型信号列表 -> 输出信号列表 )
输入组合1
:> 寄存器型输出列表
1
->
输出
取值列表1;
…
输入组合n
列表n;
:> 寄存器型输出列表n -> 输出取值
第6章 使用Design Direct软件开发MACH器件
其中, 各信号列表的形式及输出取值的规定与组合
逻辑相同。 如果电路的输出直接取自寄存器而没有组
合输出信号, 则上述形式中的“->”后的部分可以省略。
下面是对一个有四个状态的状态机真值表描述, 使用信
号a和b的集合代表现态, 使用寄存器型输出c和d来代表
次态, e为组合型输出:
第6章 使用Design Direct软件开发MACH器件
Truth
-Table([a, b]
:>
[c, d] ->
0
:>
1
->
1;
1
:>
2
->
0;
2
:>
3
->
1;
3
:>
0
->
1;
e)
第6章 使用Design Direct软件开发MACH器件
3. 状态图描述方式
ABEL―HDL提供了状态图语句(state -diagram),
可用于描述状态机等复杂的时序电路。 状态图语句的
一般格式为(方括号内为可选项)
state
-diagram 状态寄存器
[->输出]
[state]
状态标号1: [方程式; ]
…
[方程式; ]
第6章 使用Design Direct软件开发MACH器件
[转移语句; ]
…
[state]
状态标号 n: [方程式; ]
…
[方程式; ]
[转移语句; ]
其中, 状态寄存器为规定状态机现态的信号或信号
集合, 各状态标号均为合法的标识符。 常采用
IF―THEN―ELSE、 CASE、 WITH、 GOTO等语句来
规定状态机的运行和转移。 请看下面的例子。
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 6] 使用状态图语句描述的简单状态机。
MODULE state
-ma
TITLE ′state machine example ′
clock, hold, reset pin;
p1, p0 pin istype ′reg, buffer′;
//p0、 p1为寄存器型输出
y pin istype ′com′;
第6章 使用Design Direct软件开发MACH器件
equations
[p1, p0].clk = clock;
[p1, p0].ar = reset;
″ 状态声明
state
-ma = [p1, p0];
s0 = [0, 0];
s1 = [0, 1];
s2 = [1, 0];
s3 = [1, 1];
//定义状态寄存器
第6章 使用Design Direct软件开发MACH器件
state
-diagram
state
-ma
s0: y=0;
goto s1;
s1: y=1;
goto s2;
s2: y=1;
goto s3;
s3: y=0;
goto s0;
//以下为测试向量(略)
end
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 7] 使用状态图方式描述的交通信号控制器。
module TRAFFIC1
title ′Traffic Signal Controller′
Clk, SenA, SenB pin 1, 8, 7;
PR pin 16;
"置位控制信号
GA, YA, RA pin 15..13;
GB, YB, RB pin 11..9;
S3..S0 node 31..34 istype ′reg
H, L, Ck, X = 1, 0, .C., .X.;
Count = [S3..S0];
-sr, buffer′;
第6章 使用Design Direct软件开发MACH器件
"Define Set and Reset inputs to traffic light flip flops
GreenA = [GA.S, GA.R];
YellowA = [YA.S, YA.R];
RedA = [RA.S, RA.R];
GreenB = [GB.S, GB.R];
YellowB = [YB.S, YB.R];
RedB = [RB.S, RB.R];
On = [ 1 , 0 ];
Off = [ 0 , 1 ];
第6章 使用Design Direct软件开发MACH器件
"测试向量由另一个文件提供
equations
//设置各触发器的时钟(.CLK)和置位信号(.AP)
[GB, YB, RB].AP = PR;
[GA, YA, RA].AP = PR;
[GB, YB, RB].CLK = Clk;
[GA, YA, RA].CLK = Clk;
[S3..S0].AP = PR;
[S3..S0].CLK = Clk;
第6章 使用Design Direct软件开发MACH器件
@DCSET
state
//声明对无关状态可以任意处理
-diagram Count
State 0: if ( SenA & !SenB ) then 0;
if (!SenA & SenB ) then 4;
if ( SenA == SenB ) then 1;
State 1:
goto 2;
State 2:
goto 3;
State 3:
goto 4;
State 4:
GreenA = Off;
第6章 使用Design Direct软件开发MACH器件
YellowA = On ;
goto 5;
State 5:
YellowA = Off;
RedA = On ;
RedB = Off;
GreenB = On ;
goto 8;
State 6:
goto 0;
State 7:
goto 0;
State 8:
if (!SenA & SenB ) then 8;
第6章 使用Design Direct软件开发MACH器件
if ( SenA & !SenB ) then 12;
if ( SenA == SenB ) then 9;
State 9:
goto 10;
State 10: goto 11;
State 11: goto 12;
State 12: GreenB = Off;
YellowB = On ;
goto 13;
State 13: YellowB = Off;
RedB = On ;
RedA = Off;
GreenA = On ;
第6章 使用Design Direct软件开发MACH器件
goto 0;
State 14: goto 0;
State 15: "上电和置位状态
RedA = Off;
YellowA = Off;
GreenA = On ;
RedB = On ;
YellowB = Off;
GreenB = Off;
goto 0;
end
第6章 使用Design Direct软件开发MACH器件
4. ABEL―HDL层次化设计实例
ABEL―HDL语言支持层次化设计, 具体的实现方
法可概括为:
① 在需要调用其它模块的ABEL―HDL源文件中,
必须使用关键词interface和functional -block来指定所
要引用的低层模块及其接口。
② 低层模块可以是ABEL―HDL或原理图模块。
③ 高层模块中所说明的引用对象的名字, 必须与低
层模块的模块名相同。
④ 高层模块中所说明的接口信号, 必须与低层模块
的引脚信号在顺序和类型上相一致。
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 8] 顶层ABEL ―HDL模块, 调用了低一级的模
块add。
MODULE top
"inputs
AIN, BIN, CARRYIN pin;
"outputs
CARRYOUT, SUMOUT pin;
add INTERFACE(A, B, CI -> SUM, CO);
my -add functional
-block add;
第6章 使用Design Direct软件开发MACH器件
EQUATIONS
my
-add.A = AIN;
my -add.B = BIN;
my
-add.CI = CARRYIN;
SUMOUT = my -add.SUM;
CARRYOUT = my -add.CO;
END
第6章 使用Design Direct软件开发MACH器件
[例 6 ― 9] add模块, 可被其它模块引用。
MODULE add
"inputs
A, B, CI pin;
"outputs
CO, SUM pin;
EQUATIONS
第6章 使用Design Direct软件开发MACH器件
SUM = A&B&CI+! A&! B&CI+! A&B&! CI+A&! B&! CI;
CO = A&B+A&CI+B&CI;
END
第6章 使用Design Direct软件开发MACH器件
6.3.5 测试向量的编写要点
测试向量用于器件中内部模型的仿真和设计以及
器件的功能测试。 在具体实现上, 可以在模块内部定义,
也可以编制独立的测试向量文件。 测试向量文件的结
构和格式都与ABEL―HDL 模块相似, 但不包含逻辑描
述部分。 这两种方式都要使用测试向量语句, 该语句的
一般格式为
第6章 使用Design Direct软件开发MACH器件
TEST -VECTORS(
输入信号列表 -> 输出信号列表 )
输入组合列表1
-> 输出取值列表1;
…
输入组合列表n
-> 输出取值列表n;
显然, 该格式与真值表的格式非常相似, 输入信号
列表、 输出信号列表、 输入组合列表、输出取值列表
等的含义与形式变化也都与真值表中的情况一样。 所
有的信号取值都必须为常量或符号化常量。
第6章 使用Design Direct软件开发MACH器件
该语句通过列举各种输入组合和对应的“正确”
输出, 显式地将器件输出定义为输入的函数, 描述了器
件预期应具有的功能。 同真值表的情况一样, 不要求列
出所有的输入组合, 但由于功能仿真器只检查所列出的
这些组合, 因此, 仅列出部分输入组合及对应的输出可
能不足以完备地验证设计的正确性。
对于组合逻辑, 在列举各种输入组合时, 各种组合
的排列顺序一般无关紧要。 但是, 对于时序逻辑, 则应
当按照状态转移的顺序, 或者说是状态转移表的格式,
来排列各种组合, 而且必须包含所有有效的状态转移。
第6章 使用Design Direct软件开发MACH器件
当输入组合个数较多时, 可以使用一些@命令来简
化测试向量的描述, 主要有:
① @repeat, 重复命令, 其格式为
@repeat 〈数值表达式〉 {〈要重复的对象〉}
作用是将“要重复的对象”重复多次, 重复的次数
等于数值表达式的取值。 例如,
@repeat
3{0, .X., } 便等价于“0, .X., 0, .X., 0, .X.”。
第6章 使用Design Direct软件开发MACH器件
② @Irp, 非定限的重复命令, 其格式为
@Irp 哑元(实元[, 实元]...){文本块}
作用是使文本块(其中可包含该哑元)在源文件
中复制n次, n等于括号中包含的实元的个数。 每次将文
本块复制时, 哑元都按从左到右的顺序使用一个实元的
取值。 例如,
第6章 使用Design Direct软件开发MACH器件
@Irp a (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
{ .c. -> ?a;
}
等效于10个描述行:
.c. -> 0;
…
.c. -> 9;
第6章 使用Design Direct软件开发MACH器件
③ @Irpc, 非定限的重复命令, 其格式为
@Irpc 哑元(实元){文本块}
作用是使文本块(其中可包含该哑元)在源文件中
复制n次, n等于实元中包含的字符数。 每次将文本块复
制时, 哑元都按从左到右的顺序从实元中取得一个字符。
第6章 使用Design Direct软件开发MACH器件
6.3.6 文本形式的设计输入
在 DD 软 件 系 统 中 , 常 用 的 文 本 文 件 主 要 有
ABEL―HDL源文件、 ABEL―HDL测试向量文件、
VHDL源文件和测试基准、 Verilog―HDL源文件和测
试基准等, 可使用DD软件本身的文本编辑器或Windows
系统的字处理器(如Notepad记事本)来建立和修改这
些文件。 下面, 仅介绍ABEL-HDL源文件和测试向量文
件的输入方法, 后两种文件的具体输入及处理过程将在
6.9节中介绍。
第6章 使用Design Direct软件开发MACH器件
1. 选用Windows系统的文本编辑器
在中文Windows 98环境下, 选择“开始>程序>附
件>记事本”, 便可启动Windows 98 系统的文本编辑器,
用来编辑ABEL ― HDL描述文件和测试向量文件。要
特别注意的是, 在完成编辑并保存文件时, 必须为文件
加上正确的扩展名, ABEL―HDL描述文件的扩展名应
为 .abl, 测试向量文件的扩展名应为 .abv。 然后, 可以
利用Windows 资源管理器以“拖—放”方式等, 将这些
文件复制到对应的项目文件夹中。
第6章 使用Design Direct软件开发MACH器件
2. “导入” 已有的源文件
如果已用其它编辑器建立了ABEL―HDL描述文件
和测试向量文件, 或者别的设计项目中有内容相近的文
件可供利用, 便可利用 6.2 节中介绍过的方法(选择
Source>Import)将其导入到项目中, 再根据需要进行必
要的修改。
3. 建立新的ABEL―HDL源文件
① 在项目管理器中, 选择Source菜单中的New命令,
便会弹出New Source对话框。
第6章 使用Design Direct软件开发MACH器件
图 6.11 建立新的ABEL―HDL源文件
第6章 使用Design Direct软件开发MACH器件
② 在该对话框中, 选择ABEL―HDL Module并点击
OK(或者直接双击ABEL―HDL Module), 便会打开
文本编辑器和一个对话框, 如图 6.11 所示。
③ 对话框中, Module Name栏中的模块名将用于模
块中的MOULDE语句, 因此必须键入。 “File Name”
栏中的文件名也是必须输入的, 文件的扩展名则可以省
略(默认为 .abl)。 一般情况下, 模块名和文件名应当
相同, 否则项目管理器中的一些自动功能可能无法正常
执行。 如果要为模块起一个标题, 则可在Tiltle中输入。
第6章 使用Design Direct软件开发MACH器件
④ 当输入完成后, 单击OK按钮, 便可以进入编辑
窗口输入ABEL―HDL源文件, 如图6.12所示。
⑤ 在编辑过程中, 如果有问题或疑问, 随时可以向
“在线帮助系统”求助。
⑥ 编辑完成后, 选择File菜单中的Save命令, 将该
文件保存。
⑦ 选择File菜单中的Exit命令, 退出编辑器, 回到项
目管理器环境中。
第6章 使用Design Direct软件开发MACH器件
图 6.12 ABEL ― HDL编辑窗口
第6章 使用Design Direct软件开发MACH器件
4. 建立新的ABEL―HDL测试矢量文件
在DD软件系统中, 有两种途径可以指定测试矢量:
在ABEL―HDL源文件中使用测试矢量语句来指定, 或
者 建 立 一 个 独 立 的 测 试 矢 量 文 件 ( .abv ) 。 当 在
ABEL―HDL源文件中指定测试矢量时, DD软件会自动
建立一个指向该ABEL―HDL源文件的“虚拟”文件
(.abv)。
当需要建立独立的测试矢量文件(.abv)时, 可以:
第6章 使用Design Direct软件开发MACH器件
① 在项目管理器中, 选择Source菜单中的New命令,
便会弹出对话框。 在“New”一栏中选择ABEL―HDL
Module并点击OK, 便会打开文本编辑器和一个New File
对话框。
② 在该对话框中, 输入要建立的测试矢量的文件名,
其扩展名则可以省略(默认为.abv)。
一般情况下,
测试矢量的文件名应与该项目顶层模块的文件名相同。
③ 单击OK, 便可以进入编辑窗口, 输入
ABEL―HDL测试矢量文件。
第6章 使用Design Direct软件开发MACH器件
④ 在编辑的过程中, 如果有问题或疑问, 随时可以
向“在线帮助系统”求助。
⑤ 编辑完成后, 选择File菜单中的Save命令, 将该文
件保存。
⑥ 选择File菜单中的Exit命令, 退出编辑器, 回到项
目管理器环境中。
第6章 使用Design Direct软件开发MACH器件
5. 使用文本编辑器
由于项目管理器具有强大的“关联”能力, 能够根
据源对象的类型自动选择相应的处理工具, 因此, 一般
情况下对文本编辑器的调用都是自动进行的。 例如, 像
上面介绍的那样, 当要“新建”或“打开”文本文件时,
便会自动地启用文本编辑器; 双击项目管理器源窗口中
的文本类型的源文件时, 也会自动地启用文本编辑器,
非常方便。
第6章 使用Design Direct软件开发MACH器件
总结起来, 用户可以用下面的任一种方法打开文本编辑器:
· 在项目管理器中, 选择 Window > Text Editor。
· 在项目管理器源窗口中, 双击一个文本文件的名字。
· 在源窗口中选择一个文本文件, 再选择 Source > Open。
· 在源窗口选择一个文本文件, 再单击源窗口下方的Open
按钮。
第6章 使用Design Direct软件开发MACH器件
6.4 原理图输入与EDIF网表导入
电原理图, 又称逻辑图, 是一种描述逻辑电路结构
与功能的常用方法。 一张原理图一般由代表各功能部
件的器件符号、 代表信号连接关系的连线和网络标号、
代表接口关系的I/O引脚或标记等组成, 通过精确地描
述电路的结构来定义其功能, 直观而且方便。 在DD软
件系统中, 原理图既可用于描述某一个功能模块的内部
结构及其功能, 又可作为顶层原理图用于描述整个电路
的模块划分与相互连接, 因而起着非常重要的作用。
第6章 使用Design Direct软件开发MACH器件
6.4.1 原理图的构成要素
1. 符号(Symbols)
符号是器件或功能部件的图形表示, 是原理图中最
基本的成分。 一个符号可以代表一种常用的器件, 例如
逻辑门和74系列器件, 也可以代表一个具有复杂功能的
宏(Macros)或电路模块(Block)。 每个符号都对应
一个以 .sym为扩展名的文件, 该文件可能包括在以
.lib 为扩展名的库文件中, 也可能由用户自己创建。 在
每个符号文件中, 包含该符号的显示图像、 文字说明、
引脚和属性等信息, 在引用符号时会自动引用这些信息。
第6章 使用Design Direct软件开发MACH器件
2. 连线(Wires)及总线(Bus)
连线, 即连接各符号引脚的线, 用来表示信号的连
接关系。 可以为每条连线规定一个名字,用来在原理图
和网表文件中代表该连线。 一般只需对那些与输入或
输出相连的连线, 以及那些与在仿真时需要查看的信号
对应的“内部”连线进行命名。 DD软件根据各连线命
名格式的不同, 来区分传递单个信号的“单线”(Net)
和允许一组信号通过的“总线”。 对信号线的命名采
用简单格式, 对总线则采用复合格式。
第6章 使用Design Direct软件开发MACH器件
3. I/O标记(I/O Markers)
I/O标记指明信号进入或离开一张原理图的那些点。
当创建一个块符号和与之匹配的原理图时, 原理图的输
入、 输出信号所对应的各I/O标记必须与块符号上的相
应引脚使用完全相同的名字, 以便确定哪个信号连接到
哪个引脚上。
4. 图形(Picture)
图形, 指的是原理图中非功能性的图形部分, 最常
用的是标题框(Title)。 DD系统备有名为Title的标题
框符号, 用户可在原理图中插入该符号, 再填入具体的
信息, 例如公司的名称和地址、 注释等。
第6章 使用Design Direct软件开发MACH器件
5. 文字(Text)
与图形一样, 文字可提供关于原理图或项目的附加
信息。 文字可放置于原理图的任何位置,甚至可以“压”
在符号或连线上。 使用原理图编辑器中的命令
Add>Text, 可以将文字加进原理图。
第6章 使用Design Direct软件开发MACH器件
6.4.2 使用原理图编辑器
原理图编辑器是输入和分析以原理图方式描述的
设计时需要使用的基本程序。 一项原理图设计可以包
括多“张”任意尺寸的“子图”, 既可描述平面化设计
又可描述层次化设计。
1. 基本操作
原理图编辑器使用“操作-对象”命令结构, 也就
是说, 应先(通常从菜单中)选择你要执行的操作, 而后再
选择该项操作的作用对象。 此后, 你可以根据需要选择
不同的作用对象, 进行同一种操作, 直到选择新的操作
(命令)为止。
第6章 使用Design Direct软件开发MACH器件
所有需要进一步操作或附加信息的命令, 都会在原
理图编辑器的左下角给出提示。 每当你不能肯定该做
什么时, 都可以看一下提示。 提示行还用来显示你所输
入的内容, 例如符号和信号名。 在输入这些信息时, 你
可以使用键盘上的箭头键(↑、 ↓、 ←、 →)、 删除
键(Del)和回退键(Backspace)等进行编辑。 位于
提示行正上方的错误窗口, 用来报告那些使操作无法正
常完成的小错误, 而提示行通常会解释应如何改正这些
错误。 大的错误则会在弹出的消息框中报告。
第6章 使用Design Direct软件开发MACH器件
2. 启动原理图编辑器
对新建的项目, 可以从项目管理器界面中启动原理
图编辑器, 具体的命令为:
Windows >Schematic或者New>Schematic>OK。 对已经
建立而且包括一个以上原理图源文件的项目来说, 双击
项目管理器源文件窗口中的原理图源文件, 便可启动原
理图编辑器同时打开所选择的原理图源文件。 同样, 也
可以先启动原理图编辑器, 再用命令File > Open来调入
已有的原理图文件, 进行编辑。
第6章 使用Design Direct软件开发MACH器件
3. 使用已有的原理图符号
DD软件预先定义了多种器件符号可供选用, 每
个器件符号均对应于一个.sym文件, 这些.sym文件又
分类存放在多个库文件(.lib)中。 库文件主要存放在
generic目录下, 包括gates.lib(门电路)、 iopads.lib
(I/O引脚)、 muxes.lib(数据选择器)、 regs.lib
(触发器)等。
第6章 使用Design Direct软件开发MACH器件
除此之外, 还可选择安装三种软宏库, 分别是:
avnprim.lib(基本库, 包括6、 8、 12和16输入的各种门
电路); vanfunc.lib(功能库, 包含计数器、 译码器、
移位寄存器等常用的基本功能模块); vanttl.lib(TTL
符号库, 包括各种常用的TTL器件)。 与这些预定义符
号有关的操作主要有:
第6章 使用Design Direct软件开发MACH器件
1) 选择并加入符号
① 在原理图编辑器中, 选择Add > Symbol, 打开符
号库对话框, 如图 6.13 所示。
② 从库列表(Library)窗口中选择一个库后, 在下
面的符号窗口中便可看到该库所包含的所有符号, 可使
用滚动条浏览和查找。 单击所需的符号名, 即可选中
该符号。 如果已知符号的名称, 则可以直接在原理图编
辑器底部的命令行中输入其名称, 然后回车, 便可选中
该符号。 被选中的符号便会“粘”在光标上, 跟随光标
移动。
第6章 使用Design Direct软件开发MACH器件
图 6.13 在原理图中放置符号
第6章 使用Design Direct软件开发MACH器件
③ 在放置符号之前, 可以对符号进行“镜像”或
“旋转”等变换。 “镜像”变换的命令为Edit >Mirror,
“旋转”变换的命令为Edit > Rotate。
④ 此后, 将光标移至原理图中需要放置该符号的
位置, 再单击鼠标的左键, 便可将该符号添入到原理图
中。 如果需要放置多个同样的符号, 只需重复移动鼠标
和单击左键, 而不必重选该符号。
⑤ 如果要放置其它的符号, 可先单击右键, “粘”
在光标上的符号便会消失, 此后, 就可以按照上述第②、
③步重新选择和放置其它的符号。
第6章 使用Design Direct软件开发MACH器件
2) 从原理图中删除一个符号
① 在原理图编辑器中, 选择 Edit > Delete, 如图 6.14
所示。
② 单击需要删除的符号, 该符号便会从原理图中被
删除掉。 如果需要, 可以继续单击其它符号来加以删除。
第6章 使用Design Direct软件开发MACH器件
图 6.14 原理图编辑器的Edit菜单
第6章 使用Design Direct软件开发MACH器件
3) 复制原理图中已有的符号
① 在原理图编辑器中, 选择 Add > Symbol。
②
单击你想要复制的符号, 该符号的一份拷贝就
会“粘”在光标上。
③
将光标移到想要放置该符号的位置, 单击左键
即可完成一次复制。
第6章 使用Design Direct软件开发MACH器件
4) 选择符号
可以用下列方法之一来选择符号:
① 单击符号。
② 按住 Shift 键并单击, 可连续选择多个符号。
③ 在按下左键的同时移动鼠标, 在目标符号的周
围“拉”出方框, 该方框中的所有原理图要素包括符号、
连线等便同时被选中。
第6章 使用Design Direct软件开发MACH器件
5) 移动符号
① 先选择 Edit >Move。
② 利用上面介绍的方法, 选择需要移动的符号, 这些
符号便会被剪切下来, “粘”在光标上。
③ 移动光标到新的位置后, 单击左键, 即可完成移动。
第6章 使用Design Direct软件开发MACH器件
6) 添加实例名
原理图中的符号通常被赋予唯一的实例名。 实例
名是完全层次化的。 在每次保存原理图文件时, 原理图
编辑器会自动为符号加上默认的实例名I-nn(nn为下一
个尚未用到的整数)。 用户可以自己指定实例名来代
替该默认的实例名, 方法是:
① 选择 Add > Instance Name。
② 在命令行中输入选定的实例名并回车。 该实例
名可由字母、 数字、 单引号和下划线等构成。
③ 单击你想要命名的符号。
第6章 使用Design Direct软件开发MACH器件
7) 指定连续的实例名
如果需要为多个(一般是同一类型的)符号指定
连续的实例名(如AND1 , AND2 , … , ANDn), 则需要
先选择 Add > Instance Name, 而后使用下面两种方法中
的任一种来指定序列化实例名的基本形式:
① 在命令行中输入实例名, 其末尾为数字和加号
“+”, 接着按Enter 键。 其中的数字将作为序列化实例
名的首标号(为1时可以省略)。 例如, INV3+表示序
列从INV3 开始, INV+则表示从INV1 开始。
第6章 使用Design Direct软件开发MACH器件
② 单击一个已有的实例名, 便可将该实例名作为
序列化实例名的基本形式。 根据其末尾是否为数字, 自
动地以该数字或1作为序列化实例名的首标号。
而后, 便可按所希望的命名顺序, 单击各待命名的
符号。 每点击一个新的符号, 便会将“形式实例名”赋
予该符号, 而后“形式实例名”中的标号(数字)便会
自动加1。 如果该“形式实例名”与其它符号的实例名
重复, 则会将标号再次自动加1, 直到不再重复为止。
第6章 使用Design Direct软件开发MACH器件
4. 产生块符号
在原理图编辑器中, 利用Add 菜单中的New Block
Symbols命令, 可以很方便地产生一个与原理图或
ABEL―HDL模块相对应的块符号。 在较高层次的原
理图中引用块符号, 便可实现层次化设计。
第6章 使用Design Direct软件开发MACH器件
图 6.15
创建块符号
第6章 使用Design Direct软件开发MACH器件
在选择 Add > New Block Symbols之后, 便会弹出
一个对话框(如图 6.15 所示), 让你指定块符号中的属性
名、 输入引脚名、 输出引脚名和双向引脚名。 所输入
的各个引脚名之间应当用逗号隔开。 共有四个编辑栏,
每个对应一项: Block Name——块符号名; Input Pins——
所有利用I/O标记定义为输入的网线的名字;
Output
Pins—— 所 有 利 用 I/O 标 记 定 义 为 输 出 的 网 线 的 名 字 ;
Bidir Pins——所有利用I/O标记定义为双向的网线的名字。
第6章 使用Design Direct软件开发MACH器件
如果要在其中一个编辑栏中输入总线名, 必须用等
号(=)将它包起来, 其形式为: =总线名=。 如果出现在引
脚列表中的一个复合名没有被等号包起来, 便会将它展
开, 为多个引脚命名。 如果复合名被用等号包了起来,
就会生成一个总线型引脚。 例如, 在Input Pins一栏中
输入“A, B[0:3], C”, 将会产生6个引脚, 分别是A、
B0、 B1、 B2、 B3和C; 如果输入“A, =B[0:3]=, C”,
则会产生3个引脚, 即A、 B[0:3](总线型引脚)和C;
如果输入“=A, B[0:3], C=”, 则只产生1个名为“A,
B[0:3], C”的总线型引脚。
第6章 使用Design Direct软件开发MACH器件
如果是要生成与当前正在编辑的原理图相对应的
块符号, 可单击Use Data From This Block按钮, DD软件
便会按照该原理图的实际情况, 为各编辑栏自动填入内
容。 在输入完这些信息之后, 便可对符号进行编辑或放
置。 如果只要产生符号而不编辑, 可点Run按钮, 便会
看到新建的符号出现在鼠标的光标上, 点击原理图中的
目标位置便可放置该符号。 如果要使用符号编辑器来
修改该符号, 则应点Edit按钮。 具体的修改方法可以参
考上面的介绍。 在这两种情况下, 符号文件都存放在当
前目录下。
第6章 使用Design Direct软件开发MACH器件
所产生的符号外形为带有引脚引线的矩形。 该矩
形的高度和宽度会根据引脚的个数和引脚名的长度而
自动选定。 输入引脚放在左边, 输出引脚放在右边。
引脚引线的长度取Default Pin Name Offset参数项规定
的默认值。 该符号有两个属性窗口: 一个靠近顶部, 用
来显示符号名; 另一个靠近底部, 用来显示例化
(Instance)名。
此外, 在原理图编辑器中选择 File > Matching
Symbol 命令, 可以自动生成与当前编辑的原理图文件
相匹配的块符号, 并存放在当前目录下。 如果需要, 同
样可以使用符号编辑器来修改该符号。
第6章 使用Design Direct软件开发MACH器件
5. 在原理图中连线
连线用于表示各原理图符号之间的电连接。 符号的
引脚是连线的连接点。 如图 6.16 所示, 可使用Add 菜单
中的Wire命令在符号的两个引脚之间加入连线, 也可用
Net Name和Bus Tap 命令来表示两点之间的连接关系。
第6章 使用Design Direct软件开发MACH器件
图 6.16 原理图编辑器的Add菜单
第6章 使用Design Direct软件开发MACH器件
1) 利用“点对点法”绘制连线
选择 Add > Wire, 再单击线的起点。 而后移动鼠标,
可以看到一条始于线的起点而结束于光标处的点划线段,
其长度和方向(水平或垂直)会随着鼠标的移动而改变。
将鼠标移至适当位置后单击左键, 便可将点划线段固定下
来(变为一段连线), 并产生一条新的始于该线段的终点
而结束于光标处的点划线段。 重复移动鼠标和单击左键,
便可绘制出一条由水平线段和垂直线段组成的连线。 而
后, 再次单击连线的终点便可结束该连线的绘制。 在绘
制的过程中, 随时可单击右键结束绘制。
第6章 使用Design Direct软件开发MACH器件
2) 画斜线
在单击线的起点的同时按下Shift 键, 并移动鼠标至
适当的位置, 便可以画出一条对角线方向的斜线段。 如
果在画线段时按下Shift 键不放, 便可以画出其它的45°
斜线段。
第6章 使用Design Direct软件开发MACH器件
3) 修改连线
除可删除已有连线重新绘制外, 还可以通过拖动来
加以修改:
① 选择 Edit > Drag, 并单击需要修改的连线。
② 移动鼠标, 该连线的各条线段会随着鼠标的移动
而“有弹性地”伸缩, 但连线的起点、 终点以及各线段
的方向均保持不变。
③ 再次单击左键将接受修改后的连线, 而单击右键
则可取消本次修改。
第6章 使用Design Direct软件开发MACH器件
4) 删除连线
可以删除一条连线或线段, 或者删除某一区域中的
所有连线和线段, 其方法与删除符号的方法相同。
5) 网线及相关操作
由一条或多条连线互连而成的一个电连接, 称为一
条网线(Net), 相关的操作主要有:
① 原理图编辑器会为图中的每条网线指定一个默
认的名字(但不显示), 用户可选择Add 菜单中的Net
Name命令来为一些感兴趣的网线重新命名。 具体的网
线名可由命令行输入或通过单击一条已命名的连线来
获得。
第6章 使用Design Direct软件开发MACH器件
② 如果要为多条网线指定“连续”的网线名, 则可
在选择Net Name命令后, 输入以数字和“+”结尾的“形
式网线名”, 此后重复“移动—单击”操作即可。
③ 对网线重新命名的过程为: 选择Add > Net Name,
输入新的网线名; 此后移动鼠标至该网线上, 在单击左
键的同时按下Shift 键, 原理图中该网线的所有分支均同
时被重新命名。
第6章 使用Design Direct软件开发MACH器件
④ 具有相同网线名的连线属于同一条网线, 即不
管它们在形式上是否相互连接, 它们在电气上总是互
连的。 利用这一规定, 可以简化原理图并使之变得简
明和清晰。 要找出隐藏的网络连接, 可选择 Object >
Query , 再单击相关的任一条网线或总线, 则该原理图
的每一页分图中具有同样网线名的所有连线都会被高
亮度地显示。
第6章 使用Design Direct软件开发MACH器件
6.指定信号的传输方向
I/O 标记可用来区别网线的极性(即信号流向)是
输入、 输出或双向传输, 并且说明该网线是外部可“引
用”的。 原理图编辑器的Consistency Check(一致性
检查)命令便是利用
I/O
标记来检查所标记的信号
和符号引脚在极性上的差异。 层次化导引器也进行同
样的检查。
第6章 使用Design Direct软件开发MACH器件
① 要为网线添加I/O标记, 必须先对其命名, 而后,
如图 6.17 所示:
·选择Add > I/O Marker, 打开I/O Marker对话框;
·从对话框中选择需要的网线极性。 如果要删除一
个已有的I/O 标记, 则应选择None;
·单击相应网线的端点处, 便会出现一个与该网线
端点相连的I/O标记, 该I/O 标记会自动使用该网线名作
为其标记名。
第6章 使用Design Direct软件开发MACH器件
② 可使用Edit菜单中的Move、 Drag、 Delete等命
令, 而后可以单击I/O标记或用鼠标在网线端点周围
“拖”出一个包含多个I/O标记的方框, 对选定的这些
I/O标记进行移动、 删除等操作。
第6章 使用Design Direct软件开发MACH器件
Q
(a)
Q
(b)
图6.17 在原理图中加入I/O标记
第6章 使用Design Direct软件开发MACH器件
7. 总线及相关操作
1) 有序总线
有序总线由一组信号按照一定的顺序组合而成, 可
用于连接总线型引脚。 其名字可由组成该总线的各信
号的名字复合(用逗号连接)而成。 例如, “READ,
WRITE, MYNAME” 便 代 表 由 READ , WRITE 和
MYNAME 三个信号组成的一条有序总线。 也可以在
信号名后添加一列数来作为有序总线的名字。
第6章 使用Design Direct软件开发MACH器件
例如, DATA[0-7]就是由信号 DATA[0]、
DATA[1]、 …、 DATA[7]组成的有序总线, 其一
般形式为: 信号名[起始编号-终止编号]; 而ADDR(0,
14, 2) 则 是 由 信 号 ADDR(0) 、
ADDR(2) 、
ADDR(4)、 …、 ADDR(14)所组成, 其一般形式为: 信号
名(起始编号, 终止编号, 编号增量)。 还可以将上述几
种形式混合 使用。
添加有序总线的过程与添加连线的过程相似, 差别
仅在于命名的形式上。 有序总线的每个分量都是一条
网线, 可以按照对网线的操作方法对它们分别进行处理。
第6章 使用Design Direct软件开发MACH器件
2) 无序总线
无序总线所包含的各个信号没有次序之分。 无序
总线不能与总线型引脚相连接, 因为总线型引脚代表一
个有序的信号序列。 无序总线的作用仅仅是便于绘制
原理图并使之变得简洁和清晰, 而利用多条经过命名的
网线可以达到同样的效果, 因此不对其做详细介绍。
3) 总线型引脚
一个总线型引脚代表一组引脚或信号。 通过赋给
引脚一个复合名字, 便可创建一个总线型引脚。 如果一
个总线型引脚与一个块符号相连接, 则在总线型引脚名
中列出的每一个信号都必须在块符号内部的原理图中
出现。
第6章 使用Design Direct软件开发MACH器件
有序总线可以直接连接总线型引脚。 该总线中
包含的位或信号的数目必须与加在总线型引脚上的位
或信号的数目相匹配。 总线中的各个信号与总线型
引脚上的各个信号按顺序(定义时的次序)一一配对
和连接。
第6章 使用Design Direct软件开发MACH器件
8. 检查和排除错误
原理图编辑器中设有两级错误检查, 能够在设计过
程中及早报告或避免错误。 在输入原理图时, 会检查出
第一类错误, 阻止诸如“将名称不同的网线短接”之类
的错误操作。 通过考察一个完整设计的“上下文”
(各要素之间的一致性)可以发现第二类错误。 如果
需要, 用户可随时进行DRC检查来找出原理图中存在的
错误和潜在错误, 这时只需选择 DRC > Consistency
Check。
第6章 使用Design Direct软件开发MACH器件
所有查出的错误都被写入报告文件中, 并且在一个列表
框中显示。 单击列表中显示的某个错误, 便可看到发生
该错误的那部分原理图被高亮度地显示并带有一个小
的“+”标记。 修改该错误后, 可再次执行这种一致性
检查, 直到找出并修改了所有的错误。
第6章 使用Design Direct软件开发MACH器件
6.4.3 导入 EDIF 网表
导入 EDIF 网表是DD软件的第三种设计输入方式,
也是DD软件与其它CAE工具进行接口的主要方式。
可通过以下步骤, 将第三方的CAE工具(综合工具
或原理图输入工具)所产生的EDIF 网表导入到当前设
计项目中:
第6章 使用Design Direct软件开发MACH器件
图 6.18 导入EDIF网表文件
第6章 使用Design Direct软件开发MACH器件
① 在项目管理器中选择 Source > Import, 以打开
Import File(导入文件)对话框, 如图 6.18 所示。
② 在List Files of Type(文件类型)一栏中选择
EDIF Netlist (*.ed*)即EDIF网表, 然后选择需要导入的
EDIF文件。
③ 单击OK按钮, 将会打开弹出一个Import EDIF对
话框。
第6章 使用Design Direct软件开发MACH器件
④ DD软件对电源和地默认使用VCC和GND符号。
如果已知待导入的EDIF网表中使用了与此不同的标记
方法, 则可以通过窗口修改DD软件的该项设置: 选择
Custom(自定义), 再选择Symbol(符号)或Net(网
络)表达方式, 然后输入为电源和地所指定的新名字,
即EDIF网表中所使用的名字。
第6章 使用Design Direct软件开发MACH器件
⑤ 如果该EDIF文件是用户按照Vantis推荐的方法,
利用DD软件所支持的第三方设计工具所产生的, 则可
选中CAE Vendors一项, 并在所列出的厂商中选择对应
的厂商。
⑥ 单击OK, 便可导入所选定的 EDIF文件 (.edf)。
第6章 使用Design Direct软件开发MACH器件
6.4.4 使用符号编辑器
符号编辑器可用于修改已有的符号和创建新的符
号, 以及生成代表整个或部分原理图的块符号。 它还可
用于显示符号的属性值。
1. 符号
符号由图形、 引脚和属性等要素构成。 图形即符
号的图像, 没有电气含义, 仅仅在原理图中显示器件所
在的位置。 引脚就是供导线(Wire)连接的那些点, 总
线型引脚可与有序总线相连。 属性即符号、 引脚或网
线的特性, 能够说明适配器将如何对符号进行优化。
第6章 使用Design Direct软件开发MACH器件
主要的符号类型有四种, 分别是: ① 器件符号, 即
在库文件中预先定义的或者由用户自己定义的器件符
号, 代表一定的逻辑功能, 是最常用的符号类型; ② 块
符号, 代表一个较低层次的原理图描述, 主要用于层次
化设计, 块符号可使用总线型引脚; ③ 图形符号, 用于
添加非电路性信息, 例如表格及注解等; ④ 主(Master)
符号, 用于建立标题框、 标识和修订框等, 起标识和注
解的作用。 主符号在原理图中的放置位置不能随意选
择, 而是由DD软件自动将其安放于原理图的一角。
第6章 使用Design Direct软件开发MACH器件
符号的类型不同, 所适用的操作也不完全相同。 可
以用以下三种方法中的一种来设置新建符号的类型: ①
在项目管理器中, 选择 Options > All Schematics, 在弹出
的Schematic Environment对话框中指定默认的符号类型;
② 如果没有设置默认的符号类型, 则在创建一个新符
号时, 符号编辑器会提醒加以指定; ③ 还可以用符号编
辑器Edit菜单中的Change Type命令来改变符号的类型。
第6章 使用Design Direct软件开发MACH器件
2. 创建新的符号
1) 从项目管理器中启动符号编辑器
① 在项目管理器中, 选择 Window> Symbol Editor, 会
弹出一个对话框, 提醒选择一种符号类型, 如图 6.19 所示。
② 在Symbol Type一栏中, 选择要创建的符号的类型。
③ 如果想把所选的类型作为符号编辑器启动时的默
认类型, 可单击Set As Default按钮。
④ 如果希望在以后启动符号编辑器时不弹出该对话
框, 可以解除Prompt to confirm type 选项。
⑤ 单击OK, 符号编辑器便会打开一个无标题的符号
编辑器窗口。
第6章 使用Design Direct软件开发MACH器件
图 6.19 符号编辑器的启动画面
第6章 使用Design Direct软件开发MACH器件
2) 绘制符号的图形和文字
符号的图形可由直线、 矩形、 圆、 弧等图素和固
定的文字等组合而成。 在绘制时, 有普通线(Normal)
和宽线(Wide)两种线型可供使用。 前者适用于所有
的图素, 而后者则一般用于绘制总线型引脚。 可利用
Options菜单中的Graphic Option命令来加以选择。 所有
的图素都必须画在栅格上。 可以使用Options 菜单中的
Graphic Options 命令来选用基本栅格或更为精细的二
级栅格。 具体的绘制方法如下:
第6章 使用Design Direct软件开发MACH器件
⑤ “取反”圆圈的画法。 在符号的引脚处常使用
小圆圈表示信号为低电平有效。 可选择Add >Bubble或
Add > Big Bubble命令, 而后单击所希望放置的位置, 便
可画出一个“取反”圆圈。
⑥ 放置文字。 命令是: Add > Text, 此后, 在窗口左
下角的提示行中输入文字, 再移动鼠标至目标位置并单
击左键即可。 字体大小和对齐方式等, 可以利用
Graphics Control对话框来设定。 使用INI编辑器可以改
变其默认值。
第6章 使用Design Direct软件开发MACH器件
3) 添加引脚
器件符号和块符号都必须利用引脚来将其内部电
路与外部相连接。 引脚是电气元素, 因此只能绘制在基
本栅格的交叉点处。 具体的做法是:
① 选择Add >Pin。
② 单击你想要添加引脚的地方, 便会出现一个代表
引脚的小方块。 如果该点已有引脚, 会显示错误信息。
第6章 使用Design Direct软件开发MACH器件
4) 为引脚命名
① 选择Edit >Attibute >Pin Attribute来打开引脚属
性对话框。
② 在符号编辑器中选择一个引脚, 在对话框中的相
应引脚便会高亮显示。
③ 选择Pin Name一项, 指明将修改引脚名属性。
④ 在Pin Name栏中输入引脚名并回车, 该引脚名便
会出现在对话框左边的 Names 列表中。
第6章 使用Design Direct软件开发MACH器件
⑤ 输入复合的引脚名(具体格式详见6.4.2小节),
便可将引脚定义为总线型引脚。 总线型引脚只允许出现
在块、 单元和元件符号中。
⑥ 可以重复上述②、 ③、 ④各步骤, 为多个引脚命
名, 而后, 单击右键或选择别的命令, 便可结束命名过程。
⑦ 使用Edit > Attribute > Pin Name Location命令, 可
以控制引脚名是否显示以及它与引脚的相对位置。
第6章 使用Design Direct软件开发MACH器件
5) 添加或改变引脚属性值
引脚属性是和引脚有关的特性或属性, 例如引脚名、
引脚极性和引脚编号等。 可在项目管理器中选择
Options > All Schematics, 再在Schematic Environment对
话框中选择Pin Attributes 标签, 而后规定各种引脚属性
的默认值。 利用符号编辑器可以修改各项属性的取值,
此前为引脚命名时便是采用了这种方法。 一般地, 可以
按照以下步骤添加或改变引脚的属性值:
第6章 使用Design Direct软件开发MACH器件
① 在符号编辑器中选择Edit >Attribute> Pin
Attributes , 来打开 Pin Attribute Editor 对话框, 符号引脚
会显示在对话框的左边, 如图 6.20 所示。
② 从符号上选择目标引脚, 或者从对话框的列表栏
中选择引脚。
③ 从对话框左侧的列表栏中选择待修改的属性。
④ 输入新的属性值并回车, 该属性值便被赋给所有
被选中的引脚。
第6章 使用Design Direct软件开发MACH器件
图 6.20 修改符号引脚的属性
第6章 使用Design Direct软件开发MACH器件
6) 为器件符号添加属性窗口
符号属性是和符号相关联的特性或属性, 例如
PartNum、 InstName、 Width和Type等。与引脚属性类
似, 可利用Schematic Environment对话框来指定这些属
性的默认值, 并可在原理图编辑器或层次化导引器中利
用Attribute 命令来修改其属性值。
属性窗口是在符号或引脚上或其附近预先定义的
一个区域, 有关的属性值在该窗口中显示。 可按以下步
骤为器件符号添加属性窗口:
第6章 使用Design Direct软件开发MACH器件
① 选择 Options > Graphic Options, 打开Graphic
Options对话框。
② 根据需要, 为属性窗口中的文字设定相应的设
置, 然后关闭该对话框。
③ 选择 Edit > Attribute > Attribute Window, 打开
Attribute Window对话框, 其中包含当前所有的具有窗口
编号的属性。
④ 从列表中选择你想编辑的属性, 该属性名便会
“粘”在光标上。
⑤ 在符号上(或附近)预期的位置单击左键, 放
置符号的属性窗口。
第6章 使用Design Direct软件开发MACH器件
7) 检查和修改符号中的错误
要检查一个符号是否存在错误, 可以选择 DRC>
Consistency Check, 符号编辑器会自动进行一致性检查。
在检查完毕时, 会将错误报告写入一个文件并显示出来。
单击所显示的某一个错误, 符号中对应的出错部分便会
被高亮度地显示出来。 改正错误后, 可重复上述“检
查—修改”过程, 直到不再出现错误报告为止。
第6章 使用Design Direct软件开发MACH器件
8) 保存符号
在符号编辑器中选择 File > Save, 便会弹出一个对
话框, 提示你输入文件名, 扩展名则自动取为 .sym。 此
时, 你还可以改变保存符号的目录, 而后点击“保存(s)”
按钮即可。 选择 File > Save As, 可以将正在编辑的符
号用新的文件名保存。
第6章 使用Design Direct软件开发MACH器件
6.4.5 使用库管理器
DD软件所使用的符号库分为两种类型: 文件夹型
库, 就是包含符号文件(.sym)的简单目录; 二进制库,
是一个以 .lib为扩展名的压缩文件, 其中也可以包含许
多不同的符号, 而所占用的磁盘空间相对较小。 可使用
Windows系统的文件管理器或浏览器管理文件夹型库,
而二进制库则只能使用库管理器来进行管理, 包括浏览
库中包含的符号, 向库中添加新的符号, 对库中已有的
符号进行删除、 复制或改名操作等。
第6章 使用Design Direct软件开发MACH器件
图 6.21 库管理器窗口
第6章 使用Design Direct软件开发MACH器件
在项目管理器中选择: Window > Library Manager,
便可启动库管理器, 如图 6.21 所示。此后, 可进行以
下操作:
1) 生成一个新的符号库
选择 File > New来打开一个新的库管理窗口, 而
后选择 File > Save As, 按输入的文件名将新建的“空”
库保存。
第6章 使用Design Direct软件开发MACH器件
2) 设置库文件的搜索路径
① 在项目管理器中, 选择 Options > All Schematic,
打开INI 编辑器(Schematic Environment 对话框), 接
着单击 Symbol Paths 选项标签, 如图 6.22 所示。
② 单击Browse, 找到待添加的库, 其路径显示在
Path栏中。
③ 单击Add, 将该路径添加到符号库搜索路径中。
④ 你也可以使用对话框中的其它按钮, 从路径列表
中删除路径, 或者改变各路径的排列顺序(即搜索的顺
序)。 可利用这种方法将新建的库加入到搜索路径中。
第6章 使用Design Direct软件开发MACH器件
图 6.22 设置库文件的搜索路径
第6章 使用Design Direct软件开发MACH器件
3) 打开已有的符号库。 在库管理器中, 有三种方
法来打开符号库:
① 选择 File > Open from Search Paths, 可以打开包
含在搜索路径内的库, 二进制库和文件夹型库均可。
② 选择 File > Open, 可以打开不包含在搜索路径
内的二进制符号库。
③ 选择 File > Open Folder, 可以打开不包含在搜索
路径内的文件夹型符号库。
第6章 使用Design Direct软件开发MACH器件
4) 从二进制库中抽取符号文件
① 打开包含待抽取的符号的二进制库(.lib), 在
其库管理窗口的符号列表栏中选择该符号。
② 选 择 Edit > Extract Symbol(s), 打 开 Extract
Symbols对话框。
③ 输入一个路径, 或者单击Folder按钮来浏览和选
定一个路径, 抽取出的符号文件将保存在该路径下。
④ 单击OK, 库管理器便会将该二进制库中所选的
符号复制到指定的文件夹库。
第6章 使用Design Direct软件开发MACH器件
5) 向二进制库中添加符号
① 打开你想要将符号添加进去的那个库。
② 选择 Edit > Add Symbol(s), 会弹出Add Symbols
to Library对话框, 如图 6.23 所示。
③ 找到含有符号文件的文件夹, 并在其中选择希
望 添 加 的 符 号 文 件 。 在 选 择 过 程 中 按 住 Shift 键 或
Control键不放, 便可以同时选择多个文件。
④ 单击Open , 库管理器便会将你所选中的符号复
制到当前库中。 被复制的符号文件仍然存放在原处, 可
以利用文件管理器等将其删除以节省磁盘空间。
第6章 使用Design Direct软件开发MACH器件
6) 将二进制库中的符号复制到文件夹库或另一个
二进制库中
① 打开需要复制的符号所在的库, 并且从中选择该
符号。
② 选择 Edit > Copy Symbol(s), 打开Copy Symbol对
话框。
③ 输入文件夹库或二进制库的路径, 或者单击
Folders或Libraries按钮来浏览和选定该路径。
④ 单击OK, 库管理器便会将所选的符号复制到指
定的库中。
第6章 使用Design Direct软件开发MACH器件
图 6.23 向二进制库中添加符号
第6章 使用Design Direct软件开发MACH器件
7) 从库中删除符号
① 打开需要删除的符号所在的库, 并且从中选择该
符号。
② 选择 Edit > Delete Symbol(s)或者按Delete 键, 库
管理器便会从当前的库中删除所选的符号。
此外, 还可以选择Edit > Rename Symbol来为符号重
新命名, 选择Edit > Properties来查看符号的属性, 等等。
第6章 使用Design Direct软件开发MACH器件
6.5 编
译
所谓编译, 就是将所输入的设计描述转换成对应的
布尔方程, 供此后的仿真和适配等程序使用。 通常, 对
一项设计的编译涉及到设计输入之后的多个处理步骤,
包括对各个源文件或整个设计的编译和优化。
第6章 使用Design Direct软件开发MACH器件
6.5.1 编译处理的流程
项目管理器需要对每个ABEL―HDL模块、 原理
图文件和EDIF 网表分别进行处理, 以获得一个中间文
件。 这些文件稍后会被连接在一起, 用于将设计映射至
Vantis器件。 以下按照一般的执行顺序, 分别介绍对设
计进行编译时的主要处理步骤。
1. 编译逻辑描述
即对ABEL―HDL模块、 原理图设计文件或EDIF
网表进行编译, 得到对应的逻辑描述。 对不同的设计描
述方式, 处理过程又有所不同。
第6章 使用Design Direct软件开发MACH器件
① 对ABEL―HDL逻辑的编译, 包括:
·检查和标记语法错误;
·把状态图和真值表转换成逻辑方程式;
·展开宏(Macros);
·把有集合的方程转变成不包含集合的方程式;
·使用“非”、 “与”, “或”和“异或”运算来等价地
替代其它类型的运算;
·把那些对同一个标识符多重赋值的方程式相“或”;
·进行简单的逻辑化简;
·将方程式翻译成OPEN―ABEL―2.0文件格式。
第6章 使用Design Direct软件开发MACH器件
② 对原理图逻辑的编译, 即编译原理图描述以生成
BLIF格式文件, 其中包含所有已指定的属性或特性。
以这种方法编译的原理图将只使用与器件无关的符号
库。 应注意的是:在编译原理图之前,应先进行设计规
则 检 查 ( 在 原 理 图 编 辑 器 中 选 择 DRC>Consistency
Check)。
③ 编译 EDIF网表文件, 生成包括所有已指定属性
或特性的BLIF格式文件。
第6章 使用Design Direct软件开发MACH器件
2. 语法检查
仅对ABEL―HDL模块检查语法错误。 如果有语
法错误, 会在项目记录文件中报告, 可打开该文件查看。
如果希望以编译器列表的形式来报告和查看错误, 可执
行编译器列表处理。
3. 编译器列表(Compiler Listing)
该处理将给出对源文件的编译记录。 该记录按行
号显示所处理的ABEL―HDL文件,错误和警告信息会
出现在对应的语句行下面。
第6章 使用Design Direct软件开发MACH器件
4. 编译得到的逻辑方程式
该项处理可显示编译器对ABEL―HDL文件、 原
理图或EDIF网表进行编译后产生的逻辑方程式。 这些
方程以“积之和”的形式显示。 正逻辑和负逻辑的方
程均被列出。 此外, 还总结了每个信号涉及的乘积项和
扇入、 扇出个数。
5. 信号交叉索引
仅适于EDIF网表, 细节略。
第6章 使用Design Direct软件开发MACH器件
6.5.2 与编译处理有关的选项
许多处理步骤都具有可由用户指定的处理选项。
这些选项包括编译器选项(如自定义参数)和优化选
项(如节点瓦解)。 按照以下步骤, 便可查看当前待处
理对象的属性或为其设置新的属性值:
① 在项目管理器的源窗口中, 选择一个你感兴趣的
源文件。
② 在处理窗口中, 选择 (不要双击)一个带有属性的
处理步骤。 这时, 处理窗口下方的Properties(属性)
按钮便被激活。
第6章 使用Design Direct软件开发MACH器件
③ 单击Properties按钮, 便可打开属性对话框, 其中
列出了与当前选定的源文件和处理步骤有关的属性和
适用于这些属性的选择项。 每一行的左边是属性名, 中
间是该属性的类型, 右边是所支持的格式。 所选的源文
件、 处理步骤或目标器件不同, 列出的属性和选择项也
不同。 点击Help按钮可以看到对选定属性的详细描述。
第6章 使用Design Direct软件开发MACH器件
④ 如要修改某一属性的值, 应先单击该属性所在
行, 然后点击文本框(在属性菜单的顶部)右边的向下箭
头“↓”, 从下拉的选项列表中选择所需的选项。 或者,
双击该属性所在行的“选项域”(右边), 可以循环地
选取所有可能的选项。 对于文本格式的属性, 可单击文
本框并输入你希望采用的文字。 要将所输入的文字赋
给属性, 需点击靠近文本框的绿色标记“ ”。
⑤ 最后, 点击Close按钮关闭对话框。
第6章 使用Design Direct软件开发MACH器件
6.5.3 编译源文件
1. 编译源文件
① 在项目管理器源窗口中, 选择一个需要编译的
源文件。
② 在处理窗口中, 双击Compile Logic(或Compile
Schematic, Compile EDIF)。 DD 软件便会编译你所选
定的源文件, 并用绿色的“
”来指示编译已成功完成。
③ 重复以上两步, 编译其它的源文件。
第6章 使用Design Direct软件开发MACH器件
2. 编译源文件并自动地打开报告
① 在项目管理器源窗口中, 选择一个需要编译的源
文件。
② 在处理窗口中, 双击一个以报告作为输出的处理
步骤。 DD软件会编译源文件, 并自动打开报告阅读器
显示编译结果文件, 如图 6.24 所示。 如果ABEL―HDL
源文件中含有语法错误, DD软件会在阅读器窗口中显
示错误信息, 同时处理窗口中会显示错误标记。
第6章 使用Design Direct软件开发MACH器件
图 6.24
编译源文件并查看结果
第6章 使用Design Direct软件开发MACH器件
6.6 方 程 式 仿 真
方程式仿真是在编译完成之后和选择具体的目标
器件之前, 利用设计者提供的测试向量, 对所设计的逻
辑电路或方程进行仿真。 具体地说, 就是将测试向量中
规定的输入组合或序列作用于所仿真的电路, 并将仿真
的输出同测试向量中规定的输出值进行比较, 如果有任
何差异都将给出具体的错误提示。 这种仿真与器件的
实际特性(如延时等)无关, 因而又称为功能仿真。
第6章 使用Design Direct软件开发MACH器件
6.6.1 方程式仿真的流程
在进行方程式仿真时, 仿真器首先使用第一条测试
矢量, 并根据其输入部分的要求对内部寄存器做必要的
设置。 然后, 仿真器依次计算由测试矢量得到的乘积项、
由乘积项得到的或门输出、 由或门输出得到的宏单元
输出以及反馈函数等, 计算的结果被写入 .sim文件。 对
设
计中带有反馈的输出, 可能需要连续做几次计算,
直到输出稳定为止。
第6章 使用Design Direct软件开发MACH器件
在计算完反馈路径之后, 由于此前已计算过乘积项, 仿
真器将检查设计(电路)中有无变化发生。 如果由于
反馈而发生了任何的变化, 都将重新进行计算。 这一过
程将重复进行, 直到检测不到任何的变化或者重复次数
达到了20次为止。 如果反复运行20次后仍有变化, 则认
为该设计是不稳定的并给出一个错误提示, 否则会将计
算出的输出值与测试矢量规定的输出值进行比较。 对
每一条测试矢量都要进行上述的“加载—计算—评估”
过程。 最后, 将输入向量、 计算得到的输出、 评估结
论以及错误信息等写入文件保存。
第6章 使用Design Direct软件开发MACH器件
6.6.2 进行方程式仿真
1. 准备测试向量
在进行方程式仿真之前, 必须建立ABEL―HDL测
试向量。 可以将测试向量包含在ABEL―HDL 源文件
中, 由项目管理器建立一个“假”测试向量文件(.abv)。
也可以建立独立的测试向量文件, 使用这种方式可以缩
短处理所需的时间。 具体的测试向量格式和建立方法
等, 已经在6.3节中做过详细介绍, 此处不再重复。
第6章 使用Design Direct软件开发MACH器件
还需要提醒的是, 方程式仿真完全依赖于测试向量, 它
只考察测试向量中包含的输入、 输出信号在所规定的
输入组合或序列下的情况, 对未规定的信号和组合不予
考虑。 因此, 所编写的测试向量必须完备(包含所有你
关心的情况)而且正确, 测试向量文件必须使用与顶层
模块相同的文件名。
第6章 使用Design Direct软件开发MACH器件
2. 调用方程式仿真器
① 在源窗口中, 选择测试向量文件(.abv)。
② 在处理窗口中, 双击Simulate Compiled
Equations(仿真编译过的方程式)处理项, 开始仿真。
第6章 使用Design Direct软件开发MACH器件
3. 对仿真报告进行控制
报告和跟踪的类型以及端点使你能控制仿真所提
供的信息的数量。 仿真可以只提供简单的错误信息, 指
出哪些实际的输出与你所期望的输出不符, 也可以给出
关于仿真过程中内部寄存器的状态和乘积项等的详细
信息。 将Report Type属性设置为None并进行仿真, 便
可以判断是否有错误存在(见图 6.25)。 如果有, 则可以
选用更详细的报告和跟踪类型以增加仿真所提供的信
息量, 直到你有充足的信息来排除错误。
第6章 使用Design Direct软件开发MACH器件
图 6.25 选择仿真报告的类型
第6章 使用Design Direct软件开发MACH器件
1) 仿真跟踪的等级
DD软件共有三种跟踪等级可供选用:
① 简短型(Brief)。 按该选项产生的仿真报告,
对寄存器型设计将给出每个时钟周期的仿真结果, 对组
合型设计只给出稳定的仿真结果。
② 时钟型(Clock)。 按该选项产生的仿真报告,
将针对每条测试向量给出每个时钟周期(时钟由0变为
1再变回 0)的仿真结果。 该选项与宏单元跟踪选项相
配合, 对调试带有反馈的电路非常有用。
第6章 使用Design Direct软件开发MACH器件
③ 详细型(Detailed)。 按该选项产生的仿真报告,
将给出当前所仿真的“积之和”逻辑电路中各个层次
的仿真结果。 该选项对调试复杂的逻辑电路非常有用。
为了能在波形浏览器中看到时钟波形, 必须将Trace
Type属性设置为Detailed, 这也是该属性的默认值。
第6章 使用Design Direct软件开发MACH器件
2) 仿真的输出格式
Report List(报告列表)属性使设计者可以选择仿
真结果的显示格式。 DD软件支持下列格式:
① 空白(None)。 即不产生仿真输出信息, 也就
是不产生仿真输出而只报告每条测试向量通过(Pass)
或是未通过(Fail)。
② 表格(Tabular)。 此选项是默认格式, 它给出
一张信号电平表, 其中以H、 L和Z分别表示逻辑高、
逻辑低和高阻状态。
第6章 使用Design Direct软件开发MACH器件
③ 引脚(Pins)。 逐条显示实际的信号输出和对
应的测试向量(输入部分、 输出部分各占一行)。
④ 宏单元(Macro―cell)。 所提供的信息与表格
形式所提供的相似, 但增加了如或门输出、 触发器输出
和最终输出等内部电路信息。
第6章 使用Design Direct软件开发MACH器件
6.6.3 波形浏览器
波形浏览器可将仿真的结果以时间曲线(波形)形式
显示, 并且: 可以使用交互方式, 从原理图中选取需要显
示波形的那些网络; 可以使用查询(Query)功能, 由信
号找到其在原理图中的对应来源; 可以使用触发功能,
确定特定逻辑事件的发生位置; 可以利用“查询”光标
来测量各事件之间的时间延时。
第6章 使用Design Direct软件开发MACH器件
1. 波形浏览器的界面
波形浏览器通常和仿真器配合使用, 在运行波形浏
览器之前, 必须先运行仿真器。 因此, 可按照前面介绍
的步骤, 通过运行仿真器来“打开”波形浏览器。 在仿
真完成后, 波形浏览器便会显示仿真的波形。
第6章 使用Design Direct软件开发MACH器件
如图 6.26 所示, 典型的波形浏览器窗口主要由以下
几部分组成: ① 标题栏。 位于窗口的顶部, 显示有当前
设计的名字。 ② 菜单栏。 ③ 波形名显示区。 位于窗
口的左侧, 显示当前所浏览的信号的名称, 带有水平滚
动条。 ④ 波形显示区。 位于窗口的右侧, 顶部带有时
间刻度。 可以使用水平滚动条来选择所关心的时间段,
使用垂直滚动条来选择在窗口内显示哪些信号的波形。
第6章 使用Design Direct软件开发MACH器件
⑤ 提示行。 位于窗口的左下角, 所显示信息包括:
“查询”光标所在位置对应的时间; 当前所选定波形
(其名字被高亮度地显示)在该光标位置处的逻辑电
平, 按照仿真器所支持的格式显示, 对总线值则按当前
选定的数制来加以显示; 如果定义了触发条件, 还会显
示当前触发条件是否满足(True /False)。
第6章 使用Design Direct软件开发MACH器件
图 6.26 利用波形浏览器查看仿真结果
第6章 使用Design Direct软件开发MACH器件
2. 选择需要显示的波形
波形是状态转换的图形化表示。 波形浏览器最基
本的操作是加入需显示的波形:
① 当波形浏览器与层次化导引器配合使用时, 可使
用Probe Item命令来加入波形:
·在层次化导引器中, 选择 Edit > Probe Item;
·单击需要显示的网线, 为该信号加上“探针”, 则
该网线所对应的波形会被加入到波形浏览器中。 需要
注意的是: 对总线型信号, 必须在包含该总线信号的所
有原理图中最高的一层中为其加上“探针”。
第6章 使用Design Direct软件开发MACH器件
② 如果波形浏览器在启动时找到了上一次执行时
所保存的配置文件 (.WAV文件), 则可使用Show命令来
加入指定的波形:
·在波形浏览器中, 选取 Edit > Show来打开波形显
示对话框, 如图 6.27 所示;
·单击网表中待显示的信号名, 选取一个需加入的
波形;
第6章 使用Design Direct软件开发MACH器件
·也可利用Shift和Control键和鼠标相配合, 一次选
择多个信号;
·点击Show按钮, 所选的网线的波形便会出现在波
形浏览器中。 总线的各分量则会被自动地结合成单个
波形显示。
第6章 使用Design Direct软件开发MACH器件
图 6.27 用Show命令加入波形
第6章 使用Design Direct软件开发MACH器件
图 6.28 在整个设计中查找信号并显示
第6章 使用Design Direct软件开发MACH器件
③ 在整个设计中查找需要显示的信号:
·选择Hierarchical Name List命令后, 会弹出一个
“层次化信号名列表”对话框, 如图 6.28 所示;
·左列表框最初显示的是最顶层, 单击Push按钮可
显示在顶层以下的较低层次 (如果有的话);
·要进入一个较低的层次, 可在列表框中选中该层
次, 然后点击Push按钮, 便会在列表框的下方显示当前
层次完整的层次化路径;
第6章 使用Design Direct软件开发MACH器件
·当前层次中包含的所有信号都会显示在右列表框
中。 要将某个信号加入到显示中, 可以单击该信号名再
点击Add Wave按钮, 或者直接双击该信号名, 该信号的
波形便会立即出现在波形浏览器中。
第6章 使用Design Direct软件开发MACH器件
3. 对波形进行编辑和转换
1) 移动波形, 以便作为参考或与别的波形进行比较
① 在波形浏览器中, 点击需要移动的波形名。
② 在按下左键的同时移动鼠标, 将波形名“拖”到
新的显示行后放开左键, 则该波形会显示在新的位置上。
第6章 使用Design Direct软件开发MACH器件
2) 将多个波形“合并”, 以总线形式显示
① 在波形浏览器中, 选取 Edit > Show, 打开Show
Waveforms对话框。
② 点击Bus按钮, 展开该对话框。
③ 在展开后的对话框中, 点击New Bus按钮并输入总线名。
④ 单击一个需要并入总线上的信号, 然后点击Add Net(s)
按钮, 将该信号加入到总线成员列表中。 重复这一步骤,
直到将所有需要并入的信号全部加入。
⑤ 点击Save Bus按钮来保存该总线定义。
⑥ 点击Show按钮, 则该总线波形将出现在波形浏览器中。
第6章 使用Design Direct软件开发MACH器件
3) 展开总线显示, 即分别查看(而不能编辑)总
线信号各分量的波形
① 在波形浏览器中, 选择需要展开总线波形。
② 选择 Edit > Expand Bus, 便可看到所选总线信号
各分量的波形。
4) 改变总线显示所用的数制
① 选择 Options > Bus Radix, 打开Bus Radix对话框。
② 选择所需的数制: Binary(二进制)、 Octal
(八进制)、 Decimal(十进制)或Hex(十六进制)。
第6章 使用Design Direct软件开发MACH器件
5) 改变波形显示的比例和时间段
可使用View菜单中的命令: Zoom In——放大波形;
Zoom Out——缩小; Pan——卷动, 选择该命令后再单击波
形显示区中的某一点, 便会将该点作为新的显示中心点;
Full Fit, 单击该命令可使所选时间段的波形完整地显示
在窗口中。 可通过单击显示区中一点或者拖动鼠标拉
出一个框, 来定义需要详细观察的时间段。
第6章 使用Design Direct软件开发MACH器件
4. 利用游标等测量时间间隔
使用游标测量时间间隔的画面如图 6.29 所示。
Jump菜单中的一些命令可以移动游标:
① Tick Left和Tick Right命令。 以一个很小的间距
左移或右移光标, 该间距将随着观察尺度的改变而改变。
可用于搜索波形或精确地定出事件发生的位置。
② 10 Left和10 Right命令。 以 10 个最小间距为单
位左移或右移光标。
第6章 使用Design Direct软件开发MACH器件
图 6.29 游标测量时间间隔的画面
第6章 使用Design Direct软件开发MACH器件
③ Time=0 和 Time=End命令。 将光标移至波形
的开始或结束处。
④ To Marker命令。 将游标移至当前标定的位置。
⑤ To Time命令。 将显示移至以输入时间为中心
的位置。
⑥ Next Change命令。 将光标移至下一个信号极
性改变的位置。
⑦ Next Trigger命令。 将光标移至下一个触发点。
第6章 使用Design Direct软件开发MACH器件
2) 放置标记
选择Place Mark命令后再点击波形中的游标, 便可
在该位置插入一条彩色的垂直虚线, 即标记。 此后, 便
会在提示行中显示该标记与游标之间的时间间隔。 显
然, 标记被作为测量时间间隔的参考点。 要放置标记:
① 选择 Object > Place Mark。
② 点击波形中的游标, 在此位置放置标记。
③ 可选取 Object > Hide Mark来隐藏 (删除)该标记。
第6章 使用Design Direct软件开发MACH器件
3) 使用Next Change命令测量事件之间的时间间
隔所谓事件, 是指逻辑电平的变化。 使用波形观察器中
的Next change命令, 可方便地发现事件并将光标移到下
一个事件处。 具体步骤如下:
① 将光标移至第一个事件之前。
② 执行Next Change命令, 便可使光标精确定位于
第一个事件。
第6章 使用Design Direct软件开发MACH器件
③ 使用Place Maker命令, 在第一个事件处放置一个
标记。
④ 将光标移至第二个事件之前, 再使用Place Maker
命令将光标移至第二个事件。 这时, 这两个事件之间的
时间间隔会显示在提示行中。
⑤ 继续使用Place Maker命令, 可以测量其它相邻事
件之间的时间间隔。
第6章 使用Design Direct软件开发MACH器件
4) 使用Next Trigger命令
使用Next Trigger命令可将游标自动移到下一个满足
触发条件的事件处, 此前, 可使用Set Trigger命令来定
义触发条件。 可供选用的触发条件主要有High(高电
平)、 Low(低电平)、 Unknow(未知态)、 Change
(跳变)和Bus=Value(总线值)等。 只有当所有波形
的条件同时满足时, 才产生触发事件。 而后, 可使用Next
Trigger命令来测量满足触发条件的两个事件之间的时间
间隔。 其执行步骤和Next Change命令相似。
第6章 使用Design Direct软件开发MACH器件
5. 对波形进行分析
1) 逻辑电平和时间的测量
如上所述, 可利用游标同时测量被选中波形在光标
处的电平和时间值, 可使用Place Maker等命令来测量一
段波形对应的时间间隔。
2) 与层次引导器交互式使用
① 使用Find Item命令可找出驱动某一个波形的那
部分电路。 引导器将自动显示相关的电原理图, 并将与
这个波形相联系的网络高亮显示。 当在波形观察器中
找到一个感兴趣的事件, 并想找出其在电原理图中的源
时, 这个命令非常有用。
第6章 使用Design Direct软件开发MACH器件
② 查询(Query)命令将高亮显示与当前选中波形有
关的网络, 如果层次引导器中的查询窗口已经打开, 它
的内容就会反映出在波形观察器中使用查询命令所得
到的网络的最新内容。
③ 当电原理图中某网线上加有探针时, Probe Item
命令会将该信号的波形增添到波形观察器中显示。
第6章 使用Design Direct软件开发MACH器件
3) 在电原理图中显示仿真结果
在仿真期间获得的逻辑值将显示在层次引导器装
载的电原理图上, 随着游标在时间轴上不同位置单击,
电原理图上的逻辑值也相应变化。 所有的逻辑值都会
被显示和更新, 而且不局限于波形观察器中所选择的波
形。 逻辑值在电原理图中以两种方式显示:
第6章 使用Design Direct软件开发MACH器件
① 在电原理图中加探针的节点后附加一个小的彩
色方块, 以方块的颜色代表逻辑值(默认值是绿色表示
高电平, 红色表示低电平, 可以用初始化编辑器来修
改)。
② 在小的彩色方框内以文字表示逻辑值, 包括0、
1、 x(未知态)、 z(高阻)或是总线信号的值(数字)。
第6章 使用Design Direct软件开发MACH器件
4) 查看报告
选择View Report命令后, DD软件会从报告文件中
读取错误信息, 然后在一个列表框中交互地显示, 一条
错误对应一行。 单击一行错误信息的左端, 所显示的波
形便会自动“跳”到发生错误的时刻。 如果与层次引
导器同时使用, 在电原理图中也会高亮显示出现问题的
网络和引脚。
第6章 使用Design Direct软件开发MACH器件
6. 保存和打印波形
① 在完成波形分析后, 可以使用File菜单中的Save
和Save As命令来保存波形观察器的配置, 包括显示波形
的名字和触发条件。
② 可以使用File菜单中的Print命令来打印所显示的
波形。
7. 波形观察器的配置
波形观察器有许多配置参数。 这些参数可通过初
始 化 编 辑 器 中 contorls 菜 单 下 的 “ wave controls” 和
“wave color”对话框来修改。
第6章 使用Design Direct软件开发MACH器件
6.7 设计适配与优化
在设计输入完成之后, 便可以利用适配器来产生用
于器件编程的JEDEC文件。 同时, 适配过程中还会产生
包含适配结果具体细节的适配报告。 了解适配的执行
过程和适配报告的具体含义, 会有助于提高适配的成功
率和得到更好的适配结果。
第6章 使用Design Direct软件开发MACH器件
6.7.1 执行适配
在进行适配之前, 一般需要选定一种实际的Vantis
器件, 作为实现所描述设计的目标芯片。选择实际器件
的具体步骤请参见6.2节。 器件选择完后, 在项目管理
器源窗口中选中该目标器件作为处理对象, 在处理窗口
中双击Fit Design一项, 便可启动适配器, 开始以下的适
配过程。
第6章 使用Design Direct软件开发MACH器件
1. 初始化
在创建项目时, DD软件便已将一个“默认约束文
件”复制到当前项目的目录下。 按照该文件中的默认
设置, 大多数的设计都能够一次适配成功。 在整个适配
过程中, 适配器都会根据该约束文件中的设置, 进行相
应的处理。 如果需要, 设计者应当在启动适配器之前修
改这些默认的设置, 以获得更好的适配
结果。
第6章 使用Design Direct软件开发MACH器件
2. 优化
在适配过程的优化阶段, 将按照约束文件中的设置,
进行时钟分配、 逻辑划分、 布局和布线等方面的优化
处理。
1) 资源检查
资源检查即调入有关所指定器件内部结构的信息,
对当前设计所需的资源进行检查。 如果设计所需的资
源如乘积项、 宏单元、 时钟、 置位、 复位和输出使
能等, 超过了器件所能提供的数量, 将会报告错误。
第6章 使用Design Direct软件开发MACH器件
2) 时钟分配
时钟分配将各时钟信号区分为全局时钟和非全局
时钟两类, 并尽量将所有的全局时钟信号放置在“全局
时钟引脚”上。 如果所选器件的结构支持乘积项时钟,
适配器会为其它的时钟信号分配I/O 引脚和利用乘积项
来实现。 在优化期间, 还会将那些已定义但未被引用
(即没有被另一个方程式使用)的引脚和节点从设计中
剔除并产生警告信息。 在优化完成后, 可以通过检查项
目日志(.log文件)来查看所有时钟信号的类型和分配
结果。
第6章 使用Design Direct软件开发MACH器件
3. 逻辑划分
首先, 考虑以下各种因素, 将逻辑设计划分为多个
小“块”, 指定每个小“块”由MACH器件的一个PAL
块来实现:
① 单个信号的预布局(Preplacements) 和信号分组
情况。
② 每个PAL块中可利用的内部资源(空余的宏单元、
乘积项、 时钟信号, 等等)。
第6章 使用Design Direct软件开发MACH器件
③ 每个PAL块可利用的开关矩阵互连资源。
此后, 将考虑信号的共享可能性和宏单元、 置/复
位信号及乘积项的需要量以及其它因素, 确定哪一种划
分最有可能成功地适配。 仅对那些最有可能成功的划
分(依据划分规则来认定)进行尝试。
第6章 使用Design Direct软件开发MACH器件
4. 布局和布线
布局, 是将PAL资源, 如I/O引脚、 异或、 触发器和
乘积项簇等, 分配给各逻辑方程式使用:
① 首先为那些已被预先指定引脚的信号的逻辑方
程式分配资源。
② “隐埋”(不与引脚连接)的逻辑函数被放置
在余下的未使用的宏单元中。
③ 输入信号被分配给任何可用的引脚, 包括专用输
入引脚、 时钟/输入引脚以及那些尚未使用或用于实现
“隐埋”逻辑函数的宏单元对应的I/O引脚。
第6章 使用Design Direct软件开发MACH器件
④ 输出信号可被分配给任何未使用的 I/O引脚。
布线, 是在布局完成后, 将开关矩阵互连资源分配
给各逻辑方程式使用。 适配器会尝试 将输入、 输出
和反馈信号与在布局阶段为它们分配的物理资源相连
接。 如果适配器不能布通所有的连线, 它将会尝试另一
种布局, 并根据新的布局尝试各种不同的布线路径。 如
此重复,直到找到成功的适配或者超过了规定的适配时
间(次数)。
第6章 使用Design Direct软件开发MACH器件
图 6.30 设置适配报告的格式
第6章 使用Design Direct软件开发MACH器件
5. 生成适配报告
适配报告中给出了当前设计适配过程的有关信息和
统计结果, 包括利用率、 引脚分配结果等。 在适配之前,
可通过对不同的适配报告选项的设置, 来控制适配报告所
包含的信息:
① 在项目管理器中, 选择 Tools > Fitter Report File
Format, 打开适配报告选项对话框, 如图 6.30 所示。
② 缺省设置是选中所有项。 可通过单击来取消对某
些项目的选择, 以使相应的信息不再出现于适配报告中。
③ 单击OK, 保存选择结果。
第6章 使用Design Direct软件开发MACH器件
6.7.2 查看和使用适配的结果
1. 查看适配报告
要查看适配报告, 可以在项目管理器源窗口中选中
目标器件, 再在处理窗口中双击Fitter Report(适配报
告), 便会在报告浏览器中打开并显示当前设计的适配
报告。 适配报告的内容主要包括:
① 项目总结。 包括项目名、 存放位置(目录)、
编译日期以及所选用的目标器件和封装形式、 设计源
文件的格式等。
第6章 使用Design Direct软件开发MACH器件
② 编译时间。 报告完成本次适配所花费的时间,
列出每个处理步骤的名称和所花费的时间。
③ 设计总结。 报告有关设计的统计信息, 例如输
入、 输出、 触发器和乘积项的个数等。
④ 器件资源总结。 列出器件中可用的全部资源,
并报告当前设计使用了多少资源, 还剩余多少资源以及
器件资源利用的百分比。
⑤ 块资源总结。 逐个PAL块列出所有的资源, 包
括I/O引脚、 宏单元和乘积项簇。 首先报告每个PAL块
中某种资源的最大数目, 然后报告有多少已被使用。
第6章 使用Design Direct软件开发MACH器件
⑥ 优化和适配选项。 显示适配过程所用到的所有优
化和适配设置, 包括诸如忽略约束、 所选用的触发器综合
类型等。
⑦ 引脚列表。 列出设计中所有的输入、 输出和时
钟信号, 并报告在器件中为它们所分配的位置。 对每个信
号, 列出了引脚编号、 引脚类型、 所使用的PAL块, 并且
注明哪些引脚已被预先指定位置。
⑧ 信号列表。 逐一报告各信号(包括输入、 输出、
双向和隐埋信号)的类型、 被分配的位置及其它信号属性。
第6章 使用Design Direct软件开发MACH器件
⑨ 块逻辑阵列扇入(Fanin)。 报告各信号在器
件的内部是如何分布的, 即各个信号被放置在哪个PAL
块的哪个宏单元中。
10
预适配方程。 报告当前设计中经过优化的各
个逻辑方程。
第6章 使用Design Direct软件开发MACH器件
2. “标注”分配结果
在适配成功地完成之后, 设计者可利用Constraints
Options(约束选项)对话框中的Backannotation标签,
将适配结果“标注”在当前设计的源文件中。 这一特
性使设计者能够保留由适配器产生的分配结果, 以便用
于将来的适配过程。 具体步骤如下:
① 在项目管理器中, 选择 Tools > Backannotate
Project Assignments , 打 开 约 束 选 项 对 话 框 , 点 击
Backannotation标签, 如图 6.31 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.31 “标注”分配的结果
第6章 使用Design Direct软件开发MACH器件
② 在位置分配(Location Assignment)一栏中, 共
有Pin Asssignment(仅标注引脚分配结果)、 Pin and
Block Assignments(标注引脚和块的分配结果)和Pin
Block and Macrocell Assignment(标注引脚、 块和宏单
元的分配结果)三种选择项, 从中选择所需的一种选项。
第6章 使用Design Direct软件开发MACH器件
③ 单击Apply按钮, 会弹出一个提示框, 提醒你如果
执行所选定的“标注”, 将会取消现有的引脚指定。 可
单击Yes按钮加以确认。 除此之外, 还可利用适配所产
生的JED文件对器件进行编程。 有关的具体步骤等将
在 6.9 节中详细介绍。
第6章 使用Design Direct软件开发MACH器件
6.7.3 设计优化方法
如前所述, DD软件允许设计者利用约束编辑器等
设置用于适配的优化选项, 其目的是在可能的情况下使
需要采用的器件规模最小, 而所获得的性能最高。 下面
介绍主要的优化选项及其设置方法。
1. 全局优化选项
利用全局优化对话框, 可以为适配器设置全局优化
选项。 共有以下三种全局优化选项:
第6章 使用Design Direct软件开发MACH器件
① Pack Design(设计集中)。 对于大多数设计而
言, 如果该选项被选用, 适配器会将尽可能多的逻辑
“塞进”器件中, 以便在尽可能小的器件中利用尽可能
多的空间。 各个块可能会被完全地利用, 为以后可能进
行的设计修改和添加所预留的资源很少。
第6章 使用Design Direct软件开发MACH器件
② Spread Design(设计分散)。 如果该选项被选
用, 适配 器会将逻辑散布在整个器件中, 而不是试图去
尽可能地填满每个块中所有的可用空间。 该选项能够
使设计者在获得高性能的同时, 为未来可能的逻辑添加
工作预留更多的空间。 由于每个块都未被完全利用, 所
以需要较大规模的器件来实现成功的适配。
第6章 使用Design Direct软件开发MACH器件
③ Advanced Options(高级选项)。 支持对划分
和布局算法分别进行控制, 它又包括两种优化选项:
Balance Partitioning(平衡划分)。 即面向器件中的所
有PAL块, 将设计均匀地进行划分, 所以每个PAL块都将
使用同样多的资源。 如果不选该项, 软件将按PAL块的
最大空间来分割设计, 这样, 有些PAL块将被完全填满,
而另一些则可能完全未用到。
第6章 使用Design Direct软件开发MACH器件
Spread Placement(均匀布局)。 即将信号均匀地
布局或者分散放置于PAL块的 各个宏单元中。 可使用
该选项对PAL块中“现存”的输出和节点信号进行小的
调整。 如果不选该项, 软件会将信号分配给第一个可用
的宏单元中, 更易于往PAL块中添加新的输出或节点信
号。
要设置全局优化选项, 可在项目管理器中选择 Tools
> Global Project Optimization, 打开全局优化对话框, 如
图 6.32 所示。 而后, 单击Global Optimization标签并选
择所需的全局优化选项, 再单击Close按钮, 即可将选择
结果存入约束文件。
第6章 使用Design Direct软件开发MACH器件
图 6.32 设置全局优化选项
第6章 使用Design Direct软件开发MACH器件
图 6.33 设置逻辑综合选项
第6章 使用Design Direct软件开发MACH器件
2. 逻辑综合选项
同样, 打开全局优化对话框并单击Logic Synthesis
标签后, 便可对逻辑综合选项进行设置, 以规定在逻辑
划分之前如何对逻辑函数进行优化。 如图 6.33 所示,
逻辑综合主要有以下几种选项:
① Boolean Logic Reduction。 选择该选项后, 即允
许消去每个逻辑方程式中多余的乘积项。 除了有意保
留方程中的多余的乘积项外(如为了消除竞争冒险),
一般应选择该项。
第6章 使用Design Direct软件开发MACH器件
② D/T Synthesis。 选择该选项后, 将允许自动选
用D型或T型触发器以减少乘积项的数量。 一般应选择
该项。
③ Node Collapsing(节点分解)。 该选项允许适
配器将中间的组合型节点分散在触发器和输出引脚上,
这样可以得到较高的工作速度。 它又包括两种下属选
项: Collapse All Nodes(尽可能多地分解节点, 以提高
速度)和Collapse Selective Nodes(有选择地分解节
点)。 如果设计中使用了组合门电路进行描述或综合,
必须选择该项, 其它情况下一般也应选择该项。
第6章 使用Design Direct软件开发MACH器件
④ Product Term Collapsing(乘积项分解)。 为数
字量, 规定在对节点进行分解时, 一个方程式中容许有
多少个乘积项可以被分解。 要达到最高的工作速度, 对
MACH 4系列器件, 该项取值应为20; 对MACH 5系列器
件, 该项取值应为32。 对于包含多个乘积项的方程式,
降低该数值可以提供适配的成功率, 但工作速度会相应
降低。
第6章 使用Design Direct软件开发MACH器件
⑤ Product Term Equation Splitting(乘积项方程式
分裂)。 也是一个数字量, 规定一个方程式中包含的乘
积项超过多少项时, 便可将其分裂成多个较小的方程式,
利用多个宏单元来实现。 降低该项的取值, 可以使逻辑
分布更均匀, 也就更容易适配成功, 代价是工作速度会
相应降低。
除此之外, 还有仅用于MACH 1、 2系列器件的
Set/Reset Don't Care(不对置/复位信号特殊对待)和仅
用于MACH 4、 5系列器件的Input Register Optimization
(输入寄存器优化)等选项, 此处不再详细介绍。
第6章 使用Design Direct软件开发MACH器件
3. 资源利用率选项
利用该选项, 可以规定每次适配时最多允许利用的
器件资源的百分比。 可以在初次适配时指定较小的资
源利用率并“标注”管脚的分配结果, 以后在修改设计
时再增加该选项的数值。
要设置该选项, 应先打开全局优化对话框, 点击
Utilization Options 标 签 , 而 后 分 别 设 置 Max. % of
macrocells per block used(每个块可用宏单元的百分
比)、 Max. % of block
inputs used(每个块可用输
入端的百分比)等选项, 最后点击Apply按钮即可。
第6章 使用Design Direct软件开发MACH器件
4. 预先规定引脚的位置
在一般情况下, 不需要预先规定信号和器件引脚的
对应关系, 而是交由DD软件自动分配。 但在可编程器
件和印制电路板同时设计, 或者对已装配的电路进行修
改时, 便需要人工地指定引脚。 在选定具体的目标器件
后, 可以按照以下步骤来指定引脚:
① 在项目管理器的源窗口中, 选择目标器件(Target
Device)。
② 在处理窗口中, 双击Constraint Editor一项, 打开
约束编辑器, 如图 6.34 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.34 指定引脚的位置
第6章 使用Design Direct软件开发MACH器件
③ 选择 Edit > Location Assignmen, 打开Location
Assignment对话框。 在其中的Signals Lists窗口中, 将
显示由Filter选项所确定的信号。
④ 在Filters一栏中, 根据需要选取一个或多个过滤
器(即信号类别)。
⑤ 在Signals Lists窗口中, 选取一个需要预先指定
引脚的信号。
⑥ 在Assignments一栏中, 输入或选取你希望与该
信号相关联的引脚或宏单元。
⑦ 点击Add按钮, Location Assignment窗口会立即
更新, 表示这一指定已经被接受。
第6章 使用Design Direct软件开发MACH器件
⑧ 可重复以上第④至第⑦步, 为其它需要的信号
分别指定引脚。
⑨ 最后, 单击OK按钮, 将关闭该对话框并更新约
束文件。
在上述过程中, 还可将所选定的输入、 输出信号
和节点分配到一个特定的PAL块中, 而又无须指定具体
的宏单元或管脚, 具体步骤可在“在线帮助”信息中找
到。 除了上面介绍的主要选项以外, 还可利用约束编辑
器将信号分组(选择 Edit > Group Assignment),
第6章 使用Design Direct软件开发MACH器件
修改自动分配的结果(在Location Assignment对话框中,
双击需要修改的分配结果), 设置器件的功耗等级(点
击工具条中的Pwr图标), 控制MACH4和MACH 5系列
器件的摆速(点击工具条中的Slew图标)等, 具体细节
可参阅“在线帮助”中的有关内容。
第6章 使用Design Direct软件开发MACH器件
6.8 静态时序分析
静态时序分析, 就是通过计算电路中每条信号路径
上的总的传输延时来验证电路的定时性能。 在DD软件
环境中, 可利用性能分析器(Performance Analyst), 以
交互方式对利用MACH器件实现的逻辑电路进行静态
时序分析。
第6章 使用Design Direct软件开发MACH器件
① fmax 。 即最高工作频率, 由最坏情况下的触发
器——触发器延时所决定。 对设计中所包含的每个时钟
信号均进行该项分析, 但用户可以规定需要报告哪些时
钟信号的分析结果以及是否对所有的有关路径进行跟
踪。 所给出的fmax 仅考虑了电路内部的延时, 用户应根
据电路的工作要求来自己确定外部时钟的最高频率。
第6章 使用Design Direct软件开发MACH器件
② tSU 。 即信号建立和保持时间。 该项分析将报告
数据和时钟使能信号所需的建立和保持时间(相对于时
钟的边沿), 或者从S/R输入到触发器恢复所需的时间。
可指定是否对D/T、 CE或S/R输入端进行跟踪。
③ tpd 。 即传输延时时间。 该项分析将报告各组合
信号从输入引脚至输出引脚这一段路径上的传输延时。
第6章 使用Design Direct软件开发MACH器件
④ tCO 。 即(受时钟控制的)输出至引脚的延时。
该项分析将报告基本输入信号经过触发器时钟或锁存
器门控信号, 最终产生基本输出这一路径上的延时。
⑤ tOE 。 即输出使能路径的延时。 该项分析将报
告基本输入信号经过输出缓冲器的使能控制, 最终产生
基本输出这一路径上的传输延时。
⑥ tCOE 。 即时钟到输出使能的时间。 该项分析将
报告基本输入信号经过触发器的时钟控制或锁存器的
门控电路, 再经过输出缓冲器的使能控制, 最终产生基
本输出这一路径上的传输延时。
第6章 使用Design Direct软件开发MACH器件
可对定时门限过滤器、 源信号与目标信号过滤器
和路径过滤器等分别进行调整, 以适应不同的分析类型。
在分析完成后, 时序分析的结果将以图形化电子表格的
形式显示, 源信号显示在纵轴上, 而目的信号显示在横
轴上。 只要在源信号和目的信号之间有一个以上有延
时的通道, 就会在相对应的一格中显示其在最坏情况下
的延时值。 只需将鼠标移至表格中对应的一格并双击
左键, 便可查看某一条路径延时的细节, 这使设计者可
以很容易地找到制约性能的“瓶颈”。
第6章 使用Design Direct软件开发MACH器件
6.8.2 执行静态时序分析
在进行静态时序分析之前, 用户必须先选定目标器件。
不能针对虚拟器件(Virtual Device) 进行时序分析。
1. 启动性能分析器
① 在项目管理器的源窗口中, 单击已选定的实际器件。
② 在处理窗口中, 双击Timing Analysis一项, 将会出现
Design Direct Process对话框, 显示该项处理的进度。
③ 如果此前尚未进行过设计适配, DD软件将会自动
启动适配器。此后, 便会打开性能分析器对话框。
第6章 使用Design Direct软件开发MACH器件
2. 设置选项和过滤器
① 在性能分析器对话框中的Type of Analysis(分析
类型)一栏, 选取希望执行的分析报告类型, 从而规定
在时序分析时性能分析器必须遵循的路径跟踪规则。
② 点击Options按钮, 打开Options(选项)对话框,
如图 6.35 所示。 所选的分析类型不同, 选项对话框也
会有所不同。
第6章 使用Design Direct软件开发MACH器件
③ 在Source Registers和Destination Registers栏中,
排除那些不需要的分析项目。 具体做法是: 在Include列
表中, 选择需要排除的项目, 而后单击“<”按钮即可。
④ 在Path Tracing Options一栏中, 选取所要使用的
路 径 跟 踪 选 项 。 对 tSU 的 分 析 , 还 可 以 选 择 终 点
(Endpoint)选项。
⑤ 点击OK按钮, 关闭该对话框。
第6章 使用Design Direct软件开发MACH器件
图 6.35 设置时序仿真的选项
第6章 使用Design Direct软件开发MACH器件
3. 进行时序分析并查看结果
① 在性能分析器对话框中, 点击Start按钮, 性能分
析器便会按照已设置的选项, 计算各路径的延时并在表
格中显示, 如图 6.36 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.36 查看时序仿真的结果
第6章 使用Design Direct软件开发MACH器件
② 如要对定时路径中的某些定时成份进行分析, 可
通过双击表格中对应的位置来打开Expanded Path对话
框, 详细查看。 如果需要, 可点击Print按钮来打印这些
路径的分析结果。 查看完毕后, 应点击OK按钮以关闭
Extended Path对话框。
③ 可通过点击工具栏中的Print图标或者选择 File >
Print, 来打印整个分析报告。
第6章 使用Design Direct软件开发MACH器件
4. 比较使用不同选项时的分析结果
可以在时序分析完成之后, 选择 File > Save As, 保
存时序分析的结果。 然后, 改变过滤器选项并重新进行
时序分析。 在分析完成后, 选择 File > Open, 打开此前
保存的分析结果, 并点击Run按钮, 与本次分析的结果进
行比较。 同样, 也可以在性能分析器对话框中, 选择
Windows > New Window, 打开一个新的定时窗口。 在
新窗口中, 改变有关的定时选项并点击Run按钮, 重新进
行一次分析。 两次分析的结果同时在两个窗口中显示,
可以很方便地进行比较。
第6章 使用Design Direct软件开发MACH器件
以上介绍了通过图形用户界面运行性能分析器的
操作方法。 除此之外, 还可以使用批处理方式进行时序
分析。 该方式需要用户利用规定的命令和格式, 编制一
个“批处理文件”。 性能分析器将按照该文件进行分
析, 分析的结果写入一个(.log)文件中。 使用这种方
式, 用户可以对分析过程进行更为精细的控制, 因而更
加灵活。 代价是需要学习专用的命令并编制“批处理
文件”。 有关细节可参阅“在线帮助”中的有关内容。
第6章 使用Design Direct软件开发MACH器件
6.9 基于硬件描述语言的仿真与综合
Vista版和Summit版的DD软件都在Base版的基础上,
加入了Exemplar Logic公司的LeonardoSpectrum综合引
擎和Model Technology公司的 ModelSim仿真软件。 新
加入的这两组软件与已有的DesignDirect 软件相结合,
除能实现Base版的所有功能外, 还可对由硬件描述语言
VHDL或Verilog―HDL描述的设计进行RTL或门级仿
真 , 综合并最终映射至CPLD芯片。 本节将以Vista版为
例, 介绍利用DD软件系统进行基于VHDL或Verilog ―
HDL描述的Vantis器件开发的基本过程。
第6章 使用Design Direct软件开发MACH器件
6.9.1 Vista版DD软件的设计流程
如图 6.37 所示, Vista 版DD软件的典型设计流程如下:
① 利用VHDL或Verilog―HDL对设计进行描述。
② 利用ModelSim仿真器对设计进行RTL仿真。
③ 利用LeonardoSpectrum综合器对设计进行综合, 利用DD
软件进行适配。
④ 利用ModelSim仿真器进行时序仿真, 验证该设计的时
序特性。
⑤ 利用VantisPRO软件对MACH器件进行编程。
第6章 使用Design Direct软件开发MACH器件
设计输入
M od el Si m
R TL 仿真
.v 或.v hd 文件
L eo na rd oS pe c tr um 综
合
E DI F文件
D es ig nD ir ec t 软件
网表文件
门级库
S DF 文件
M od el si m门级仿真
J ED EC 文件
V an ti sP RO 器件编程
图 6.37 基于VHDL或Verilog―HDL的设计流程
第6章 使用Design Direct软件开发MACH器件
与Base版的情况一样, 整个设计过程都是以项目管
理器为集成环境而展开, 对ModelSim仿真器、
Leonardo Spectrum综合器等的调用均通过项目管理器
实现。 关于项目管理器的界面和使用方法, 已在6.2节
中做过详细介绍。 同样, VHDL或Verilog―HDL形式的
设计描述的输入方法与ABEL―HDL设计描述的输入方
法非常相似, 可参见6.3节, 在此均不再重复。
第6章 使用Design Direct软件开发MACH器件
6.9.2 RTL级的功能仿真
在设计输入完成之后, 可以调用Model Sim模块对
设计进行仿真, 以验证该设计的功能。 其操作步骤如下:
① 在DD项目管理器下, 选择Tools>Model Sim
Simulator, 即可启动Model Sim的仿真器, 如图 6.38 所示。
第6章 使用Design Direct软件开发MACH器件
图 6.38 从项目管理器中调用HDL仿真器和综合器
第6章 使用Design Direct软件开发MACH器件
② 改变工作目录以进行功能仿真:
·在Model Sim的界面中, 选择File > Directory;
·通过浏览找到包含VHDL源码(.vhd)和测试基准
(.vhd)的目录;
·点OK按钮。
第6章 使用Design Direct软件开发MACH器件
③ 生成项目。 项目文件保存在当前工作目录中,
扩展名为 .ini, 用来保存该项目的设置和环境(如窗口尺
寸, 所用的库, 仿真选项等)。 建议将该项目文件命名为
Modelsim.ini, 以保证在每次打开同一设计时不必重复
装入该文件。
·在菜单栏上选择Project > New;
·键入项目文件名;
·点Create按钮。
第6章 使用Design Direct软件开发MACH器件
④ 生成工作库。 工作库用于保存编译结果以供仿
真, 通常将该工作库命名为WORK:
·选择Library > New;
·键入库文件名;
·点Create按钮。
第6章 使用Design Direct软件开发MACH器件
⑤ 对设计进行编译:
·点VCOM按钮;
·选择待编译的设计文件(design.vhd);
·点Compile按钮, 对VHDL源代码进行编译;
· 选 择 与 该 设 计 文 件 对 应 的 测 试 基 准 文 件 ( <test
bench>.vhd);
·点Compile按钮, 对测试基准进行编译;
·最后点Done按钮。
-
第6章 使用Design Direct软件开发MACH器件
⑥ 准备开始仿真:
·点VSIM按钮;
·在Simulate a Design窗口中, 选择Design标签;
·选择测试基准文件;
·点Add按钮, 将测试基准和构造体(Architecture)加入到仿
真中;
·点OK按钮。
第6章 使用Design Direct软件开发MACH器件
⑦ 设置仿真观察器:
·在下拉菜单中, 选择 View > All, 以便显示全部的
仿真窗口;
·在下拉菜单中, 选择 Window > Tile Vertically, 规定
窗口的排列方式;
·在Structure窗口中, 选择测试基准文件;
·在下拉菜单中, 选择 Signals > Add to Waveform >
Signals in Region;
·在下拉菜单中, 选择 Click on Signals > Add to List
> Signals in Region。
第6章 使用Design Direct软件开发MACH器件
⑧ 进行仿真:
·在下拉菜单中, 选择Options > Simulation Options,
将弹出如图 6.39 所示的对话框;
·在Simulation Options(仿真选项)窗口中, 选择
VSIM标签;
·在Default Run Length(默认运行长度)对话框中,
输入仿真时间长度;
·点Apply或OK按钮;
·点Yes按钮保存设置;
·点Run按钮启动仿真。
第6章 使用Design Direct软件开发MACH器件
图 6.39 设置RTL级功能仿真的选项
第6章 使用Design Direct软件开发MACH器件
⑨ 查看仿真结果:
·如图 6.40 所示, 在菜单栏上选择 Zoom > Full, 展
开波形窗口;
·在菜单栏上选择 Window > List, 将会以表格形式
显示仿真结果。
·在生成测试基准时, 需要注意:
对VHDL和 Verilog―HDL中的元件或模块例化
(引用), 其端口映像应使用经过命名的端口来进行关
联, 以避免在门级网表中产生端口次序问题。 在
Verilog―HDL的测试基准中, 应当利用编译指示include
*<design>.vo来存取门级网表。
第6章 使用Design Direct软件开发MACH器件
图 6.40 Modelsim仿真器的界面(仿真后)
第6章 使用Design Direct软件开发MACH器件
6.9.3 综合
在对设计的HDL描述进行成功的仿真和检验之后,
用户便可以进行RTL级综合, 为利用DD软件完成设计
做好准备。 其基本步骤如下:
① 在DD软件的菜单栏上, 选择 Tools > Leonardo
Spectrum Synthesis, 即可启动Leonardo Spectrum模块,
如图 6.41 所示。 当从图形化界面启动时, Leonardo
Spectrum模块有三种流程方式: 流程向导、 快速执行和
强力“标签式”流程。 下面介绍的是第三种方式。
第6章 使用Design Direct软件开发MACH器件
图 6.41 HDL综合器窗口
第6章 使用Design Direct软件开发MACH器件
② 选择一种欲将设计综合进其中的目标结构:
·选择左边窗口上方的Technology标签(由于窗口
尺寸的缘故, 该标签可能显示为Techn...);
·双击Vantis按钮, 然后选择一种希望采用的MACH
结构, 如MACH 4。 不必在此处选择具体的MACH器件,
而应在DD软件中利用Part Selector菜单来选择;
·点Apply按钮。
第6章 使用Design Direct软件开发MACH器件
③ 导入和编译Vhdl或Verilog文件:
·选择Input标签;
·点Working Directory按钮, 选择HDL文件所在的目录;
·点Open Files按钮, 选择待综合的HDL文件。 对层次
化的设计, 应先选择第一个文件, 在按下Ctrl键的同时点击
所有其它待综合的文件, 而后点Open按钮。 对层次化的
Vhdl文件, 应将顶层实体(Entity)置于文件列表的末尾, 或
者通过点击位于窗口底部的VHDL Options标签后, 再在
Top Entity一栏中填入顶层实体的名称来加以指定;
第6章 使用Design Direct软件开发MACH器件
·在Encoding Style栏中, 选择要采用的状态机编码
方式。 默认为二进制编码方式;
·点Apply按钮, 便会建立工作目录和将设计文件读
入内存。
④ 对设计进行优化(为可选步骤):
·选择Optimize标签;
·点Apply按钮。
如果在适配时遇到问题, 请点击Alternate MACH
Optimization按钮, 该工具便会使用另一种备用综合算法。
第6章 使用Design Direct软件开发MACH器件
⑤ 生成EDIF文件:
·选择Output标签;
·“Format:(格式)”选项应设置为Auto。 生成的
EDIF文件, 取“Filename:”窗口中的标识符作为其文件
名, 默认的目录是由Input标签所指定的工作目录。 一
般应将生成的EDIF文件存入项目文件所在的目录;
·点Apply按钮以指定输出文件;
·点Run Flow按钮, 开始综合。 综合的进度显示在
屏幕的右边, 检测到的任何错误都用红点代表, 警告用
蓝点代表, 正常信息则用绿点代表。
第6章 使用Design Direct软件开发MACH器件
如果遇到错误或警告, 可双击红点或蓝点来打开
HDL文本编辑器, 查看有关信息。 HDL文本编辑器会
以另一个红或蓝点来标记错误或警告对应的一行文字。
使用编辑器修改错误后,再从下拉菜单中选择 File >
Save, 予以保存。 而后, 关闭HDL编辑器, 再次点Run
Flow按钮, 重新进行综合, 直到不再出现错误或警告提
示。 至此, 综合过程结束, EDIF文件已准备好。
第6章 使用Design Direct软件开发MACH器件
6.9.4 使用DD软件进行映射
在利用Leonardo Spectrum模块生成EDIF文件之后,
即可将其导入DD软件, 将设计映射成针对具体Vantis器
件的编程数据文件。 其基本操作步骤如下:
① 生成一个新项目。 方法是在菜单栏上选择File
> New Project, 在弹出的对话中指定工作目录和项目名,
而后点击“保存”按钮。
第6章 使用Design Direct软件开发MACH器件
② 将EDIF文件导入项目:
·从下拉菜单中, 选择Source > Import;
·单击待导入的EDIF文件后, 再点OK按钮;
·在弹出的Import EDIF窗口中, 单击CAE Vendor一
栏, 选择Exemplar;
·再点OK按钮, 便可导入指定的EDIF文件。 如果
该文件中有任何的警告或错误信息, 均会在Error Log窗
口中显示。
第6章 使用Design Direct软件开发MACH器件
③ 选择目标芯片:
·双击项目管理器源窗口中的Virtual Device对象;
·在弹出的对话框中, 选择所需的Mach器件系列和
具体的一种器件, 而后点OK按钮;
·此时会提问你是否要改变器件选择, 可点Yes按钮
确认。
第6章 使用Design Direct软件开发MACH器件
④ 适配:
·在源窗口中, 单击选择好的目标器件;
·双击右边处理窗口中的Fit Design处理项, 开始适配。
DD软件将在适配成功之后生成一个JEDEC文件, 在
经过对时序进行验证后, 可使用该文件对MACH器件进行
编程。 DD软件还会生成一个适配报告, 其中包含关于适
配细节的详细信息。 要查看该文件, 可在处理窗口中选
择Fitter Report(或JEDEC File)一项, 再点View按钮, 直接
双击该项即可。
第6章 使用Design Direct软件开发MACH器件
6.9.5 时序仿真
在成功地利用DD软件完成设计适配后, 应检查器件
的时序以保证它能够在系统参数容许的范围内工作。 时
序仿真的主要步骤是:
① 生成门级网表和延时文件:
·在菜单栏中, 选择 Tools > Generate Timing
Simulation Options, 会弹出一个对话框, 用于选择仿真所
需的门级网表的格式;
·选择需要的定时输出文件类型, 缺省设置为标准延
时格式(SDF);
·点OK按钮, 便会按选定的格式产生门级网表和延时
文件。
第6章 使用Design Direct软件开发MACH器件
② 修改测试基准, 使之包含新产生的网表。
③ 可按照 6.9.2 小节所列的步骤进行时序仿真, 只
需对其中的第⑤步和第⑥步进行如下的修改。对设计
进行编译:
·点VCOM按钮;
·选择待编译的设计文件(<design>.vho);
·点Compile按钮, 对VHDL源代码进行编译;
第6章 使用Design Direct软件开发MACH器件
·选择与该设计文件对应的测试基准文件(<test
bench>.vhd);
·点Compile按钮, 对测试基准进行编译;
·最后点Done按钮。
准备开始仿真:
·点VSIM按钮;
·在Simulate a Design窗口中, 选择Design标签;
-
第6章 使用Design Direct软件开发MACH器件
·选择测试基准文件;
·点Add按钮, 将测试基准和构造体加入到仿真中;
·在Simulate a Design窗口中, 选择SDF标签;
·浏览工作目录, 选择用于仿真的SDF文件;
·在Apply to Region一栏中, 输入测试所用的单位;
·最后点OK按钮。
第6章 使用Design Direct软件开发MACH器件
6.10 器件编程
MACH器件开发过程的最后一步, 就是利用适配器
产生的编程数据文件, 对MACH器件进行编程。 可以利
用通用的高级编程器(如ALL-07), 配合专用的适配
器(插座)来进行编程, 其操作过程与一般的器件编程
过程相近。 这种方式适用于所有的MACH器件, 缺点是
设备较为昂贵。
第6章 使用Design Direct软件开发MACH器件
另一方面, 由于MACH 1、 2系列中所有带有“SP”
后缀的器件均具有兼容标准的“5V在系统可编程”特
性, MACH 4、 5系列中的所有器件均符合JTAG标准,
支持在系统编程和测试。 因此, 可利用自动测试设备
(ATE)或嵌入式微处理器, 对已装配在电路板上的
ISP型MACH器件进行在线编程和测试。 更为简便和经
济的做法是: 由在系统编程软件Vantis PRO控制微机的
并行口, 产生编程所需的串行数据流和控制信号;
第6章 使用Design Direct软件开发MACH器件
这些信号经过一条下载电缆传输到器件的JTAG接
口, 即可实现对ISP型MACH器件的编程和校验。 由于
使用了通用微机而且连接非常简单, 因此, 既可对单独
的器件进行编程, 又可对已装配在电路板上的多片器件
进行编程和升级(重新编程), 经济而又实用。 下面,
分别对下载电缆的构造、 连接方法和VantisPRO软件的
使用方法等加以介绍。
第6章 使用Design Direct软件开发MACH器件
6.10.1 在系统编程中的硬件连接
可编程逻辑器件的JTAG接口主要包括TCK(时
钟)、 TMS(状态选择)、 TDI(数据输入)、 TDO
(数据输出)和TRST(复位)等信号, 编程时一般只
使用前四个信号。 如果一个电路中包含多片符合或兼
容JTAG标准的可编程器件(不必都是MACH器件),
则可按图6.42 所示的形式,将这些器件连接成“菊花”
型编程链。
第6章 使用Design Direct软件开发MACH器件
与编程有关的信号由一个插座引出, 经过一条下载电缆
与微机的并行打印机接口相连接。 在编程时, 在系统编
程软件能够识别“菊花链”中每片器件的型号和位置,
并针对用户选定的一片器件, 利用微机的并行口产生编
程所需的串行数据流和控制信号, 对其进行编程; 其它
的器件则暂时处于“旁路”状态。 用户只需逐一选择
需编程的器件并打开相应的JEDEC文件, 便可完成对
“菊花链”中所有器件的编程。 当然, 对不同公司的可
编程器件, 一般需要使用不同的在系统编程软件和下载
电缆。
第6章 使用Design Direct软件开发MACH器件
T DI
M 4- 64 /3 2
M AC H2 11 SP
M AC H1 31 SP
M 5- 51 2/ 16 0
M 4- 64 /3 2
A MD -K 6
M 4- 12 8/ 64
M 4- 25 6/ 12 8
T CK
T MS
T DO
图 6.42 由多片ISP器件构成的“编程链”
第6章 使用Design Direct软件开发MACH器件
图 6.43 下载电缆及连接关系原理图
第6章 使用Design Direct软件开发MACH器件
如图 6.43 所示, 与VantisPRO软件配合使用的下载
电缆构成非常简单, 用户完全可以自己制作。 尽管如此,
该下载电缆可以与各种版本和工作平台的VantisPRO软
件配合使用, 支持对所有的ISP型MACH器件的编程。
其中, 8路缓冲器 74HC244的电源由电路板上的JTAG接
口插座提供, 这样, 既可对信号进行缓冲和驱动, 又可适
应不同的器件工作电压。
第6章 使用Design Direct软件开发MACH器件
6.10.2 VantisPRO软件的使用要点
1. VantisPRO软件简介
VantisPRO是Vantis公司专为其MACH器件开发的
在系统编程软件, 可用于所有ISP型MACH器件的编程、
校验和测试。 该软件有多种版本, 可工作于DOS、
Windows 3.2、 Windows95/98以及Windows NT等多种
平台上, 满足不同的需要。 该软件以JEDEC标准编程文
件作为其唯一的编程数据来源, 因而可以很好地与大多
数的CPLD设计工具相衔接。
第6章 使用Design Direct软件开发MACH器件
2. 启动VantisPRO软件
VantisPRO软件既可独立工作, 又可嵌入到CPLD设
计环境之中。 相应地, 在Windows 98环境下可以用两
种方式来启动该软件:
① 在Windows 98桌面上, 选择“开始>程序
>DesignDirect―cpld>VantisPRO”;
② 在DD软件的项目管理器中, 选择
TOOLS>VantisPRO。
第6章 使用Design Direct软件开发MACH器件
3. VantisPRO软件的界面
在启动后, 便会打开如图 6.44 所示的VantisPRO程
序窗口(图中的汉字和线条是作者加入的说明性文
字)。 该窗口是典型的Windows风格, 其顶部配有工具
条, 汇集了各种最常用的操作。 将鼠标移至工具条中任
何一个按钮上, 按下左键并保持, 便可在窗口底部的状
态条中看到对该按钮功能的简要说明。
第6章 使用Design Direct软件开发MACH器件
图 6.44 VantisPRO界面说明
第6章 使用Design Direct软件开发MACH器件
4. 建立和编辑编程链文件
在对器件进行编程之前, 必须建立或打开一个文本
格式的JTAG扫描路径描述文件, 该文件描述“菊花链”
由哪些器件构成, 每个器件分别是什么型号, 处在什么
位置(顺序)上。 编程时, VantisPRO将读取该文件, 并
利用微机并口产生所需的控制信号, 对链中的器件有选
择地进行编程。 要建立一个新的扫描路径描述文件, 可
选择 File > New , 或直接单击工具条中的“新建文件”
按钮。
第6章 使用Design Direct软件开发MACH器件
然后, 可利用“插入器件”按钮, 向链中加入JTAG
器件。 在加入器件时, 会弹出一个器件属性对话框(如
图 6.45 所示), 要求你指定器件的型号(可从Part列表中
选择)和用于编程的JEDEC文件的名称及路径, 并设置
有关的选项。
如果要打开一个已有的扫描路径描述文件, 可选择
File > Open, 或直接单击工具条中的“打开”按钮。
第6章 使用Design Direct软件开发MACH器件
VantisPRO会以图形化的方式(利用TDI 、 TDO
和引线), 显示“链”中的器件型号和连接关系(见图
6.45)。 请务必确认你所定义的次序与器件在电路板上
的实际连接次序完全一致。
对链中已有的器件, 还可以使用有关的编辑命令或
按钮来进行修改、 移动或删除。 在对某个器件进行上
述操作之前, 需要先在窗口中单击对应的器件名, 选中
它作为操作的对象。 如果需要移动该器件, 则应按下左
键并移动鼠标, 将光标“拖”至新的位置后再释放左键,
该器件便被移至该位置。 当删除一个器件时,
VantisPRO会要求你再次确定。
第6章 使用Design Direct软件开发MACH器件
图 6.45 建立和修改JTAG链
第6章 使用Design Direct软件开发MACH器件
5. 编程和校验
在完成JTAG链的定义之后, 可双击一个待编程的器
件, 在弹出的器件属性对话框的JTAG Operation一栏中
选择P(编程), 其余器件均选择为N(旁路), 然后单
击工具条中的GO按钮, 便可完成对该器件的编程。 如
果需要检验编程是否成功, 则应在该器件的属性对话框
的JTAG Operation一栏中选择V(校验), 其余器件均
选择为N(旁路), 然后单击GO按钮。
对链中的其它器件重复上述过程, 便可完成所有器
件的编程和校验。
第6章 使用Design Direct软件开发MACH器件
6. 查看结果报告
对每个被处理过的器件, VantisPRO都会产生一个
结果文件, 可利用VIEW菜单中的View Results命令来查
看。 选择一个需要查看的结果文件后, 该文件会在窗口
中显示。 可利用水平和垂直滚动条来阅读全文。 而后,
可单击Continue按钮, 返回VantisPRO。