Verilog 千兆收发器GTP的TX缓冲区

Verilog 千兆收发器GTP的TX缓冲区,verilog,xilinx,xilinx-ise,Verilog,Xilinx,Xilinx Ise,现在我正在做一个与MGT(万兆收发器)GTP相关的项目 因为我是verilog编程语言的新手,所以我有一个关于MGT GTP的问题 在Xilinx文档(Virtex-5 FPGA ROCKETIO GTP收发器)中,TX侧(图)有一个FIFO-TX缓冲器(相位调整FIFO和过采样) 根据我在本文档中阅读的信息,我了解到该模块仅用于调整TX侧的时钟相位,并最小化GTP收发器的倾斜 对我来说,生成一个异步或同步FIFO连接到MGT GTP并不困难,但它会增加抖动延迟 我认为如果我可以在MGT GT

现在我正在做一个与MGT(万兆收发器)GTP相关的项目

因为我是verilog编程语言的新手,所以我有一个关于MGT GTP的问题

在Xilinx文档(Virtex-5 FPGA ROCKETIO GTP收发器)中,TX侧(图)有一个FIFO-TX缓冲器(相位调整FIFO和过采样)

根据我在本文档中阅读的信息,我了解到该模块仅用于调整TX侧的时钟相位,并最小化GTP收发器的倾斜

对我来说,生成一个异步或同步FIFO连接到MGT GTP并不困难,但它会增加抖动延迟

我认为如果我可以在MGT GTP中使用TX缓冲区,就有可能减少抖动延迟

因此,我的问题是:

我可以使用此TX缓冲区作为同步或异步FIFO bram传输数据吗?

如果我可以将此缓冲区用作synchr和asynchr FIFO,是否有此TX缓冲区的状态标志(空或满?

非常感谢

您不能将其作为BRAM使用,因为它是一个内部收发器组件。它是一个内部异步FIFO,将TXUSERCLK域连接到XCLK域,仅此而已。看起来您可以通过TXBUFSTAUSN信号从缓冲区中获取“水位线”状态信号,但这只是一个一位信号,表示超过或少于半满,而不是满或空指示。而且没有办法表明输入FIFO的数据是否有效,TXUSERCLK域中的每个周期都被视为有效数据。相位对齐/反查看例程似乎是唯一可以实际更改缓冲区中数据量的程序。好的,这会导致TXUSERCLK以不同于XCLK的频率运行,但这只会导致缓冲区溢出或缓冲区下溢,需要重置发射机。关于deskew例程需要注意的是,它们的设计目的是对齐两个相邻发射机信道的XCLK,而不是最小化通过单个信道的延迟

我不知道您所说的“抖动延迟”是什么意思。

您不能将其“用作”BRAM,因为它是一个内部收发器组件。它是一个内部异步FIFO,将TXUSERCLK域连接到XCLK域,仅此而已。看起来您可以通过TXBUFSTAUSN信号从缓冲区中获取“水位线”状态信号,但这只是一个一位信号,表示超过或少于半满,而不是满或空指示。而且没有办法表明输入FIFO的数据是否有效,TXUSERCLK域中的每个周期都被视为有效数据。相位对齐/反查看例程似乎是唯一可以实际更改缓冲区中数据量的程序。好的,这会导致TXUSERCLK以不同于XCLK的频率运行,但这只会导致缓冲区溢出或缓冲区下溢,需要重置发射机。关于deskew例程需要注意的是,它们的设计目的是对齐两个相邻发射机信道的XCLK,而不是最小化通过单个信道的延迟


我不知道你所说的“抖动延迟”是什么意思。

非常感谢你的回答。这是非常详细和容易理解的作用,这先进先出在管理。关于抖动延迟,我误解了。这只是写入FIFO和从FIFO读取数据之间的延迟(例如BRAM FIFO)。我想如果我在MGT中使用FIFO跳过这个FIFO,我会在FPGA中节省更多的时间。你希望节省多少时间?FIFO读写延迟只会是一两个时钟周期,不会超过几纳秒。这并没有考虑在FIFO中花费的时间,但是如果你对延迟是认真的,那么你应该尽量减少延迟。非常感谢你的回答。这是非常详细和容易理解的作用,这先进先出在管理。关于抖动延迟,我误解了。这只是写入FIFO和从FIFO读取数据之间的延迟(例如BRAM FIFO)。我想如果我在MGT中使用FIFO跳过这个FIFO,我会在FPGA中节省更多的时间。你希望节省多少时间?FIFO读写延迟只会是一两个时钟周期,不会超过几纳秒。这并不考虑在FIFO中花费的时间,但是如果你对延迟是认真的,那么无论如何你都应该将其最小化。