FPGA开发之时序约束(周期约束)

时序约束可以使得布线的成功率的提高,减少ise布局布线时间。这时候用到的全局约束就有周期约束和偏移约束。周期约束就是根据时钟频率的不同划分为不同的时钟域,添加各自周期约束。对于模块的输入输出端口添加偏移约束。
这里先说一下周期约束:周期约束是为了达到同步组件的时序要求。如果相邻同步原件相位相反,那么延迟就会是时钟约束值的一半,一般不要同时使用上升沿和下降沿。注意:在实际工程中,附加的约束时间为期望值的90%,即约束的最高频率是实际工作频率的110%左右。
添加约束的方法中简单的方法就是直接添加到ucf中,其语法是:
[约束信号] period = {周期长度} {high|low} [脉冲持续时间];#[]中的内容是选填项,{}里面的是必填项。[约束信号]分为“net net_name”或者“timegrp group_name”,{周期长度就是时钟周期,单位为ns默认,也可以是ps,ms,s},{high|low}用于指定第一个脉冲是高电平还是低电平。[持续时间就是第一个脉冲的持续时间,默认50%的占空比]
举个栗子:net “clk_100mhz” period = 10ns high 5ns;
#这种方法比较简单,但是我们一般不用这种方法。我们使用下面的方法
timespec “ts_identifier” = period “tnm_reference” {周期长度} {high|low} [脉冲持续时间];
ts属性定义,可以用在任意的引用。在使用时要先定义时钟分组,再添加相应的约束,例如:net “clk_50mhz” = “syn_clk”;
timespec “ts_syn_clk” = period “syn_clk” 20 high 10;
timespec “ts_identifier2” = period ”timegroup_name” “ts_identifier1” [* | /] 倍数因子 [+|-] phase_value[单位]
/*
ts_identifier2是要派生出来的时钟,ts_identifier1是已经定义好的时钟,“倍数关系”是给出两者的倍数关系。这里的phase_value是时间长度,再根据周期换成相应相位。
*/
举个栗子:如给出了一个系统时钟为:
timespec “ts_clk_syn” = period “clk” 5ns;
如要得到该时钟的反向时钟以及二分频时钟,可以进行如下定义:
timespec “ts_clk_syn_180” = period “clk_180” clk_syn phase + 2.5ns;
timespec “ts_clk_syn_half”=period “clk_180” clk_syn / 2;

克服MLCC供应短缺!通过仿真工具体验ROHM的电源技术——Nano Cap
iPad 2拆解:内部器件大曝光
机场无线地勤调度系统的特点、功能及设计
LED显示未来市场巨大,大显示时代已然来临
微芯CEO拉响警报:半导体行业新一波调整开始
FPGA开发之时序约束(周期约束)
小米手机1S开箱图赏
M-axis永磁体特性测量表征磁偏角测量方法对比研究!
华为畅享50z配置信息 最低售价1199元
台积电积极布建5奈米晶圆厂,明年晶圆厂支出金额将逆势出现高达24%的年成长率
相对湿度传感器数字转换器—基于时域桥接器
子阵级LCMV循环优化算法,能够很大程度地降低求逆矩阵的维度
美国国防高级研究计划局光通信项目研究
音频耦合电容容值大小如何确定
MES工厂生产设备数据采集远程监控系统解决方案
PHP入门介绍
电线电缆的检测项目及检测方法你知道多少?
小康集团联手华为 深入推动新能源汽车领域的合作
致敬武汉精神!海信激光电视全程助力姚基金慈善赛
小米Note3、红米Pro2、小米MIX2、小米6Plus最新消息汇总,下半年即将发布你最期待谁?