假如在always语句里还要判断一个周期更大的信号边沿怎么办?
- always @(posedge CLK10ns)
- begin
- //如果这里要判断边沿怎么办? 假如signal周期为1000ns
- //如果有好几天这样的边沿要判断怎么办? 假如还有一个signal周期为2000ns
- end
我知道可以用这种办法得到信号的边沿
- assign sig_rx_rst = (~sig_rx_rst2) & (sig_rx_rst1) ;
- always @(posedge CLK)
- begin
- if(RST)
- begin
- // sig_rx_rst <= 0 ;
- sig_rx_rst1 <= 0 ;
- sig_rx_rst2 <= 0 ;
- end
- else
- begin
- sig_rx_rst0 <= sig_rx_sys_cs ;
- sig_rx_rst1 <= sig_rx_rst0 ;
- sig_rx_rst2 <= sig_rx_rst1 ;
- // sig_rx_rst <= (~sig_rx_rst2) & (sig_rx_rst1) ; //sig_rx_sys_cs的上升沿,sig_rx_rst=1
- // sig_rx_rst <= (sig_rx_rst2) & (~sig_rx_rst1) ; //sig_rx_sys_cs的上升沿,sig_rx_rst=1
- end
- end
但如果需要判断边沿的信号很多,这样做是不是有点麻烦?有没有简单一点的办法?
当然可以直接用
always @(posedge signal)
但很多人都不推荐这种做法,请问这是为什么?
|