边沿检测和异步复位
2012-06-20 14:42
323 查看
最近要应付考试,还要准备六级,学FPGA的时间自然就少了。考完六级就好了,不过貌似这次可能又过不了了。这几天做了下边沿检测和异步复位同步释放的实验。突然觉得那么不好理解的东西现在觉得还蛮有意思的。
边沿检测。以前做按键消抖的时候,使用边沿检测总觉得相当费解,原因是没有想到去看RTL图,总是在纠结代码。现在看着图,感觉蛮好理解了。利用寄存器打一拍,然后再和最初的输入做比较。就是当前值和前一时刻的值进行比较,前一时刻即为寄存器输出的值。如果当前时刻值为高,前一时刻置为低,说明发生了上升沿跳变;当前时刻值为低,前一时刻为高,则发生了下降沿跳变。
再看看代码,就更清楚了
注释掉的部分是用寄存器打了两拍的代码,其实没有本质区别。
异步复位同步释放。复位操作是异步的,不需要等待时钟信号。而释放复位信号的时候,即rst_n2的输出,就需要等待时钟信号了。也算是异步信号同步化吧。
RTL图可以很清晰的解释异步复位同步释放的概念,还有上面代码表达的意思。
如果加入了锁相环之后呢,当然就比上面的麻烦一点了。比如下面这个,复位信号同步之后接入pll的aerset,经过pll的locked和之前同步的复位信号进行与操作,然后再进行同步,就得到了最后的系统复位信号了。
至于代码也不过是反复的用异步复位,同步释放而已。
这次终于把边沿检测异和步复位同步释放给弄明白了。很多时候我觉得做完一个实验之后并不能马上明白其中的道理,就需要想一段时间,然后在某个时刻再去做一做,想一想,就会恍然大悟,原来这么简单,只是需要再重复一次,再多想一下。
边沿检测。以前做按键消抖的时候,使用边沿检测总觉得相当费解,原因是没有想到去看RTL图,总是在纠结代码。现在看着图,感觉蛮好理解了。利用寄存器打一拍,然后再和最初的输入做比较。就是当前值和前一时刻的值进行比较,前一时刻即为寄存器输出的值。如果当前时刻值为高,前一时刻置为低,说明发生了上升沿跳变;当前时刻值为低,前一时刻为高,则发生了下降沿跳变。
再看看代码,就更清楚了
注释掉的部分是用寄存器打了两拍的代码,其实没有本质区别。
异步复位同步释放。复位操作是异步的,不需要等待时钟信号。而释放复位信号的时候,即rst_n2的输出,就需要等待时钟信号了。也算是异步信号同步化吧。
RTL图可以很清晰的解释异步复位同步释放的概念,还有上面代码表达的意思。
如果加入了锁相环之后呢,当然就比上面的麻烦一点了。比如下面这个,复位信号同步之后接入pll的aerset,经过pll的locked和之前同步的复位信号进行与操作,然后再进行同步,就得到了最后的系统复位信号了。
至于代码也不过是反复的用异步复位,同步释放而已。
这次终于把边沿检测异和步复位同步释放给弄明白了。很多时候我觉得做完一个实验之后并不能马上明白其中的道理,就需要想一段时间,然后在某个时刻再去做一做,想一想,就会恍然大悟,原来这么简单,只是需要再重复一次,再多想一下。
相关文章推荐
- 边沿检测和异步复位
- 异步信号同步和边沿检测
- 边沿检测电路小结
- 异步复位信号的 recovery和removal
- 边沿检测电路
- 异步复位同步释放
- Android平台上利用opencv进行图像的边沿检测
- 脉冲边沿检测(Verilog)
- 异步复位设计中的亚稳态问题及其解决方案
- 边沿触发 && ACCDET模块耳机检测的原理
- 同步复位和异步复位
- php实现的视频质量检测配置页面,异步调用不退出的进程:
- 同步复位与异步复位
- 异步复位、同步释放
- php实现的视频质量检测配置页面,异步调用不退出的进程:
- 异步复位、同步释放
- canny边沿检测
- 同步复位和异步复位的比较
- 同步异步复位的区别
- 神奇的硬件秒速边沿检测技术