1.1 毛刺产生与消除 毛刺是如何产生的? 对于剔除毛刺的类型不同,需要做的逻辑运算不同: 剔除高电平采用“与”逻辑运算 剔除低电平采用“或”逻辑运算 以下为消除高电平毛刺与低电平毛刺的原理图: 图片 图片 根据上图分别给出消除高电平毛刺和低电平毛刺的 二、抖动消除电路 1.1 消抖电路原理 消抖电路与毛刺消除很相似,都是滤除不需要的信号。但是前者消除的是单边毛刺,而抖动的信号需要滤除的是双边信号,所以上文的单边毛刺信号滤除不适用在抖动消除电路中。 1.2 从硬件描述角度消除抖动(双边毛刺) verilog代码描述如下: //消除双边毛刺 module glitch_filter( input clk, input rst_n, 毛刺宽度介于N和N+1个周期,则需要N+2级触发器采样。 消除高电平采用“与”逻辑运算,消除低电平采用“或”逻辑运算 消除双边毛刺:核心思想为“双边沿检测 + 计数器”。
1 竞争与冒险 当一个逻辑门的输入有两个或两个以上的变量发生改变时,由于这些变量是经过不同路径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为竞争(Race)。 2.毛刺的产生与危害 信号在FPGA 器件中通过逻辑单元连线时,一定存在延时。延时的大小不仅和连线的长短和逻辑单元的数目有关,而且也和器件的制造工艺、工作环境等有关。 这时,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。 下面具体看一下毛刺是如何产生的。如图为一个与门电路: ? 可以通过以下几种方法来消除毛刺: 3.1 输出加D触发器 这是一种比较传统的去除毛刺的方法。原理就是用一个D触发器去读带毛刺的信号,利用 D 触发器对输入信号的毛刺不敏感的特点,去除信号中的毛刺。 3.2 信号同步法 设计数字电路的时候采用同步电路可以大大减少毛刺。由于大多数毛刺都比较短(大概几个纳秒),只要毛刺不出现在时钟跳变沿,毛刺信号就不会对系统造成危害了。
毛刺的持续时间是随机的,并且与时钟沿不同步。因此,它们可能会导致下游信息损坏。 处理此问题的最常见方法是使用毛刺滤波器来滤除毛刺和反弹。 滤波器应该能够接收噪声输入并滤除持续时间为多个时钟脉冲的毛刺。 在信号改变状态后,许多随机毛刺被输入到信号中。如果滤波器运行正常,则这些毛刺将在毛刺滤波器输出干净的信号。 检查输出信号表明滤波器已正确滤除输入信号中可能存在的毛刺。 正如在一开始所说的,这样的滤波器对于部署在可能存在电噪声的环境中非常有用。 与 BRAM 上的 EDAC 等其他缓解策略相结合,这是可用于实现设计弹性的关键方法之一。
不合格件带白边毛刺 即溢胶 ? 对于此类需求,我们可以联想到胶路检测,通常胶路检测以“胶宽”和“胶高”这两个特征来度量,而对于上述对比度接近透明的溢胶情况,我们发现溢胶内部与背景的灰度对比不明显,而溢胶的边缘部分有稍微清晰的边缘轮廓, 根据几何和灰度特性,进一步滤除干扰 ? 注:建议按以上步骤进行尝试,若有差异或者项目急需,可参考以下源代码。 代码如下:
冒险 在具有竞争现象的组合电路中,当某个变量发生变化的时候,比如说从 1 跳到 0,或者说从 0 跳到 1,如果真值表所描述的逻辑关系或者功能遭受到短暂的破坏,在输出端出现一个不应有的尖脉冲 毛刺 (2)增加选通信号(高电平) 输入端加入选通信号,针对 A+(~A) 的 1 型冒险,避开毛刺。 (3)引入封锁脉冲(低电平) 输入端加入封锁脉冲信号,针对 A·(~A) 的 0 型冒险,避开毛刺。 (4)增加滤波电容 冒险输出的是一个很窄的毛刺,在输出端接滤波电容将其滤除。 (5)采用可靠性编码 比如格雷码,每次只变化1位。
但是和所有的数字电路一样,FPGA 电路中也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定性,严重时会导致整个数字系统的误动作和逻辑紊乱。下面就来讨论交流一下FPGA 的竞争冒险与毛刺问题。 ? 延时的大小与连线的长短和逻辑单元的数目有关;同时还受器件的制造工艺、工作电压、温度等条件的影响;信号的高低电平转换也需要一定的过渡时间。 (与分立元件不同,由于 PLD 内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在 PLD、FPGA 设计中尤为突出)。毛刺的累加,将会影响整个设计的可靠性和精确性。 但该法对于计数器型产生的毛刺是无法消除的。 2、采用格雷码我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。 如果在输出信号的保持时间内对其进行“采样”,就可以消除毛刺信号的影响。 4、吸收法增加输出滤波,在输出端接上小电容C可以滤除毛刺。
->0/0-->1的变化,如果同时满足如下两个条件: 1) in0/in1同时变化; 2) 从in0/in1的driver到AND gate的delay绝对匹配; 则,AND gate的输出端不会有毛刺 对于一个简单的AND gate,就会产生毛刺;那么对于一个更复杂的电路,比如:加法器,乘法器,glitch更是起起伏伏,直到一定的时间后,才会输出稳定的值。 也就是说:在同步电路中,我们利用STA分析,已经把out PIN产生glitch的期间给滤除(mask)掉了;只要后级DFF的setup/hold timing分析pass,则后级DFF肯定采样到正确的逻辑计算值 ,不会采样到毛刺。 这样,后级DFF(图中橙色DFF)可能会采样到毛刺。 这时,我们就得关心glitch了,即竞争与冒险。 不是说了不能计算了吗?那怎么“关心”呢?
顾名思义,异步复位同步释放就是对复位信号的释放过程做同步处理,使得释放的过程能够与系统时钟同步。 该描述代码常常会被综合成如下电路: 图片 同步复位的优点: 信号间是同步的,能滤除复位信号中的毛刺,有利于时序分析。 且异步复位容易受到毛刺的干扰,产生意外的复位操作。 四、异步复位同步释放 综合设计与资源等方面的考虑,一般数字系统设计时都会使用异步复位。 五、总结 同步复位的优点: 信号间是同步的,能滤除复位信号中的毛刺,有利于时序分析。 电路稳定,一般能够确保电路是百分之百同步的。 且异步复位容易受到毛刺的干扰,产生意外的复位操作。 异步复位和同步复位在设计的时候各有优缺点,那有没有综合两者的优点的复位方式呢?
不同调幅指数时的已调波波形如图所示: 将普通调幅波展开得到: 在调制过程中,将载波抑制就形成了抑制载波双边带信号,简称“双边带信号”,用DSB信号表示;如果DSB信号经边带滤波器滤除一个边带或在调制过程中直接将一个边带抵消 ,就形成了单边带信号,用SSB信号表示。 RC电路有两个作用:一是作为检波器的负载,在两端产生解调输出的原调制信号电压;二是滤除检波电流中的高频分量。 当电路元件选择得正确时,Vdc接近但小于输入电压峰值。 如果需要检波器提供与载波电压大小成比例的直流电压(如用于自动增益控制),则可用低通滤波器滤除调制分量,取出直流,如下图所示 【实际实验分析】 1.由题意,调制信号:1-5kHz单音频信号;载波信号:3 计算过程如下所示: 5.对该信号进行解调检波,这里我将乘法器输出的调幅波接在实验模块18——自动增益控制与包络检波模块上,调整电路参数,并且进行检波。
c、因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。 b、复位信号容易受到毛刺的影响。
地电位是地连接处在通过大电流毛刺时的电压降。 去耦 去耦,又称解耦。从电路来说, 总是可以区分为驱动的源和被驱动的负载。 去耦电容就是起到一个“电池”的作用,满足驱动电路电流的变化,避免相互间的耦合干扰,在电路中进一步减小电源与参考地之间的高频干扰阻抗。 将旁路电容和去耦电容结合起来将更容易理解。 旁路是把输入信号中的干扰作为滤除对象,而去耦是把输出信号的干扰作为滤除对象,防止干扰信号返回电源。这应该是他们的本质区别。
02 — 频域滤波:单边谱计算 图1第二幅图双边谱我们在信号分析中不常见。常见到的是只显示到最高分析频率为Fs/2的单边谱(符合采样定理:采样频率Fs要大于最高分析频率的2倍以上),如图4第二幅图。 图6 总结下来的步骤为: 1)时域信号傅立叶变换得到双边谱(复数); 2)将双边谱转换为单边谱(复数); 2.1) 第0个数保持不变; 2.2) 第1个~N/2-1个数乘以 图12 频域滤波,单边谱计算: 过程:傅立叶变换后需要0频保持,双边谱转换成单边谱,乘以滤波器频响传递函数(复数,单边谱),后半部分补0,然后反傅立叶变换,取实部,得到结果(图13)。 优点:单边谱能直观体现信号频谱特征(即直流分量,各频率幅值及相位)。 缺点:双边谱转为单边谱,然后后半部分补0,较烧脑,频域滤波是得到一段信号后再进行处理,所以有较大延时。 ? 滤波器常用的一些场景是:高通滤波滤掉直流分量和趋势项;低通滤波滤掉信号高频毛刺;带通或带阻滤波提取或删掉特别的频率段信号等…… 希望本文对您能有所帮助。如有疑问,也可将您的问题发消息提问。谢谢!
确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。 同步复位的缺点: 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。 异步复位缺点: 复位信号容易受到毛刺的影响。 复位结束时刻恰在亚稳态窗口内时,无法决定现在的复位状态是1还是0,会导致亚稳态。 (以上优缺点内容来自知乎用户Kevin Zhang的回答,如有侵权可联系本人删除) 异步复位电路需要注意以下两点: 输入端需滤除毛刺并做抗干扰处理(使用专用的异步复位IO),放置干扰 需要同步释放,防止亚稳态的出现 同时需要注意连接到同步器上的输入必须是无组合逻辑的寄存器输出信号,否则可能产生毛刺问题。多bit信号一般不用同步器,可能产生毛刺传递错误的数据。 握手信号:通过多次握手 异步FIFO:用于多bit数据的跨时钟域传输(使用格雷码传递地址指针,仅有1bit发生跳变不会产生毛刺) 根据时钟频率区别,在跨时钟域传输时还需要以下操作: 从低频时钟域到高频时钟域
而在此过程中,逐台消费方上查询与提供方的连接状态,均为 established,怀疑提供方存在单边连接情况。 我们继续分别分析这两种异常场景。 3、部署服务器系统性能采集工具 nmon,观察到 CPU 每隔 60 秒左右产生毛刺;相同时间网络报文数也有毛刺。 ? 4、部署 ss -ntp 连续打印网络接收队列、发送队列中的数据积压情况。 场景 2:单边连接导致交易超时 1、分析单边连接产生的原因 TCP 建立连接三次握手的过程中,若全连接队列满,将导致单边连接。 ? 2、分析单边连接影响范围 单边连接影响范围多为消费方首笔交易,偶发为首笔开始连续失败 2-3 笔。 建立为单边的连接下,交易非必然失败。 线程数 9 调整为 20 后,消费方与提供方之间平均处理时差由 27ms 降低至 14ms前 99% 的交易耗时从 191ms 下降至 186ms 提供方心跳打散 从提供方网络抓包分析,心跳数据包的毛刺峰值从
中值滤波对脉冲噪声(椒盐噪声)有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。 中值滤波在一定的条件下可以克服常见线性滤波器如最小均方滤波、方框滤波器、均值滤波等带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声非常有效,也常用于保护边缘信息, 保存边缘的特性使它在不希望出现边缘模糊的场合也很有用 但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。 对于高斯滤波,仅用空间距离的权值系数核与图像卷积后,确定中心点的灰度值。 由于双边滤波需要每个中心点邻域的灰度信息来确 定其系数,所以其速度与比一般的滤波慢很多,而且计算量增长速度为核大小的平方。 空间域sigma选取 其中核大小通常为sigma的6*sigma + 1。 因为离中心点3*sigma大小之外的系数与中点的系数只比 非常小,可以认为此之外的点与中心点没有任何联系,及权重系数为0.OpenCV中默认的计算公式也 是如此,OpenCV参考文档内容如下:“对应高斯参数的
2、添加清角程序,余量尽量留均匀,(侧面与底面余量留一致)。 3、合理调整切削参数,余量大拐角处修圆。 4、利用机床SF功能,操作员微调速度使机床切削达到最佳效果。 2、模具周边有毛刺。 3、分中棒有磁。 4、模具四边不垂直。 改善: 1、手动操作要反复进行仔细检查,分中尽量在同一点同一高度。 2、模具周边用油石或锉刀去毛刺在用碎布擦干净,最后用手确认。 4、校表检查模具四边是否垂直,(垂直度误差大需与钳工检讨方案)。 三、对刀问题: 原因: 1、操作员手动操作时不准确。 2、刀具装夹有误。 3、飞刀上刀片有误(飞刀本身有一定的误差)。 2、分中碰数及操数错误(如:单边取数没有进刀半径等)。 3、用错刀(如:D4刀用D10刀来加工)。 4、程序走错(如:A7.NC走A9.NC了)。 5、手动操作时手轮摇错了方向。 5、工件有毛刺:根我们的机床,刀具,走刀方式有直接关系。所以我们要了解机床的性能,对有毛刺的边进行补刀。
2、添加清角程序,余量尽量留均匀,(侧面与底面余量留一致)。 3、合理调整切削参数,余量大拐角处修圆。 4、利用机床SF功能,操作员微调速度使机床切削达到最佳效果。 2、模具周边有毛刺。 3、分中棒有磁。 4、模具四边不垂直。 改善: 1、手动操作要反复进行仔细检查,分中尽量在同一点同一高度。 2、模具周边用油石或锉刀去毛刺再用碎布擦干净,最后用手确认。 4、R刀与平底刀及飞刀之间有误差。 改善: 1、手动操作要反复进行仔细检查,对刀尽量在同一点。 2、刀具装夹时用风枪吹干净或碎布擦干净。 3、飞刀上刀片要测刀杆、光底面时可用一个刀片。 2、分中碰数及操数错误(如:单边取数没有进刀半径等)。 3、用错刀(如:D4刀用D10刀来加工)。 4、程序走错(如:A7.NC走A9.NC了)。 5、手动操作时手轮摇错了方向。 5、工件有毛刺:根我们的机床,刀具,走刀方式有直接关系。所以我们要了解机床的性能,对有毛刺的边进行补刀。
2、添加清角程序,余量尽量留均匀,(侧面与底面余量留一致)。 3、合理调整切削参数,余量大拐角处修圆。 4、利用机床SF功能,操作员微调速度使机床切削达到最佳效果。 2、模具周边有毛刺。 3、分中棒有磁。 4、模具四边不垂直。 改善: 1、手动操作要反复进行仔细检查,分中尽量在同一点同一高度。 2、模具周边用油石或锉刀去毛刺在用碎布擦干净,最后用手确认。 4、校表检查模具四边是否垂直,(垂直度误差大需与钳工检讨方案)。 三、对刀问题: 原因: 1、操作员手动操作时不准确。 2、刀具装夹有误。 3、飞刀上刀片有误(飞刀本身有一定的误差)。 2、分中碰数及操数错误(如:单边取数没有进刀半径等)。 3、用错刀(如:D4刀用D10刀来加工)。 4、程序走错(如:A7.NC走A9.NC了)。 5、手动操作时手轮摇错了方向。 5、工件有毛刺:根我们的机床,刀具,走刀方式有直接关系。所以我们要了解机床的性能,对有毛刺的边进行补刀。
交流(AC)耦合:滤除输入信号中的直流分量,只显示交流分量。例如测试电源纹波。 接地(GND)耦合:示波器自身断开外部信号,将内部信号输入端接地。 探头衰减倍数:使用示波器需将探头衰减倍数与实际使用探头衰减倍数设置一致,才能获得正确的测量结果。 选择的类型与探头类型匹配才能获得正确的单位。 下图为手持示波器探头设置界面: ? 图8-8 平板示波器的探头设置比较简单,触摸操作红色线框内容即可。 ? 通常应用于滤除外界的高频干扰、高频噪声等。 如下图,我们可以看到输入信号中包含高频噪声干扰: ? 图8-10 打开 20M 带宽限制后,信号中高频干扰成分被滤除,如下图: ? 峰值模式:是指示波器在任何时基档以最大采样率进行采样,该模式下可以有效地观察到偶尔发生的窄脉冲或者毛刺,但不能应用于测量。
视觉引导机器人核心能力矩阵)传统方案痛点 迁移科技解决方案 客户可感知价值 点云空洞率>30% 多光谱融合成像技术 铸件毛刺识别完整率 ) 20000lux强光抑制(光伏硅片车间实测数据) 「类脑」决策逻辑 # 迁移科技视觉引导核心算法逻辑 def robot_guidance(): 点云重建() --> 动态噪声滤除 四、产业升维:视觉引导如何重构制造竞争力公式迁移科技交付的不仅是硬件,更是柔性生产力范式: 新制造价值等式:undefined(设备利用率×良率)/换型时间 = 供应链韧性指数 (图:技术渗透率与ROI