《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 其他 > 入門:FPGA內(nèi)部詳細(xì)架構(gòu)解析

入門:FPGA內(nèi)部詳細(xì)架構(gòu)解析

2022-10-21
來(lái)源:FPGA之家
關(guān)鍵詞: 可編程邏輯 RAM FPGA

  FPGA 芯片整體架構(gòu)如下所示,大體按照時(shí)鐘域劃分的,即根據(jù)不同的工藝、器件速度和對(duì)應(yīng)的時(shí)鐘進(jìn)行劃分:

11.JPG

  10.JPG

  FPGA 內(nèi)部詳細(xì)架構(gòu)又細(xì)分為如下六大模塊:

  1、可編程輸入輸出單元(IOB)(Input Output Block)

  為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA 的 IOB 被劃分為若干個(gè)組(Bank),每個(gè) Bank 的接口標(biāo)準(zhǔn)由其接口電壓 VCCO 決定,一個(gè) Bank 只能有一種 VCCO,但不同 Bank 的 VCCO 可以不同。只有相同電氣標(biāo)準(zhǔn)和物理特性的端口才能連接在一起,VCCO 電壓相同是接口標(biāo)準(zhǔn)的基本條件。

  09.JPG

  2、可配置邏輯塊(CLB)(Configurable Logic Block)

  FPGA 的基本可編程邏輯單元是 CLB,而一個(gè) CLB 是由查找表、數(shù)據(jù)選擇器、進(jìn)位鏈、寄存器組成的。查找表和多路選擇器完成組合邏輯功能,寄存器(可配置成觸發(fā)器或鎖存器),完成時(shí)序邏輯功能。在賽靈思公司公司的 FPGA 器件中,一個(gè) CLB 由多個(gè)(一般為 4 個(gè)或 2 個(gè))相同的 Slice 和附加邏輯構(gòu)成。

  Slice 又分為 SLICEL(Logic)和 SLICEM(Memory)。SLICEL 和 SLICEM 內(nèi)部都各自包含了 4 個(gè) 6 輸入查找表(LUT6)、3 個(gè)數(shù)據(jù)選擇器(Mux)、1 個(gè)進(jìn)位鏈(Carry Chain)和 8 個(gè)觸發(fā)器(Flip-Flop):

  查找表:6 輸入查找表類似于一個(gè)容量為 64 bits 的 ROM(26 = 64)(工藝上是珍貴的 SRAM 資源),6 表示地址輸入位寬為 6 bits,存儲(chǔ)的內(nèi)容作為輸入對(duì)應(yīng)的輸出結(jié)果的邏輯運(yùn)算,并在 FPGA 配置時(shí)載入。

  對(duì)于查找表:目前主流 FPGA 都采用了基于 SRAM 工藝的查找表(LUT)(Look Up Table)結(jié)構(gòu)。LUT 本質(zhì)上就是一個(gè) RAM。當(dāng)用戶通過(guò)原理圖或 HDL 語(yǔ)言描述了一個(gè)邏輯電路以后,F(xiàn)PGA 開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能結(jié)果,列成一個(gè)真值表的形式,并把真值表(即輸入對(duì)應(yīng)的輸出邏輯)事先寫入 RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的RAM。

  數(shù)據(jù)選擇器:數(shù)據(jù)選擇器一般在 FPGA 配置后固定下來(lái)。

  進(jìn)位鏈:超前進(jìn)位加法器,方便加法器的實(shí)現(xiàn),加快復(fù)雜加法的運(yùn)算。

  寄存器:可以配置成多種工作方式,比如 FF 或 Latch,同步復(fù)位或異步復(fù)位、復(fù)位高有效或低有效等等。

  SLICEM 的結(jié)構(gòu)與 SLICEL 的結(jié)構(gòu)類似,最大的區(qū)別是使用了一個(gè)新的單元代替 SLICE 中的查找表。這個(gè)新的單元可以配置為 LUT、RAM、ROM 或移位寄存器(SRL16 或 SRL32),從而可以實(shí)現(xiàn) LUT 的邏輯功能,也能做存儲(chǔ)單元(多個(gè)單元組合起來(lái)可以提供更大的容量)和移位寄存器(提供延遲等功能)。

  其中 SLICEM 中 LUT 的輸入端都地址和寫地址為 8 位,高兩位可能是將 4 個(gè) LUT 并聯(lián)一起作為一個(gè)大的 RAM 或 ROM 時(shí)用,同時(shí) SLICEL 和 SLICEM 的 LUT 均可設(shè)為 5 位或 6 位查找表。

  08.JPG

 07.JPG

  06.JPG

  3、嵌入式塊 RAM(BRAM)(Block RAM)

  塊 RAM 可被配置為 ROM、RAM 以及 FIFO 等常用的存儲(chǔ)模塊。區(qū)別于分布式 RAM(Distributed RAM)(主要由 LUT 組成的,不占用 BRAM 的資源)。分布式 RAM 也可以被配置為 ROM、RAM 以及 FIFO 等常用的存儲(chǔ)模塊,但是性能不如 BRAM,畢竟 BRAM 才是專用的,一般是 BRAM 資源不夠用的情況下才使用分布式 RAM。反之,BRAM 由一定數(shù)量固定大小的存儲(chǔ)塊構(gòu)成的,使用 BRAM 資源不占用額外的邏輯資源,并且速度快,不過(guò)使用的時(shí)候消耗的 BRAM 資源只能是其塊大小的整數(shù)倍,就算你只存了 1 bit 也要占用一個(gè) BRAM。

05.JPG

 04.JPG

  03.JPG

  一個(gè) BRAM 的大小為 36K Bits,并且分成兩個(gè)小的 BRAM 各自為 18K Bits,排列成又分為上下兩塊,上半部分為 RAMB18 下半部分為 RAMBFIFO36。在 FIFO 例化的時(shí)候可以將 BRAM 設(shè)置為 FIFO 時(shí),不會(huì)使用額外的 CLB 資源,并且這部分 RAM 是真雙口 RAM。

02.JPG

 01.JPG

  FPGA 所采用的邏輯單元陣列 LCA(Logic Cell Array)內(nèi)部所包括的可配置邏輯模塊 CLB(Configurable Logic Block)、 輸出輸入模塊 IOB(Input Output Block)和內(nèi)部互連線(Interconnect)三個(gè)部分。前面兩種已經(jīng)介紹完畢,接下來(lái)介紹第三種:

  4、互連線資源(Interconnect)

  布線資源連通 FPGA 內(nèi)部的所有單元,而連線的長(zhǎng)度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。FPGA 芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長(zhǎng)度、寬度和分布位置的不同而劃分為 4 類不同的類別:第一類是全局布線資源,用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位/置位的布線;第二類是長(zhǎng)線資源,用于完成芯片 Bank 間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時(shí)鐘、復(fù)位等控制信號(hào)線。

  5、底層內(nèi)嵌功能單元

  內(nèi)嵌功能模塊主要指 DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP(Digital System Processing)(數(shù)字信號(hào)處理)、DCM(Digital Clock Manager)(提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定)、和 CPU(Central Processing Unit)等等軟處理核(比如 MicroBlaze 的軟核)。現(xiàn)在越來(lái)越豐富的內(nèi)嵌功能單元,使得單片 FPGA 成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向 SoC 平臺(tái)過(guò)渡。

  關(guān)于 DCM:DCM 是 FPGA 內(nèi)部處理時(shí)鐘的重要器件,他的作用主要有三個(gè):消除時(shí)鐘偏斜(Clock De-Skew)、頻率合成(Frequency Synthesis)和相位調(diào)整(Phase ShifTIng)。

  DCM 的核心器件是數(shù)字鎖相環(huán)(DLL,Delay Locked Loop)。它是由一串固定時(shí)延的延時(shí)器組成,每一個(gè)延時(shí)器的時(shí)延為 30 皮秒,也就是說(shuō),DCM 所進(jìn)行的倍頻、分頻、調(diào)相的精度為 30 皮秒。

  對(duì)于時(shí)鐘,我們最好不要將兩個(gè)時(shí)鐘通過(guò)一個(gè)與門或者或門(邏輯操作),這樣的話就很可能會(huì)產(chǎn)生毛刺,影響系統(tǒng)穩(wěn)定性,如果要對(duì)時(shí)鐘進(jìn)行操作,例如切換時(shí)鐘等,請(qǐng)使用 FPGA 內(nèi)部的專用器件“BUFGMUX”。

  6、內(nèi)嵌專用硬核

  內(nèi)嵌專用硬核是相對(duì)底層嵌入的軟核而言的,指 FPGA 處理能力強(qiáng)大的硬核(比如 ARM Cortex-A9 的硬核),等效于 ASIC 電路。為了提高 FPGA 性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如為了提高 FPGA 的乘法速度,主流的 FPGA 中都集成了專用乘法器,而為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的 FPGA 內(nèi)部都集成了串并收發(fā)器(Serdes),可以達(dá)到數(shù)十 Gbps 的收發(fā)速度(比如 FMC)。



更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。