日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本發明屬于計算機工程領域,與SoC密切相關。具體涉及一種FPGA配置電路及實現方法。

背景技術:

隨著大數據的發展,計算能力的提升,人工智能近兩年迎來了新一輪的爆發。2016年谷歌AlphaGo贏得了圍棋大戰后,人工智能在產業界和資本圈引起了高度關注,成為新的風口。

在人工智能時代,人們對計算能力的需求有指數級的提高,計算能力的要求超過了摩爾定律。隨著互聯網用戶的快速增長,數據體量的急劇膨脹,數據中心對計算的需求也在迅猛上漲。諸如深度學習在線預測、直播中的視頻轉碼、圖片壓縮解壓縮以及HTTPS加密等各類應用對計算的需求已遠遠超出了傳統CPU處理器的能力所及。除此之外,未來在激光雷達、無人機、無人駕駛、智能機器人等終端設備方面對計算能力也會有極大的提升。

另一方面,摩爾定律正在失效,傳統CPU架構下計算能力的提升開始滯后于摩爾定律。近幾年半導體技術改進達到了物理極限,電路越來越復雜,每一個設計的開發成本高達數百萬美元,數十億美元才能形成新產品投產能力。

因此,計算能力的需求供給出現了一個巨大的缺口。一方面處理器性能再無法按照摩爾定律進行增長,另一方面數據增長對計算性能要求超過了按“摩爾定律”增長的速度。處理器本身無法滿足高性能計算應用軟件的性能需求。

目前,為了彌補計算能力的缺口,許多公司正在積極開發能夠實現人工智能的高效硬件平臺。在這個背景下CPU+FPGA架構應運而生。這種異構架構融合了CPU和FPGA各自的優點,以CPU為核心的SoC為FPGA提供高性能的硬核資源,特別是CPU處理能力。而FPGA作為并行架構的處理器非常適合大規模數據的處理,極大地提升了硬件平臺的計算能力。同時FPGA的可編程性也為CPU提供擴展空間和可重構資源,使其擁有更高的單位功耗性能、更低時延和更快加速性能,因此在包括智能視覺分析、大數據以及云計算等領域得到了大規模應用。

在CPU+FPGA架構中,一般通過CPU以及相應的配置電路來對一塊或多塊FPGA進行配置。然而伴隨著FPGA內實現的算法的復雜度日益增加,FPGA的配置時間也越來越長。目前云計算平臺中的FPGA配置甚至需要多個小時才能完成。因此CPU+FPGA中的FPGA配置時間問題日益嚴重地制約著人工智能、大數據和云計算等新型領域的發展。

技術實現要素:

針對技術背景中提到的FPGA配置時間過長這一問題,設計了一種可配置的,并且能夠顯著提高FPGA配置速度的配置電路,該配置電路具有高性能,高可靠性等特點,并且其功能已經在原型驗證平臺和后仿真平臺上通過了驗證。

本發明的另一個目的在于提供基于SELECTMAP的可配置且高速的FPGA配置電路的實現方法。

本發明的技術方案如下:

一種基于SELECTMAP的可配置且高速的FPGA配置電路,由以下模塊實現:

(1)、高速AMBAAHB接口模塊,該模塊用以采樣AHB總線上的控制、地址和數據信號,并返回相應的控制信號和數據信號。

(2)、寄存器配置模塊,該模塊由多個配置寄存器和狀態寄存器構成。其中配置寄存器用以配置主控制器的各項功能,使得本發明可以適用于各種不同的應用場景。狀態寄存器用以寄存主控制模塊中的各個狀態所對應的數值,通過讀取這些寄存器,方便模塊的調試與信息的打印。

(3)、緩存模塊,該模塊作為核心模塊之一,用來緩存從AHB系統中輸入的FPGA配置數據,使得SELECTMAP接口和AHB系統可以進行異步操作,提高了配置電路的靈活性和穩定性。

(4)、主控制模塊,該模塊為本配置電路的核心模塊,用于產生滿足SELECTMAP時序要求的PROGRAM_B、INIT_B、CSI_B、RW_B信號,同時讀取緩存模塊中的數據并進行移位輸出并根據相應的數據信號生成CCLK信號,使得總線的寬度可以靈活配置,并實現配置數據的非連續傳輸,節省芯片引腳并增加配置電路的可靠性。

基于SELECTMAP的可配置且高速的FPGA配置電路的實現方法中,包含以下步驟:

(1)、上電后配置電路的初始態為空閑狀態,在此狀態下緩存模塊的狀態為空狀態。主配置模塊循環檢測配置寄存器模塊中PROGRAM_B狀態使能寄存器的值,若檢測到此寄存器的值為1,則進入步驟(2)。

(2)、配置電路的主控制器讀取配置寄存器模塊中PROGRAM_B計數寄存器,通過此寄存器中的數值決定PROGRAM_B低電平負脈沖信號的寬度。信號寬度為PROGRAM_B計數寄存器的數值與時鐘周期的乘積。同時,進入步驟(3)。

(3)、主控制器模塊從FPGA接收INIT_B信號,并做出判斷:若檢測到INIT_B信號為低電平,則進入步驟(4);否則繼續執行步驟(3)。同時INIT_B超時計數寄存器中的數值,并對此數值在每個時鐘周期下減1,當此數值為0且INIT_B信號仍然為1時,將TIME_OUT_FLAG信號拉高,并輸出到配置寄存器模塊中相應的狀態寄存器中。此步驟的目的是為了確保所配置的FPGA初始化成功。

(4)、主控制器讀取等待狀態計數寄存器,通過此計數器的數值與時鐘周期決定在等待狀態的停留時間。在等待狀態停留一段時間之后,執行步驟(5)。

(5)、配置電路進入數據移位狀態,主控制模塊將從AHB系統中輸入并存儲在緩存模塊的數據位寬為32bit的FPGA配置數據以字為單位讀入相應的32bit寄存器中,并將此寄存器中的數據分四次移位輸出到FPGA的SELECTMAP從接口,每次數據大小為1字節。同時配合CCLK產生狀態機生成符合要求的CCLK信號,信號上升沿位于每字節數據信號的中間。當沒有數據輸出到FPGA中時,不產生CCLK信號,從而保證了FPGA的非連續配置。當進行完4次移位輸出后,進入步驟(6)。

(6)、配置電路進入數據檢查狀態。在此狀態下,檢查緩存模塊的狀態并進行判斷。若緩存模塊處于非空狀態,則重復步驟(5)。若緩存模塊處于空狀態,則停留在步驟(6)。

附圖說明

圖1為本發明配置電路的結構示意圖。

圖2為本發明配置電路的實現方法流程圖。

具體實施方式

下面結合附圖對本發明的較佳實施例進行詳細闡述,以使本發明的優點和特征能更易于被本領域技術人員理解,從而對本發明的保護范圍做出更為清楚明確的界定。

如圖1所示為本發明配置電路的結構示意圖。本配置電路內部包含四個模塊:高速AMBAAHB接口模塊、寄存器配置模塊、緩存模塊和主控制模塊。其中,寄存器配置模塊中的配置寄存器種類包括:軟復位寄存器、數據寄存器、Program_B狀態使能寄存器、Program_B計數寄存器、CCLK分頻寄存器、INIT_B超時計數寄存器、CCLK等待計數寄存器、設備ID寄存器。由圖可知配置電路通過高速AMBAAHB接口模塊與已CPU為核心的AHB系統相連接,同時通過主控制模塊輸出符合SELECTMAP時序要求的控制信號和數據信號。

應用時,配置電路通過高速AMBA AHB接口模塊與已CPU為核心的AHB系統相連接,從而使得用戶可以通過CPU對配置電路中的寄存器配置模塊中的配置寄存器和狀態寄存器進行寫入和讀取。

應用時,配置電路通過FPGA的SELECTMAP從設備管腳對FPGA進行配置。應用時,配置電路通過時鐘管腳接受AHB系統的時鐘信號,并進入工作狀態。如圖2所示為本發明配置電路實現方法流程圖。本發明配置電路主要包括6中工作狀態,包括空閑狀態、PROGRAM_B狀態、INIT_B狀態、等待狀態、移位輸出狀態和數據檢查狀態。本發明屏配置電路的實現方式通過狀態機實現,具體實現過程如下:

步驟(一)、上電后配置電路的狀態處于空閑狀態。此時根據FPGA的時序手冊以及具體使用情況,通過CPU對配置電路中的寄存器配置模塊的各個相應寄存器進行配置。通過配置PROGRAM_B狀態使能寄存器,使得配置電路的狀態可以從空閑狀態進入PROGRAM_B狀態。通過配置PROGRAM_B計數寄存器,產生滿足FPGA要求的負脈沖初始化信號。通過配置CCLK分頻寄存器,產生滿足芯片PAD頻率要求的配置時鐘信號。通過配置INIT_B超時計數寄存器,若配置電路從FPGA接收的INIT_B信號在規定時間內不拉低,則拉高TIME_OUT_FLAG信號拉高,并輸出到配置寄存器模塊中相應的狀態寄存器中。當CPU從狀態寄存器中讀取到TIME_OUT_FLAG信號為高電平時,則表示FPGA沒有初始化成功,便于用戶調試。通過配置等待計數寄存器,確定等待狀態的持續時間,滿足應用需求。本配置電路可以同時配置多達8塊FPGA,通過配置設備ID寄存器,選定要配置的FPGA的編號。在此狀態下緩存模塊的狀態為空狀態。主配置模塊循環檢測配置寄存器模塊中PROGRAM_B狀態使能寄存器的值,若檢測到此寄存器的值為1,則進入步驟(二)。

步驟(二)、配置電路的主控制器讀取配置寄存器模塊中PROGRAM_B計數寄存器,通過此寄存器中的數值決定PROGRAM_B低電平負脈沖信號的寬度。信號寬度為PROGRAM_B計數寄存器的數值與時鐘周期的乘積。當完成PROGRAM_B低電平負脈沖信號的發送時,進入步驟(三)。

步驟(三)、配置電路進入INIT_B狀態。在此狀態下主控制器模塊通過專用引腳從FPGA接收INIT_B信號,并做出判斷:若檢測到INIT_B信號為低電平,則進入步驟(四)。否則繼續執行步驟(三)。同時INIT_B超時計數寄存器中的數值,并對此數值在每個時鐘周期下減1,當此數值為0且INIT_B信號仍然為1時,產生TIME_OUT_FLAG信號并將此信號拉高,并輸出到配置寄存器模塊中相應的狀態寄存器中。CPU在傳輸配置數據之前先循環讀取此狀態寄存器中的值,若此狀態寄存器的值為1,則報錯。此步驟的目的是為了確保所配置的FPGA初始化成功。

步驟(四)、配置電路進入等待狀態,在此狀態下主控制模塊讀取等待狀態計數寄存器中的數值,通過此計數器的數值與時鐘周期決定在等待狀態的停留時間。在等待狀態停留一段時間之后,執行步驟(五)。此步驟的目的是為了確保滿足不同應用場景的要求。

步驟(五)、配置電路進入數據移位狀態,通過CPU將配置數據寫入寄存器配置模塊中的數據寄存器,一個周期后寄存在數據寄存器中的配置數據被寫入緩存模塊中,緩存模塊的狀態變為非空狀態。檢測到緩存模塊的狀態為非空狀態后,配置電路進入數據移位狀態,將從AHB系統中輸入并存儲在緩存模塊的數據位寬為32bit的FPGA配置數據以字為單位寫入相應的32bit寄存器中,并將此寄存器中的數據分四次移位輸出到FPGA的SELECTMAP從接口,每次數據大小為1字節。同時配合CCLK產生狀態機生成符合要求的CCLK信號,CCLK信號上升沿位于數據信號的中間。當沒有數據輸出到FPGA中時,不產生CCLK信號,從而保證了FPGA的非連續配置。當進行完4次移位輸出后,進入步驟(六)。

步驟(六)、當主控制器對長度為32bit的配置數據移位輸出完成后,配置電路進入數據檢查狀態。在此狀態下,檢查緩存模塊的狀態并進行判斷。若緩存模塊處于非空狀態,則重復步驟(五)。否則,若緩存模塊處于空狀態,則停留在步驟(六)。FPGA產生的DONE信號通過專用引腳寫入寄存器配置模塊中相應的狀態寄存器中,CPU循環讀取此狀態寄存器中的值。

以上所述,僅為本發明最佳的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。

本發明說明書中未作詳細描述的內容屬于本領域專業技術人員的公知技術。

總結

以上是生活随笔為你收集整理的fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。