在FPGA中如何将信号做一定延时?

在FPGA中如何将信号做一定延时?,第1张

当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MaxplusII开发FPGA时,可以通过插入一些LCELL原语来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。在此,可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后信号重新采样,就可以消除误差。

取决于你需要的延时长短,基本上有两张方法。

1)利用走线的延时。可以用约束的方法,让这个信号的走线人为绕远。这种方式可以延时几到几十纳秒,但是随着芯片的批次不同以及芯片工作温度的变化,这个延时是不精确的;

2)利用时钟往后推。就是用一个时钟对这个信号采样,可以获得时钟周期的整数倍延时。

字面意思理解,所谓约束,就是加上一些条,说白了就是通过时序约束对逻辑综合器提出你的要求,然后综合器根据要求进行布局布线。FPGA中的延时主要有门延时和走线延时(传输延时),布局布线时FPGA中的逻辑资源和布线资源分布是随机的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11123970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存