如何用FPGA实现10ms的延时?
可是我看到某位高手是这么做的:先对100MHz工作时钟分频,产生1MHz的时钟,再对1MHz的时钟计数来实现10ms的延时。综合时出现下面的警告:
Warning: Found 1 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skew
Info: Detected ripple clock "INT_Control:INT_Control_inst|clk_1M" as buffer
但是高手的做法占用的逻辑资源小一些。
哪位高高手给分析一下?
用1MHz的时钟做使能,仍然采用100M时钟做计数
高手的说法是:用1MHz的时钟计数产生的counter小一些,用100MHz的时钟产生的counter很大,counter的位数过多的话可能综合的时候会出问题,比如综合不过去,时序不满足。
另外此处的延时是用来滤波的,用1MHz的话,本身就会滤掉一些杂波。
经验不足 对这些还没有较深刻的体会 我现在的原则是只能实现功能就行 要学习的东西还好多啊
呵呵,100M和1M的时钟就差7bit,影响应该没那么大。如果考虑时序的话,可分成2级counter来实现。
5# pptiger
哦 2级counter 谢谢
学习了,我现在对时序还是很模糊
学习了。
时钟使能,学习
无所谓吧,看你要什么精度了
学习了,呵呵
100M到1M一般也是counter降下来的。分不分级差别不大。分得不好占资源更多。
二级counter不会减少资源的
相反跟一级的比起来还会增加一定的延迟吧
学习了
在资源充足的情况下,一般的设计中不要将同步的全局时钟进行简单分频。
按照某位台湾老大的说法: 时钟和reset是神圣的信号,一般不要乱碰。呵
学习中
可分成2级counter来实现。用1MHz的时钟做使能,仍然采用100M时钟做计数.
受教了.
我总结一下吧:
方案一,高速时钟计数
方案二,时钟分频,低速时钟计数.
方案三,2级counter来实现,等于时钟分频,低速时钟用作第二级计数器使能信号.
方案一,是代码简明,但有高时钟运行时,多位处理的问题.逻辑出错的可能性加大.
方案二,第二计数器时钟占用时钟布线资源.但好处也是明显的,减少了高时钟运行的位数,逻辑出错的可能性可能性减少.
方案三,单一时钟,逻辑出错的可能也减少了,但也占用了使能信号的布线资源(当然这个比时钟布线要求低一点).
并且第二计数器也是高时钟运行,相对逻辑出错比第二个方案可能性大一点.
学习了。谢谢
学习了
1# psd0208
学习
学习了,呵呵
路过,学习。
用1MHz的时钟做使能,仍然采用100M时钟做计数!
正解,就不会有warning了!
学习学习
学习了,有收获
用1MHz的时钟做使能,仍然采用100M时钟做计数!
这个是正解
100Mhz到1Mhz,怎么分的频?计数器分频的话,还是比较大。资源分频后的1Mhz的信号当时钟,应该当成ripper时钟。所以会有警告。
PLL to implement
那种分频成异步电路了
计数所用的寄存器数目是一定的
