b.3 Xilinx FPGA的內部結構 ——塊RAM
FPGA內嵌的存儲器單元包括塊RAM(BRAM)和分布式RAM。
可用于隨機存取存儲器(RAM)、只讀存儲器(ROM)FIFO或移位寄存器。
分布式RAM是基于CLB的查找表,而塊RAM(BRAM)是內嵌于FPGA中的雙口RAM。
圖1 塊RAM
b.4 Xilinx FPGA的內部結構——時鐘資源
FPGA內部充斥著各種各樣的連線,如果我們把這些邏輯間的互聯線比喻為大城市里面密密麻麻的街道和馬路,那么專為快速布線而定制的時鐘布線資源則是城市里的快速路。
FPGA內部的時鐘布線池也是橫平豎直的矩陣式排布,意圖讓每一條“小路”盡快的能夠找到可以就近“上高速”的“匝道”。
Xilinx FPGA內部會將時鐘布線資源劃分到不同的“時鐘區”中,每個時鐘區對應一定數量的IO口數量、邏輯資源、存儲器資源或DSP slice資源,同時也會有一個CMT(Clock management tiles)相對應。
b.5 Xilinx FPGA 的內部結構 ——數字信號處理塊
數字信號處理(Digital Signal Processing,簡稱DSP)塊是Xilinx FPGA內部最復雜的運算單元。
DSP塊是內嵌到FPGA中的算術邏輯單元(ALU),它由3個不同的鏈路塊組成。
DSP塊的算術鏈路由一個加減器連接到乘法器,再連接到一個乘累加器所組成。
圖2 DSP資源
b.6 Xilinx FPGA 的內部結構 ——高速串行收發器
FPGA支持各種高速差分對,從幾百MHz的普通LVDS接口,到上GHz或數十GHz的Gbit串行收發器,可以滿足各種高速數據傳輸的需求。
通常在FPGA器件內部提供高速的串化器和解串器,以及低時延、高速率的時鐘處理單元。
在Artix7系列FPGA器件中達到6.6Gb/s的GTP Transceivers有2到16個不等,能夠滿足一般性的應用。
普通的LVDS接口,小規模的FPGA器件中也能夠提供多達幾十對的差分接口,通常既可以作為LVDS接口,也可以復用為一般的IO引腳使用。
b.7 Xilinx FPGA 的內部結構 ——外部存儲器控制器
FPGA的片內存儲器(如BRAM)由于容量受限,所以對DDR3/DDR4等外部高速存儲器的支持也成為了中高端FPGA器件必備的資源。
FPGA器件內部往往內嵌了一個多個DDR3/DDR4控制器硬核IP,包括用戶接口(User Interface)模塊、存儲器控制器(Memory Controller)模塊、初始化和校準(Initialization/Calibration)模塊、物理層(Physical Layer)模塊。
圖3 外部存儲器控制器
b.8 Xilinx FPGA 的內部結構 ——模擬數字轉換模塊
Xilinx FPGA器件特有的XADC(Xilinx Analog-to-Digital Converter)模塊將模擬信號處理混合到FPGA器件。
XADC內部有專門的溫度傳感器和電壓傳感器,用于監控FPGA器件本身的工作狀態,也提供了多達16個差分通道可復用的模擬電壓采集接口。
內部的2個ADC有12bit位寬和1MSPS采樣速率,可以外接精密基準電壓源作為參考電壓;也有專門的控制接口可以和FPGA邏輯互連,便于編程控制。
圖4 XADC轉換模塊
評論
查看更多