FPGA外部触发信号毛刺产生及滤波

1、背景

最近在某个项目中,遇到输入给FPGA管脚的外部触发信号因为有毛刺产生,导致FPGA接收到的外部触发信号数量多于实际值。比如:用某个信号源产生1000个外部触发信号(上升沿触发方式)给到FPGA输入IO,实际上FPGA内部逻辑判定接收到的触发信号数量大于1000个,且数量为随机性。因为毛刺的产生的个数具有随机性。

2、原理图设计

外部触发信号经过Buffer器件(74HCT125D)输入端整形后,输出端DIO1_IN连接到FPGA的输入管脚。

3、测试过程

外部上升沿触发信号特征为:高电平脉宽为10us,上升沿时间为5us,故该触发信号对于数字IO输入信号而言,属于一个上升时间缓慢的输入信号。远远不满足输入信号的上升/下降转换时间指标要求。参见下图所示。

实测发现,这个上升时间缓慢的输入信号会导致Buffer(74HCT125D)器件额外产生一个上升沿毛刺。以前没有遇到过这种情况,这次算是增加了一个经验。

上图中,I_SYNC_DIO_IN1为FPGA管脚,用于接收经过BUFFER器件的外部触发信号。由上图可知,在ila触发时刻附近,I_SYNC_DIO_IN1先有一个上升沿毛刺,持续时间约30ns,然后才是真正的外部触发信号。

I_sync_dio_in1_rising_cnt为抓取已检测到的上升沿数量 - 滤波前。

S_sweep_trigin_cnt为抓取已检测到的上升沿数量 - 滤波后。

4、解决方法

1、增加软件滤波方式:已知上升沿毛刺持续时间为30ns,软件滤波窗口时间设定为300ns,滤波结果是OK的,参见上图S_sweep_trigin_cnt信号,为滤波后的结果。

2、更换硬件BUFFER器件:选型输入信号的上升/下降转换时间指标要求时间长的器件。

实际工程中,最终解决方案为:上述两种方式同时采用,从而确保功能的可靠性和抗干扰性。

5、参考连接

1、CMOS器件的输入信号上升时间为什么不能太长?

2、https://www.icxbk.com/ask/detail/18132.html stm32的单片机识别的高低电平?

相关推荐
9527华安20 小时前
FPGA实现Aurora 64B66B图像视频点对点传输,基于GTH高速收发器,提供2套工程源码和技术支持
fpga开发·音视频·aurora·gth·高速收发器·64b66b
XINVRY-FPGA1 天前
EPM240T100I5N Altera FPGA MAX II CPLD
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发·射频工程·fpga
第二层皮-合肥1 天前
FPGA实现ETH接口
单片机·嵌入式硬件·fpga开发
璞致电子2 天前
【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
嵌入式硬件·fpga开发·fpga·软件无线电·sdr
陌夏微秋2 天前
FPGA硬件设计2 最小芯片系统-ZYNQ7020/7010
嵌入式硬件·fpga开发·硬件架构·硬件工程·信息与通信·智能硬件
风已经起了2 天前
FPGA学习笔记——IIC协议简介
笔记·学习·fpga开发
逐梦之程3 天前
FPGA-Vivado2017.4-建立AXI4用于单片机与FPGA之间数据互通
fpga开发
XINVRY-FPGA3 天前
10CL016YF484C8G Altera FPGA Cyclone
嵌入式硬件·网络协议·fpga开发·云计算·硬件工程·信息与通信·fpga
嵌入式-老费3 天前
产品开发实践(常见的软硬结合方式)
fpga开发
FakeOccupational4 天前
【电路笔记 通信】AXI4-Lite协议 FPGA实现 & Valid-Ready Handshake 握手协议
笔记·fpga开发