微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 怎样使输出引脚时序同步?(关于千兆RGMII模式)

怎样使输出引脚时序同步?(关于千兆RGMII模式)

时间:10-02 整理:3721RD 点击:

小弟我用V6制作千兆网卡,在RGMII模式下,无法抓取发送数据。
发送数据输出部分代码如下:

  1. always @(posedge clk_250) reg_clk_125 <= !reg_clk_125;//reg_clk_125用于系统时钟处理千兆数据

  2. always @(posedge clk_250) begin
  3.     if(!reg_clk_125) begin
  4.         reg_rgmtxd<=mtxd;//发送数据的低4位
  5.         reg_rgmtxctl<=mtxen;//发送控制信号
  6.         reg_mtxd2<=rgmtxdn;//发送数据的高4位
  7.     end
  8.     else if(!gmii) begin
  9.         reg_rgmtxctl<=mtxer;
  10.         reg_rgmtxd<=reg_mtxd2;
  11.     end
  12. end

  13. 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有的会这么高?
怎样时序约束可以修正该问题?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top