FPGA內部資源介紹


FPGA內部資源介紹

目錄

  1. 邏輯資源塊
  2. LUT(查找表)
  3. 加法器
  4. 寄存器
  5. MUX(復用器)
  6. 時鐘網絡資源
    • 全局時鐘網絡資源
    • 區域時鐘網絡資源
    • IO時鐘網絡資源
  7. 時鐘處理單元
  8. BLOCK RAM
  9. DSP
  10. 布線資源
  11. 接口資源
    • 用戶IO資源
    • 專用高速接口資源
  12. 總結

1. 邏輯資源塊

邏輯資源塊是FPGA中最重要的資源,它在FPGA芯片中占的比重最大。Xilinx公司稱它為CLB(Configurable Logic Block),而Altera公司稱它為ALM(Adaptive Logic Module)。Xilinx把一個CLB劃分為若干個slice,每個slice中一般又包含若干個LUT、寄存器、異或門和復用器等;Altera把一個ALM劃分為若干個ALUT和寄存器等,而每個ALUT中一般又可包含若干個LUT、全加器和復用器等。雖然邏輯資源塊在不同的器件中叫法不一樣(當然結構上也會有略微的差別),但它們的本質是類似的。在FPGA芯片中,邏輯資源塊是均勻分布的,不過在列的方向上,它們的排列一般更加緊密些,這估計是為了減少加法進位鏈的延遲和實現高性能的寄存器鏈。

2. LUT(查找表)

**LUT(查找表)**是FPGA芯片與其他可編程邏輯芯片之間最大的區別。LUT可以有多個輸入引腳,但只能有一個輸出引腳。我們可以用ROM的概念來理解LUT,即一個N輸入的查找表,它的行為相當于一個地址總線為N位,單位存儲量為1 bit,總存儲量為2N bit的單口ROM。例如,對于一個2輸入的查找表,如果按照“邏輯與”的真值表去配置其內部ROM的存儲內容,那么它的行為就相當于一個與門;如果按照“邏輯或”的真值表去配置其內部ROM的存儲內容,那么它的行為就相當于一個或門。通過恰當的連接,LUT可以實現任意的組合邏輯功能。目前,FPGA中的基本LUT一般都是4輸入、6輸入甚至更多輸入引腳的,它們所能實現的邏輯功能更加復雜、靈活和多變。

3. 加法器

加法是所有二進制運算的基礎,因此它在FPGA中的地位非常重要。二進制加法中最重要的功能元素是異或操作,因此,為了實現高性能的加法,Xilinx采用了專門的異或門,而Altera引入了專門的全加器。雖然LUT也可以模擬異或門的功能,但其延遲相比專有的異或門來說還是太大,尤其是兩個多位數據相加時,由于級聯效應,會導致處理變慢。因此,在FPGA的邏輯資源塊中,都留有專門的異或門外加專門的進位鏈布線資源,再配合相關資源實現全加器。不過,LUT可以配合異或門實現超前進位加法器,進一步提高加法器的性能。

4. 寄存器

FPGA中有豐富的寄存器資源,這也是它區別于CPLD的地方。寄存器是時序邏輯的基礎,由于它對電路狀態的保持和記憶特性,才使得數字電路具有千變萬化的功能。FPGA中的寄存器一般可以被配置為D類型的觸發器或者鎖存器。配置為D類型的觸發器時,根據生產廠商以及型號的不同,可能會有一些其他的功能管腳,例如異步復位、同步復位、時鐘使能、同步置位等。FPGA中寄存器的輸出一般都會連到附近一個寄存器的輸入MUX中,通過配置該MUX,可以將多個寄存器串聯起來形成寄存器鏈,實現移位寄存器電路。

5. MUX(復用器)

MUX即復用器,也叫多路選擇器。FPGA的邏輯資源塊中有很多MUX,根據用法可以分為兩類:

  • 配置MUX:它的選通是在配置FPGA的時候確定的,因此它決定了所處邏輯資源塊的功能。
  • 邏輯MUX:它的選通是由此時的內部邏輯決定的,因此它是內部邏輯的一部分。

配置MUX在FPGA中的作用更大一些,通過改變配置MUX的選通情況,可以讓邏輯資源塊實現多種多樣的功能。例如,通過改變配置MUX的選通情況,我們可以只使用邏輯資源塊中的組合邏輯部分,也可以只使用其中的寄存器,甚至可以同時使用這兩部分,但它們卻分別隸屬于不同的功能模塊。

6. 時鐘網絡資源

6.1 全局時鐘網絡資源

全局時鐘網絡資源的作用范圍覆蓋整個FPGA芯片,它能保證其上所承載的時鐘信號到達FPGA芯片上任意兩個地方的延遲時間偏差最小,從而保證大型的FPGA設計能夠被高速的時鐘信號正確驅動。一般來說,全局時鐘網絡資源是比較珍貴的,一些小型的FPGA中可能僅有幾個全局時鐘網絡,因此在使用的時候一定要節省。

6.2 區域時鐘網絡資源

隨著FPGA芯片的集成度越來越高,規模大一點的FPGA又被劃分為多個區域(一般來說,一個FPGA區域只包含一個IO bank)。與全局時鐘網絡不同,每一個FPGA區域都有若干個屬于自己的區域時鐘網絡,它所能覆蓋的范圍是整個區域甚至還包括與本區域相鄰的區域。區域時鐘網絡能保證其上所承載的時鐘信號到達FPGA芯片上該時鐘網絡作用域中任意兩個地方的時間偏差最小。這種區域時鐘網絡資源對于源同步的接口邏輯十分有效。

6.3 IO時鐘網絡資源

前面所述的兩種時鐘網絡資源主要針對的都是FPGA內部的一些資源,例如邏輯資源塊、BLOCK RAM、DSP等。而對于接口資源,則有專門的IO時鐘網絡資源來完成時鐘信號承載工作。主要原因有三點:

  1. 接口資源中的寄存器數量較少,不需要大型的樹狀時鐘網絡來減少時鐘到達各個目的地之間的延遲時間差。
  2. 內部的時鐘網絡資源由于作用范圍廣,網絡較龐大,一般上面不能承載頻率太高的時鐘信號,而一些通信接口的時鐘速率很高,遠遠超出了全局或區域時鐘網絡的承受范圍,因此需要使用專有的IO時鐘網絡資源。
  3. 高速的接口邏輯一般都使用專有的接口資源,其布局布線已經固定,能夠保證外部信號到達寄存器的延遲最短。為了配合高速信號傳輸,時鐘信號所走的路徑也必須最短。而全局或區域時鐘網絡的特點是保證時鐘到達各個地方的延遲差最小,而不是延遲最短,因此并不適用高速接口的情況,這種情況下只能使用專有的IO時鐘網絡資源。

7. 時鐘處理單元

在實際使用中,經常會碰到外部送給我們的時鐘信號在頻率或者相位上并不滿足直接使用的要求,而內部時序邏輯又只能對時鐘信號進行整數倍的分頻,并且不能保證產生新時鐘信號的相位穩定性。因此,這個時候就需要用到時鐘處理單元。時鐘處理單元可以對時鐘信號進行高精度的倍頻、分頻和相位調整,對時序邏輯的設計非常重要。FPGA中的時鐘處理單元主要有兩種:PLL(Phase-Locked Loop)DCM(Digital Clock Manager)

8. BLOCK RAM

FPGA生產廠商相繼為自己的FPGA芯片中引入了硬件的存儲核,我們稱之為BLOCK RAM。由于BLOCK RAM不同于寄存器的硬件結構,使得實現同樣的存儲容量所消耗的資源要遠比寄存器少得多。當然,同一時刻一般只能操作BLOCK RAM中一個地址的數據,而如果是用寄存器實現緩存,我們完全可以在同一時刻操作所有的寄存器。與邏輯資源塊一樣,BLOCK RAM資源也均勻分布于整個FPGA芯片中,當然在列的方向它們的排列也緊密一些,估計是為了便于拼湊起來形成更大的緩存。BLOCK RAM本身就是一個先天的查找表,對于一些普通LUT難以應付的大容量表格情況,使用BLOCK RAM可以很好地解決。

9. DSP

**DSP(Digital Signal Processing)**硬核中的核心資源是一個高性能的硬件乘法器,外加一些累加器和寄存器、復用器等資源。DSP硬核通過將這些高性能的資源緊密地結合在一起,從而讓FPGA芯片具有強大的數字信號處理運算的能力。

10. 布線資源

FPGA中的布局布線資源主要包括三部分:CB(Crossbar)、SB(Switchbox)和行列連線。布線資源的目的是為了能夠讓位于不同位置的邏輯資源塊、時鐘處理單元、BLOCK RAM、DSP和接口模塊等資源能夠相互通信,從而協調合作,完成所需功能。FPGA中的布線資源,就好比繪制PCB板時的連線資源一樣。雖然器件A和器件B的位置和連接關系沒有任何改變,但很可能因為周邊電路的布局、布線的一些變化,使得前后兩次A、B之間的連線形態發生很大的變化。因此,與采用固定長度的金屬線將所有宏單元連接在一起的CPLD不同,FPGA中任意兩點之間的線延遲是無法預測的,必須等到布局、布線完成之后才能確定。這也是為什么在FPGA的開發中,時序約束和時序分析這兩樣工作是必不可少的。

11. 接口資源

11.1 用戶IO資源

接口資源是FPGA芯片的門戶,它決定了FPGA芯片與外界交互的能力,因此接口資源是FPGA必須具備的一種資源。按照功能來劃分,FPGA的外圍接口有負責供電的、接地的、芯片配置的、用戶IO的等。其中最重要的是負責用戶IO的接口資源,按其承載信號的類型又可以細分為用戶時鐘管腳(一般僅指輸入)和用戶數據IO。一般來說,用戶時鐘管腳兼具用戶數據IO的功能,但絕大多數數據IO不能兼具用戶時鐘管腳的特性。區分用戶時鐘IO和數據IO的關鍵,就是看其是否有直接連接到時鐘網絡資源的通路。如果有直接連接到全局時鐘網絡資源的通路,那么這是一個全局時鐘管腳;如果有直接連接到區域時鐘網絡資源的通路,那么這是一個區域時鐘管腳;如果有直接連接到IO時鐘網絡資源的通路,那么這是一個IO時鐘管腳。當然,作為FPGA芯片制作廠商,它會提供詳細的管腳屬性資料供大家區分這些管腳,以便用戶正確、恰當地使用。

針對用戶IO資源,Xilinx公司的IOB(Input Output Block)以及Altera公司的IOE(Input Output Element)是其中的代表。用戶IO資源最基本的功能就是必須支持單端或差分的輸入、輸出、雙向以及三態模式,因此用戶IO的基本原理圖如圖3-20所示,其中,PAD代表FPGA芯片的金屬管腳。此外,當傳輸速度較高時,從用戶IO資源到內部邏輯資源塊之間的延遲就會顯得不可忽略,因此,為了配合較高速度的接口傳輸,用戶IO資源中必須集成一些專有的寄存器和精確的延遲調整功能,來完成較高速度的SOR(Serial-to-Parallel)或者DOR(Parallel-to-Serial)的輸入、輸出功能。例如,集成了相關功能模塊的用戶IO資源如圖3-21所示。為了進一步提升接口傳輸的性能,增加用戶使用的便利性,各大FPGA廠商又在用戶IO資源中集成了名為SERDES(Serializer/Deserializer)的串并轉換器,其中用于輸入的叫做ISERDES,用于輸出的叫OSERDES。相比于SDR、DDR的模式,SERDES能夠做到1:6甚至更高的串并轉換比率。圖3-22所示就是SERDES的工作原理,大家可以參考理解。

最后,用戶IO資源還必須支持LVTTL、LVCMOS、LVDS等多種數字電平,有的用戶IO資源甚至內部嵌入了用于高頻匹配的電阻,這樣在電路板布線時,可以省去一些板載的匹配電阻。關于更高速接口的解決辦法請參考下一小節。

11.2 專用高速接口資源

為了適應目前越來越高的串行通信速率要求,各大FPGA廠商也早已開始在自己的FPGA產品中嵌入專門的硬件資源用于超高速的串行通信。例如,Xilinx公司的Rocket IO資源和Altera公司的Transceiver資源。目前來說,這兩種專有的硬件資源都已經能夠支持最高達28 Gb/s的串行通信速率。


總結

本文詳細介紹了FPGA內部的各種資源及其功能。邏輯資源塊(CLB/ALM)是FPGA的核心資源,通過LUT、寄存器、加法器和MUX等基本元素實現復雜的邏輯功能。時鐘網絡資源(全局、區域和IO時鐘網絡)以及時鐘處理單元(PLL和DCM)為FPGA提供了靈活的時鐘管理能力。BLOCK RAM和DSP硬核分別用于存儲和高性能數字信號處理。布線資源(CB、SB和行列連線)則確保了不同資源之間的通信。接口資源(用戶IO資源和專用高速接口資源)則為FPGA與外部世界的交互提供了支持。這些資源共同構成了FPGA的強大功能基礎,使其能夠適應各種復雜的數字邏輯設計需求。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86800.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86800.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86800.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS 列表

CSS 列表 引言 CSS 列表是網頁設計中常用的一種布局方式,它能夠幫助我們以更靈活、更美觀的方式展示數據。本文將詳細介紹 CSS 列表的創建、樣式設置以及常用技巧,幫助您更好地掌握這一重要技能。 CSS 列表概述 CSS 列表主要包括兩種類型&#xff1a…

spring中的@Cacheable緩存

1. 使用方法 在方法上面加上注解Cacheable, OverrideCacheable(cacheNames "userCache", key "#id")public User getUserById(Long id) {System.out.println("查詢數據庫了");return getById(id);}如果你的項目中引入了&#xff…

Node.js特訓專欄-實戰進階:9.MySQL連接池配置與優化

?? 歡迎來到 Node.js 實戰專欄!在這里,每一行代碼都是解鎖高性能應用的鑰匙,讓我們一起開啟 Node.js 的奇妙開發之旅! Node.js 特訓專欄主頁 專欄內容規劃詳情 MySQL連接池配置與優化:提升數據庫交互性能的關鍵 一、MySQL連接池基礎概念 1.1 什么是連接池? 連接池是…

【innovus基礎】- 如何手動畫線?

后端實現的過程就是將邏輯連線變為物理的金屬連線的過程。 1、打開Pin shape的Visible 和 Selected開關,使其可見并可選 2、選中想要畫線的IOCell 3、鼠標選中對應的pin 4、使用dbGet 獲取此pin腳邏輯連線net的名字; dbGet selected.net.name 5、使用畫…

element-plus限制日期可選范圍(這里以7天為例)

element-plus日期范圍限制功能實現邏輯 1. 需求:通過限制時間的可選范圍減少請求的數據量 2. 實現效果: 日期選擇器做限制 3. 代碼邏輯: 思路:通過calendar-change獲取開始日期,然后通過disabled-date禁用不滿足條件…

機器學習2-梯度下降與反向傳播

損失函數 與 平均方差函數 傻傻分不清 損失函數是概念;平均方差函數是具體的實現 損失函數(如均方誤差 MSE)用于衡量模型預測值與真實值之間的差距。損失越小,說明模型對當前數據的擬合越好。 但模型并非擬合度越高越好&#xf…

安全生產風險管控平臺:企業安全管理的智能化解決方案

在工業生產、建筑施工、能源化工等領域,安全生產是企業可持續發展的基石。然而,傳統安全管理模式依賴人工巡檢、紙質記錄和事后處理,難以滿足現代化企業的高效風險管控需求。安全生產風險管控平臺應運而生,它利用物聯網、大數據、…

如何保證數據庫與 Redis 緩存的一致性?

在現代互聯網應用中,Redis 緩存幾乎是性能優化的標配。但在使用過程中,一個繞不過去的問題就是: 如何保證 Redis 緩存與數據庫之間的數據一致性? 特別是在高并發場景下,讀寫操作錯位可能導致緩存中出現臟數據&#xff…

現代 JavaScript (ES6+) 入門到實戰(三):字符串與對象的魔法升級—模板字符串/結構賦值/展開運算符

在前兩篇,我們升級了變量和函數。今天,我們要給 JavaScript 中最常用的兩種數據類型——字符串(String)和對象(Object)——裝備上 ES6 帶來的強大魔法。 準備好告別丑陋的 號拼接和重復的對象屬性賦值了嗎…

GitLab 備份恢復與配置遷移詳盡教程(實戰版)

🛠 GitLab 備份恢復與配置遷移詳盡教程(實戰版) 🧱 一、環境準備 1.1 檢查版本一致性 恢復目標機 GitLab 版本必須與備份文件所用版本一致或兼容(推薦相同版本) 查看當前 GitLab 版本: sudo g…

英飛凌高性能BMS解決方案助力汽車電動化

隨著電動汽車越來越被大眾接受,車輛電氣化、智能化程度越來越高,如何提高電動汽車的續航里程,同時保障車輛安全可靠持久運行是當前最主要的技術難題之一。而先進的電池管理系統 (BMS)有助于克服電動汽車廣泛普及的關鍵障礙:續航里…

react + ant-design實現數字對比動畫效果:當新獲取的數字比之前展示的數字多或少2時,顯示“+2”或“-2”的動畫效果

react ant-design實現數字對比動畫效果:當新獲取的數字比之前展示的數字多或少2時,顯示“2”或“-2”的動畫效果 1. 創建獨立的 AnimatedValue 組件 // components/AnimatedValue/index.jsx import React, { useState, useEffect, useRef } from reac…

自動化測試--Appium和ADB及常用指令

1.Appium Appium工具庫: appium server:服務器(類似于瀏覽器的驅動),核心進行客戶端命令的接受,完成設備的自動化指令 appium client:客戶端,讓代碼進行調用,發送自動化的…

2025.6.29總結

有一點我很好奇,工作后,我該拿什么去衡量自己的進步呢? 在我的大學四年,確實有個量化的標準,讀了多少本書,寫了多少篇總結,多少篇技術博客,多少行代碼,運動了多少公里&a…

Docker 部署 Kong云原生API網關

Docker 部署 Kong云原生API網關 本指南提供了在 Docker Compose 上配置 Kong Gateway 的步驟,基于有數據庫模式的配置。本指南中使用的數據庫是 PostgreSQL。 前置條件 準備一臺Ubuntu服務器: 節點IP: 192.168.73.11操作系統: Ubuntu 24…

深度剖析 Apache Pulsar:架構、優勢與選型指南

Apache Pulsar 是一款云原生分布式消息流平臺,融合了消息隊列、流處理和存儲能力,采用獨特的“存儲計算分離”架構(Broker 無狀態 BookKeeper 持久化存儲)。以下從核心特性、對比優勢及適用場景展開分析: 一、Pulsar…

java 導出word 實現循環表格

如果是固定的值 用 {{}} 即可 但是如果是循環表格,那么就需要制定模板為如圖 然后在處理表格數據時候: /*** 傳入 節點對象 返回生成的word文檔* param flangeJoint* return* throws IOException*/private XWPFTemplate getXwpfTemplate(CmComplaintEn…

XIP (eXecute In Place)

NOR Flash 能直接執行代碼(XIP)而 NAND Flash 不能,根本原因在于它們的物理結構和訪問接口存在本質區別。下面用技術原理 + 現實比喻幫你徹底理解: 1. XIP 是什么? XIP (eXecute In Place) 指代碼不需要從存儲介質復制到 RAM,而是 CPU 直接從存儲介質(如 Flash)中讀取…

【android bluetooth 協議分析 10】【AVRCP詳解1】【PlaybackStateCompat類如何查看】

1. 問題 android/app/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerService.java import android.support.v4.media.MediaBrowserCompat.MediaItem; import android.support.v4.media.session.PlaybackStateCompat;private int toPlaybackStateFromJni(int fro…

【AI學習從零至壹】LLM模型prompt開發及?模型應?

LLM模型prompt開發及?模型應? ?語?模型 LLM如何構建?個AI對話系統關于模型的訓練 ollama調?LLM模型設置API KEY測試一個對話 prompt提示詞提示詞結構特征提示詞的五大核心價值1. 信息傳遞的精準性2. 輸出質量的可控性3. 用戶意圖的對?性4. 復雜任務的拆解性5. 倫理?險的…