怎样使输出引脚时序同步?(关于千兆RGMII模式)
时间:10-02
整理:3721RD
点击:
小弟我用V6制作千兆网卡,在RGMII模式下,无法抓取发送数据。
发送数据输出部分代码如下:
- always @(posedge clk_250) reg_clk_125 <= !reg_clk_125;//reg_clk_125用于系统时钟处理千兆数据
- always @(posedge clk_250) begin
- if(!reg_clk_125) begin
- reg_rgmtxd<=mtxd;//发送数据的低4位
- reg_rgmtxctl<=mtxen;//发送控制信号
- reg_mtxd2<=rgmtxdn;//发送数据的高4位
- end
- else if(!gmii) begin
- reg_rgmtxctl<=mtxer;
- reg_rgmtxd<=reg_mtxd2;
- end
- end
- always @(posedge clk_250) reg_gtc <= gmii?reg_125_clk:!reg_125_clk;//reg_gtc为送给PHY的千兆输出时钟
reg_gtc、reg_rgmtxd和reg_rgmtxctl都使用了IODELAY。在GMII模式下,工作正常,但在RGMII时,使用FROM-TO时序约束发现reg_rgmtxd[0]和[2]的Tioop高达3ns之多,其他引脚没问题。
请教:
会不会因此导致无法将数据同步传输到PHY?
为什么Tioop有的会这么高?
怎样时序约束可以修正该问题?
