文章轉載自 http://www.eefocus.com/Kevin/blog/11-08/228643_42a39.html
kevin是xilinx的大牛,必須膜拜啊。
還引自http://blog.sina.com.cn/s/blog_6cb263210101g8lv.html
摘要:本文介紹與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呢 ?
坑爹啊! 比火星文還火星文的話聽了傷不起啊~~~. 下面,開始逐個解釋新出現的,或者冷僻的縮寫,繼續看文檔時看見了,才能反映上來是啥意思.
開始,還是用最基礎的marketing 圖。 真正的詳細圖嘛,要等UG804,UG585正式發布了才能放上來。

最高一個層級的縮寫:
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中,倒也不錯。
------------------------------這里是第二部分---------------zynq的概述--------
前學習zynq的時候翻譯的zynq-7000數據手冊里面的部分內容。翻譯的比較隨意,也只選取了主要內容來翻譯。可用來學習,不可用作查閱的。具體還請參照官方文檔。
Xilinx ZYNQ-7000概述
處理器子系統(PS)概述
基於ARM 雙核CortexA9 的應用處理器
ARM-v7架構 高達1GHz
單/雙精度浮點單元
NEON多媒體處理引擎
...
3個看門狗 1個全局計數器 兩個三倍計數器
緩存
每個CPU 32KB 1級指令和數據緩存
512KB 2級緩存 2個CPU共享
支持8位奇偶校驗
片內存儲
片上boot ROM
256KB 片內RAM
外部存儲接口
多協議動態內存控制器
16/32 bit DDR2、DDR3接口
16位ECC支持
1GB地址空間
靜態存儲接口: 8bit SRAM,並行NOR Flash,ONFI1.0 NANDFlash接口,1-4bit SPI Flash支持
8通道 DMA控制器
...
IO外設和接口
兩個千兆網卡支持:發散-聚集DMA ,GMII,RGMII,SGMII接口
兩個USB2.0 OTG接口,每個最多支持12節點
兩個CAN2.0B總線接口
兩個SD卡、SDIO、MMC兼容控制器
2個SPI,2個UARTs,2個I2C接口
4組32bit GPIO,54(32+22)作為PS系統IO,64連接到PL
互聯
PS內和PS到PL的高帶寬連接
基於ARM AMBA AXI總線
傳輸質量控制和帶寬控制
可編程邏輯(PL)概述
可編程邏輯塊
LUT、觸發器、級聯加法器
36Kb 塊RAM
全雙口
最高72bit寬度
DSP單元
...
可編程IO塊
支持LVCMOS,LVDS和SSTL
1.2V到3.3V IO
可編程延時和SerDes
JTAG邊界掃描
PCI-E接口
串行收發器
最高16收發器,最高12.5Gb/s數據速率
兩個AD轉換器
片上電壓、溫度感應,高達17外部差分輸入通道,1MSa/s
Zynq-7020特定的性能和資源量
PS:CPU有667MHz,733MHz,800MHz三個速度等級
PL:85K邏輯單元(約等效於130萬門);53.2K 查找表;106K觸發器;220個DSP單元;2個12bit XADC最多17通道
總的結構框圖
詳細描述部分摘錄
主要包括與開發有關的內容如下:
l 內存接口;
l IO外設;
l PS和PL的啟動和配置方式;
l 內部可以的邏輯資源,時鍾管理與性能,DDR內存性能與速率;
l 網絡收發支持;
l PS與PL之間的接口(AXI總線)帶寬;
l 輸入輸出,包括高速串行收發模塊(用於接收LVDS的圖像數據)的詳細介紹;
l ADC性能與參數;
l DDR內存--能不能部分用作CPU的內存,部分用作圖像緩存;
l 調試工具、接口;
l 功耗
與開發關系不大的一些內容未譯,以“...”代替。
PS部分
處理器單元(APU)
...
內存接口
內存接口單元包括動態內存控制器和靜態內存接口模塊。動態內存控制器支持DDR2,DDR3,LPDDR2。靜態存儲控制器支持NAND flash, Quad-SPI flash,並行數據總線,並行 NOR flash 接口。
動態內存接口
它可配置成16位或32位來訪問1GB的地址空間。 ECC(帶有奇偶校驗功能的內存)支持16位的總線訪問模式。處理器子系統由DDR控制器和相關的物理層組成,包括一系列專用I/O. DDR3的存取速度能達1333Mb/s. DDR內存控制器是一個復用端口,它可以使PS和PL都訪問公共內存。DDR控制器具有4個AXI從端口,特征如下:
•一個64位的端口通過2級緩存控制器專用於ARM CPU,,並可以配置成低延時。
•2個64位的端口是專用於PL訪問,
•另一個64位的端口是其它的AXI主端口通過內部的互聯共同使用。
靜態內存接口
靜態內存接口支持的外部的靜態存儲器有如下幾種:
•8位數據總線的64M SRAM.
•8位並行的64M NOR flash.
•帶一位奇偶校驗位的ONFI 1.0 NAND flash.
•1位、2位、3位、4位SPI, 或8位串行NOR flash.
IO外設(IOP)
主要的特征:
•2個10/100/1000Mbps 3種模式的以太網MAC層外設接口,它支持IEEE 802.3標准和IEEE 1588 標准。
•能夠 scatter-gather DMA (分散-集中式直接存儲器存取)
•支持IEEE 1588標准的幀圖片傳輸協議(PTP).
•支持外部的物理層接口。
•2個USB 2.0接口,每一個USB接口能接12個終端設備。
•全速版USB 2.0 由主機,終端和器件IP核組成,它支持高速和全速兩種模式。
•使用32位AHB(Advanced High-performance Bus,用於高性能模塊之間連接的總線)
DMA 主機和AHB從機接口。
•提供一個8位的ULPI(低引腳數接口)外部物理層接口
•2個全速 CAN 2.0B CAN 總線接口控制器。
•支持 CAN 2.0B標准
•ISO 118981-1
•有一個外部物理接口。
•兩個SD/SDIO 2.0 控制器。
•兩個全雙工SPI端口
•兩個UART接口
•兩個主從IIC 接口
•118個GPIO
使用安全性擴充,兩個以太網,兩個SDIO,兩個USB口可以配置成安全或不安全。
IO外設通過專用的54個I/O與外部設備通信。雖然同時外接多個設備時54個I/O不夠,但很多I/O可以從PL獲取。所有的復用I/O支持1.8V HSTL 和 2.5V和3.3V VLCMOS電壓標准。
互聯(interconnect)
APU, 內存接口單元和IO外設是相互連接在一起的,並與PL相連,它們是通過多層的ARM AMBA AXI 總線協議互連的。
PS外部接口
...
PS-PL 接口
PS-PL接口包括:
•原始數據通信的AMBA AXI接口
•兩個32位的 AXI主機接口
•兩個32位的 AXI從機接口
•4個64位/32位可配置的,可緩沖的AXI 從機接口,並可直接訪問DDR內存和OCM,可作為高速AXI接口。
•一個64位AXI從機接口來連續訪問CPU存儲器。
•DMA,中斷,事件信號
•處理器的事件總線用於發送事件信息給CPU.
•PL 外設通過GIC(通用輸入輸出通道)將中斷發給PS
•四通道DMA給PL
•異步觸發信號
•未知的PS外設可以通過可擴展的復用I/O訪問PL的I/O
•時鍾和復位
•4個PS時鍾輸出到PL用於開啟和停止控制
•4個PS復位信號輸出於PL
•配置以及其余的部分
•PCAP支持PL的全局和局部配置
•從PL到PS的接口信號可eFUSE和電池支持
•XADC 接口
•JTAG接口
PS與PL之間電高性能的數據傳輸接口有AXI接口和ACP接口,一般情況下,高性能的AXI接口將用天PS與PL之間的數據傳輸。如果硬件需要連續性訪問CPU存儲器,則ACP接口將會啟用。
高性能的AXI接口
PL通過高性能的AXI接口訪問PS中的DDR和OCM。四個專用的AXI存儲器端口從PL到PS可配置成32位或64位的接口,如表3所示,這些接口通過FIFO控制器將PL與內存互連。兩個輸出端口進入DDR控制器,另一個輸出進入OCM.
每一個高性能的AXI接口有以下特性:
•減少了PL到PS內存的延時
•1KB FIFO
•可配置的32位或64位AXI接口
•支持32字的緩沖如果讀需要的話。
•支持寫訪問數據釋放控制,更有效地使用AXI互連帶寬
•支持多AXI命令給DDR和OCM
ACP
ZYNQ-7000 所有的可編程soc ACP都是64位AXI從機接口,它使APU與PL潛在的加速器功能連接起來,ACP直接連接了PL與ARM Cortex-A9處理器的SCU,使得一級二級緩存都能獲得CPU的數據。與傳統的高速緩存裝載方案相比,ACP提供了一個從PS到PL加速器的低等待時間路徑。
PL 部分
CLB,Slice和LUT
...
時鍾管理 ClockManagement
關鍵特性:
•低時鍾偏移的高速緩存和布線
•頻率合成和相位移位
•低抖動的時鍾生成和抖動濾除
每一個Zynq-7000的所有可編程SOC有8個時鍾管理模塊,每個模塊包含MMCM和PLL.
MMCM和PLL
MMCM 和 PLL有很多共同的特點。兩者都可作為寬頻率范圍的頻率合成器,並可以濾除輸入時鍾的抖動。在這兩個模塊的中間是一個VCO,它可根據從PFD中接收的輸入電壓決定加速還是降速。
有3種可編程的分頻器:D,M,O. 前一個分頻器可以降低輸入頻率,並饋入傳統的PLL相位頻率比較器的輸入。反饋分頻器M作為乘法器,因為在饋入其它相位比較器的輸入前
它除以了VCO的輸出頻率。D和M必須要合適的選擇,以使VCO保持它特定的頻率范圍內。 VCO有8個等間距的輸出相位(0°, 45°, 90°, 135°, 180°, 225°, 270°, 315°)。
每一個都可以被選擇為驅動一個輸出分頻器,每個可進行可編程配置,從1到128的任意整數分頻。MMCM和PLL的有三個輸入抖動的過濾器選項:低帶寬模式,它有最佳的抖動衰減;
高帶寬模式,它有最好的相位補償。最優化模式,它能夠讓工具找到最合適的設置。
MMCM其它的可編程特性
MMCM有一個分數計數器,在反饋路徑或輸出路徑里。分數計數器能夠非整數的增加1/8,因此頻率合成能力增加了8倍。MMCM也提供了混合或動態的極小相位增量,它根據VCO頻率而定。1600MHZ時,相移定時增量為11.2 ps。
時鍾描述
Zynq-7000的所有可編程SOC提供6條時鍾線(BUFG, BUFR, BUFIO, BUFH, BUFMR,和高速時鍾)來滿足高扇出,低延時,低時鍾偏移的要求。
全局時鍾線
在Zynq-7000的所有可編程SOC中,32個全局時鍾線能夠驅動最大的扇出,並能到達每個觸發器的時鍾,使能,置/復位端,也能作為很多邏輯輸入。任何一個時鍾區域有由BUFH驅動的12個全局時鍾線,由於每個區域內的時鍾可關閉,每個BUFH能獨立的啟用或禁用。
因此可精確的(fine-grain)控制時鍾區域的能耗。
全局時鍾緩沖器可驅動全局時鍾線,它執行時不會產生不穩定的時鍾復用,並有時鍾使能功能。全局時鍾往往被CMT驅動,這樣可完全消除的基本時鍾分配延遲
局部時鍾
局部時鍾可以在這個區域內可以驅動所有的時鍾。這個區域可以定義為50個I/0,50個CLB,半個器件寬度。Zynq-7000的所有可編程SOC可以分為8到24個區域。每個區域內有4個區域時鍾路徑。每個區域時鍾緩沖器能夠被這四個有時鍾功能的輸入引腳的任意一個驅動,並且它的頻率可選擇性的從1到1/8分頻。
I/O時鍾
I/O時鍾是特定為I/O邏輯和並串轉換和串並轉換電路服務的,它在I/O 邏輯部分描述了。ZYNQ-7000的所有可編程SOC能夠從MMCM到低抖動高性能的I/O接口直接的連接。
塊內存(BlockRAM)
關鍵特性
• 雙口36kb Block RAM,位寬可達72bit
• 可編程的FIFO logic
• 內建錯誤校正電路
每一個Zynq-7000 All Programmable SoC都有60-465個雙口塊RAM,一個雙口RAM存儲36Kb。每一個塊RAM有兩個完全獨立的接口,兩個接口僅僅共享存儲數據,操作完全獨立。
異步操作---Synchronous Operation
每一次內存操作,讀或寫,都被時鍾控制。所有的輸入都是鎖存的(data, address, clock enables, and write enables etc)。輸入的地址是時鍾鎖存的,保持數據一直到下一次操作。可選的輸出數據流水線寄存器允許更高的時鍾速率。在寫操作期間,數據輸出可以映射到之前存儲的數據,或新寫入的數據,或保持不變。
可編程的數據寬度----Programmable Data Width
每一個Port都可以被配置成32K × 1, 16K × 2, 8K × 4, 4K × 9 (or 8), 2K × 18 (or 16), 1K × 36 (or 32), or 512 × 72 (or 64)。 兩個port可以被配置成不同的寬度,互不影響。每一個塊RAM都可以被分為兩個完全獨立的18Kb BlockRAM,可以each be configured to any aspect ratio from 16K × 1 to 512 × 36。
只有在簡單的雙口模式下(simple dual-port,SDP mode) 數據寬度才可以高於18 bits (18 Kb RAM) 或36 bits (36 Kb RAM) be。這種模式下一個Port只能讀,另一個只能寫。 In SDP mode, one side (read or write) can be variable, while the other is fixed to 32/36 or 64/72。
兩邊都可以是變化的寬度。(Both sides of the dual-port 36 Kb RAM can be of variable width.)
兩個相鄰的36 Kb block RAMs可以配置成級聯的64K × 1 dual-port RAM ,不需要任何額外的邏輯。
錯誤檢測和校---Error Detection and Correction
每一個 64-bit-wide block RAM可以生成、存儲和利用8個額外的漢明碼bits。讀的過程中可以執行單bit錯誤修正和雙bit錯誤檢測 (ECC) 。 ECC logic也可以被用於external 64- to 72-bit-wide memories。
FIFO控制---FIFO Controller
內部的FIFO controller對單時鍾(同步)或雙時鍾(異步)操作,增加內部地址並提供四種握手信號: full, empty, almost full, and almost empty.
Almost full and almost empty flags 可編程。類似於Block RAM,FIFO控制器寬度和深度都是可編程的,但是讀端口和寫端口位寬必須相同。
第一個字無效模式顯示第一個被寫的word在數據的輸出,即使在第一次讀操作之前(First word fall through mode presents the first-written word on the data output even before the first read operation)。在第一個字讀出以后,這個模式與標准模式就一樣了。
DSP slice
...
Input/Output 輸入/輸出
關鍵特性
• 高性能SelectIO支持 1866 Mb/s DDR3
• 封裝內的高頻退偶電容增強信號完整性
• 數字控制實現過程,以實現3態低功耗,高性能的操作
每一個IO都是可配置的,並可遵循很多的IO標准。出了電源引腳和少量的專用配置引腳,所有的其他PL的引腳都有相同的性能,取決於用戶約束規則-constrained only by certain banking rules。The SelectIO 資源被分類為High Range (HR) or High Performance (HP)。HR I/Os 提供寬的電壓范圍, from 1.2V to 3.3V。HP I/Os are optimized for highest performance operation, from 1.2V to 1.8V。
IO按bank分類,每個50pin。每個bank都有相同的VCCO提供輸出電壓。一些單端輸出的緩沖器需要內部和外部的VREF。 There are two VREF pins per bank (except configuration bank 0)。一個bank只能有一個VREF電壓值。
Zynq-7000 提供一系列的封裝供用戶選擇。
I/O 電氣特性(Electrical Characteristics)
單端輸出使用傳統的CMOS上拉/下拉方式,輸出高為VCCO,低至GND。並可以設置高阻態。系統設計者可以定義斜率(壓擺率)和輸出強度。端口可以選擇設置弱上拉或下拉。
大多信號pin pairs可以被配置為差分對輸入或輸出。差分對可以配置為末端100歐姆內部阻抗。可支持的差分標准包括LVDS: HT, RSDS, BLVDS, differential SSTL, and differential HSTL。
每一個IO都是支持存儲器接口,比如single-ended and differential HSTL和single-ended SSTL and differential SSTL。SSTL I/O 標准支持的數據速率高達1866 Mb/s,用於DDR3接口。
三態控制和低功耗IO特性
三態可被數字化的阻抗控制(T_DCI),可以控制輸出的阻抗或提供並行終端一個輸入信號到VCCO或分離到VCCO/2。這允許用戶消除off-chip termination for signals using T_DCI。為了節約電路板的空間,在輸出或三態時終端(termination)自動關閉,相比off-chip終端節約電能。IO也有低功耗模式for IBUF and IDELAY以提供進一步的能量,尤其是被用於存儲器接口時。
I/O邏輯
輸入和輸出延遲
所有的輸入和輸出可以被配置成組合邏輯或是寄存器鎖存的。所有的IO都支持雙倍的數據速率(DDR)。所有輸入和部分輸出和部分輸出可以獨立配置延時by up to 32 increments of 78 ps or 52 ps each。 這些延時被實現為IDELAY and ODELAY。延時步驟可以被配置,也可在在使用中增加。
輸入串並轉換器和輸出串並轉換器 ISERDES(input serializer and deserializer) and OSERDES(output serializer and deserializer)
很多的應用結合了高速率的串行IO,而在片內則為較慢的並行IO結構。這要求IO結構中有一個serializer and deserializer (SerDes, 串並/並串轉換器)。
每一個IO引腳處理一個8-bit串並或並串轉換器(8-bit IOSERDES (ISERDES and OSERDES)) ,能夠實現serial-to-parallel or parallel-to-serial轉換。可編程的寬度為2, 3, 4, 5, 6, 7, or 8 bits。從兩個毗鄰的引腳級聯兩個IOSERDES (default from differential I/O), 可支持到10 and 14 bits 。ISERDES 有一個特殊的過采樣模式,允許異步數據恢復(capable of asynchronous data recovery),用於比如1.25 Gb/s LVDS I/O-based SGMII接口類似的應用。
低功耗串行收發器
關鍵特性:
• 高性能的收發器線纜,高達12.5 Gb/s線路速率with flip-chip packages,高達 6.6 Gb/s with lidless flip-chip packages.
• 為芯片之間的功耗優化
• 高級的發送預加重和后加重,線性接收機(CTLE)和決策反饋均衡(DFE),,包括自適應均衡作為附加功能。
Ultra-fast串行數據傳輸到光學模組,IC和PCB, 電子基架或遠距離傳輸。范圍高達200Gb/s。在如此高的數據速率下,它要求芯片內的專用電路和差分IO線纜以應對信號完整性問題。
Zynq-7000 All Programmable SoCs 有0-16個收發器。每一個收發器是一個發送器和接受器的結合體。不同的Zynq-7000 serial transceivers 可結合使用環形振盪器和LC諧振結構以允許混合靈活性和性能,且允許IP在系列器件間的移植。低數據速率也可以過采樣使用。接收和發送電路時獨立的電路,使用先進的PLL結構可編程倍頻(4-25),倍頻參考頻率輸入,作為其bit時鍾。每一個收發器都有很多用戶可定義特性和參數,所有這些參數都可以在芯片配置時定義,其中大部分可以在運行過程中修改。
發送器 Transmitter
實際上是一個parallel-to-serial converter,轉換率為16, 20, 32, 40, 64, or 80。這允許設計者在高性能設計中平衡時序和位寬。單通道差分輸出給PCB上的線路。TXOUTCLK是拆分串行信號的時鍾,可以直接用於內部邏輯並行數據寄存器。
...
接收器Receiver
接收器實際上是一個serial-to-parallel converter,將輸入的bit-serial 差分信號轉換為parallel stream of words。支持16, 20, 32, 40, 64, or 80 bits。這允許設計者在高性能設計中平衡時序和位寬。
接收器接收輸入的差分數據流,將其輸入可編程的線性接收回路和裁決反饋均衡器
(為了補償PCB和其他互聯特性的影響),使用參考輸入時鍾初始化時鍾域,沒有必要單獨設置一個時鍾線。數據向量使用non-return-to-zero (NRZ) 編碼並且可選的保證充分的數據傳輸使用選定的編碼方案。並行的數據然后被送往可編程邏輯(PL),使用RXUSRCLK 作為時鍾。對於短通道,發送器提供了一個額外的低功耗模式, for additional power reduction。
帶外的信號發送Out-of-Band Signaling
收發器提供out-of-band (OOB) signaling,常被用於當高速串行數據收發不工作時收發低速信號,這通常用於PDM或未初始化的情形。這有利於PCI Express 和SATA/SAS 的設計
PCI Block
...
XADC (AD轉換器)
12bit 1M采樣率ADC;支持多達17路輸入;片內片外基准可選;片內溫度傳感器(4°C誤差Max)和電源電壓傳感器(1%誤差Max);支持JTAG連續讀ADC結果
ADC包括2個12bit,采樣率1MSPS的ADC。XADC內部擁有采樣保持電路和模擬開關,最大支持500KHz的輸入帶寬。使用專門的port不經過模擬開關可以增加其帶寬。片內自帶基准源(1%),為了達到全的12bit精度,推薦使用一個外部的1.25V的參考電壓芯片。
如果在設計中XADC沒有被使用,默認的作為測量電壓和溫度的傳感器。結果波存在特定的寄存器里,JTAG可以讀出。用戶可設置一個limit,可以在高溫時自動Poweroff。
復位和時鍾管理
外部內部上電復位信號
熱啟動
看門狗復位
可編程邏輯的用戶復位
讓用戶,看門狗,JTAG提供的復位
安全沖突復位
時鍾管理:PS裝備了3個鎖相環(PLL),提供了PS靈活的時鍾域。PS內部有3個主時鍾域。包括應用處理器(APU),DDR內存控制器,IO外設。各個時鍾域之間頻率可以獨立使用軟件進行配置。(The interconnect is designed with synchronizers instantiated at asynchronous boundaries where needed)。在這個模式下,DDR工作在CPU時鍾的一半。例如CPU工作在同步模式下800MHz,DDR內存則工作在400MHz或800Mb/s。
PS的啟動和設備的配置
SOC使用多階段的啟動方式。PS是啟動和配置流程的主控方。可以加密也可以不加密啟動。加密時啟動PL必須啟動,有PL的加密模塊支持。
復位時,設備會讀取mode pin以判斷其啟動設備:NOR、NAND、Quad-SPI或SD卡,或JTAG(從JTAG啟動時不支持加密)。ARM中一個核心執行片內的ROM,從啟動設備里復制FSBL(第一級bootloader)到OCM(片內內存)中。然后開始執行FSBL中的代碼。
Xilinx提供了FSBLs樣例,用戶也可以開發他們自己的FSBL。FSBL初始化PS的boot,並可以加載和配置PL。PL的配置也可以放在下一步執行。
FSBL一般加載一個用戶程序或可選的第二bootloader(SSBL),比如一個U-boot(支持linux啟動的一個bootloader)。用戶可以從Xilinx那里獲得SSBL,或者自行開發。SSBL繼續boot流程,從任意的存儲設備中加載代碼。PL仍然可以在下一個階段配置。
The static memory interface controller (NAND, NOR, or Quad-SPI) 使用默認設置參數。為了加快啟動配置速度,these settings can be modified by information provided in the boot image header. 啟動以后 ROM boot image不可讀取。
調試接口
調試系統基於ARM’s CoreSight architecture,使用 ARM CoreSight components including an embedded trace buffer (ETB), a program trace macrocell (PTM), and an instrument trace macrocell (ITM). This enables instruction trace features as well as hardware breakpoints and triggers。可編程邏輯(PL)部分的調試工具使用Xilinx ChipScope™ Pro embedded logic analyzer.
芯片有兩個JTAG接口。可以chained together或單獨使用。一起用時一個單獨的下載線控制ARM和FPGA調試工具。或者分開使用。一個用來調試PS,一個調試PL和下載bitstream。
功耗
PL可以受PS控制Power off
PS Clock 可以低至30MHz
使用內部的PLL。時鍾速率可以動態改變。為了動態改變時鍾。用戶必須解鎖系統控制寄存器,(unlock the system control register)來訪問PS時鍾控制寄存器(PS clock control register)或時鍾生成寄存器(clock generation control register)。
單處理器模式
這種模式下, 使用門控時鍾關閉the second Cortex™-A9 CPU,第一個CPU依然完全工作。
估計功耗
------------------下面是關於zynq的啟動補充的------------------------------
研究ZEDboard這塊開發板就要學習片上SOC的設計,ISE工具中PlanAhead是一個很好的設計工具(據說是在ISE11后才集成進去的),當然也可以單獨使用XPS+SDK來進行設計。這里我們多說幾句,PlanAhead加入了RTL Design(Synthesize),Netlist Design(Implement)等,以前在Project Navigator中有的功能。現在我們可以將FPGA的設計工作全部交給PlanAhead——據不可靠消息稱Xilinx可能在14或者以后的版本中,取消Project Navigator。
Zynq這款芯片分為PS處理系統(Processing System)與PL可編程邏輯(Programmable Logic)兩部分。PS部分主要包括兩顆主頻為1GHz的Cotex-A9的芯片及其GPIO,I2C等片上外設——這部分占了整個芯片的絕大部分外設;PL部分的邏輯單元個數與Kintex7系列相當,並且在ZYNQ內部還集成了1MHz雙通12bit的ADC以及溫度和電壓傳感器等。
對於ZedBoard開發板的程序下載,ZebBoard的啟動方式貌似與ARM相似。啟動方式有四種分別為Q-SPI,Nand Flash,Nor Flash和SD card。我們知道,在傳統的FPGA里,FPGA的程序都是編寫到外置的非易失性存儲器里或者通過jtag一次性下載至FPGA配置里。但是Zynq由於內部集成了處理器硬核和可編程邏輯,其啟動過程則大為不同,因此,Zynq的啟動過程是分階段的。首先,經過固化到內部的ROM boot,之后經過FSBL(First Stage Boot Loader),ROM boot 將FSBL放入OCM(on-chip-memory),再經過u-boot之后運行linux kernel,FSBL將u-boot放入DDR,u-boot將linux kernel放入DDR,則啟動成功。與常見的ARM處理器一樣,Zynq開發板的啟動模式也是通過跳線帽來選擇的。這里不再做詳細解釋了。請大家自行閱讀技術文檔。
簡單總結一下,Zynq做為一個跨界的新“物種”,其已經與Xilinx傳統產品在基本開發流程與開發原理上卻基本一致。在設計工具上ISE、XPS等等的使用方法也基本相同,但是Zynq突破性的內置了兩個ARM核,極大的提高了系統的整體性能,擴展了芯片的應用領域,豐富了設計方案。

![[轉載]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻譯 [轉載]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻譯](/image/aHR0cDovL3M2LnNpbmFpbWcuY24vbXc2OTAvNTlkZDhhMzZ0ZTEyMDE4Njc2MmM1JjY5MA==.png)
![[轉載]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻譯 [轉載]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻譯](/image/aHR0cDovL3M4LnNpbmFpbWcuY24vbXc2OTAvNTlkZDhhMzZ0ZTEyMDE4ODU3MDE3JjY5MA==.png)
![[轉載]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻譯 [轉載]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻譯](/image/aHR0cDovL3M5LnNpbmFpbWcuY24vbXc2OTAvNTlkZDhhMzZ0ZTEyMDE4YTZkZDk4JjY5MA==.png)
