交叉时钟域的MultiCycle约束问题
时间:10-02
整理:3721RD
点击:
有一个input 时钟,
通过 VIRTEX5的 DCM 分频输出 2个同频的 200M 时钟 clk1 和 clk2 (有固定的相位差),
FPGA内部一部分用clk1处理,一部分用 clk2 处理,
有一个bit的信号 交叉时钟域,
在UCF 对 input的clk 进行了约束,
现在 ISE 总报告此信号的 slack ,
将 Start point 和 end point 的寄存器间的path 进行了 FROM TO , TIG 约束,
还是没有用,提示此约束分析的路径为 0 ,
用ISE 的约束编辑器也是如此,
请问,如何写约束才可解决此 slack 问题?
通过 VIRTEX5的 DCM 分频输出 2个同频的 200M 时钟 clk1 和 clk2 (有固定的相位差),
FPGA内部一部分用clk1处理,一部分用 clk2 处理,
有一个bit的信号 交叉时钟域,
在UCF 对 input的clk 进行了约束,
现在 ISE 总报告此信号的 slack ,
将 Start point 和 end point 的寄存器间的path 进行了 FROM TO , TIG 约束,
还是没有用,提示此约束分析的路径为 0 ,
用ISE 的约束编辑器也是如此,
请问,如何写约束才可解决此 slack 问题?
UCF 的约束
- INST "RX_INST_a/R1" TNM = TS_R1;
- INST "TX_INST_a/R2" TNM = TS_R2;
- TIMESPEC TS_A = FROM "TS_R1" TO "TS_R2" TIG;
以下尝试:
1): 修改TIG,确保找到这些cell.
INST "RX_INST_a/R1*" TNM = TS_R1;
INST "TX_INST_a/R2*" TNM = TS_R2;
2):修改clock UCF. 因为你的clk1 / clk2之间是完全async的。所以可以考虑把input clock的clock define拿掉(如果input clock没有被其他DFF使用)。然后在DCM后,在clk1 / clk2 分别加上clock define。这样xilinx 就会认为这两个clock是async的了。
好资料,顶顶顶。
不错,学习。
继续努力,好,值得学习
用ALTERA的
