ZYNQ架構
雙核ARM Cortex-A9 處理器:ARM Cortex-A9 是一個應用級的處理器,能運行完整的像Linux 這樣的操作系統
傳統的現場可編程門陣列(Field Programmable Gate Array,FPGA)邏輯部件:基于Xilinx 7 系列的FPGA 架構
這個架構實現了工業標準的AXI 接口,在芯片的兩個部分之間實現了高帶寬、低延遲的連接。
這意味著處理器和邏輯部分各自都可以發揮最佳的用途,而不會有在兩個分立的芯片之間的那種接口開銷。
外設是處理器之外的功能部件,一般從事三種功能之一:(一)協處理器—— 輔助主處理器的單元,往往是被優化用于特定任務;(二)與外部接口交互的核心,如連接到LED 和開關、編解碼器等等;(三)額外的存儲器單元。
PS具有固定的架構,承載了處理器和系統存儲區
而PL完全是靈活的,給了設計者一面“ 空白畫布” 來創建定制的外設,或重用標準外設。
ZYNQ的SoC設計流基本模型
ZYNQ芯片
處理器系統(PS)
ARM是一顆“硬”處理器,硬件處理器以外的另一種方案,就像Xilinx 的MicroBlaze這樣的“軟”處理器,這是由可編程邏輯部分的單元組合而成的。也就是說,一個軟處理器的實現和部署在FPGA 的邏輯結構里的任何其他IP 包是等價的。要求不高的任務可以從主的ARM Cortex-A9 處理器上脫離出來,分配給軟處理器,軟處理器與ARM協同工作,提升整體性能
PS里并非只有ARM 處理器,還有一組相關的處理資源,形成了一個應用處理器單元(Application Processing Unit,APU),另外還有擴展外設接口、cache 存儲器、存儲器接口、互聯接口和時鐘發生電路
處理器系統外部接口——PS 和外部接口之間的通信主要是通過復用的輸入/ 輸出(Multiplexed Input/Output,MIO)實現的。這樣的連接也可以通過擴展EMIO (ExtendedMIO,EMIO)來實現,EMIO 并不是PS 和外部連接之間的直接通路,而是通過共用了PL 的I/O 資源來實現的。
可用的I/O 包括標準通信接口(SPI,I2C,USB,SD,CAN,UART,GigE)和通用輸入/ 輸出(General Purpose Input/Output,GPIO)
可編程邏輯(PS)
LUT-查找表(https://www.cnblogs.com/lbf-19940424/p/6564885.html)
FF-觸發器,一個實現1 位寄存的時序電路,帶有復位功能。FF 的一種用處是實現鎖存。
CLB-可配置編程邏輯塊
IOB-輸入/ 輸出塊(Input/Output Blocks,IOB)-實現了PL 邏輯資源之間的對接,并且提供物理設備“ 焊盤” 來連接外部電路。每個IOB 可以處理一位的輸入或輸出信號。IOB 通常位于芯片的周邊。
除了通用的部分,還有兩個特殊用途的部件:滿足密集存儲需要的塊RAM和用于高速算術的DSP48E1片
通用輸入輸出IOB
通信接口--包括PCIExpress、串行RapidIO、SCSI 和SATA
其他可編程邏輯擴展接口--XADC,時鐘,編程與調試
處理器系統與可編程邏輯的接口
1、AXI標準--Advanced eXtensible Interface
有三類AXI4總線協議
? AXI4 [2] — 用于存儲映射鏈接,它支持最高的性能:通過一簇高達256 個數據字(或“ 數據拍(data beats)”)的數據傳輸來給定一個地址。
? AXI4-Lite [2] — 一種簡化了的鏈接,只支持每次連接傳輸一個數據(非批量)。AXI4-Lite也是存儲映射的:這種協議下每次傳輸一個地址和單個數據。
? AXI4-Stream [1] — 用于高速流數據,支持批量傳輸無限大小的數據。沒有地址機制,這種總線類型最適合源和目的地之間的直接數據流(非存儲器映射)
互聯(Interconnect)— 互聯實際上是一個開關,管理并直接傳遞所連接的AXI 接口之間的通信。在PS 內有幾個互聯,其中有些還直接連接到PL (如圖2.9),而另一些是只用于內部連接的。這些互聯之間的連接也是用AXI 接口所構成的。
接口(Interface)— 用于在系統內的主機和從機之間傳遞數據、地址和握手信號的點對點連接。(M-主機,S-從機)
? 通用AXI(General Purpose AXI) — 一條32 位數據總線,適合PL 和PS 之間的中低速通信。接口是透傳的不帶緩沖。總共有四個通用接口:兩個PS 做主機,另兩個PL 做主機。
? 加速器一致性端口(Accelerator Coherency Port) — 在PL 和APU 內的SCU之間的單個異步連接,總線寬度為64 位。這個端口用來實現APU cache 和PL的單元之間的一致性。PL 是做主機的。
? 高性能端口(High Performance Ports) — 四個高性能AXI 接口,帶有FIFO緩沖來提供“ 批量” 讀寫操作,并支持PL 和PS 中的存儲器單元的高速率通信。數據寬度是32 或64 位,在所有四個接口中PL 都是做主機的。
表 2.2 給出給出了每個接口的簡述,標出了主機和從機 (按照慣例,主機是控制總線并發起會話的,而從機是做響應的)。注意接口命名的規范(在表 2.2 的第一列)是表示了 PS 的角色的,也就是說,第一個字母 “M” 表示 PS 是主機,而第一個字母 “S” 表示 PS 是從機。
2、EMIO接口
3、其他PL-PS信號
跨越PS-PL 邊界的其他信號包括看門狗定時器、重啟信號、中斷和DMA 接口信號。
安全
總結
附議:
本人覺得除了整體架構的創新,靈活的IO也是ZYNQ成為受歡迎的一部分:
Multiplexed I/O (MIO):PS端外設IO復用,這是什么概念呢?前面介紹了ZYNQ主要分PS/PL兩大組成模塊,PS端前面介紹的外設如USB/CAN/GPIO/UART等都必要需要引腳與外界打交道,這里所謂的復用與常見的單片機、處理器里引腳復用的概念一樣。但是(這里劃重點),ZYNQ具有高達54個PS引腳支持MIO,MIO具有非常高的靈活度以達到靈活配置,這給硬件設計、PCB布板帶來了極大的便利!,MIO的配置利用vivado軟件可以實現靈活配置,如下圖所示。
硬件工程師往往發現對一個復雜的系統的布局布線,常常會很困難,也常因為不合理的布局布線而陷入EMC深坑。ZYNQ的IO引腳高度靈活性,無疑在電路設計方面提供極大的方便,可實現非常靈活的PCB布局布線。從而在EMC性能改善方面帶來了很大便利。
靈活的PS-PL互連接口
Extended Multiplexed I/O (EMIO):擴展MIO,如果想通過PS來訪問PL又不想浪費AXI總線時,就可以通過EMIO接口來訪問PL。54個I/O中,其中一部分只能用于MIO,大部分可以用于MIO或EMIO,少量引腳只能通過EMIO訪問。
如上圖,比如I2C0則可以通過EMIO映射到PL端的引腳輸出,這無疑又增加了更多的靈活性!
PS-PL接口HP0-HP3:如上架構圖中AXI high-performance slave ports (HP0-HP3) 實現了PS-PL的接口
可配置的32位或64位數據寬度
只能訪問片上存儲器OCM(On chip memory)和DDR
AXI FIFO接口(AFI)利用1KB FIFOs來緩沖大數據傳輸
PS-PL接口GP0-GP1:如上架構圖中AXI general-purpose ports
兩個PS主接口連接到PL的兩個從設備
32位數據寬度
一個連接到CPU內存的64位加速器一致端口(ACP)AXI從接口,ACP 是 SCU (一致性控制單元)上的一個 64 位從機接口,實現從 PL 到 PS 的異步 cache 一致性接入點。ACP 是可以被很多 PL 主機所訪問的,用以實現和 APU 處理器相同的方式訪問存儲子系統。這能達到提升整體性能、改善功耗和簡化軟件的效果。ACP 接口的表現和標準的 AXI 從機接口是一樣的,支持大多數標準讀和寫的操作而不需要在 PL 部件中加入額外的一致性操作。
DMA, 中斷, 事件信號:
處理器事件總線信號事件信息到CPU
PL外設IP中斷到PS通用中斷控制器(GIC)
四個DMA通道RDY/ACK信號
擴展多路復用I/O (EMIO)允許PS外設端口訪問PL邏輯和設備I/O引腳。
時鐘以及復位信號:
四個PS時鐘帶使能控制連接到PL
四個PS復位信號連接到PL
審核編輯 :李倩
-
架構
+關注
關注
1文章
513瀏覽量
25468 -
Zynq
+關注
關注
10文章
609瀏覽量
47175
原文標題:ZYNQ架構
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論