Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说ODDR原语概念[通俗易懂],希望能够帮助你!!!。
一、ODDR原语
FPGA传输的数据是单边缘数据,PHY传输的数据是双边缘数据,因此在FPGA发送心跳包的最后,必须使用ODDR基元将单边缘数据转换为双边缘数据通常,FPGA用于处理数据的时钟是晶振时钟(FPGA时钟),但所有来自FPGA的数据经过ODDR原语转换为双边的数据都与PHY时钟同步,因此FPGA时钟需要进行交叉时钟域,将与FPGA时钟同步的数据转换为与PHY时钟同步的数据。 其中,单边缘数据采用Output DDR原语,简称ODDR,将单边缘8bit数据转换为双边缘4bit数据。
有关ODDR原语,请参阅7 Series FPGAs SelectIO Resources文档和Xilinx7seriesfpgalibrariesguideforhdldesigns。
1、ODDR原语获取途径
2、ODDR原语接口和属性(文档129页)
D1和D2是数据输入,CE是ODDR动作使能,c是时钟,s和r分别是置位和复位,q是输出。
3、ODDR原语工作模式(文档126页)
ODDR有两种工作模式: OPPOSITE_EDGE和SAME_EDGE,如下图所示。
在OPPOSITE_EDGE模式下,两个边都用于捕获数据。 其中,上升沿捕捉低位数据D1,下降沿捕捉高位数据D2,输出q在上升沿捕捉D1,在下降沿捕捉D2。 在SAME_EDGE模式下,仅在上升沿捕捉下位数据D1和上位数据D2,在输出q的下降沿传输D1,在上升沿传输D2。 此次传输采用SAME_EDGE模式。
4、ODDR双沿数据转单沿数据使用方式
根据硬件电路图,有PHY向FPGA传输的时钟线、使能线和4条数据线,使能线和数据线都是两端的数据。 使能线包括DV和ERR,其中,上升沿传送DV信号即数据有效信号,下降沿传送ERR信号即数据错误信号。 通常,不考虑ERR,并且ERR是由硬件引起的,而与软件无关。 4条数据线始终包含8bit的数据,其中上升沿传输8bit数据中的[3:0],下降沿传输8bit数据中的[7:4]。 使用ODDR原语将单侧8bit数据转换为两侧4bit数据,同时对应有效的DV信号提取4bit数据。 现在,您可以创建一个模块来实现名为oddr_ctrl的单边和双向边功能。 其中,输入与输出的关系图如下所示。 最后PHY芯片所传输的所有PHY_txd和PHY_tx_ctl都与phy的时钟phy_tx_clk同步。 图中的sclk_90是通过使输入的时钟信号在FPGA时钟中相移90度而形成的,目的是对phy_tx_rxd和phy_tx_ctl进行转换以使其更稳定,tx_dat和tx_en
上一篇
已是最后文章
下一篇
已是最新文章