关于FPGA进行外部边沿检测,检测不准确问题?-FPGA常见问题社区-FPGA CPLD-ChipDebug

关于FPGA进行外部边沿检测,检测不准确问题?

求助各位大佬!
目的是观测到外部出现两个下降沿信号后FPGA做下一步动作(例如LED状态翻转闪烁);

外部设备定时发出两个下降沿信号,信号周期及间隔如下图。
信号通过FPGA管脚接入,FPGA内部通过程序边沿检测下降沿并统计数量(数量到达2后重新计数,并发送动作信号),但是最终发现检测结果不准确,有时候能检测到,有时候检测不到。万分感谢您的解答和建议!
下面是veriloG代码
输入下降沿信号
`//边沿检测
initial num<=1’b0; //下降沿数量
reg [2:0]num;
always @(negedge signal) //输入信号
begin
if(num==3’d2)
num<=1’b1;
else
num<=num+1’b1;
end

//检测下降沿数量为2时led翻转

initial led<=1’b0;
always @(posedge CLK_50M)
begin
if(num==3’d2)
led <= ~led;
else
led <= led;
end`

请登录后发表评论