0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談FPGA芯片架構(gòu)

CHANBAEK ? 來(lái)源:新芯設(shè)計(jì) ? 作者:新芯設(shè)計(jì) ? 2023-07-04 14:36 ? 次閱讀

引言

??FPGA 芯片架構(gòu)是非常重要的,如果你不了解 FPGA 芯片內(nèi)部的詳細(xì)架構(gòu),那么:

  • 你便對(duì)于你自己的設(shè)計(jì)一無(wú)所知,
  • 你將不懂如何去實(shí)現(xiàn)資源的優(yōu)化,
  • 你也不懂如何合理調(diào)用內(nèi)部模塊,
  • 你更不懂如何去權(quán)衡速度與面積,
  • 那么你的 HDL 語(yǔ)言就跟 C 一樣...
  • 所以,我們必須了解一下其架構(gòu):

??如下所示,這是部件號(hào) Part 為 XC7A100TFGG484-2 的 FPGA 芯片內(nèi)部的整體架構(gòu)(基于 Xilinx Vivado 的觀測(cè)角度),在這里,按照不同的時(shí)鐘域劃分的話(時(shí)鐘域,顧名思義就是不同頻率不同相位的時(shí)鐘所劃分的不同區(qū)域模塊),通常根據(jù)不同的工藝、器件速度及其對(duì)應(yīng)的時(shí)鐘進(jìn)行劃分,如劃分為 8 個(gè)區(qū)域;按照不同的資源類型劃分的話,就是按照不同的資源部件的不同功能進(jìn)行劃分,如劃分成 10 種資源;按照不同的模塊劃分的話,F(xiàn)PGA 芯片架構(gòu)可以劃分為 6 大模塊。

圖片

Xilinx FPGA 芯片架構(gòu)

一、輸入輸出塊(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)的基本條件。

??IOB 為芯片內(nèi)部邏輯和芯片外部輸入和輸出信號(hào)提供接口,可編程為輸入、輸出和雙向 IO 三種方式。(通過(guò) RTL 代碼中信號(hào)的定義和引腳的約束即可實(shí)現(xiàn))

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

??在 Xilinx 公司的 FPGA 器件中,一個(gè) CLB 由 2 個(gè)或 4 個(gè)相同的 Slice 和附加邏輯組成。Slice 是 FPGA 的基本邏輯單元,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è)寄存器(Register)。查找表和數(shù)據(jù)選擇器完成組合邏輯功能,寄存器(可配置成觸發(fā)器或鎖存器)完成時(shí)序邏輯功能。

  • 查找表:6 輸入查找表類似于一個(gè)容量(深度)為 64 的 ROM(2^6 = 64)(工藝上是珍貴的 SRAM 資源,哎,這就是 FPGA 通常不會(huì)出現(xiàn)在量產(chǎn)的手機(jī)行業(yè)里的原因,就是太昂貴了)。6 輸入表示輸入地址位寬為 6 bits,更通俗地講就是地址線有 6 根;對(duì)于查找表,目前主流 FPGA 都采用了基于 SRAM 工藝的查找表(LUT)(Look Up Table)結(jié)構(gòu),所以 LUT 本質(zhì)上就是一個(gè) RAM。當(dāng)用戶通過(guò)原理圖或 HDL 語(yǔ)言描述了一個(gè)邏輯電路以后,F(xiàn)PGA 開(kāi)發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能結(jié)果,列成一個(gè)真值表的形式,并把真值表(即輸入對(duì)應(yīng)的輸出邏輯)事先寫入 RAM(寫入 RAM 的過(guò)程即為 Bitstream 配置的過(guò)程,數(shù)據(jù)的載入),這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等價(jià)于輸入一個(gè)地址進(jìn)行查表(軟件中稱為索引),找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可(思考一下,單片機(jī)的程序計(jì)數(shù)器 PC 的取值不也是這樣的嗎,CPU 的程序數(shù)據(jù)指令的載入不也是這樣的嗎)。
  • 數(shù)據(jù)選擇器:數(shù)據(jù)選擇器一般在 FPGA 配置后就固定下來(lái)了。
  • 進(jìn)位鏈:超前進(jìn)位加法器,更快的加法器的實(shí)現(xià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 位查找表。

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

??BRAM 可被配置為 ROM、RAM、FIFO 等常用的存儲(chǔ)模塊。區(qū)別于分布式 RAM(Distributed RAM),DRAM 主要由 LUT 組成的,而不占用 BRAM 的資源,分布式 RAM 也可以被配置為 ROM、RAM、FIFO 等常用的存儲(chǔ)模塊,但是性能不如 BRAM,畢竟 BRAM 才是專用的(在 IC 設(shè)計(jì)中,專用的才是性能較好的,例如 ASIC 就比 FPGA 性能好,GPU 就比 CPU 跑得快,但是,太專一的缺點(diǎn)就是不夠靈活哈哈)。所以,在 BRAM 資源不夠用的情況下,才使用分布式 RAM,或者是不追求性能的情況下。

??BRAM 由一定數(shù)量固定大小的存儲(chǔ)塊構(gòu)成的,使用 BRAM 資源不占用額外的邏輯資源,并且速度快性能高。然而,使用的時(shí)候消耗的 BRAM 資源只能是其塊大小的整數(shù)倍,當(dāng)你調(diào)用了 BRAM,就算你只存了一個(gè)比特也要占用一個(gè) BRAM。 ??一個(gè) BRAM 的大小為 36K Bits,可以分成兩個(gè)小的 RAMB18 各自為 18K Bits,以及一個(gè)大的 RAMBFIFO36 為 36K Bits,例如,總共有 135 個(gè) BRAM,又可以分為 135 個(gè) RAMB36 或 270 個(gè) RAMB18。

??在 FIFO 例化的時(shí)候可以將 BRAM 設(shè)置為 FIFO 時(shí),不會(huì)使用額外的 CLB 資源,并且這部分 RAM 是真雙口 RAM。

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

四、互連線資源(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í)鐘(局部時(shí)鐘)信號(hào)的布線;
  • 第三類是短線資源,用于完成基本邏輯單元之間邏輯互連的布線;
  • 第四類是分布式布線資源,用于專有時(shí)鐘、專有復(fù)位、控制信號(hào)的布線。

??想要詳細(xì)了解布局布線 Place & Route 的話,可以參考文章《數(shù)字 IC 筆試面試必考點(diǎn)(3)數(shù)字 IC 前端設(shè)計(jì) + 后端實(shí)現(xiàn)》

五、內(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 的軟核)。

??DLL 和 PLL 具有類似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和相移功能。Xilinx 公司生產(chǎn)的芯片上集成了 DCM 和 DLL,Altera 公司生產(chǎn)的芯片上集成了 PLL。PLL 和 DLL 可以通過(guò) IP 核生成的方式進(jìn)行管理和配置。

??DCM 是 FPGA 內(nèi)部處理時(shí)鐘的重要器件,他的作用主要有三個(gè):消除時(shí)鐘偏差(Clock De-Skew)、頻率合成(Frequency Synthesis)和相位調(diào)整(Phase Shifting);DCM 的核心器件是延時(shí)鎖相環(huán) DLL 和鎖相環(huán) PLL,它是由一串固定時(shí)延的延時(shí)器組成,每一個(gè)延時(shí)器的時(shí)延約為 30 皮秒,也就是說(shuō),DCM 所進(jìn)行的倍頻、分頻、調(diào)相的精度為 30 皮秒(DLL 由數(shù)字電路實(shí)現(xiàn),PLL 由數(shù)?;旌想娐穼?shí)現(xiàn))。

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

??現(xiàn)在越來(lái)越豐富的底層內(nèi)嵌功能單元,使得單片 FPGA 成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向 SoC 平臺(tái)過(guò)渡。

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21769

    瀏覽量

    604634
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    389

    瀏覽量

    43769
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1740

    瀏覽量

    131626
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47416
  • 芯片架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    14576
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    FPGA 芯片整體架構(gòu)如下所示,大體按照時(shí)鐘域劃分的,即根據(jù)不同的工藝、器件速度和對(duì)應(yīng)的時(shí)鐘進(jìn)行劃分。
    發(fā)表于 10-20 09:58 ?1997次閱讀

    FPGA架構(gòu)演進(jìn)之路 FPGA架構(gòu)設(shè)計(jì)原則和實(shí)現(xiàn)挑戰(zhàn)

    摘要:自三十多年前問(wèn)世以來(lái),現(xiàn)場(chǎng)可編程門陣列(FPGAs)已被廣泛用于實(shí)現(xiàn)來(lái)自不同領(lǐng)域的無(wú)數(shù)應(yīng)用。由于其底層的硬件可重新配置性,與定制設(shè)計(jì)的芯片相比,FPGAs具有更快的設(shè)計(jì)周期和更低的開(kāi)發(fā)
    發(fā)表于 08-11 09:52 ?1964次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>架構(gòu)</b>演進(jìn)之路 <b class='flag-5'>FPGA</b><b class='flag-5'>架構(gòu)</b>設(shè)計(jì)原則和實(shí)現(xiàn)挑戰(zhàn)

    FPGA架構(gòu)和應(yīng)用基礎(chǔ)知識(shí)

    `FPGA代表現(xiàn)場(chǎng)可編程門陣列,它是一種半導(dǎo)體邏輯芯片,可編程成幾乎任何類型的系統(tǒng)或數(shù)字電路,類似于PLD。PLD僅限于數(shù)百個(gè)門,但FPGA支持?jǐn)?shù)千個(gè)門。FPGA
    發(fā)表于 12-14 17:39

    淺談FPGA在安全產(chǎn)品中有哪些應(yīng)用?

    淺談FPGA在安全產(chǎn)品中有哪些應(yīng)用?
    發(fā)表于 05-08 06:36

    FPGA芯片架構(gòu)特點(diǎn)

    文章目錄各種硬件CPUGPUNPUFPGA芯片架構(gòu)特點(diǎn)總結(jié)國(guó)產(chǎn)化分析華為Atlas 300寒武紀(jì)比特大陸各種硬件CPUCPU(Central Processing Unit)中央處理器,是一塊
    發(fā)表于 07-26 07:02

    FPGA芯片整體架構(gòu)

    FPGA芯片整體架構(gòu)如下所示,整個(gè)芯片是以BANK進(jìn)...
    發(fā)表于 07-29 07:00

    FPGA 內(nèi)部詳細(xì)架構(gòu) 精選資料分享

    FPGA 內(nèi)部詳細(xì)架構(gòu)FPGA 芯片整體架構(gòu)1.可編程輸入輸出單元(IOB)(Input Output Block)2.可配置邏輯塊(CLB
    發(fā)表于 07-30 08:10

    XILINX FPGA 芯片整體架構(gòu)是如何構(gòu)成的

    XILINX FPGA 芯片整體架構(gòu)是如何構(gòu)成的?XILINX FPGA 芯片有哪些資源?
    發(fā)表于 10-29 06:26

    FPGA芯片的整體架構(gòu)是由哪些部分組成的

    FPGA芯片的整體架構(gòu)是由哪些部分組成的?各模塊有什么功能?
    發(fā)表于 11-05 06:54

    淺談三層架構(gòu)原理

    淺談三層架構(gòu)原理
    發(fā)表于 01-16 09:14

    FPGA設(shè)計(jì)工具淺談

    FPGA設(shè)計(jì)工具淺談 作為一個(gè)負(fù)責(zé)FPGA企業(yè)市場(chǎng)營(yíng)銷團(tuán)隊(duì)工作的人,我不得不說(shuō),由于在工藝技術(shù)方面的顯著成就以及硅芯片設(shè)計(jì)領(lǐng)
    發(fā)表于 10-10 07:46 ?477次閱讀

    淺談數(shù)字總線的時(shí)鐘架構(gòu)

    淺談數(shù)字總線的時(shí)鐘架構(gòu)
    發(fā)表于 01-17 19:54 ?12次下載

    淺談區(qū)域車輛架構(gòu)中音頻和無(wú)線電處理

    淺談區(qū)域車輛架構(gòu)中音頻和無(wú)線電處理
    的頭像 發(fā)表于 09-20 16:11 ?832次閱讀

    芯片行業(yè)之淺談FPGA芯片

    FPGA 是數(shù)字芯片的一類分支,與CPU、GPU等功能固定芯片不同的是, FPGA 制造完成后可根據(jù)用戶需要,賦予其特定功能。 FPGA
    的頭像 發(fā)表于 02-08 06:20 ?4160次閱讀

    fpga芯片架構(gòu)介紹

    FPGA(現(xiàn)場(chǎng)可編程門陣列)芯片架構(gòu)是一種高度靈活和可編程的集成電路架構(gòu),它以其獨(dú)特的結(jié)構(gòu)和功能,在現(xiàn)代電子系統(tǒng)中扮演著至關(guān)重要的角色。FPGA
    的頭像 發(fā)表于 03-15 14:56 ?803次閱讀