微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA内信号等长,怎么加约束?

FPGA内信号等长,怎么加约束?

时间:10-02 整理:3721RD 点击:
有一组输入信号,我希望从IPAD到第一级寄存器之间的延时尽可能一致。
请问该怎么加约束?

作为输入信号,可以使用PAD内的REG,这样延迟就相差无几了。
也可以尝试设置max delay/min delay约束.

这个是指IOB内的REG吗?
以前只知道有maxdelay约束,不知道还有mindelay约束,我先试下。

    感觉min delay 被忽略了,时序分析并没有分析mindelay的路径,如果只设置maxdelay的话,设到1.0ns就不能满足了,设到1.5ns的话,max为1.431ns,min为0.554ns。



    如果把第一级寄存器放到IOB中感觉还有点问题,从第一级寄存器到第二级寄存器的周期约束可能会满足不了,是不是因为IOB到CLB的连线太长了?

400M对于单端的信号,频率是很高的,一般都采用特殊协议。到这个频率和之上,我们一般是采用LVDS。这个有待研究。
“如果把第一级寄存器放到IOB中感觉还有点问题,从第一级寄存器到第二级寄存器的周期约束可能会满足不了”这个我觉得不会。



    这个确实成了关键路径,我也很纳闷,而且我再中间多加了几级寄存器,以往来提高频率,效果也不理想,从IOB到第二级寄存器总是会成为关键路径。

如果频率很高,只加约束很难解决问题,还是扩展位宽比较简单。



    你这个问题的条件太含糊。如果真的跑到很高的频率,那你的clk怎么来的?跟随data还是CDR?
用的接口标准是什么?容易处理的方法是用megafunction来串转并,这样FPGA内部的clk不至于跑的太高。

学习……

8错8错的

都是高手,我都没涉及过这些,都只是编个程序,做的都是皮毛!



    接口是DDR3接口,400MHz时钟是直接从主板上引过来的。
    问题已经解决,发现跟HDL代码的书写有一点关系。
    我要求等长的那一组信号,在物理引脚上比较分散,如果我在引脚定义的时候就把它们定义为一组,并且其后的寄存器也定义为一组,那么布局布线的时候,就会尽量早的把它们汇聚到一次,这就导致了关键路径。
   如果我在引脚定义的时候,不定义为一组,而分开单独定义,加了几级寄存器之后,再定义为一组,布局布线的时候,就会直到我定义为一组的时候才把它们汇聚起来,关键路径就消除了。

学习……



    这个我没有想到。谢谢,学习了。

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

网站地图

Top