Ⅰ zynq7000術語詳解,不懂啥是pl,ps,apu,scu
摘要:本文介紹與XILINX的EPP平台成員, ZYNQ晶元相關的縮寫術語和含義. 與簡單翻譯術語不同,本文對每個縮寫在本行業其他公司的展開含義也略作介紹, 避免混淆. 對術語的技術功能也作簡單介紹.
8月份學校放暑假, 大學計劃這邊緊急的事不多, 因此通常是俺的充電和學習時間.
本月的學習任務嘛, 當然是ZYNQ. 資料不多,一個是今年3月份出來的UG804, 是一個簡介性質的東東, 24頁, 另一個是UG585, 技術手冊,目前有1804頁. 目前都還是保密的, 合作夥伴需要簽NDA才能看到.
去年ZYNQ剛出來的時候,文檔還沒有,俺只有對著僅有的一個框圖,對其中的縮寫瞎猜了一番. 當時還寫了博客. 信馬由韁-XILINX的ARM晶元初探(之一). 看到UG804,終於有機會驗證俺當時猜的縮寫展開到底對不對.
看了之後才發現, 框圖中那點看不懂的縮寫, 比起UG804中引入的各種縮寫, 簡直是小巫見大巫. 為了給你一個概念, 假設你3年後碰到一個用過ZYNQ的工程師, 和你說了下面一句話, 你能聽懂多少:
經理啊, 我的PS啟動了,可是PL還沒載入, 這時,APU復位檢查了沒問題, MIO連得好好的, EMIO看上去也工作正常,你說我該查GIC呢, 還是AFI呢 ?
坑爹啊!比火星文還火星文的話聽了傷不起啊~~~.下面,開始逐個解釋新出現的,或者冷僻的縮寫,繼續看文檔時看見了,才能反映上來是啥意思.
假設你3年後碰到一個用過ZYNQ的工程師, 和你說了下面一句話, 你能聽懂多少:
經理啊, 我的PS啟動了,可是PL還沒載入, 這時,APU復位檢查了沒問題, MIO連得好好的, EMIO看上去也工作正常,你說我該查GIC呢, 還是AFI呢 ?
PS: 處理系統 (Processing System) , 就是與FPGA無關的ARM的SOC的部分。
PL: 可編程邏輯 (Progarmmable Logic), 就是FPGA部分。 之所以叫PL,而不是叫FPGA,我想,原因主要是考慮到讓搞軟體的兔子們不要看了以後望而生畏。 邏輯嘛,搞軟體的也要講邏輯是不?可編程,軟體就是編程是不?
ZYNQ,往大里說,就是兩大功能塊,PS 部分和 PL部分, 說白了,就是ARM的SOC部分,和FPGA部分。
下一個層級, APU部分:
APU: 應用處理器單元(Application Processor Unit). 位於PS裡面的中心位置。 這個名字起的,就有點學問了。
APU這三個字,AMD公司曾經用過,特指全稱是「Accelerated Processing Units」,加速處理器,它是融聚了CPU與GPU功能的產品,電腦上兩個最重要的處理器融合,相互補足,發揮最大性能。XILINX 的APU與AMD的APU在縮寫上就是截然不同的兩個詞, 不能混淆了。
APU 這個詞,在Xilinx內部的術語中,也是撞車了的。 在XILINX 的 PowerPC體系中, 有一個輔助處理單元「Auxiliary Processing Unit」 的概念,指的是在PowerPC硬核外掛的浮點協處理器之類的單元。
在這個位置上的處理器, 還有各種其他的叫法, 有MCU (微控制器處理單元Microcontroller Unit), MPU (微處理器單元Microprocessor Unit),等等。 MCU這個叫法,暗示了處理器功能不強,只能搞搞輸入輸出控制啊,寫個小狀態機啊, 一般都是8位機。 MPU呢,就更先進了一些,成prcessor了,這意味著處理器通常是32位的, 能幹點計算的事。 但是, 有一個micro詞根在裡面, 說明乾的是小活, 通常沒有正式的和全尺寸的操作系統, 通常沒有內存管理單元MMU。 ARM 的Cortex-M系列是干這類活的。
APU, 帶了Application這個詞, 意味著在上面可以跑應用程序, 暗示著這個系統是需要全尺寸的操作系統的, 和現在炙手可熱的應用商店app store 遙相呼應。
APU裡面具體包含的內容嘛,就是雙ARM-CortexA9核,加上高速緩沖,DMA,定時器,中斷控制,浮點和NEON協處理,硬體加速器一致性控制器ACP神馬的。 也就是,處理器核心部分。
套用時下越來越流行的詞彙,「嵌入式計算」, "embedded computing", 可以這么說, 用MCU,MPU搭出來的東東,通常叫嵌入式系統。 而APU搭出來的東東, 就夠格叫嵌入式計算系統了。
TTC, 這個詞,當年猜了半天也拿不準,看了文檔,發現,是Triple Time Counter的意思。 就是這個計數器裡面有3個獨立通道, 可以獨立計數。 掛在APB上,為系統或外設提供定時或計數服務的。
WDT, 看門狗定時器,有兩個, 分別監視ARM-Cortex A9用的。 如果軟體跑飛,無法清定時器,一段時間後,看門狗就復位。
SWDT,系統級看門狗定時器, 這個看門狗的時鍾和復位信號,都可以來自於晶元外部, 這樣,即使系統有嚴重故障,比如時鍾頻率本身都有問題了, 仍然可以通過與系統無關的外部信號計數,計數滿就復位。
SCU, Snoop Control Unit, 用來保持雙核之間的數據Cache的一致性。 也就是是說,第一個A9
處理器寫存儲時,只是寫在了緩存里,沒有進主存, 如果第二個A9讀操作,涉及到第一個寫臟了的數據段, SCU要保證第二個A9的緩存里是最新的數據。 如果第二個A9寫同樣數據段的數據,需要在第一個中體現出寫的內容。 SCU的存在,才使得兩個核成互相聯系的「雙核」,才能成為MPsoc。 在原先XILINX的雙PowerPC的晶元中, 是木有這個東東的。 不少學校的老師拿XILINX的雙powerpc練手和教學,從頭搭一個Snoop協議在裸的雙PowerPC中,倒也不錯。
Ⅱ ZYNQ7000晶元的基本組成
賽靈思Zynq-7000 可擴展處理平台(EPP)將雙 ARM Cortex-A9 MPCore 處理器系統與可編程邏輯和硬 IP 外設緊密集成在一起,提供了靈活性、可配置性和性能的完美組合。圍繞其剛剛推出的可擴展處理平台(EPP), 賽靈思在今年3月發布了基於Zynq -7000新系列的首批器件。 採用 28 nm製造工藝, Zynq-7000嵌入式處理平台系列的每款產品均採用帶有NEON及雙精度浮點引擎的雙核 ARM Cortex-A9 MPCore 處理系統,該系統通過硬連線完成了包括L1,L2 緩存、存儲器控制器以及常用外設在內的全面集成。(圖 1)。盡管 FPGA 廠商此前已推出過帶硬核或軟核處理器的器件,但 Zynq-7000 EPP 的獨特之處在於它由ARM處理器系統而非可編程邏輯元件來進行控制。也就是說,處理系統能夠在開機時引導(在 FPGA 邏輯之前)並運行各個獨立於可編程邏輯之外的操作系統。這樣設計人員就可對處理系統進行編程,根據需要來配置可編程邏輯。
Ⅲ vivado 不支持zynq 7045
你要問的是vivado支不支持zynq 7045這個問題吧,支持。
vivado有多個版本,Block RAM是PL部分的存儲器陣列,為了與DRAM(分布式RAM)區分開,所以叫塊RAM。
ZYNQ的每一個BRAM 36KB,7020的BRAM有140個(4.9M),7030有265個(9.3M),7045有545個(19.2M)。每一個BRAM都有兩個共享數據的獨立埠,當然是可以配置的,可用於片內數據緩存、FIFO緩沖。