请问两路串行数据的去毛刺一般怎么处理
时间:10-02
整理:3721RD
点击:
真心求教!
基本情况如下:
我现在在做的板子,有两路串行数据A和B,由外部输入后经过差分转单端送入FPGA中,A和B不是独立的两路数据,其中A是指示信号,B是数据,当A和B异或结果为高电平时,表示此时B线上为有效数据,也就是说A和B的异或结果可以作为数据通路B的有效指示信号(高有效),现在的情况是,由于传输延迟不同,A和B之间很可能不会严格对齐,如果将接收到的A和B信号直接进行异或操作,很可能出现毛刺,但是现在我找不到有效的去除毛刺的方法,系统速率为125Mbps。
请大家多多指教啊!
基本情况如下:
我现在在做的板子,有两路串行数据A和B,由外部输入后经过差分转单端送入FPGA中,A和B不是独立的两路数据,其中A是指示信号,B是数据,当A和B异或结果为高电平时,表示此时B线上为有效数据,也就是说A和B的异或结果可以作为数据通路B的有效指示信号(高有效),现在的情况是,由于传输延迟不同,A和B之间很可能不会严格对齐,如果将接收到的A和B信号直接进行异或操作,很可能出现毛刺,但是现在我找不到有效的去除毛刺的方法,系统速率为125Mbps。
请大家多多指教啊!
想了一个星期没怎么想明白
A\B信号变化的最小周期是多少?根据这个时间,用高频时钟采样并计数,计数到达某个值后存入B的数据。这个“某个值”根据A/B抖动的范围来定。
你这个A/B信号没有时钟控制的么?
标称速率是125Mbps,可能有细微变化
没有,要做时钟数据恢复
没有时钟控制很难办,难到你的数据A/B最最源端都没有时钟吗?那数据不可能凭空产生吧、
数据源端肯定有时钟的,但是时钟不会传送到接收端,接收端需要根据接收数据做时钟数据恢复
我刚看了下资料,发现我这块板子的数据传输方式有点类似于DDR SDRAM的方式,即一个数据+DQS的方式,B为数据,A则类似于DQS(Data strobe),采用源同步的数据传输
两路信号的时差应该不会大到影响你采样。
如果有条件用250M时钟来采,就看异或后信号的上升沿,来触发2clk一次的采样。
如果没有250M时钟,那直接125M采样用异或信号做采样使能。
现在你是怎样做的?采样出错确定是毛刺的问题?
如果系统速度和A/B变化的频率都是125M,那就没办法解决。这种问题,一般靠高频时钟采样和打两拍来解决的
用DDIO来采信号。
现在我准备直接用A和B异或后的信号作为DDR时钟,因为这个协议有个特点就是A和B信号不会同时跳变,每次只有一个信号会跳变,这样不会出现毛刺的问题,因为用的是ALTERA的器件,我准备直接调用ALTDDIO来实现
