有谁用过expertIO的PCIe VIP, 请教问题
谢谢
真诚请教
elastic FIFO 不就是用来消除时钟差异的么。。。。
Elastic FIFO underflow 说明PIPE接口的时钟频率比Serdes恢复时钟快了。
可以先把这两个时钟设成一样的频率。
另一个方法就是看一下,发送端有没有按时发送SKIP order set。
Elastic buffer的作用就是通过SKIP Order set来解决两个时钟间的skew。
PCIe本身对clock精度是有要求的,我记得是300PPM
SKIP设计及elastic FIFO的深度,都是基于上述clock精度的
如何提高clock period的容忍度?
是的
但是大多数仿真情况下 都是理想的吧 也用不着 elastic fifo
endpoint侧的serdes 发的TX 有时候是 0.40000 有时候是0.4002 0.4001 0.3998 等等。。。
root侧的VIP 看到从0.40000变成其他的了 pll 和 serdes lock 就马上unlock了
唉。。。
真没想到 serdes的仿真模型 居然真的模拟了真实世界的现象
VIP里有个参数交 CLK_TOLERANCE, 改了后试了试 貌似仍然不行
serdes的仿真模型没想到会产生这么奇怪的bit period, 总是时不时偏差个0.0002ns
这是正常的啊。这样才能确认连接后能否正常工作。
只要不超过协议规定的300PPM。
你确认一下,有没有发出和收到Skip序列。
sorry,我记错了,时钟精度是300PPM
对于2.5Gbps的信号,抖动有2/4000,的确超过了协议允许的300PPM啊,RC VIP收不到很正常
不过,这种抖动,PLL应该能锁住,只是在elastic fifo中会出问题
问题在你的EP的serdes model,虽然产生随机的抖动很正常,单的确超过了协议范围
为什么会这样?和仿真的timescale有关系否?实在不行,只能去咨询IP vendor了
这个抖动应该是EP serdes model产生的,即使你的EP和RC用相同的主时钟,估计也无法消除
ok 多谢
明天再试试看了
timescale确实 一直没留意过。
兄台 以你的经验 还有什么可能性呢?
serdes的model是加密verilog, 无从下手debug。 VIP也是加密的... 只能从信号的名字上来推测
OK
多谢 明天看看
没有其它办法了
如果这个超过spec的抖动是由model产生的,你只能去咨询它的vendor