集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4281|回复: 8

synplify的综合功能

[复制链接]
CPLD 发表于 2010-8-4 10:06:43 | 显示全部楼层 |阅读模式
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
 楼主| CPLD 发表于 2010-8-4 10:07:00 | 显示全部楼层
1.clock:

该选项用来约束时钟信号的特征
尽量在时钟约束中对设计中的所有时钟加以约束,即在"clock"约束中列出所有时钟;
对于不存在或者被优化掉的时钟,无效约束并不会对设计产生负面影响,仅仅是空约束;
synplify pro一般会对扇出(fanout)最多的时钟自动使用全局时钟资源,以达到更高的时钟性能、较小的时钟抖动和延迟;

frequency频率
period周期
duty cycle占空比
rise at上升沿
fall at下降沿
clock group时钟分组:
在多个时钟有密切关联时使用,如从某个时钟分频、倍频出的时钟要分成一组
综合及优化过程会认为同一组中的时钟是同步的,并自动分析时钟时间的cross-clock;
不相关的时钟一定要分配到不同的分组中去;
综合和优化过程认为不同组的时钟是异步的,从而默认定义这些时钟域之间路径为false paths约束路径;

route布线延时:如果synplify pro"综合结果估算出的时钟频率"和"布局布线后的时钟最高频率"相差较大,可在route域中填入"估算的布线延时"以符合实际情况;
virtual clock虚拟时钟:一般为设计的主时钟,设计中没有约束的电路的延迟默认通过虚拟时钟来约束;
 楼主| CPLD 发表于 2010-8-4 10:07:15 | 显示全部楼层
2.clock to clock

该选项用来约束两个时钟的边沿之间的"数据路径延时大小",优先级高于clock约束项;
如果两个时钟是异步的(位于不同时钟域内),则它们之间的数据路径要指定为false path;
如果两个时钟是同步的,但是有相对偏斜(skew),则需要指定它们之间的偏斜时间(数据路径延时大小);
from clock edge:第一个参考时钟的参考沿, r=rise, f=fall;
to clock edge: 第二个参考时钟的参考沿,r=rise, f=fall;
delay: 第一个参考时钟的沿相对第二个参考时钟的沿的数据路径延迟(skew)
 楼主| CPLD 发表于 2010-8-4 10:07:26 | 显示全部楼层
3.inputs/outputs

该选项用来约束inputdelay(输入延迟)和outputdelay(输出延迟);
输入输出延迟是描述信号在外部寄存器和芯片输入输出管脚之间的延时,一般情况下不用考虑;
输入延迟指信号从"芯片外部寄存器"到达芯片输入端口的路径延迟Tlocig与外部寄存器固有输出延迟Tcko之和, Tinputdelay=Tcko+Tlogic;
输出延迟指信号从芯片输出管脚到外部寄存器的路径延迟Tlogic与该外部寄存器的固有建立时间Tsu之和;

port中的input default/output default用来设置"非显化指定"的IO管脚的默认输入输出延时;
type:指定是input delay还是output delay;
clock edge:该约束在时钟上沿还是下沿有效;
route:因布线延时引起的输入延时和输出延时的变化量;
 楼主| CPLD 发表于 2010-8-4 10:07:37 | 显示全部楼层
4.register
该选项用来约束"用户指定的寄存器"的输入延迟和输出延迟
 楼主| CPLD 发表于 2010-8-4 10:07:48 | 显示全部楼层
5.multi-cycle path

某些寄存器或者路径需要多个时钟周期才会完成变化(变化比较缓慢);
该选项用来指出具体的"多时钟路径"(需要多个时钟周期才会完成变化的路径)
合理的设置multi-cycle path约束会使综合引擎将优化的重点放在真正的关键路径上(critical path),而不会因为对多时钟周期路径的过约束造成整体优化结果的恶化;
一般来说,multi-cycle path约束属性是必须设置的;

from: 从所选寄存器出发的路径是多时钟路径
to: 到达所选寄存器的路径是多时钟路径;
though: 穿过所选寄存器的路径是多时钟路径;
cycles: 多时钟周期路径的消耗周期数
 楼主| CPLD 发表于 2010-8-4 10:08:00 | 显示全部楼层
6.false paths

被指定为false paths的路径将不受通用约束的限制,该选项一般作为某些慢速路径和特殊路径的约束;
综合引擎对false paths的处理优先级最低,可以不管;
false paths的指定方式有: false paths选项里指定具体路径、clock to clock 选项中异步时钟之间的delay设置为false path;
 楼主| CPLD 发表于 2010-8-4 10:08:11 | 显示全部楼层
7.max delay

该选项用来约束点到点的路径的最大延迟时间;
约束对象也是一条路径,为用户提供了单条路径延迟的手段;
 楼主| CPLD 发表于 2010-8-4 10:08:23 | 显示全部楼层
8.attributes

该选项提供之前选项所不能完成的综合功能;
通过"约束属性关键字来指定约束";

syn代表通用综合约束属性,altera代表altera专用约束属性,xc代表xilinx通用综合约束属性;
约束关键字(object type)有: global全局 port端口 input_port输入 output_port输出 clock时钟 view视图 instance实例化 register寄存器 fsm有限状态机 blackbox黑盒子


为了达到最佳效果,有时需要改变器件速度等级、时序约束和优化参数等条件,做多次"综合实现"(implement)的实验;
可以在一个工程(prj)下建立多个"综合实现"(implement)来完成,每个implement对应一个rev
综合完成以后的srr文件是详细报告;
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 00:32 , Processed in 0.073167 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表