21ic电子技术开发论坛

标题: 代码分析 [打印本页]

作者: 布川酷子    时间: 2013-10-10 10:25
标题: 代码分析
有这样一段代码,不知道要实现什么功能,烦请详解
        module test(
        input     gls_clk,encoder,
        output reg   clr_counter
        );
        reg q3,q4;
        always@(posedge gls_clk ) begin
                clr_counter <=q3 & !q4;
                q4<=q3;
                q3<=encoder;
        end
        endmodule
        谢谢!
作者: yixiupu0    时间: 2013-10-10 12:57
输出一个 encoder 的上升沿
作者: 布川酷子    时间: 2013-10-14 14:46
yixiupu0 发表于 2013-10-10 12:57
输出一个 encoder 的上升沿

非常谢谢你的回答,那请问这个呢?
                        R_addr_reg1 <= R_addr_reg0;
                        R_addr <= R_addr_reg1;
为什么不直接把R_addr_reg0赋值给R_addr,谢谢

作者: guugel    时间: 2013-10-15 11:18
上面这段代码应该是实现 把R_addr_reg0  延时2个时钟后赋给R_addr,直接赋值的话,只延时1个时钟
作者: and    时间: 2013-10-15 11:52
也可能是为了避免亚稳态。
作者: huabutterfly    时间: 2013-10-21 22:32
R_addr_reg0,R_addr_reg1, R_addr  这是一个信号的三个时钟的值,T0 T1 T2,不知道你的整体程序是什么,但是做数据分析,傅里叶等计算时,这都是很正常的。
  
作者: xxnwinner    时间: 2013-10-22 18:32
直接赋值和这样的赋值对应的电路图是不一样的,reg类型属于寄存器类型,如果直接赋值就表示没有中间过程的寄存器存储R_addr_reg1
作者: nan2074    时间: 2013-10-22 19:50
边沿检测吧?
作者: GoldSunMonkey    时间: 2013-10-22 21:27
感谢大家的讨论
作者: GoldSunMonkey    时间: 2013-10-22 21:27
谢谢啦
作者: suzixiang0    时间: 2013-10-23 14:32
本帖最后由 suzixiang0 于 2013-10-23 14:33 编辑

上升沿监测




欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) Powered by Discuz! X3.5