看到挺多讲握手协议的文会强调Skid Buffer的重要性。今天跑了自己之前写的Toggle handshake跨时钟域握手的波形,Skid Buffer并不能发挥作用,说说发现的问题,以及对到底是用skid还是用fifo这个问题的想法。 先说看到的现象:Toggle Handshake这个握手机制说白了就是通过翻转一个状态位0→1或相反来表示发生了一次新的传输事件,但是信号要过的同步器太多了,导致一个数据要6个等待周期,吞吐量16.7%,拉爆了。 这个情况显然就不能用Skid Buffer,也就是一个深度为2的FIFO。原因写在图里。 随后对比了在握手协议中用Fifo和Skid的情况。虽然听起来这两个都能解决握手、背压里的存储数据流问题,但是Skid解决的是背压迟到造成的局部时序问题,Async Fifo解决的是吞吐量瓶颈。 -27/05/2026 #verilog #verilog学习 #数电 #工科 #硬件编程#硬件#学习 #学习打卡 #电子工程