FPGA开发之时序约束(周期约束)
2014-08-02 10:26
363 查看
时序约束可以使得布线的成功率的提高,减少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;
这里先说一下周期约束:周期约束是为了达到同步组件的时序要求。如果相邻同步原件相位相反,那么延迟就会是时钟约束值的一半,一般不要同时使用上升沿和下降沿。注意:在实际工程中,附加的约束时间为期望值的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;
相关文章推荐
- (转)FPGA时序约束的几种方法
- 转载:FPGA时序约束的几种方法(待续)
- FPGA基础知识7(从芯片手册获取参数FPGA时序约束--“CMOS Sensor接口时序约束”)
- 4000 FPGA 时序约束几种方法
- Xilinx FPGA用户约束文件(转自xilinx ISE 开发指南
- 在FPGA设计环境中加时序约束
- FPGA时序约束2
- 【FPGA】Xilinx UCF文件中时序约束的语法
- FPGA时序约束的几种方法
- FPGA设计-时序约束(中篇-实例分析)
- 如何在FPGA设计环境中加时序约束
- FPGA的时序约束
- 【转载】如何在FPGA设计环境中添加加时序约束
- FPGA时序问题一例——电磁干扰和引脚驱动电流约束
- FPGA 时序约束(altera timequest)
- (转)FPGA时序分析,时序约束知识
- FPGA时序约束的几种方法 (转)
- FPGA开发之约束的简介
- Altera_FPGA时序约束及设计优化
- FPGA设计-时序约束1