- Intel FPGA權威設計指南:基于Quartus Prime Pro 19集成開發環境
- 何賓編著
- 4005字
- 2021-10-29 21:33:53
1.6 外部存儲器接口
Cyclone 10 GX器件內集成了外部存儲器接口的高效架構,以允許設計者在小的模塊化I/O組架構中適配寬的外部存儲器接口。該功能使設計者支持高級別的系統帶寬。
與前一代Cyclone器件相比,新的架構具有以下優勢。
(1)控制器內,以及控制器到PHY的預閉合時序。
(2)更容易放置引腳。
為了獲得最大的性能和靈活性,該架構為關鍵接口提供硬核存儲器控制器和硬核PHY。
1.6.1 外部存儲器接口特性
Cyclone 10 GX器件的外部存儲器接口特性包括:
(1)該解決方案為多種協議提供完全硬化的外部存儲器接口;
(2)器件具有I/O列,這些I/O列在核心邏輯中混合,而不是在器件外圍的I/O組上;
(3)單個硬Nios II塊校準一個I/O列中的所有存儲器接口;
(4)I/O列由一組稱為I/O組的I/O模塊組構成;
(5)每個I/O組包含專用的整數PLL(IO_PLL)、硬核存儲器控制器和延遲鎖定環;
(6)與前一代Cyclone器件相比,PHY時鐘樹更短,并且只跨越一個I/O組;
(7)跨越多個I/O組的接口需要使用平衡參考時鐘網絡的多個PLL。
Cyclone 10 GX器件所支持的存儲器標準如表1.28所示。
表1.28 Cyclone 10 GX器件所支持的存儲器標準

續表


注
乒乓PHY IP核允許兩個存儲器接口通過時分復用來共享地址/命令總線。與兩個獨立接口相比,兵乓PHY IP核提供了使用更少引腳的優勢,而不會對吞吐量產生任何影響。
Cyclone 10 GX器件能支持以下DDR3外部存儲器接口:
(1)兩個帶ECC的×40接口;
(2)一個帶ECC的×72接口。
不同接口寬度所要求的I/O組如表1.29所示。
表1.29 不同接口寬度所要求的I/O組

1.6.2 外部存儲器接口I/O引腳
在每個I/O組中都可用存儲器接口電路。Cyclone 10 GX器件有差分輸入緩沖區,用于差分讀數據選通和時鐘操作。
在 I/O 組中,用于驅動地址命令(A/C)引腳的控制器和定序器只能固定到同一個 I/O組中的I/O通道。用于A/C引腳的最低要求是3個通道。然而,I/O組的控制器和定序器能將數據組驅動到相鄰I/O組(上方和下方)的I/O通道。
沒有用于存儲器功能的引腳可用作通用 I/O(GPIO)引腳。兩個×16 接口共享 3 個 I/O通道,如圖1.69所示。
硬IP被組織成垂直I/O組。這些模塊化I/O組可以拼接在一起構成大型接口,每個I/O組包含以下塊,即嵌入式控制器硬核、定序器硬核、專用 DLL、整數 PLL、OCT 校準模塊、PHY時鐘網絡和4個I/O通道(Lane)。
1.6.3 器件封裝支持的存儲器接口
I/O 組中 I/O 引腳的數量和 I/O 組的可用性與器件的封裝有關。每個存儲器接口至少需要一個I/O組,其中有48個I/O引腳用于A/C引腳。具有少于48個引腳的I/O組只能支持數據引腳。

圖1.69 兩個×16接口共享3個I/O通道
1)支持帶有ECC的DDR3/DDR3L(寬度為40)/不帶有ECC的LPDDR3(寬度為32)
在這種情況下,不同封裝的支持如表 1.30 所示。其中,對于一些器件封裝,可以將 3V I/O 組用于外部存儲器接口。但是,存儲器接口最高的時鐘頻率上限為 450MHz。要使用最高的時鐘頻率,需要從外部存儲器接口中排除使用 3V I/O 組。最高的時鐘頻率與協議速率、器件速度等級和乒乓PHY的使用有關。
表1.30 支持帶有ECC的DDR3/DDR3L(寬度為40)/不帶有ECC的LPDDR3

2)支持帶有ECC的DDR3/DDR3L(寬度為72,包括64位數據和8位ECC,單個或兩個分塊)
在這種情況下,不同封裝的支持如表1.31所示。
表1.31 支持帶有ECC的DDR3/DDR3L(寬度為72,包括64位數據和8位ECC,單個或兩個分塊)

1.6.4 外部存儲器接口架構
圖1.69給出了外部存儲器接口的架構,本節將詳細介紹I/O架構的內部結構。
1.存儲器控制器硬核
Cyclone 10 GX器件的存儲器控制器硬核專為高速、高性能、高靈活性和面積效率而設計。存儲器控制器硬核支持所有流行的和新興的內存標準,包括 DDR3 和 PDDR3。通過實現高級動態命令和數據重新排序算法來實現高性能。此外,高效的流水線技術也應用于設計,以提高存儲器帶寬使用率并降低延遲,同時保持高速度。硬核解決方案提供了最佳的可用性和更短的上市時間。控制器內部和從控制器到 PHY 的時序已由英特爾簡化時序收斂預先關閉。
控制器架構采用模塊化設計,適合單個 I/O 組。這個架構提供硬核解決方案的最佳靈活性,包括:
(1)可以將每個I/O組配置為以下路徑之一。
① 用于存儲器接口的一條控制路徑驅動所有的地址/命令引腳。
② 用于DDR類型接口的數據路徑驅動最多32個數據引腳。
(2)可以將存儲器控制器放在任何位置。
(3)可以將多個組打包在一起,生成不同的寬度,最多72位的存儲器接口。
此外,為了獲得更大的靈活性,設計者可以繞過存儲器控制器硬核并根據需要使用自定義IP。
存儲器控制器的內部架構如圖1.70所示,其內部包含內核和PHY接口、主控制路徑、數據緩沖區控制器,以及讀和寫數據緩沖區。從圖中可知,硬核接口支持 Avalon 存儲器映射(Avalon-MM)接口協議。接口到PHY的通信允許Altera的PHY接口(AFI)接口。整個協議路徑分割為主控制路徑和數據緩沖區控制器。
1)主控制路徑
(1)輸入接口,其功能如下。
① 以1/2或1/4的速率接受來自核心邏輯的存儲器訪問命令。
② 使用Avalon-MM或Avalone-ST協議。默認,使用Avalon-ST。可以通過配置寄存器使能一個硬適配器以使輸入接口與Avalone-MM兼容。
③ 存儲器控制器硬核有 Avalon-ST 接口。設計者可以例化一個標準的適配器軟核,用于將Avalon-ST接口橋接到AMBA AXI。
④ 支持所有旁路模式并保持最小端口數量,即所有端口列表的超級用于物理寬度。在旁路模式之間共享端口。
(2)命令發生器和猝發適配器,其功能如下。
① 從輸入接口導出命令,并將其提供給時序組池。
② 如果要求讀-修改-寫,則在流中插入必要的讀-修改-寫和寫命令。
③ 猝發適配器將任意的猝發長度切換到存儲器類型指定的個數。

圖1.70 存儲器控制器的內部架構
(3)時序組池(Timing Bank Pool),其功能如下。
① 存儲器控制器中的關鍵組件。
② 設置并行隊列以跟蹤命令依賴性。
③ 將正在跟蹤的每條命令的就緒狀態發送到仲裁器以進行最終調度。
④ 大計分盤結構。當前,入口數量為8,同時最多可以監視8條命令。
⑤ 在跟蹤部分時序約束時,處理存儲器訪問風險(RAW、WAR和WAW)。
⑥ 協助仲裁器實施重新排序的高度責任,即行命令重新排序(激活和預充電),以及列命令重排序(讀和寫)。
⑦ 當池滿時,將向上游發送流量控制信號以停止流量。
(4)仲裁器,其功能如下。
① 執行仲裁規則。
② 執行最終仲裁,從所有就緒命令中選擇命令,并將命令發送到存儲器。
③ 支持1/2速率的準1T模式和1/4速率的準2T模式。
④ 對于準模式,行命令必須與列命令配對。
(5)全局定時器,跟蹤全局時序約束。
① tFAW,4個激活窗口參數,指定僅允許4個激活命令的時間段。
② tRRD,背靠背激活命令到不同組之間的延遲。
③ 部分總線周轉時間參數。
(6)MMR,其功能如下。
① 所有配置寄存器的主機。
② 使用Avalone-MM總線與核心通信。
③ 內核邏輯可以讀寫所有配置位。
④ 通過該塊,調試總線布線到內核。
(7)邊帶控制,執行刷新和斷電功能。
(8)ECC控制器,盡管在軟邏輯中執行ECC編碼和解碼,但ECC控制器在硬核解決方案中維持讀-修改-寫狀態機。
(9)AFI接口,通過該接口,存儲器控制器與PHY通信。
2)數據緩沖區控制器
數據緩沖區控制器具有以下主要職責。
(1)管理對數據緩沖區的讀寫訪問。
① 當接收寫入數據或讀取返回數據達到時,提供到緩沖區的數據存儲指針。
② 當把寫入數據分派到存儲器或者從緩沖區讀出讀取數據并將其發送回用戶時,提供排出指針。
(2)滿足所要求的寫延遲。
(3)如果使能ECC支持,使用數據緩沖區控制器和數據緩沖器執行數據重新排序。
每個 I/O 組包含兩個數緩沖控制器塊,用于在每個組中分割的數據緩沖通道。要改善時序,請將數據緩沖區控制器放置在物理上靠近I/O通道的位置。
2.延遲鎖定環
延遲鎖定環(Delay-Locked Loop,DLL)找到9位延遲鏈的延遲設置,以便鏈的延遲等于一個時鐘周期。
每個I/O組都有一個位于中心的DLL,它支持600MHz~1.3GHz的頻率范圍。
用于DLL的參考時鐘來自同一個I/O組中的PLL輸出。DLL將參考時鐘除以8并創建兩個時鐘脈沖—啟動和測量。發送和測量之間的相位差是一個參考時鐘周期。時鐘脈沖發送通過延遲鏈控制的延遲設置進行布線,然后將延遲發送與測量進行比較。
DLL 延遲鏈的設置來自 9 位計數器,該計數器向上或向下移動以改變延遲時間,直到延遲啟動和測量在相同的階段對齊。一旦鎖定 DLL,通過延遲鏈的延遲等于一個參考時鐘周期,并且將延遲設置發送到DQS延遲塊。
3.定序器
定序器通過校準接口來補償由傳輸延遲引起的建立和保持要求的變化,從而實現高頻率存儲器接口操作。
定序器實現校準算法,以確定即使在存在顯著延遲變化的情況下始終維持數據和時鐘信號的中心對齊所必需的延遲和相位設置的組合。在 FPGA I/O 可編程的延遲鏈實現計算的延遲,以確保數據保持在中心。
在每個I/O組中都嵌入了一個定序器。定序器由下面組件構成,包括:
(1)一個讀-寫管理器。
(2)一個地址/命令集或指令ROM。
(3)輔助模塊,如PHY管理器、數據管理器和跟蹤管理器。
(4)基于每個引腳的數據模式和數據輸出緩沖區由讀寫管理器管理。
定序器的所有主要組件連接到Avalon總線上,為Nios II子系統提供了可控性、可視性和靈活性,如圖1.71所示。

圖1.71 定序器的內部架構
4.時鐘樹
與前一代的器件相比,PHY 時鐘網絡有更短的時鐘樹,它產生更小的抖動和更小的占空失真。PHY時鐘網絡由參考時鐘樹、PHY時鐘樹和DQS時鐘樹構成,其架構如圖1.72所示。
5.I/O通道
在每個I/O組中,有4個I/O通道,每個通道包含帶有相同讀和寫數據路徑和緩沖區的12個I/O引腳,每個I/O通道的架構如圖1.73所示。
更進一步地解釋,數據路徑組件應包含:
(1)輸入路徑,包含捕獲寄存器和讀FIFO。
(2)輸出/輸出使能(OE)路徑,包含寫FIFO、時鐘多路復用器、相位交織器(基于頻率支持大約5~10ps的分辨率)、雙數據率控制。
(3)輸入延遲鏈,支持帶有延遲范圍為0~625ps的5ps分辨率。
(4)讀/寫緩沖區,寫數據緩沖區有內建選項,用于從核或從存儲器控制器取數據。
DQS 邏輯塊包含后同步寄存器、DQS 延遲鏈、FIFO 控制和多組切換控制塊。DQS 延遲鏈為 DQS 信號提供可變延遲,允許設計者在為 DQ 捕獲標定最大 tsetup和 thold期間,調整DQS信號時序。
為了保證延遲值恒定,DQS延遲鏈也包含:
(1)跟蹤溫度和低頻電壓變化的邏輯;
(2)影子寄存器用于保存多級接口的校準延遲設置,并將 DQS 延遲鏈設置切換為最多4種不同設置之一。

圖1.72 PHY的時鐘網絡架構
6.I/O AUX
在每個I/O列中,有一個I/O AUX塊,包括:
(1)一個Nios II處理器,以及支持嵌入存儲器塊;
(2)為整個I/O列管理標定算法;
(3)通過一個專用的Avalon接口,與每個I/O組內的定序器通信。

圖1.73 I/O通道的架構
- Raspberry Pi 3 Cookbook for Python Programmers
- SDL Game Development
- 電腦常見問題與故障排除
- 數字道路技術架構與建設指南
- Learning Stencyl 3.x Game Development Beginner's Guide
- Large Scale Machine Learning with Python
- STM32嵌入式技術應用開發全案例實踐
- 面向對象分析與設計(第3版)(修訂版)
- 筆記本電腦芯片級維修從入門到精通(圖解版)
- Istio實戰指南
- 計算機電路基礎(第2版)
- 微服務架構基礎(Spring Boot+Spring Cloud+Docker)
- Hands-On One-shot Learning with Python
- Arduino案例實戰(卷Ⅳ)
- 電腦軟硬件維修寶典