ZYNQ全解析之PL和PS接口
掃描二維碼
隨時隨地手機(jī)看文章
1、PL和PS的接口類型總共有兩種
(1)功能接口:AXI、EMIO、中斷、DMA流控制、時鐘調(diào)試接口。
(2)配置接口:PCAP、SEU、配置狀態(tài)信號和Program/Done/Init信號。這些信號連接到PL內(nèi)配置模塊的固定邏輯上,給PS提供對PL的控制能力。
2、AXI總線
AXI (Advanced eXtensible Interface)本是由ARM公司提出的一種總線協(xié)議。用于PL和PS之間的通信。
總線:是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)的通道,一般由由數(shù)據(jù)線、地址線、控制線等構(gòu)成。
接口:是一種連接標(biāo)準(zhǔn),又常常被稱之為物理接口。
協(xié)議:就是傳輸數(shù)據(jù)的規(guī)則
(1)AXI總線:在ZYNQ中有支持三種AXI總線
AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允許最大256輪的數(shù)據(jù)突發(fā)傳輸;
AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一個輕量級的地址映射單次傳輸接口,占用很少的邏輯單元。
AXI4-Stream:(For high-speed streaming data.)面向高速流數(shù)據(jù)傳輸;去掉了地址項,允許無限制的數(shù)據(jù)突發(fā)傳輸規(guī)模。
(2)zynq的AXI接口共有9個,包括如下類型:
1)AXI_ACP接口:加速器一致性接口,用來管理DMA之類不帶緩沖的AXI外設(shè),PS端是Slave接口。
通過該接口PL端可以直接訪問PS部分cache,故PL邏輯可以直接從cache中拿到CPU的計算結(jié)果,同時也可以進(jìn)一步第一時間將計算的邏輯加速運算的結(jié)果送至CPU。
2)AXI_HP接口:高性能/帶寬的AXI3.0標(biāo)準(zhǔn)接口,共有4個,PL模塊作為主設(shè)備連接。。主要用于PL訪問PS上的存儲器(DDR和On-Chip RAM)。
AXI-HP接口主要是為了PL訪問PS上的存儲器(DDR和on-chip RAM)而設(shè)計的高速數(shù)據(jù)通路。AXI-HP端口分為兩部分一部分直接和PL相連,另一部分連接到AXI interconnect。例如視頻處理時,高清的圖像有FPGA直接采集處理,然后通過AXI-HP接口將數(shù)據(jù)傳輸?shù)紻DR中,供APU完成進(jìn)一步圖像處理。
3)AXI_GP接口:通用AXI接口,共有4個,包括兩個32位主設(shè)備接口和兩個32位從設(shè)備接口。
(3)AXI協(xié)議
AXI總線協(xié)議的兩端可以分為分為主(master)、從(slave)兩端,他們之間一般需要通過一個AXI Interconnect相連接,作用是提供將一個或多個AXI主設(shè)備連接到一個或多個AXI從設(shè)備的一種交換機(jī)制。AXI Interconnect的主要作用是,當(dāng)存在多個主機(jī)以及從機(jī)器時,AXIInterconnect負(fù)責(zé)將它們聯(lián)系并管理起來。由于AXI支持亂序發(fā)送,亂序發(fā)送需要主機(jī)的ID信號支撐,而不同的主機(jī)發(fā)送的ID可能相同,而AXI Interconnect解決了這一問題,他會對不同主機(jī)的ID信號進(jìn)行處理讓ID變得唯一。
(4)AXI協(xié)議之握手協(xié)議
AXI4 所采用的是一種 READY,VALID 握手通信機(jī)制,簡單來說主從雙方進(jìn)行數(shù)據(jù)通信前,有一個握手的過程。傳輸源產(chǎn)生 VLAID 信號來指明何時數(shù)據(jù)或控制信息有效。而目地源產(chǎn)生 READY 信號來指明已經(jīng)準(zhǔn)備好接受數(shù)據(jù)或控制信息。傳輸發(fā)生在 VALID和 READY 信號同時為高的時候。VALID 和 READY 信號的出現(xiàn)有三種關(guān)系。
1) VALID 先變高 READY 后變高
2) READY 先變高 VALID 后變高
3) VALID 和 READY 信號同時變高
3、 AXI4-Lite 詳解
(1) 先要自定義一個AXI-Lite的IP,新建工程之后,選擇,菜單欄->Tools->Creat and Package IP。
(2) next - 選擇Create AXI4 Peripheral,然后Next - 默認(rèn),選擇Next - 這里接口類型選擇Lite,選擇Next - 選擇Edit IP,點擊Finish - 此后,Vivado會新建一個工程,專門編輯該IP,通過該工程,我們就可以看到Vivado為我們生成的AXI-Lite的操作源碼。
(3) 代碼分析:





