评定综合好坏最重要的两个指标:速度是否快和面积是否小;
synplify是专门针对FPGA/CPLD的逻辑综合工具;
synplify两个最显著的特点是BEST和Timing driven引擎,使得综合结果在速度和面积上都达到比较理想的效果;
synplify的几个版本使用相同的核心,但synlify pro的功能最强大;
synplify综合过程包括三方面内容:
1.对HDL源代码进行编译
synplify将输入的HDL源代码翻译成boolean表达式并优化逻辑关系;
2.对编译的结果优化
通过逻辑优化消除冗余逻辑和复用模块,这种优化是针对逻辑关系的,与具体器件无关;
3.对优化的结果进行逻辑映射与结构层次上的优化,最后生成网表;
synplify将编译生成的逻辑关系映射成FPGA的地层模块和硬件原语(primitive)生成网表并优化;
synplify pro的主要特色:
1.支持混合设计: 一个工程中的源程序既可以包含verilog HDL代码又可以包含VHDL代码;
2.HDL源代码编辑器:可以直接在synplify中编辑HDL源代码,其语法纠错功能强大,有syntax check和synthesis check两个层次;
3.BEST(行为级提取技术):将行为级提取的模块直接适配到FPGA底层单元中去;
4.scope(综合约束优化环境):以电子表格形式输入、管理设计的约束,使用户可以方便、全面、有效地对设计进行综合约束,结果是.sdc文件
5.cross-probing:可以方便在代码、视图(RTL视图和technology view视图)、仿真、报告和关键路径之间切换
6.RTL view:synplify pro在对源码编译后应用BEST技术再现寄存器传输级原理图
7.technology view:将设计用FPGA的硬件原语(primitive)和底层模块(嵌入式PLL RAM等)描述的门级结构原理图
technology视图是RTL视图向具体器件进行结构映射的结果
8.FSM compiler: 有限状态机综合工具
FSM EXPLOER/FSM VIEVER:fsm explorer的本质是timing driven的状态机优化技术;
fsm viewer是有限状态机观察器;
9.TCL命令界面,可以通过TCL脚本极大的提高工作效率;
10.resource sharing:资源共享,有助于减少设计占用的物理面积
11.retiming:用寄存器分割组合逻辑,在组合电路中插入寄存器平衡时延,以提高芯片工作频率;
retiming技术也属于timing driven优化技术之一;
pipelining: pipelining主要运用于一些算法路径,如乘法器、加法器等;
pipelining是局部优化而retiming是整体优化;
12.针对具体的厂家器件提供了丰富的综合属性attributes;
13.probe:探针,不改变源码的前提下拉出任意信号到输出引脚;
14.timing analyst:时序分析专家,能够进行点对点的路径时序分析;
15.automativ gate clock conversion:IC设计和FPGA设计时的门控时钟向同步时钟的转换;
synplify的界面:
1.菜单栏
2.工具栏
3.状态显示栏:显示综合器当前状态
4.基本操作步骤按钮:按实际操作顺序组织
5.重要综合优化参数选项设置: 集中了综合优化过程中罪重要的一些参数,这些参数将直接决定综合的结果
6.工程管理窗口: 显示了工程结构和资源文件
7.工程文件显示窗口: 显示工程输入文件和综合结果文件
8.消息/TCL脚本显示窗口
9.综合结果观察窗口:显示综合结果的时钟频率、IO引脚、寄存器资源、LUT资源和选用器件等重要信息;
synplify与quartus联合使用:
1. quartus中的setting中选择synplify pro为综合工具,则quartus将自动调用synplify pro完成设计流程中的综合;
2. 单独启用synplify pro完成综合,输出EDIF或VQM网表文件;此时quartus仅仅完成对网表的映射和布局布线等操作;
synplify pro的操作步骤:
1.创建工程
2.源代码添加与编译
3.RTL和technology观察
4.使用scope设计综合约束
5.设置综合优化参数
6.综合
7.综合后分析
synplify pro的SCOPE综合约束选项:
1.时钟 clock
2.时钟延迟 clock to clock
3.输入输出 inputs/outputs
4.寄存器 registers
5.多周期路径 multi-cycle paths
6.弱约束路径 false paths
7.路径最大延迟 max_delay path
8.约束属性 attributes
9.多位置编译 compile points
10.其他 other
11.collections
12.IO标准IO standard
synplify pro中设计FSM的工具:
FSM Compiler将FSM编译为类似状态转移图的连接图,然后对FSM重新编码、优化以达到更好的综合效果;
FSM Explorer使用FSM Compiler的编译结果,遴选不同的编码方式进行状态机编码探测,从而达到对FSM编码的最佳优化效果;
FSM Viewer是观查FSM的好工具
它们的作用: 重新选择编码方式、确定更恰当的起始状态、删除冗余逻辑和不可达状态;
综合时使用了FSM compiler则可以在log file中查看每一个状态机的综合结果;
综合以后生成的文件有.srr .tlg .srs
.srr: 工程报告(重要),以"project_name.srr"命令;
.tlg:工程组织结构信息文件
.srs:RTL视图文件
tcl脚本文件的使用:
设计者可以用批处理命令的形式执行一个综合,也可以一次执行同一设计的多个综合,尝试不同器件、不同延时目标、不同约束条件;
工程文件prj、约束文件sdc本质上都是采用tcl脚本编写的;
添加约束的方法: synplify的scope, HDL中添加约束;
synplify把最后编译的module/entity and architecture作为顶层设计,所以要把顶层设计文件拉到设计文件列表的最底端(否则只会在RTL视图中显示末尾HDL的视图)
优化时如果resource sharing被选中,则最高频率一般来说会降低,但是资源有所节约;建议在设计能够满足时钟频率要求时选中以节省资源;
pipelining即流水,在高速设计时如果其他措施都不能达到目标频率则最好选中此项;
technology view和RTL view都是针对HDL的,都是综合之前就能显示的,technology view是基于目标器件技术的层次结构电路图;
时间报告(timing report):即srr中的preference summary部分,注意综合产生的时间报告只是估计值,设计实际的时序状况极大程度依赖于布局布线工具;