微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何在FPGA内实现一个小延时,比如0.5ns?

如何在FPGA内实现一个小延时,比如0.5ns?

时间:10-02 整理:3721RD 点击:
想要实现一组相位延时差不多0.5ns的采样时钟,不知道在fpga内部怎么实现,求助各位达人

时钟本身是多少频率?如果是90°,180°这种相位关系的话,也可以用DCM

正在研究

好,谢谢!

不是90°这种相位关系,我那块FPGA里面跑个200M顶多了,而要实现的是0.5ns这么小的延时

如果你主时钟就是200M,那就困难了。只能用组合逻辑慢慢搭,这很不好控制。为啥需要这么小的延迟?

0.5ns的精度不可能吧。

1. 用组合逻辑搭的话,有什么综合和布线策略可以保证延时的精度呢?
2. 另外,刚刚看到说明文档,说pll输出时钟的最小相移是VCO周期除以8,这个时间是可以满足的。不过我自己做了个实验如下:
10M输入,输出三个100M,相移分别为c0:0.31ns,c1:0.62ns,c2:0.93ns
在fitter阶段出现waring:
“Warning: Can't achieve requested value 32.4 degrees for clock output pll:inst|altpll:altpll_component|pll_altpll:auto_generated|wire_pll1_clk[2] of parameter phase shift -- achieved value of 33.8 degrees”
“Info: Implementing clock multiplication of 10, clock division of 1, and phase shift of 34 degrees (938 ps) for pll:inst|altpll:altpll_component|pll_altpll:auto_generated|wire_pll1_clk[2] port”
做后仿发现c0和c1之间相位差是0.31ns,但是c2的相位确完全不对。
问题:请教达人,通过PLL产生一组相差0.3~0.5之间的采样时钟是否可行?

用INDELAY之类的元件或者时钟移相吧,
感觉时钟移相更简单点。

不知道怎么实现

端口的话可以用器件本身的IO上的delay来实现,内部逻辑,就算用组合逻辑实现在综合的时候也会被优化掉的,0.5ns不算很大,可以在route之后看一下实际延时是多少,手动改变走线调整大概5ns,然后在约束文件里面固定下来。 不过不建议这种设计方式。

ls的建议不失为一种方法

为什么需要呢?

使用加法器中的进位链试试

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

网站地图

Top