引言:從本文開始,我們介紹XilinxFPGA時鐘及I/O接口規劃設計。I/O和時鐘規劃是定義和分析FPGA和印刷電路板(PCB)之間連接的過程,并將各種互連信號分配給FPGA器件的物理管腳,正確的規劃I/O端口和時鐘分配會提高FPGA系統性能、減少設計迭代和縮短計開發時間。本文主要介紹時鐘及I/O規劃的各個階段及流程要點。
1.1 概述
I/O和時鐘規劃過程會涉及PCB設計師、FPGA設計師和系統設計師,通常會關注一下幾點內容:
簡化關鍵信號連接,縮短信號長度,避免信號交叉;
保持輸入和輸出器件高速信號的完整性;
選擇可能與備用設備一起使用的I/O配置;
確定PCB上的電源和接地信號可用性;
確定PCB適當去耦的要求;
確定器件編程和調試注意事項。
通常,設計人員會受到非最佳引腳的阻礙,在試圖滿足時序和信號完整性要求時,會導致進一步延遲。通過考慮從PCB到FPGA芯片的數據流,可以快速實現最佳的引腳配置,從而減少內部和外部走線長度以及路由擁塞。I/O和時鐘規劃主要利用Vivado®集成設計環境(IDE)的圖形用戶界面(GUI)完成。1.2 I/O和時鐘規劃階段
圖1、FPGA器件管腳布局
Vivado Design Suite有助于在設計過程的不同階段進行I/O和時鐘規劃,實現從PCB設計師和FPGA設計師之間的初始協作到完全實現設計的驗證。隨著設計在設計流程中的推進,更多的信息變得可用,從而實現更復雜的分析和規則檢查。例如,在設計流程的早期分析使用估計數據,例如延遲信息,而對綜合網表或實現的設計的分析使用實際器件和互連延遲。
正確的I/O分配取決于FPGA的結構、PCB設計的要求以及兩者之間的交互。I/O端口分配(定義PCB信號如何進入FPGA設計或輸出到電路板)和時鐘資源分配(定義設計中時鐘樹的結構)通常一起完成。例如,器件上的某些管腳用作時鐘管腳是最佳的,而其他管腳對于數字控制阻抗(DCI)級聯和內部電壓參考(VREF)是最佳的。
某些類型的IP,如內存IP、千兆收發器(GT)、Xilinx的高速IO IP以及PCI Express®(PCIe)和以太網接口都有與之相關的I/O端口。在開始I/O規劃過程之前,必須使用Vivado Design Suite中的IP功能正確配置此IP。由于這些接口通常對時序最為關鍵,因此在考慮設備管腳分配時,將此IP用作起點。此外,使用此IP時,請使用RTL或綜合設計。
RTL前I/O規劃
在進行RTL設計前,可以創建一個空的I/O規劃工程,以便在設計源文件可用之前啟用早期器件初始I/O端口分配。使用這種方法,PCB和FPGA設計師能夠就早期的引腳定義達成一致,從而消除設計周期后期與設備引腳更改相關的迭代。使用I/O規劃工程,您可以:
從PCB設計器導入器件和I/O端口分配,或手動創建I/O端口;導出器件和I/O端口分配,以交給PCB設計師,或在設計過程中稍后使用;解決端口定義和引腳分配后,將I/O規劃工程遷移到RTL項目;
根據端口定義,為頂層設計創建Verilog或VHDL模塊定義。
完成I/O規劃工程中的端口分配后,可以將該工程遷移到RTL工程,并為頂層設計創建Verilog或VHDL模塊定義。
RTL I/O規劃
在詳細的RTL工程中執行I/O規劃,通過這種方法,可以選擇包括Vivado IP目錄中的IP核,也可以包括Vivado IP integrator中的塊設計。使用IP目錄,您可以自定義IP,使用時鐘向導自定義時鐘組件,并配置SelectIO™ 使用SelectIO界面向導連接資源。在精心設計中,Vivado工具提供基本的DRC,用于檢查端口分配、I/O標準、時鐘資源和其他設計細節。您可以使用精心設計完成初始I/O和時鐘規劃,并導出設備和I/O端口分配,以用于PCB原理圖符號生成,或將約束保存在XDC文件中,以便在綜合或實現期間使用。
網表I/O規劃
還可以使用綜合的網表執行I/O規劃。使用這種方法,可以使用合成的RTL項目,也可以使用綜合后的網表創建的網表項目。盡可能使用綜合設計來執行I/O和時鐘規劃。Vivado工具在合成后有更多關于設計的信息,您可以使用自動I/O放置和交互式放置模式來控制I/O端口分配。還可以使用I/O規劃視圖布局查看設備包的物理管腳與設備上I/O組的管芯焊盤之間的關系。
使用綜合設計還可以讓您在優化PCB和Xilinx®設備之間的連接時做出更明智的決定。這使您能夠更好地與PCB或系統級設計器接口,從而更容易從分配IO放置的IP核(如PCIe或內存IP)合并IO放置。此外,由于所有時鐘(包括生成的時鐘)都是在綜合后定義的,Vivado Design Suite對時鐘要求和資源利用率有更大的可見性,并且可以對設計進行更徹底的驗證。
建議:為了檢查時鐘邏輯,Xilinx建議使用綜合設計進行驗證。為了檢查時鐘計時,Xilinx建議使用已實現的設計進行驗證。
最終I/O驗證和已實施的設計
您必須使用完全實現的設計來驗證最終有效的I/O引腳和時鐘配置。正確的時鐘資源驗證需要所有時鐘的完全路由實現。可以檢查實現報告中與I/O和時鐘相關的消息。最后,與PCB設計師仔細檢查I/O端口分配,以確保FPGA在系統級設計中得到正確定義。
1.3 I/O和時鐘規劃設計流程步驟
圖2、I/O和時鐘規劃設計流程圖
圖2左側顯示了的項目設計流程步驟。水平箭頭指示項目設計流程中可以執行I/O和時鐘規劃的不同階段。I/O和時鐘規劃設計流程中的步驟如圖右側所示。
1) 選擇器件及兼容器件
FPGA器件選型時,根據最終設計的資源估算確定器件資源大小。根據PCB要求選擇封裝,例如通往存儲器的關鍵路徑。另外,還要考慮器件的兼容性,因為在設計初期,特別對于未知的算法或邏輯,難以估計資源使用,這時需要選擇具有較大資源器件,考慮到后期產品上市成本,又要考慮兼容小資源器件。
2) 選擇配置、DCI級聯和內部VREF
Xilinx設備每次通電時都必須進行配置。比特流通過啟用不同配置模式的特殊配置引腳加載到器件中。應用程序中使用的配置模式可能會影響設計的I/O規劃。
在開始I/O分配之前,確定和規劃配置模式非常重要。配置模式不僅決定了某些管腳的可連接性,還決定了包括多功能管腳的I/O組所需的VCCO電壓。
根據I/O標準,數字控制阻抗(DCI)可以控制驅動器的輸出阻抗,或為驅動器、接收器或兩者添加并行終端,以匹配傳輸線的特性阻抗并改善信號完整性。DCI在每個I/O組中使用兩個多用途參考引腳來控制驅動器的阻抗或組中所有I/O的并行端接值。
帶有差分輸入緩沖器的單端I/O標準需要參考電壓(VREF)。您可以使用internal_VREF約束生成內部VREF,這樣就不需要在PCB上提供特定的參考電壓供電軌。在7系列和UltraScale中™ 架構,這可以釋放給定I/O庫中的多用途VREF引腳,用于其他I/O端口分配。
3) 配置I/O端口和時鐘
器件上的I/O端口支持多個I/O相關約束,例如電平標準、壓擺率和驅動電流。配置這些端口以支持系統級設計所需的I/O標準。I/O標準定義可能會影響管腳的放置。例如,可以在單個I/O Bank中組合某些I/O標準,但不能組合其他標準。
Xilinx器件被細分為時鐘區域的列和行。時鐘區域包含可配置邏輯塊(CLB)、I/O組、數字信號處理(DSP)片、塊隨機存取存儲器(RAM)、互連和相關時鐘資源。每個I/O Bank都包含支持時鐘的輸入引腳,用于將系統或板時鐘引入設備和時鐘路由資源。您必須計劃使用這些時鐘資源,以便將設計中的時鐘分布到器件上。
建議:Xilinx建議您使用Vivado IP目錄中的時鐘向導來生成混合模式時鐘管理器(MMCM)或鎖相環(PLL)模塊,以定義時鐘連接。
4) 分配DDR內存控制器I/O端口
內存IP定義了一個使用預制控制器和物理層(PHY)的內存控制器,用于將FPGA設計與支持的外部內存設備連接。高速內存控制器以及以太網IP和PCI Express®(PCIe)技術IP都有特定的引腳要求,這是由時鐘和偏移需求驅動的。
當IP核添加到設計中時,必須定義千兆收發器(GT)、PCIe技術和7系列DDR內存IP的I/O物理引腳分配,作為IP定制的一部分。要更改I/O分配,必須在設計中重新自定義IP。
注意:I/O規劃工程不會從復雜IP(如內存控制器、PCIe或千兆收發器)的IP文件中讀取物理管腳分配。
5) 放置I/O端口
您可以使用不同的方法將設計中的I/O端口以交互方式分配給器件上的管腳。您可以在I/O端口窗口中選擇稱為接口的單個I/O端口或I/O端口Bank,并將它們分配給package窗口中的package Pin或Device窗口中的I/O Pad。
6) 運行DRC和SSN分析
在完成I/O和時鐘分配后,通過運行設計規則檢查(DRC)和同步開關噪聲(SSN)分析來分析設計至關重要。DRC根據一組指定的設計規則驗證當前設計,并報告任何違規行為。SSN分析估計了同時切換輸出可能在I/O組的其他輸出端口上造成的干擾。計算和估算將I/O組特定的電氣特性納入預測中,以確定設計中潛在的噪聲相關問題。
注意:SSN分析估算旨在確定設計中潛在的噪聲相關問題,而不是作為最終設計簽核標準。
建議:Xilinx建議您在綜合之后、實施之前以及實施之后運行DRC和SSN分析。這使您能夠在設計周期的早期發現問題。
7) 實施設計
在生成比特流以配置Xilinx器件之前,必須實現該設計。在實現過中,Vivado工具將設計元素放置在器件資源上,布線設計網絡,并進行優化以降低功耗和時序收斂。
8) 生成PCB數據(XDC、CSV、IBIS)
I/O和時鐘規劃是一個迭代過程,包括PCB或系統設計師與FPGA設計師之間的信息交換。它可以從使用從CSV文件導入的目標設備引腳從PCB輸入開始。完成I/O和時鐘規劃流程中的步驟后,可以使用逗號分隔值(CSV)文件和I/O緩沖區信息規范(IBIS)模型返回引腳,以及用于信號完整性分析的設備模型。
1.4 小結
時鐘和I/O規劃是否合理、正確,對于產品的性能及開發周期有著非常重要的作用。在FPGA電路板及RTL邏輯設計早期進行規劃,也是Xilinx快速開發方法學極力推薦的。下一篇博文,我們介紹如何進行FPGA器件的配置,配置方案對時鐘及I/O Bank電壓標準產生影響。