PCIe工程中时钟管理模块的CDC路径

/*Ver. 1.0*/
        最近在看Ally Zhou关于" VIVADO 使用误区与进阶",该文档下载链接:https://wenku.baidu.com/view/450aa92ddd3383c4bb4cd2e9.html,其中的"XDC约束技巧之CDC篇"一章中和现在的PCIe工程的CDC路径很像,所以特意对比了一下文档中的路径和代码中的时钟路径。首先,我们看看文档中对于安全的CDC路径和不安全的CDC路径所举的栗子,见下图1,2。

图1 安全的CDC路径

        安全的CDC路径是指源时钟和目标时钟有相同的来源,在FPGA内部共享部分时钟网络的时序路径。具体来说就是系统时钟sys_clk经过IBUF后进入MMCM原语块经过倍频、分频处理输出多个目标时钟,目标时钟BUFG增强驱动能力后输入到用户模块或IP核内部使用。


                                                                                                         图2 不安全的CDC路径

        不安全的CDC路径是指源时钟和目标时钟不同,且有不同的端口进入FPGA,在芯片内部不共享时钟网络。具体来说,就是多个系统时钟源经过倍频后产生不同模块使用的时钟,再拉进相应的用户模块使用。

        下面我就单独看PCIe的时钟模块,发现其CDC路径和图1是一样的,PCIe时钟模块见下图3:

                                                                                             图3 PCIe时钟模块

        系统时钟sys_clk过IBUF后进入MMCM原语块,经过倍频、分配处理输出6种时钟:第0路和第1路时钟分别为125M和250M,用于PCIe IP核底层,PHY有一个PCLK时钟输出线,用来同步MAC/PHY接口(见下图4)的数据传输,当数据位宽为16bit时PCLK为125M,当数据位宽是8bit时PCLK为250M;第2路和第3路输出的是一样的时钟频率62.5M,将CLKOUT3输出的clk_out3进入IP核转了一圈,再输出给用户模块,用于PCIe总线控制器的逻辑处理时钟;第4路时钟是oobclk,模块未用到,接入IP核;第5路时钟是125M的用户模块存储读/写时钟,主要用在上行、下行FIFO的读写时钟上,62.5M*64bit=125M*32bit。


图4 PHY/MAC接口图

        后续有内容再补充!

参考Reference:

1." VIVADO 使用误区与进阶":https://wenku.baidu.com/view/450aa92ddd3383c4bb4cd2e9.html

2.“细看PCIe接口PIPE规范”:https://wenku.baidu.com/view/d6d281b3b9d528ea81c779d5.html

3.“DWC PCIE学习笔记(一) PCIE PHY接口”:https://blog.csdn.net/bcs_01/article/details/65626801

/*End for Ver. 1.0 2018-6-6 11:42:35*/

猜你喜欢

转载自blog.csdn.net/lwf729882492/article/details/80591351