请问一个不是很难的问题

[复制链接]
2416|9
 楼主| kdurant 发表于 2012-4-15 21:33 | 显示全部楼层 |阅读模式
ST, RS, se, os, ge
假如在always语句里还要判断一个周期更大的信号边沿怎么办?

  1. always @(posedge CLK10ns)
  2. begin
  3.     //如果这里要判断边沿怎么办?    假如signal周期为1000ns
  4.     //如果有好几天这样的边沿要判断怎么办? 假如还有一个signal周期为2000ns
  5. end


我知道可以用这种办法得到信号的边沿
  1. assign                        sig_rx_rst                = (~sig_rx_rst2) & (sig_rx_rst1) ;
  2. always @(posedge CLK)
  3. begin
  4.         if(RST)
  5.         begin       
  6. //                sig_rx_rst                <= 0 ;
  7.                 sig_rx_rst1                <= 0 ;
  8.                 sig_rx_rst2                <= 0 ;
  9.         end
  10.         else
  11.                 begin
  12.                         sig_rx_rst0                <= sig_rx_sys_cs ;
  13.                         sig_rx_rst1                <= sig_rx_rst0 ;
  14.                         sig_rx_rst2                <= sig_rx_rst1 ;
  15. //                        sig_rx_rst                <= (~sig_rx_rst2) & (sig_rx_rst1) ;         //sig_rx_sys_cs的上升沿,sig_rx_rst=1
  16. //                        sig_rx_rst                <= (sig_rx_rst2) & (~sig_rx_rst1) ;         //sig_rx_sys_cs的上升沿,sig_rx_rst=1
  17.                 end
  18. end


但如果需要判断边沿的信号很多,这样做是不是有点麻烦?有没有简单一点的办法?

当然可以直接用
always @(posedge signal)
但很多人都不推荐这种做法,请问这是为什么?
Backkom80 发表于 2012-4-15 22:02 | 显示全部楼层
1,用打一拍,取异或的方法可以检测出信号边沿,这跟要检测信号的周期有啥关系,1000ns的照检测,10us的也一样,
2,always @(posedge signal)不推荐的原因有:signal不是真正的时钟信号,没有走全局网络,驱动能力不是很强,偏移抖动都会较大,

评分

参与人数 1威望 +1 收起 理由
sxhhhjicbb + 1

查看全部评分

 楼主| kdurant 发表于 2012-4-15 22:37 | 显示全部楼层
2# Backkom80
如果有很多这样的信号,用打一拍的方法感觉有点繁琐,有没有其他的办法
Backkom80 发表于 2012-4-16 09:44 | 显示全部楼层
呵呵,好象没有更好的办法了,
mayia 发表于 2012-4-16 15:19 | 显示全部楼层
同求答案!
GoldSunMonkey 发表于 2012-4-16 18:04 | 显示全部楼层
如果直接使用该信号,在信号有毛刺的时候,功能就错了。

时钟信号则一般不会有毛刺。

还是使用边缘检测,然后使用异或来完成上升沿的寻找吧。
dong_dt 发表于 2012-4-25 15:52 | 显示全部楼层
如果被采样的信号相对于采样时钟而言是一个异步信号,建议不要只打一拍,这样可能会由于亚稳态影响电路的稳定性。
你的第二段代码是比较规范的一种操作,不要闲麻烦哦。
第三段代码,是最不靠谱的,可谓是“赔了夫人又折兵”。稳定性且不说,出来的信号,到了第二级还是要同步到另外一个时钟域。
sxhhhjicbb 发表于 2012-4-25 21:06 | 显示全部楼层
例化元件的方法.但程序量也差不多.
GoldSunMonkey 发表于 2012-4-25 22:25 | 显示全部楼层
其实我的才是最正确的
Backkom80 发表于 2012-4-26 08:47 | 显示全部楼层
支持猴哥。:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

279

帖子

0

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