求verilog读频率程序
答案:3 悬赏:60
解决时间 2021-04-10 13:04
- 提问者网友:空白
- 2021-04-09 16:46
现在需要一个verilog程序,CPLD的,芯片用的是EPM240,就是给一个未知频率,CPLD通过时钟脉冲给这个未知频率计算出来,晶振是50MHz的,求高手,求指导!
最佳答案
- 二级知识专家网友:不羁的心
- 2021-04-09 17:32
计数器
打个比方,50MHz的记到50时,停止,这时读取另一时钟下的计数器。
比较两个计数器的值,可以得到两者之间的频率关系,比如如果另外一个是100,那么就是100Mhz。
这个只是原理,但是在实际的处理中,要注意复位信号的释放、两个时钟的相位关系、跨时钟域的处理及延时等,做得好都会降低误差。
打个比方,50MHz的记到50时,停止,这时读取另一时钟下的计数器。
比较两个计数器的值,可以得到两者之间的频率关系,比如如果另外一个是100,那么就是100Mhz。
这个只是原理,但是在实际的处理中,要注意复位信号的释放、两个时钟的相位关系、跨时钟域的处理及延时等,做得好都会降低误差。
全部回答
- 1楼网友:年轻没有失败
- 2021-04-09 19:14
always @(cnt_scan) 这种写法不是时序逻辑,是组合逻辑。不是采集cnt_scan的上升沿。是只要cnt_scan变化就会执行,只要两个时刻的值不同,就执行always下的程序。
- 2楼网友:傲娇菇凉
- 2021-04-09 17:49
思路是这样的,有两个脉冲,一个是已知的,另一个是未知的,在相同时间内分别计算这两个脉冲次数,N1/f1=N2/f2=定时时间t,
具体程序在《可编程逻辑器件及EDA技术---数字系统设计与SOPC技术》东北大学李景华,里面有程序,不过用的是vhdl
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯