微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DDR2 约束文件

DDR2 约束文件

时间:10-02 整理:3721RD 点击:

我生成了一个DDR2的MIG,自动生成的约束文件如下:
NET "clk0" TNM_NET = "SYS_clk0";
TIMESPEC "TS_SYS_clk0" = PERIOD "SYS_clk0" 5 ns HIGH 50 %;

NET "clk90" TNM_NET = "SYS_clk90";
TIMESPEC "TS_SYS_clk90" = PERIOD "SYS_clk90" "TS_SYS_clk0" PHASE 1.25 ns HIGH 50 %;

NET "clkdiv0" TNM_NET = "SYS_clkdiv0";
TIMESPEC "TS_SYS_clkdiv0" = PERIOD "SYS_clkdiv0" "TS_SYS_clk0" * 2 HIGH 50 %;

NET "clk200" TNM_NET = "SYS_clk200";
TIMESPEC "TS_SYS_clk200" = PERIOD "SYS_clk200" 5 ns HIGH 50 %;

我从外部输入一个时钟,通过DCM产生clk90和clkdiv0,约束如下:

NET "sys_clk" TNM_NET = "sys_clk";
TIMESPEC "TS_sys_clk" = PERIOD "sys_clk" 5 ns HIGH 50 %;

结果DDR中分析了clk90和clkdiv0之间的关系,出现时序不满足,我通过下面的语句想TIG掉:

NET "clkdiv0" TNM_NET = FFS "clkdiv0_GRP";
NET "clk90" TNM_NET = FFS "clk90_GRP";
TIMESPEC TS_clkdiv0_TIG = FROM "clkdiv0_GRP" TO "clk90_GRP" TIG;

但是约束仍然报错,仍旧分析了两个时钟下的路径

这两个clock,0度的那个应该是产生ddr cmd以及dqs的clock时钟域。
90度的那个clock应该是产生write dq的clock时钟域,这两个clock应该是可以做false path处理,这样工具就不会分析这两个时钟域之间的data的耦合,set false path具体语法可以参考xilinx的timing closure user guild。
所以你需要自己添加约束文件,在ucf文件里,set false path应该可以等价于在定义clock的时候group name不一样。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top