ZYNQ PL 部分等價于 Xilinx 7 系列 FPGA,因此我們將首先介紹 FPGA 的架構。簡化的 FPGA 基本結構由 6 部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內嵌專用硬核等,如下圖所示:
每個單元的基本概念介紹如下。
(1)可編程輸入/輸出單元
輸入/輸出(Input/Ouput)單元簡稱 I/O 單元,它們是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配需求,為了使 FPGA 具有更靈活的應用,目前大多數 FPGA 的 I/O 單元被設計為可編程模式,即通過軟件的靈活配置,可以適配不同的電氣標準與 I/O 物理特性;可以調整匹配阻抗特性、上下拉電阻、以及調整驅動電流的大小等。
可編程 I/O 單元支持的電氣標準因工藝而異,不同芯片商、不同器件的 FPGA 支持的 I/O 標準不同,一般來說,常見的電氣標準有 LVTTL, LVCMOS, SSTL, HSTL, LVDS, LVPECL 和 PCI 等。值得一提的是,隨著 ASIC 工藝的飛速發展,目前可編程 I/O 支持的最高頻率越來越高,一些高端 FPGA 通過 DDR寄存器技術,甚至可以支持高達 2Gbit/s 的數據數率。
ZYNQ 上的通用輸入/輸出功能(IOB)合起來被稱作 SelectIO 資源,它們被組織成 50 個 IOB 一組。每個 IOB 有一個焊盤,是與外部世界連接來做單個信號的輸入或輸出的。每個 IOB 還包含一個IOSERDES 資源,可以做并行和串行數據的可編程轉換。
(2)基本可編程邏輯單元
基本可編程邏輯單元是可編程邏輯的主體,可以根據設計靈活地改變其內部連接與配置,完成不同的邏輯功能。FPGA 一般是基于 SRAM 工藝的,其基本可編程邏輯單元幾乎都是由查找表(LUT, Look UpTable)和寄存器(Register)組成。Xilinx 7 系列 FPGA 內部查找表為 6 輸入,查找表一般完成純組合邏輯功能。FPGA 內部寄存器結構相當靈活,可以配置為帶同步/異步復位或置位,時鐘使能的觸發器,也可以配置成鎖存器, FPGA 依賴寄存器完成同步時序邏輯設計。
一般來說,比較經典的基本可編程邏輯單元的配置是一個寄存器加一個查找表,但是不同廠商的寄存器與查找表也有一定的差異,而且寄存器與查找表的組合模式也不同。當然這些可編程邏輯單元的配置結構隨著器件的不斷發展也在不斷更新,最新的一些可編程邏輯器件常常根據需求設計新的 LUT 和寄存器的配置比率,并優化其內部的連接構造。
例如, Altera 可編程邏輯單元通常被稱為 LE(Logic Element),由一個寄存器加一個 LUT 構成。Altera 大多數 FPGA 將 10 個 LE 有機地組合在一起,構成更大的功能單元——邏輯陣列模塊(LAB, LogicArray Block)。LAB 中除了 LE 還包含 LE 之間的進位鏈, LAB 控制信號,局部互聯線資源, LUT 級聯鏈,寄存器級聯鏈等連線與控制資源。
Xilinx 7 系列 FPGA 中的可編程邏輯單元叫 CLB(Configurable Logic Block,可配置邏輯塊)每個CLB 里包含兩個邏輯片(Slice)。每個 Slice 由 4 個查找表、 8 個觸發器和其他一些邏輯所組成的。CLB示意圖如下所示:
CLB 是邏輯單元的最小組成部分,在 PL 中排列為一個二維陣列,通過可編程互聯連接到其他類似的資源。每個 CLB 里包含兩個邏輯片,并且緊鄰一個開關矩陣, 如下圖所示:
(3)嵌入式塊 RAM
目前大多數 FPGA 都有內嵌的塊 RAM(Block RAM), FPGA 內部嵌入可編程 RAM 模塊,大大地拓展了 FPGA 的應用范圍和使用靈活性。不同器件商或不同器件族的內嵌塊 RAM 的結構不同, Lattice 常用的塊 RAM 大小是 9KBIT;Altera 的塊 RAM 最靈活,一些高端器件內部同時含有 3 種塊 RAM 結構,分別是 M512 RAM, M4K RAM, M9K RAM。
Zynq-7000 里的塊 RAM 和 Xilinx 7 列 FPGA 里的那些塊 RAM 是等同的,它們可以實現 RAM、 ROM和先入先出(First In First Out, FIFO)緩沖器。每個塊 RAM 可以存儲最多 36KB 的信息,并且可以被配置為一個 36KB 的 RAM 或兩個獨立的 18KB RAM。默認的字寬是 18 位,這樣的配置下每個 RAM 含有2048 個存儲單元。RAM 還可以被“重塑”來包含更多更小的單元(比如 4096 個單元 x9 位,或 8192x4位),或是另外做成更少更長的單元(如 1024 單元 x36 位 512x72 位)。把兩個或多個塊 RAM 組合起來可以形成更大的存儲容量。PL 中的塊 RAM 示意圖如下所示:
需要補充的一點是,除了塊 RAM,還可以靈活地將 LUT 配置成 RAM, ROM, FIFO 等存儲結構,這種技術被稱為分布式 RAM。根據設計需求,塊 RAM 的數量和配置方式也是器件選型的一個重要標準。
(4)豐富的布線資源
布線資源連通 FPGA 內部的所有單元,而連線的長度和工藝決定著信號在連線上的驅動能力和傳輸速度。FPGA 芯片內部有著豐富的布線資源,這些布線資源根據工藝、長度、寬度和分布位置的不同而劃分為 4 類不同的類別:
第一類是全局布線資源,用于芯片內部全局時鐘和全局復位/置位的布線;
第二類是長線資源,用以完成芯片 Bank 間的高速信號和第二全局時鐘信號的布線;
第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;
第四類是分布式的布線資源,用于專有時鐘、復位等控制信號線。
在實際中設計者不需要直接選擇布線資源,布局布線器可自動地根據輸入邏輯網表的拓撲結構和約束條件選擇布線資源來連通各個模塊單元。從本質上講,布線資源的使用方法和設計的結果有直接的關系。
(5)底層嵌入功能單元
底層嵌入功能單元的概念比較籠統,這里我們指的是那些通用程度較高的嵌入式功能模塊,比如 PLL(Phase Locked Loop)、 DLL(Delay Locked Loop)、 DSP、 CPU 等。隨著 FPGA 的發展,這些模塊被越來越多地嵌入到 FPGA 的內部,以滿足不同場合的需求。
目前大多數 FPGA 廠商都在 FPGA 內部集成了 DLL 或者 PLL 硬件電路,用以完成時鐘的高精度、低抖動的倍頻、分頻、占空比調整、相移等功能。目前,高端 FPGA 產品集成的 DLL 和 PLL 資源越來越豐富,功能越來越復雜,精度越來越高。
另外, 越來越多的高端 FPGA 產品將包含 DSP 或 CPU 等硬核,從而 FPGA 將由傳統的硬件設計手段逐步過渡到系統級設計平臺。例如 Altera 的 Stratix IV、 Stratix V 等器件內部集成了 DSP 核;Xilinx 的Virtes II 和 Virtex II pro 系列 FPGA 內部集成了 Power PC450 的處理器。FPGA 內部嵌入 DSP 或 CPU 等處理器,使 FPGA 在一定程度上具備了實現軟硬件聯合系統的能力, FPGA 正逐步成為 SOPC 的高效設計平臺。
(6)內嵌專用硬核
這里的內嵌專用硬核與前面的底層嵌入單元是有區分的,這里講的內嵌專用硬核主要指那些通用性相對較弱,不是所有 FPGA 器件都包含硬核。
在 ZYNQ 的 PL 端有一個數模混合模塊——XADC,它就是一個硬核。XADC 包含兩個模數轉換器(ADC),一個模擬多路復用器,片上溫度和片上電壓傳感器等。我們可以利用這個模塊監測芯片溫度和供電電壓,也可以用來測量外部的模擬電壓信號。
(7)ZYNQ PL 架構
在介紹完 FPGA 的基本結構之后, 我們給出 ZYNQ PL 架構的示意圖,如下所示:
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603319 -
嵌入式
+關注
關注
5082文章
19123瀏覽量
305150 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121401 -
可編程
+關注
關注
2文章
861瀏覽量
39822 -
Zynq
+關注
關注
10文章
609瀏覽量
47181
原文標題:ZYNQ PL架構
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論