马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
Hi 朋友们,
调试FPGA 平台网卡RGMII接口RX部分,RX 信号分为两个部分, RX CLK及data(均由网卡发出).
FPGA接收端的data信号与时钟沿的时序,需保证足够的setup和hold时间.
按照网卡规格书的信息及我现在的理解,会把RX clk延迟一些(常规为2ns)再发出给FPGA,也就是相当于RX data提早了2ns. 如下图.
我尝试两种方法告知Vivado这个时序设置:
1.因为网卡Phy芯片可以直接delay 2ns再输出, 那么在Vivado时序约束中就应该设置set input delay , rx data相对于rx clk提前 到达2ns,所以是-2 ns.
但是这种设置直接无法通过Timing check。按照Vivado检查的规则,似乎只要是rx data早于rx clk(负值),就不会通过holdtime check.(??)
我尝试把rx data延迟2ns,时序检查及功能是正常的. 这是实验的结果, 暂时无法理解。
我现在的理解仍然应该是如网卡规格书中所说,既然网卡的输出delay rx clk 2ns(在FPGA 外部已经实现), 那么我就应该在set input delay 设置rx data相对于rx clk提前,即负值.
2.在代码中使用idelay2 原语直接delay clk 2ns(取消上一步的input delay设置,假设phy芯片不做delay动作,由FPGA完成), 时序check的结果仍然如上不通过.
关于时序约束中set input delay,我的理解无法匹配实际验证测试的结果,应该是哪个概念或软件的设置理解错了,哪位有这方面的经验,可以指点提示一下吗.谢谢了
|