logo资料库

Synplify使用指南(中文).pdf

第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
资料共45页,剩余部分请下载后查看
文档编号 产品版本 密级 研 究管 理部文档中心 产品名称 2.1 内部公开 共45页 Synplify工具使用指南 (征求意见稿 仅供内部使用) 文 档 作 者 项 目 经 理 研 究 部 总 体 组 文档管理员 日期 日期 日期 日期 日期 2001/ 03 /20 / / / / / / / / 版权所有 不得复制
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 修订记录 作 者 日期 2000/08/20 2000/9/20 2000/3/20 2000/4/2 修订版本 1.00 1.10 2.00 2.10 描述 初稿完成 第一次修订 第二次修订 第三次修订 2001-04-09 版权所有 侵权必究 第2页 共45页
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 目 录 1前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1综合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2工程文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3Tcl 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4约束文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5宏库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.6属性包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3基本工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1PC版基本工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2UNIX环境下窗口界面工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.1UNIX环境设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.2UNIX版用户界面简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 8 9 10 10 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 14 14 14 14 14 15 16 1.工具条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.用户界面的按钮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 SCOPE窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.Insert Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.Clock to Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.Multicycle Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.False Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.Other . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4生成的报告和信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.Log 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.时间报告 Timing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.资源使用报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.Net Buffering报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3批处理工作模式流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1运行工程文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2运行一个Tcl文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4使用HDL Analyst分析和调试设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1HDL Analyst 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2HDL Analyst 的应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1POP_UP信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2状态条显示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3链接式选中目标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4查看延迟信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5使用Symbolic FSM compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6怎样用Tcl语言执行批处理任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2001-04-09 版权所有 侵权必究 第3页 共45页
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 6.1创建Tcl script 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2常用Tcl 命令说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1工程命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2添加文件的命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3控制命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.4打开文件的命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3Tcl 格式的script文件示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1运行一个script 文件针对多个目标器件进行综合 . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2运行多个频率要求 并存为不同的log 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.3设置控制选项及约束示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4自底向上的综合示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4运行script文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7时间约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1书写约束文件的一些规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2Verilog对象表示语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3HDL源代码中的约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1通用时间约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.2黑盒时间约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.4特定厂家的时间约束文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2厂家提供属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1Altera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1Xilinx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1综合指示 Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9实现对速度的优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1一般性考虑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2怎样处理关键路径上不满足速度要求的延迟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3关于综合约束的建议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.1时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.2扇出限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8综合属性 Attributes 和指示 Directives) 16 16 16 17 17 18 18 18 19 19 21 22 22 22 22 23 23 26 26 26 26 27 27 30 35 38 38 38 38 38 39 2001-04-09 版权所有 侵权必究 第4页 共45页
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 Synplify 快速入门 关键词 Synplify synthesis 综合 Script 脚本 Tcl FPGA Verilog 摘要 本文的目的是为 Synplify的使用提供帮助 包括三个主要内容 第一部分快速入门 介绍基 本的工作流程 第二部分 Tcl使 用 指 南 包括运用批处理工作文件提高工作效率 和 怎 样 用 时间约束文件使综合结果更加成功 第三部分是一些通用的以及专门针对Altera和Xilinx器 件的综合策略 缩略语清单 SCOPE Synthesis Constrains Optimization Environmemt Tcl: Tool command language FPGA: Field Programmable Gate Array RTL: Register Transfer Level 名称 作者 编号 参考资料清单 Synplify Reference Manual Synplify User guide and tutorial Synplicity co. Synplicity co. 发布日期 Oct. 2000 Oct. 2000 查阅地点或渠道 Online help Online help 1 前 言 Synplify 和 Synplify Pro 是 Synplicity 公司提供的专门针对FPGA和CPLD实现的逻辑综合工 具 它 支 持 VHDL93 IEEE1076 , 包 括 std_logic_1164 Numeric_std std_logic_Usigned std_logic_Signed std_logic_Arith 和Verilog95 IEEE1364 的可综合子集 该软件提供的Symbolic FSM Compiler 是专门支持有效状态机优化的内嵌工具 SCOPE是管 理 包括输入和查看 设计约束与属性 提供活页式分类 非常友好的表格界面 用于文本输 入 的 HDL 语 法 敏 感 编 辑 窗 口 不 仅 提 供 了 对 综 合 错 误 的 高 亮 显 示 结 合 图 形 化 的 分 析 和 cross_probe工具HDL Analyst 可以把源代码与综合的结果有机地链接起来 帮助设计者迅速定 位关键路径 解决问题 其提供的命令行界面 可以通过使用Tcl脚本极大的提高工作效率 Synplify Pro还增加提供了FSM Explorer 可以在尝试不同的状态机优化方案后选定最佳结 果 以及FSM viewer 用于查看状态机的详细迁移状况 此外 为了获得最佳的综合效果 Synplify还针对具体的厂家器件提供了较为丰富的综合属 性 Attributes 和综合说明 Directives Synplify支 持PC WIN98/WIN2000/WIN NT 4.0 Sun (Sun OS 5.6 and 5.7/Solaris 2.6 and 2.7) HP-UX 10.20 后文内容中3.1节针对PC版 其余章节所述内容 因为PC版本与工作站版 本并无太大区别 因此均以工作站版本为例 如使用PC版本则可参照工作站版本相应部分 2001-04-09 版权所有 侵权必究 第5页 共45页
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 本文针对Verilog HDL 以及特别增加针对Altera和Xilinx器件的内容 有关VHDL和其他厂 家器件的信息请参阅Synplify Refernce Manual 目前 部门使用的是Synplify v5.3.1 2 基本概念 2.1 综 合 综合 Synthesis 简单地说就是将HDL代码转化为门级网表的过程 Synplify 对电路的综 合包括三个步骤 表示如下 1 HDL compilation 把HDL的描述编译成已知的结构元素 2 Optimization 运用一些算法进行面积优化和性能优化 使设计在满足给定性能约束的前 提下 面积尽可能的小 这里 Synplify进行的是基本的优化 与具体的目标器件技术无关 3 Technology mapping 将设计映射到指定厂家的特定器件上 针对目标器件结构优化 生成作为布局布线工具输入的网表 2.2 工 程文 件 工程文件 *.prj 以tcl 的格式保存以下信息 设计文件 约束文件 综合选项的设置情况 等 2.3 Tcl 脚 本 Tcl Tool Command Language 是一种非常流行的工业标准批处理描述语言 常用作软件 应用的控制 应用Synplify 的Tcl script 文件 设计者可以用批处理命令的形式执行一个综合 也可以一 次执行同一设计多个综合 尝试不同的器件 不同的时延目标 不同的约束条件 Synplify 的script 文件以 *.tcl 保存 2.4 约束文件 约束文件采用Tcl 以 *.sdc 保存 用来提供设计者定义的时间约束 综合属性 供应商 定义的属性等 约束文件既可以通过SCOPE创建编辑 也可以使用正文编辑器创建编辑 可被添加到在工 程窗口的代码菜单中 也可以被Tcl script 文件调用 2.5 宏 库 Synplify 在它内建的宏库中提供了由供应商给出的宏模块 比如一些门电路 计数器 寄存 器 I/O模块等 你可以把这些宏模块直接例化到你的设计中去 2.6 属性包 2001-04-09 版权所有 侵权必究 第6页 共45页
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 Synplify为VHDL提供了一个属性包 在Synplify_install_dir/lib/vhd/synattr.vhd 内容有时间 约束 如对黑匣子的时间约束 供应商提供的一些属性 还有一些综合属性以帮助你实现你的 综合目的 使用时只需在VHDL源文件的开头加入以下属性包调用语句 library synplify; use synplify.attributes.all; 3 基 本工 作流 程 3.1 PC版基本工作流程 3.1.1 Synplify的用户界面 Synplify是标准的windows应用程序 所有功能均可以通过菜单选择来实现 下面按照图中 数字所标示的次序对其界面作简要介绍 图中1表示Synplify的主要工作窗口 在这个窗口中可 以详细显示设计者所创建的工程的详细信息 包括工程包括的源文件 综合后的各种结果文 件 同时如果综合完成后 每个源文件有多少错误或者警告都会在这个窗口显示出来 图中2表 示TCL窗口 在这个窗口中设计者可以通过TCL命令而不是菜单来完成相应的功能 3是观察窗 口 在这里可以观察设计被综合后的一些特性 比如最高工作频率等 4是状态窗口 它表示现 在Synplify所处的状态 比如下图表示Synplify处于闲置状态 在综合过程中会显示 编译 状 态 映射 状态等等 5所示的一些复选框可以对将要综合的设计的一些特性进行设置 Synplify可以根据这些设置对设计进行相应的优化工作 6是运行按钮 当一个工程加入之后 按这个 RUN 按钮 Synplify就会对工程进行综合 7所示是Synplify的工具栏 2001-04-09 版权所有 侵权必究 第7页 共45页
请输入文档名称 Synplify工具使用指南 内部公开 请输入文档编号 图1 Synplify工作主窗口 3.1.2 启动Synplify 在 windows环境下 点 击 开 始 依 次 选 择 程 序 Synplicity Synplify 启 动 Synplify 在工程窗口中包含了以下内容 源文件信息 结果文件信息 目标器件信息 3.1.3 建立工程 缺省情况下 当Synplify启动时将自动建立一个新工程 这时可以选择将工程以新名字保 存 如果结束了一个工程的操作 想新建一个工程 则可以选择 FILE >NEW 然后选择 工程文件 就可以建立一个新的工程 这项操作也可以通过工具条来进行 单击工具条的 P 图标 则弹出对话框 选择 工程文件 即可 3.1.4 添加源文件 新建工程之后 需要将源文件添加进来 点击 ADD FILE 按钮添加源文件和约束文件 3.1.5 选择顶层设计 2001-04-09 版权所有 侵权必究 第8页 共45页
分享到:
收藏