各位好,有个问题像大家请教一下,检测上升沿和下降沿的 ,当检测到上升沿时
out 输出1,检测到下降沿时out 输出0,用的以下的代码,
但是用逻辑分析仪查看波形如下,out 输出1延迟了两个时钟周期20ns,请问下有
没有好的代码方法让这个延迟时间短一点,测量了别人的延迟只有5ns
- reg sig_in0;
- reg sig_in1;
- wire rising_edge;
- wire falling_edge;
- assign rising_edge = ~sig_in0 & sig_in1;
- assign falling_edge = sig_in0 & ~sig_in1;
- always@(posedge clk) begin
- sig_in0 <= sig_in1;
- sig_in1 <= mcu_sig_3 ;
- end
- always @(posedge clk) begin
- if( falling_edge_3)
- out <= 0;
- else if(rising_edge_3)
- out <= 1;
- end
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
比如
always @(posedge mcu_sig_3 or negedge rst_n)
begin
if(!rst_n)
out <= 0;
else
out <= 1;
end
这个从判断mcu_sig_3上升沿,到out输出,就快, 几ns而已,就是一个选择器的输出延时而已。。。。但这种方法没有意思,FPGA设计的边沿判断,都是采用2级寄存器打拍的方法,只要系统设计合理,不在乎那两个时钟周期。
一周热门 更多>