fpga系列 HDL:跨时钟域同步 shift register同步(CDC)毛刺滤除&解码前去抖动滤波模块

bash 复制代码
`timescale 1ns / 1ps

module FilterSig( 
    Clk, 
    nRst, 
    FiltSigIn, 
    FiltSigOut 
    );

input Clk, nRst;
input FiltSigIn;
output FiltSigOut;

reg [4:0] FiltSigInReg ;

always @(posedge Clk or negedge nRst)
if (!nRst) begin
    FiltSigInReg <= 'd0 ;
end
else begin
    FiltSigInReg <= {FiltSigInReg[3:0], FiltSigIn} ;
end

reg FiltSigOut ;
always @(posedge Clk or negedge nRst)
if (!nRst) 
    FiltSigOut <= 1'b0 ;
else if (FiltSigInReg[4:3] == 2'b11)
    FiltSigOut <= 1'b1 ;
else if (FiltSigInReg[4:3] == 2'b00)
    FiltSigOut <= 1'b0 ;

endmodule
  • 以上的滤波位移寄存器时钟和解码滤波结果的时钟之间的关系:
    • 最大滤除毛刺宽度
      在连续 3 周期判定的逻辑下,如果输入信号上的高电平或低电平脉冲宽度小于 3 个 Clk 周期,它就绝不可能填满判定窗口,从而会被系统完全滤除。
    • 时钟不能太快:如果时钟周期太短(频率太高),1个微小的毛刺就能维持 3 个时钟周期,滤波器就会把毛刺误当作有效信号放过去。 时钟不能太慢:如果时钟周期太长(频率太低),有效的信号可能还没来得及维持 3 个周期就结束了,系统会把有效信号当成毛刺滤掉。
    • 时钟周期的定量关系 :设输入信号中需要滤除的电气噪声/机械抖动的最大持续时间为 T n o i s e T_{noise} Tnoise,输入信号的有效最小脉冲宽度为 T s i g T_{sig} Tsig。
      T n o i s e 2 < T c l k < T s i g 3 \frac{T_{noise}}{2} < T_{clk} < \frac{T_{sig}}{3} 2Tnoise<Tclk<3Tsig

CG

相关推荐
FPGA小迷弟4 小时前
FPGA状态机设计详解:从Moore到Mealy的完整指南
fpga开发·fpga
zlinear数据采集卡19 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
zlinear数据采集卡1 天前
ZLinear产品线全景对比:D223 vs DABL7606 vs DABL-G511选型指南
arm开发·嵌入式硬件·算法·fpga开发·开源
何事误红尘1 天前
ZYNQ学习FPGA笔记(一):vivado安装、XC7Z045
fpga开发
zlinear数据采集卡2 天前
D223的SRAM硬件记录仪:外部触发与瞬态波形捕获方案
arm开发·嵌入式硬件·fpga开发·开源
szxinmai主板定制专家2 天前
基于 RK3588 + Xilinx Kintex-7 FPGA 异构工业主控板设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·zynq
Rambo.xia2 天前
RFSoC高速采集卡设计项目:一块板卡串联综合优化5大核心技术
单片机·嵌入式硬件·fpga开发
XMAIPC_Robot2 天前
RK3588+STM32:高性能机器人运动控制解决方案,兼顾实时性与AI算力
人工智能·stm32·嵌入式硬件·算法·fpga开发·机器人·arm+fpga
zlinear数据采集卡2 天前
D223的DDS信号发生器:10000点查找表与4通道16位DAC波形输出
arm开发·嵌入式硬件·fpga开发·开源
物质波波波3 天前
WS-RPE:面向边缘物理AI实时特征值计算的硬件工作窃取调度器与冗余PE激活架构
人工智能·fpga开发·架构·系统架构·硬件架构