Actel芯片遇到很奇怪的问题
时间:10-02
整理:3721RD
点击:
最近在Actel芯片上跑一个时钟只有5M的代码,却遇到了让我入行以来无比头疼的问题。
一个很简单的语句
always @(posedge gclk)
sys_pixel <= ~sys_pixel;
其中gclk是另一块板卡输入的差分时钟转单端来的。
由于actel芯片无法使用调试工具,我将以上信号拉到输出端口,然后给另一块板卡的FPGA(altera的),然后用signaltap观测。
现在把我的硬件连接稍微描述一下:
A板与B板之间有五路LVDS数据信号、一路LVDS控制信号和一路LVDS时钟信号:
一路LVDS控制信号和一路LVDS时钟信号方向:A->B
五路LVDS数据信号方向:B->A
将A->B的时钟,到达B后再放到一对数据线返回到A,用signaltap看,没问题,我认为可以认为B板上的时钟也是稳定的。
将B板内部产生的sys_pixel,放到数据线返回到A。当其它几路数据线上无信号传输时,sys_pixel的翻转没问题,但是当其它几路数据线上有数据传输时,sys_pixel的反转发生周期性的不稳定,就是有时候会两个时钟才翻转一次。
我现在怀疑有两个可能性,但又都被自己否定了:
1.信号线上有干扰,否则为什么其它几路上有信号时才会不稳定。否定原因:LVDS应该是抗干扰性很强的啊,我的信号线只有30cm的长度而已。
2.时钟约束没做。否定原因:5M时钟好意思做时钟约束吗。
好吧,这就是困扰了我半个多月,至今无法解决的问题,请大家帮忙看看吧。
一个很简单的语句
always @(posedge gclk)
sys_pixel <= ~sys_pixel;
其中gclk是另一块板卡输入的差分时钟转单端来的。
由于actel芯片无法使用调试工具,我将以上信号拉到输出端口,然后给另一块板卡的FPGA(altera的),然后用signaltap观测。
现在把我的硬件连接稍微描述一下:
A板与B板之间有五路LVDS数据信号、一路LVDS控制信号和一路LVDS时钟信号:
一路LVDS控制信号和一路LVDS时钟信号方向:A->B
五路LVDS数据信号方向:B->A
将A->B的时钟,到达B后再放到一对数据线返回到A,用signaltap看,没问题,我认为可以认为B板上的时钟也是稳定的。
将B板内部产生的sys_pixel,放到数据线返回到A。当其它几路数据线上无信号传输时,sys_pixel的翻转没问题,但是当其它几路数据线上有数据传输时,sys_pixel的反转发生周期性的不稳定,就是有时候会两个时钟才翻转一次。
我现在怀疑有两个可能性,但又都被自己否定了:
1.信号线上有干扰,否则为什么其它几路上有信号时才会不稳定。否定原因:LVDS应该是抗干扰性很强的啊,我的信号线只有30cm的长度而已。
2.时钟约束没做。否定原因:5M时钟好意思做时钟约束吗。
好吧,这就是困扰了我半个多月,至今无法解决的问题,请大家帮忙看看吧。
建议你先搞台示波器
楼上说的对,上示波器吧,你看到的信号都是经过你的采样时钟采看到的,与你的采样时钟频率有关,还是示波器去看真实的波形靠谱点
