在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: zhouquan2006

[求助]如何用verilog在fpga中实现精确延时

[复制链接]
发表于 2009-7-2 20:08:22 | 显示全部楼层
FPGA逻辑单元延迟不确定
发表于 2009-7-2 22:03:25 | 显示全部楼层
你要延时什么,是将信号进行延时吗,如果是对输入信号进行延时,可以用同步逻辑打几拍,这个延时是非常准确的。硬件延时好像还没听过,没听说用FPGA进行延时的,只有在处理信号和数据时才会将信号进行延时处理,以便信号能够对齐
发表于 2009-7-6 20:59:53 | 显示全部楼层
看一看
发表于 2009-7-7 09:25:40 | 显示全部楼层
布线加约束,时序仿真要加
发表于 2011-10-25 20:24:23 | 显示全部楼层
首先在FPGA中要产生延时,信号必须经过一定的物理资源。在硬件描述语言中有关键词Wait for xx ns,需要说明的是该语法是仅仅用于仿真而不能用于综合的。
可综合的延时方法有:
使信号经过逻辑门得到延时(如非门);
使用器件提供的延时单元(如Altera公司的LCELL);注意:当使用多级非门的时候综合器往往会将其优化掉,因为综合器会认为一个信号非两次还是它。虽然不同的厂家的芯片宏单元的结构不同,但概括而言都是由一些组合逻辑外加一或二个触发器而构成。在实际应用中,当一个模块内的组合逻辑被使用了那么与其对应的触发器也就不能用了;同样如果触发器单元被用了那么组合逻辑单元也就废了。这就是有时候(特别是使用CPLD)虽然设计使用的资源并不多但布局布线器却报告资源不够使用的原因。
当需要对某一信号作一段延时时,入门的新手(比如我这一类的)往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的Quartus II开发FPGA时,可以通过插入一些LCELL原语来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。在此,可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后信号重新采样,就可以消除误差。
       这里说的误差,值得探讨一下。暂时先不做深入了解。下面一一实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-26 09:39 , Processed in 0.019891 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表