FPGA 配置原理

用戶編程控制的FPGA 是通過加載比特位流配置內部的存儲單元實現的。該存儲單元就是所謂的配置單元,它必須在器件上電后進行配置,從而設置查找表(LUT)的屬性、連線方式、IOB 電壓標準和其它的用戶設計。

1.配置幀

以Xilinx 公司的Virtex-II 系列為例,配置數據是以配置幀(Frame)為配置單元進行讀寫的。每一幀以一個比特為寬度,從器件的最頂端一直延伸到最底端。

不同器件型號的尺寸和容量不同,所以,對應的幀長也不同。但在同一器件中,所有類型的幀,其長度一致。

下表列出不同型號的幀長度以及總的幀數,單位為32bit 字。

2.配置列

多個配置幀構成了更大的配置單位稱為配置列(Column)。以配置列為單位,可以將FPGA 資源分成三類:類一,CLB 列、IOB 列、IOI 列、GCLK 列;類二,BRAM 列;類三,BRAM Interconnect 列。下圖展示了三類資源在FPGA 上的物理映射。

在Virtex-II 系列FPGA 中,IOB、IOI 和GCLK 列數是一致的,而CLB、BRAM和BRAM Interconnect 的列數則是根據器件的尺寸有所差異。對于不同類別的列所含有的幀數以及不同器件型號所含有的列數由下表所示。

IOB 列:配置器件最左和最右兩端的I/O 電平標準;
IOI 列:配置乘法器、器件最左端和最右端IOB 中的三態緩沖、IOB 中的寄存器;
CLB 列:配置CLB 單元、布線、大部分的內連和器件最上端和最下端IOB;
BRAM 列:配置在BRAM 中的用戶存儲空間屬性;
BRAM Interconnect 列:配置除了用戶存儲空間以外的BRAM 空間以及乘法器的屬性;
GCLK 列:配置大部分的全局時鐘資源,包括時鐘緩沖和數字時鐘管理器(DCM)。

3.配置單元的尋址

在整個配置過程中,每個配置幀都有唯一的32 位地址與之相對應。該地址由塊地址(Block Address,BA)、主地址(Major Address,MJA)、次地址(Minor Address,MNA)和字節數(Byte number)組成。其中,字節數為全‘0’,它是在配置過程中,自動為器件中的幀長計數器所使用,用戶不能夠對其進行設置。下表說明了地址的組成。

根據塊地址(BA),可以將地址劃分為三類(BA00,BA01,BA10),對應著FPGA 三類的內部資源:
BA00 包括了所有的CLB 列、IOB 列、IOI 列、GCLK 列;
BA01 包括了所有的BRAM 列;
BA10 包括了所有的BRAM Interconnect 列。

主地址(MJA)指定了一列在某塊中的位置,次地址(MNA)則是說明一幀在某一列中的次序。下圖說明了幀地址的映射,需要注意的是,幀的排列并不是硬件上的映射,而是邏輯上的映射。在配置過程中,幀地址會自動累加,即:幀的配置順序在下圖中是從左到右的一個配置過程。

4.比特流的組成

配置 Virtex-II 的比特流由同步字和大量的數據包組成,其長度均為以32bit 字為單位。同步字(0xAA995566)對配置邏輯進行同步,當FPGA 接收到這一同步字后,數據通道打開,開始以32bit 字為基本單位進行數據包的接收。在比特文件中的位置由下圖所示。

而數據包則是先指定相應寄存器然后再對其進行配置,它是由包頭和不定長的實體構成,其仍然以32bit 字進行基本的操作。

數據包的包頭分為兩種類型:TYPE1 和TYPE2。

TYPE1的包頭如下表所示,在TYPE1 包頭中,“WR”或“RD”指定了讀寫操作,“Register Address”指定配置寄存器的地址,“Word Count”指定了跟在TYPE1 包頭后面的32bit 字的字數,對應需要配置到“Register Address”所指定的寄存器。

TYPE2的包頭如下表所示。

通常,TYPE1 用于比較小的包的配置,例如對地址寄存器(FAR)的配置。而TYPE2 則是用于較大包的配置,例如對FPGA 三類資源的配置。

但在全比特位流中,通常是兩種類型的包頭結合使用,組織形式為“TYPE1+TYPE2”,形式如下圖所示。

5.配置控制邏輯

Virtex-II FPGA 的配置控制邏輯是由包處理器、一系列的配置寄存器及其控制的全局信號組成。其中,包處理器將從數據通道進來的數據流配置到相應的寄存器,而配置寄存器則是根據不同的值進行配置過程中的相應操作。

5.1包處理器

上電后,識別到同步字后,包處理器開始等待有效的包頭。接收到有效包頭后,包處理器就會將包頭后的數據配置到其所指定的寄存器中,直至包頭中的字計數器(Word Count)減到零,才會去等待下一個有效的包頭。數據通道的數據流在進入包處理器之前都會經過一個64bit 的緩沖單元,如下圖所示。

包處理器本身則是以32bit 字為基本單位去識別所有的指令。所以,在比特流中配置指令的結束位置必須有至少2 個32bit 的無效字,如下表所示,從而將還位于緩沖區的的指令送至包處理器中

5.2配置寄存器

FPGA 配置的實現過程也是所有配置指令的執行過程。根據寫入配置寄存器不同的值,就可以執行相應的操作。下表就給出了FPGA 一些關鍵的內部配置寄存器及其對應的地址。



?學習例程

我給小白們準備了一份禮物,下面是我精心整理的n多verilog代碼。幫助小白們由淺至深的“模仿”。在模仿的過程中能夠進一步的鞏固之前了解的語法知識。

這些Verilog例程基本涵蓋了以后可能遇到的所有用法,參考這些代碼,可以做出你想要的任何設計。
當你想要用Verilog編寫一段代碼實現某個功能時,如果你能夠想到參考哪段代碼能夠實現你的設計,那么恭喜你,你已經入門了!!!

所有示例代碼,點擊鏈接獲取。

01-鎖存器、觸發器、寄存器、移位寄存器等

【免費】VerilogHDL示例代碼之01-鎖存器、觸發器、寄存器、移位寄存器等資源-CSDN文庫

02-邏輯門、三態門、mux等

【免費】VerilogHDL示例代碼之02-邏輯門、三態門、mux等資源-CSDN文庫

03-各種計數器

【免費】VerilogHDL示例代碼之03-各種計數器資源-CSDN文庫

04-各類加法器

【免費】VerilogHDL示例代碼之04-各類加法器資源-CSDN文庫

05-乘法器

【免費】VerilogHDL示例代碼之05-乘法器資源-CSDN文庫

06-異步復位同步釋放

【免費】VerilogHDL示例代碼之06-異步復位同步釋放資源-CSDN文庫

07-分頻

【免費】VerilogHDL示例代碼之07-分頻資源-CSDN文庫

08-語法語句

【免費】VerilogHDL示例代碼之08-語法語句資源-CSDN文庫

09-串并轉換

【免費】VerilogHDL示例代碼之09-串并轉換資源-CSDN文庫

10-狀態機設計

【免費】VerilogHDL示例代碼之10-狀態機設計資源-CSDN文庫

11-編解碼應用

【免費】VerilogHDL示例代碼之11-編解碼應用資源-CSDN文庫

12-仿真語法舉例

【免費】VerilogHDL示例代碼之12-仿真語法舉例資源-CSDN文庫

13-進階設計

【免費】VerilogHDL示例代碼之13-進階設計資源-CSDN文庫


我將Verilog的語法進行了總結,寫了13篇文章,讓小白“快速見識豬如何跑”,每一篇講解一類語法,結合正確的示例代碼和錯誤的示例代碼,有的章節對個別語法進行了歸納總結,幫助初學者加深理解。詳情點擊 ? ? ? ? ? ? ? ? ? ??

小白如何快速入門Verilog?-CSDN博客

Verilog語法之〇:Verilog HDL簡介/Verilog語法介紹-CSDN博客

Verilog語法之一:簡單的Verilog HDL模塊-CSDN博客

Verilog語法之二:常量-CSDN博客

Verilog語法之三:變量-CSDN博客

Verilog語法之四:運算符-CSDN博客

。。。。。。

更多課程,敬請期待

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

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

相關文章

測試人員如何更好的跟蹤BUG

軟件測試中BUG跟蹤是確保軟件質量的關鍵環節。測試人員不僅需要發現BUG,還需有效管理其狀態,從報告到修復驗證的全過程。如何更好地跟蹤BUG,成為測試人員提升效率的重要課題。本文將詳細探討測試人員可以采用的策略,包括使用工具、…

lamp平臺介紹

一、lamp介紹 網站: 靜態 動態 php語言 .php 作用:運行php語言編寫動態網站應用 lamp Linux Apache MySQL PHP PHP是作為httpd的一個功能模塊存在的 二、部署lamp平臺 1、測試httpd是否可正常返回PHP的響應 2、測試PHP代碼是否可正常連接數據…

2025年滲透測試面試題總結-字某跳動-滲透測試實習生(題目+回答)

網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 字某跳動-滲透測試實習生 滲透流程信息收集如何處理子域名爆破中的泛解析問題繞過CDN尋找真實IPPHPINFO頁面關注…

Spring Boot 自動裝配深度解析與實踐指南

目錄 引言:自動裝配如何重塑Java應用開發? 一、自動裝配核心機制 1.1 自動裝配三大要素 1.2 自動裝配流程 二、自定義自動配置實現 2.1 創建自動配置類 2.2 配置屬性綁定 2.3 注冊自動配置 三、條件注解深度應用 3.1 常用條件注解對比 3.2 自定…

《算法筆記》9.6小節 數據結構專題(2)并查集 問題 C: How Many Tables

題目描述 Today is Ignatius birthday. He invites a lot of friends. Now its dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each other, and all the friends do not want to stay with stra…

CPU、SOC、MPU、MCU--詳細分析四者的區別

一、CPU 與SOC的區別 1.CPU 對于電腦,我們經常提到,處理器,內存,顯卡,硬盤四大部分可以組成一個基本的電腦。其中的處理器——Central Processing Unit(中央處理器)。CPU是一臺計算機的運算核…

Linux常用指令學習筆記

文章目錄 前言一、文件和目錄操作指令1. 文件操作2. 目錄操作 二、文件權限管理三、網絡相關指令四、系統管理指令五、文本編輯器基本操作 六、壓縮和解壓指令七、總結 前言 在當今的IT領域,Linux系統因其開源、穩定、安全等特性,廣泛應用于服務器、個人…

android studio通過 jni 調用第三方非標準 so庫

調用第三方的so方法,但這個so內的方法不是標準的jni方法。這就需要我們自己寫jni然后鏈接到第三方so庫,通過jni調用so庫中的方法。 1.簡述: 要先有第三方的so庫.so文件和編譯庫對應的.h頭文件 我們自己用 c/c 創建一個標準的so 庫,比如 my…

Spring(三)容器-注入

一 自動注入Autowire 代碼實現: package org.example.spring01.service;import org.springframework.stereotype.Service;Service public class UserService {}package org.example.spring01.controller;import lombok.Data; import lombok.ToString; import org.…

mac上最好的Python開發環境之Anaconda+Pycharm

為了運行修改 label-studio項目源碼,又不想在windows上運行,便在mac上開始安裝,開始使用poetry安裝,各種報錯,不是zip包解壓不了,就是numpy編譯報錯,pipy.org訪問出錯。最后使用anaconda成功啟動…

IDEA 接入 Deepseek

在本篇文章中,我們將詳細介紹如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek,讓你的 AI 編程助手更智能,提高開發效率。 一、前置準備 在開始之前,請確保你已經具備以下條件: 安裝了 JetBrains IDEA&…

前綴和矩陣

前綴和矩陣(Prefix Sum Matrix)是一種預處理技術,用于快速計算二維矩陣中任意子矩陣的元素和。其核心思想是通過提前計算并存儲每個位置左上角所有元素的和,將子矩陣和的查詢時間從暴力計算的 (O(mn)) 優化到 (O(1))。以下是構建前…

系統架構評估中的重要概念

(1)敏感點(Sensitivity Point) 和權衡點 (Tradeoff Point)。敏感點和權衡點是關鍵的架構 決策。敏感點是一個或多個構件(和/或構件之間的關系)的特性。研究敏感點可使設計人員 或分析員明確在搞清楚如何實現質量目標時應注意什么。權衡點是影響多個質量屬性的特性, …

SSL證書和HTTPS:全面解析它們的功能與重要性

每當我們在互聯網上輸入個人信息、進行在線交易時,背后是否有一個安全的保障?這時,SSL證書和HTTPS便扮演了至關重要的角色。本文將全面分析SSL證書和HTTPS的含義、功能、重要性以及它們在網絡安全中的作用。 一、SSL證書的定義與基本概念 S…

基于微信小程序的停車場管理系統的設計與實現

第1章 緒論 1.1 課題背景 隨著移動互聯形式的不斷發展,各行各業都在摸索移動互聯對本行業的改變,不斷的嘗試開發出適合于本行業或者本公司的APP。但是這樣一來用戶的手機上就需要安裝各種軟件,但是APP作為一個只為某個公司服務的一個軟件&a…

寶塔找不到php擴展swoole,服務器編譯安裝

1. 在php7.4中安裝swoole,但找不到這個擴展安裝 2. 服務器下載源碼解壓安裝 http://pecl.php.net/package/swoole 下載4.8.0版本 解壓到/www/server/php/74/下 3. 發現報錯問題; 更新一下依賴 yum update yum -y install gcc gcc-c autoconf libjpe…

大數據測試總結

總結測試要點: 參考產品文檔,技術文檔梳理以下內容 需求來源 業務方應用場景 數據源,數據格轉,數據產出,數據呈現方式(數據消亡史),數據量級(增量,全量&am…

React封裝通用Table組件,支持搜索(多條件)、篩選、自動序號、數據量統計等功能。未采用二次封裝調整靈活,包含使用文檔

封裝通用組件 一、封裝思想二、react代碼三、css代碼四、實現效果五、使用文檔 BasicTableModal 表格模態框組件1.組件簡介2.功能特點3.使用方法基礎用法寬度控制示例帶篩選功能搜索功能示例自定義單元格渲染 4.API 說明PropsColumn 配置項Filter 配置項 5.注意事項 一、封裝思…

React 中 useState 的 基礎使用

概念:useState 是一個React Hook(函數),它允許我們向組件添加狀態變量,從而影響組件的渲染結果。 本質:和普通JS變量不同的是,狀態變量一旦發生變化,組件的視圖UI也會跟著變化&…

Html5學習教程,從入門到精通,HTML `<div>` 和 `<span>` 標簽:語法知識點與案例代碼(12)

HTML <div> 和 <span> 標簽&#xff1a;語法知識點與案例代碼 一、語法知識點 1. <div> 標簽 定義: <div> 是一個塊級元素&#xff0c;用于將文檔內容劃分為獨立的、可樣式化的部分。它本身沒有特定的語義&#xff0c;主要用于布局和分組。特點: 塊…