这用的always,好吗?

[复制链接]
1998|7
 楼主| kdurant 发表于 2013-4-26 21:40 | 显示全部楼层 |阅读模式

今天看到别人这样用时钟的

如果不采用这种写法,就要用主时钟去判断他的上升沿
在代码上就会多很多
也没有这样写方便


请问下这样写,在某些特定的情况下会有什么不好的影响吗?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
rosedao 发表于 2013-4-27 08:29 | 显示全部楼层
不好,也不是很多,加俩寄存器adc_clk_delay1和adc_clk_delay2对adc_clk打两拍,adc_clk_delay1 & (~adc_clk_delay2)就可以检测adc_clk的上升沿了啊
Backkom80 发表于 2013-4-27 08:35 | 显示全部楼层
2楼正解。
分频得到的时钟会有一些问题,但如果分频想要的时钟为几M以下的时钟,或低与PLL DCM这些专用时钟模块的输出,可以用计算分频的方式
 楼主| kdurant 发表于 2013-4-27 09:08 | 显示全部楼层
rosedao 发表于 2013-4-27 08:29
不好,也不是很多,加俩寄存器adc_clk_delay1和adc_clk_delay2对adc_clk打两拍,adc_clk_delay1 & (~adc_cl ...

有什么不好的

我以前一直用2寄存器来做,挺麻烦的,多了一大段代码

但我看到别人这么做,而且也不是个新手
rosedao 发表于 2013-4-27 09:16 | 显示全部楼层
kdurant 发表于 2013-4-27 09:08
有什么不好的

我以前一直用2寄存器来做,挺麻烦的,多了一大段代码

分频出来的时钟稳定性会差些,最好要锁相环分频吧,你说人家这么写,估计时钟频率不高,要求没那么严谨,这么做只是从严谨的角度考虑吧,一般简单的设计这么做也不会出问题的
Backkom80 发表于 2013-4-27 09:54 | 显示全部楼层
cuttler 发表于 2013-4-27 15:45 | 显示全部楼层
确实二楼正解,再给楼主补充一下原因:
1.用你贴的第二个always触发时钟是分频得到的adc_clk,不推荐但慢速也没问题,推荐不要用计数器分频的时钟
2.二楼说的第二个always触发时钟继续用原始时钟clk,避免使用计数器分频的时钟,但仍然可以检测adc_clk的上升沿
ifpga 发表于 2013-4-28 14:24 | 显示全部楼层
用是可以用
这种情况
但是约束要做好

不过,从你上面的代码看
完全不用引入第二个时钟域
一个时钟域加使能就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

279

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部