引言:本文介紹PCIe IP核時鐘結構、PCIe板卡時鐘方案及復位設計相關內容。
1.?PCIe IP核時鐘
圖1以 Kintex 7 Gen2×8為例,顯示了PCIe集成塊時鐘結構框圖。
圖1:PCIe ?IP核時鐘結構框圖
集成塊輸入系統(tǒng)時鐘信號稱為sys_clk,該時鐘頻率必須為100MHz、125MHz或250MHz。使用的時鐘頻率必須與Vivado IDE中的時鐘頻率選擇相匹配。
1.1 同步和非同步時鐘
有兩種方法可以為PCI Express系統(tǒng)提供時鐘:
●使用同步時鐘,即所有設備都使用共享時鐘源。
●使用非同步時鐘,每個設備都有自己的時鐘源。
建議:推薦使用核心時使用同步時鐘。由于所提供的參考時鐘的特性,所有附加卡設計都必須使用同步時鐘。對于使用插槽時鐘的設備,必須在Vivado IDE中啟用鏈路狀態(tài)寄存器中的插槽時鐘配置設置。
圖2:嵌入式系統(tǒng)使用100 MHz參考時鐘
圖3:嵌入式系統(tǒng)使用125/250MHz參考時鐘
對于同步時鐘系統(tǒng),每個鏈路伙伴設備共享相同的時鐘源。圖2和圖3顯示了使用100MHz參考時鐘的嵌入式系統(tǒng)。當使用125MHz或250MHz參考時鐘選項時,必須使用外部PLL進行5/4和5/2的乘法,將100MHz時鐘分別轉換為125 MHz和250 MHz。此外,即使設備是嵌入式系統(tǒng)的一部分,如果系統(tǒng)使用商用PCIe根復合體或交換機以及典型的主板時鐘方案,仍應使用同步時鐘。?圖4、圖5顯示了典型PCIe附加卡時鐘設計方案。
圖4:使用100 MHz參考時鐘的開放系統(tǒng)附加卡
圖5:使用125/250 MHz參考時鐘的開放系統(tǒng)附加卡
圖6:XC7K325T-FFG900芯片PCIe×8設計
2.?PCIe IP核復位
PCIe IP核使用sys_rst_n復位系統(tǒng),它是異步、低有效復位信號。插入此信號會導致整個IP核(包括GTX收發(fā)器)的硬復位。復位解除后,IP核試圖連接訓練并恢復正常運行。在典型的端點應用程序中,例如附加卡,通常存在邊帶(sideband)復位信號,應將其連接到sys_rst_n。對于沒有邊帶系統(tǒng)復位信號的端點應用,應在本地生成初始硬件復位。
PCI Express中可能發(fā)生三個重置事件:
●冷復位(cold reset):在通電時發(fā)生的上電復位,信號sys_rst_n被插入會導致IP核的冷復位;
●熱復位(warm reset):由硬件觸發(fā)的基本復位,無需移除和重新施加電源。sys_rst_n信號被插入以導致內核的熱復位;
●熱復位(hot reset):通過協(xié)議在PCIe鏈路上帶內發(fā)送復位,在這種情況下,不使用sys_rst_n。在該復位的情況下,接收到的_Hot_Reset信號被斷言以指示復位的來源。IP核的用戶應用程序界面有一個名為user_reset_out的輸出信號。此信號相對于user_clk_out同步停用。
信號user_reset_out在以下任何一種情況下都會被斷言:
●基本復位:由于sys_rst_n的斷言而發(fā)生(冷或熱);
●IP核內的PLL:失鎖,表明時鐘輸入的穩(wěn)定性存在問題;
●收發(fā)器PLL鎖定丟失:任何收發(fā)器都失去鎖定,表明PCIe鏈路存在問題。?在上述所有條件得到解決后,user_reset_out信號與user_clk_out同步解除,允許IP核嘗試訓練并恢復正常運行。
需要注意的是:根據(jù)PCIe電氣規(guī)范設計的系統(tǒng)提供邊帶復位信號使用3.3V信號電平,當該信號接入FPGA IO接口時,要考慮電平兼容性問題,如圖7所示,顯示了來自系統(tǒng)提供的+3.3V邊帶復位信號PCIE_PERST與FPGA DDR Bank互聯(lián)時,需將電平轉換為+1.5V。
圖7:系統(tǒng)提供的+3.3V邊帶復位信號互聯(lián)設計