一種現場可編程邏輯芯片內部存儲器映射裝置及方法
【專利摘要】本發明公開了一種現場可編程邏輯芯片內部存儲器映射裝置,該裝置包括:輸入模塊,接收存儲映射性能要求、用戶邏輯存儲大小及用戶選擇的優化策略;延時影響因素提取模塊,通過對于不同型號FPGA內部結構的實驗,得到與訪存關鍵路徑延時有關的影響因素;關系式擬合模塊,根據延時影響因素及延時測試結果,擬合得到訪存關鍵路徑延時與延時影響因素之間的關系式;物理存儲單元配置產生模塊,根據所述關系式和映射性能要求對物理存儲單元進行配置。本發明還公開了一種可編程邏輯芯片內部存儲器映射方法。本發明以性能要求作為第一目標,在該前提下進行功耗或者資源的優化,資源和功耗消費較小,映射算法復雜度為常數,在很短的時間內就能夠完成映射功能。
【專利說明】一種現場可編程邏輯芯片內部存儲器映射裝置及方法
【技術領域】
[0001]本發明涉及計算機輔助設計【技術領域】,尤其是一種現場可編程邏輯芯片(FPGA)內部存儲器映射裝置及方法。
【背景技術】
[0002]由于能夠使設計者的設計制造成本減少、設計周期縮短,FPGA (FieldProgrammable Gate Array) —誕生就得到了快速的發展。由于集成電路節點的不斷發展,FPGA能夠容納的晶體管數不斷增加,能夠實現的電路功能不斷增強。正是由于上述原因,當今的FPGA能夠用來實現整個數字電路系統。為了適應系統對數據存儲的需求,很多FPGA廠商將物理存儲單元作為一種獨立的存儲資源集成到FPGA芯片當中。
[0003]但是由于一個物理存儲單元只能實現有限的存儲容量,因此當系統對存儲需求較大時,必須使用一個或多個物理存儲單元來共同實現設計者對邏輯存儲的需求。這種使用一個或多個物理存儲單元來實現邏輯存儲的方法(或過程)叫存儲器映射。
[0004]目前的存儲器映射策略包括:資源最優型、功耗最低型和延時最小型。資源最優型策略保證使用的物理存儲單元的總數最少,但不能保證延時能夠達到設計者對性能的要求,并且這種設計方法往往導致較大的功耗;功耗最低型策略保證映射成的邏輯存儲消耗的功耗最低,但使用的物理存儲單元的總數較高,也不能保證延時能夠達到設計者對性能的要求;延時最小型策略使得映射的邏輯存儲延時最小,有時甚至超過設計者對性能的要求,但由于性能與資源、性能與功耗之間是一種權衡關系,性能高,往往是以犧牲資源和功耗為代價的,而過高的性能(超出設計者對性能的要求)將會導致資源和功耗的浪費。
[0005]隨著系統對存儲需求的增加,使用FPGA內部物理存儲單元的總數也隨之增加,但資源最優型、功耗最低型以及延時最小型存儲器映射方法產生的映射結果延時往往較大,并可能稱為整個系統的時序瓶頸。雖然延時最小型映射策略能夠廣生延時最小的映射結果,有時甚至超過設計者對性能的要求,但其并不能優化資源和功耗。本發明公開一種存儲器映射裝置及方法,其將滿足設計者對性能的要求作為第一目標,在滿足這一目標的前提下進行功耗或者資源的優化。
【發明內容】
[0006]為了解決上述技術問題,本發明提供一種現場可編程邏輯芯片(FPGA)內部存儲器映射裝置及方法。
[0007]根據本發明的一方面,提出一種現場可編程邏輯芯片(FPGA)內部存儲器映射裝置,該裝置包括:輸入模塊、延時影響因素提取模塊、關系式擬合模塊和配置產生模塊,其中:
[0008]所述輸入模塊與所述延時影響因素提取模塊連接,用于接收、存儲映射性能要求、用戶邏輯存儲大小及用戶選擇的優化策略;
[0009]所述延時影響因素提取模塊與所述輸入模塊和所述關系式擬合模塊連接,用于通過對于不同型號FPGA內部結構的實驗,得到與訪存關鍵路徑延時有關的影響因素;
[0010]所述關系式擬合模塊與所述延時影響因素提取模塊和所述物理存儲單元配置產生模塊連接,用于根據所述延時影響因素提取模塊提取得到的延時影響因素以及延時測試結果,擬合得到訪存關鍵路徑延時與延時影響因素之間的關系式;
[0011]所述物理存儲單元配置產生模塊與所述關系式擬合模塊連接,用于根據所述關系式擬合模塊得到的訪存關鍵路徑延時與延時影響因素之間的關系式和所述輸入模塊得到的映射性能要求,對需要的物理存儲單元進行配置。
[0012]根據本發明的另一方面,還提出一種根據所述映射裝置對可編程邏輯芯片(FPGA)內部存儲器進行映射的方法,該方法包括以下步驟:
[0013]步驟I,根據用戶輸入的邏輯存儲寬度width和深度depth以及每個物理存儲單元的存儲容量cap初步得到需要的物理存儲單元的總數mem ;
[0014]步驟2,根據關系式擬合模塊擬合得到的訪存關鍵路徑延時D與延時影響因素之間的關系式以及用戶輸入的時序約束D,得到滿足不等式a+bXmenf+dXmuxe ( D的最大選通器的級數mux;
[0015]步驟3,利用用戶輸入的邏輯存儲深度cbpth和最大選通器的級數mux,得到關鍵路徑部分每個物理存儲單元的配置深度d。;
[0016]步驟4,根據所述每個物理存儲單元的配置深度d。,從物理存儲單元配置模式中找到相應的配置寬度W。;
[0017]步驟5,根據用戶輸入的邏輯存儲寬度width以及所述步驟4得到的配置寬度W。,得到構成關鍵路徑的物理存儲單元的組數g ;
[0018]步驟6,根據所述步驟4得到的配置寬度W。、用戶輸入的邏輯存儲寬度width以及所述步驟5得到的組數g,得到非關鍵路徑部分的位寬A ;
[0019]步驟7,根據用戶選擇的優化策略執行相應的步驟:如果用戶選擇的優化策略為功耗最小策略,則執行步驟8-9,并跳過步驟10-16,執行步驟17以及后續步驟;如果用戶選擇資源優化策略,則跳過步驟8-9并執行步驟10-17以及后續步驟;
[0020]步驟8,從物理存儲單元配置模式中找到滿足式wM ^ Wr的最小物理存儲單元配置位寬Wm ;
[0021]步驟9,根據所述步驟8得到的物理存儲單元配置位寬wM和用戶輸入的邏輯存儲深度depth,得到構成非關鍵路徑的物理存儲單元的個數menv ;
[0022]步驟10,將物理存儲單元的所有配置模式按配置寬度由大到小形成數組wM[i],相應的配置深度形成數組dM[i];
[0023]步驟11,按配置位寬由大到小的順序遍歷物理存儲單元所有的配置位寬,根據每個配置位寬得到構成非關鍵路徑的物理存儲單元的初始配置數組e[i];
[0024]步驟12,根據所述步驟11得到的初始配置數組e[i]和用戶輸入的邏輯存儲深度depth,得到構成非關鍵路徑的物理存儲單元總數menir ;
[0025]步驟13,將所述步驟12得到的mem,和所述步驟11得到的配置數組e[i]暫存到存儲器 memtenip 和 etenip ; [0026]步驟14,找到滿Metemp[i]關O的最大索引系數i,將etemp[i]的值置為零,且將etemp[1-l]加 I ;[0027]步驟15,根據暫存的配置數組etemp[i]和用戶輸入的邏輯存儲深度d印th,得到構成非關鍵路徑的物理存儲單元暫存總數Hiemtfaiip ;
[0028]步驟16,判斷如果構成非關鍵路徑的物理存儲單元暫存總數memt?p與構成非關鍵路徑的物理存儲單元總數menir滿足:memtemp ( memr,則將memtemp的值賦給menir,將數組etemp[i]的值賦給e[i],并重新執行步驟14-16 ;否則執行步驟17以及后續步驟;
[0029]步驟17,根據組數g、選通器級數mux以及構成非關鍵路徑的物理存儲單元總數memr,得到被使用的物理存儲單元的總數mem。
[0030]本發明所取得的有益效果為:
[0031](I)與資源最優型、功耗最低型映射策略相比,本發明將設計者對性能的要求作為第一目標,確保能夠滿足設計者對性能的要求;
[0032](2)與延時最小型映射策略相比,本發明能夠滿足設計者對性能的要求,并且不會過高的超出設計者對性能的要求,從而不會導致較大的資源和功耗的浪費;
[0033](3)本發明的映射算法復雜度為常數,即在很短的時間內就能夠完成映射功能。
【專利附圖】
【附圖說明】
[0034]圖1是本發明提出的現場可編程邏輯芯片(FPGA)內部存儲器映射裝置結構示意圖;
[0035]圖2是本發明提出的現場可編程邏輯芯片(FPGA)內部存儲器映射方法流程圖。【具體實施方式】
[0036]為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,并參照附圖,對本發明進一步詳細說明。
[0037]根據本發明的一方面,提出一種現場可編程邏輯芯片(FPGA)內部存儲器映射裝置,如圖1所示,該裝置包括:輸入模塊、延時影響因素提取模塊、關系式擬合模塊和物理存儲單元配置產生模塊,其中:
[0038]所述輸入模塊與所述延時影響因素提取模塊連接,用于接收、存儲映射性能要求、用戶邏輯存儲大小及用戶選擇的優化策略等,所述映射性能要求至少包括用戶的時序約束等;
[0039]所述延時影響因素提取模塊與所述輸入模塊和所述關系式擬合模塊連接,用于通過對于不同型號FPGA內部結構的實驗,得到與訪存關鍵路徑延時有關的影響因素;目前,通過實驗發現不同種類的FPGA芯片映射成的邏輯存儲的關鍵路徑延時與下列兩個因素有關:實現物理存儲單元輸出數據選通的選通器級數和所使用的物理存儲單元的總數。
[0040]在所述延時影響因素提取模塊中:
[0041]首先,利用傳統的三種存儲器映射方法(資源最小策略、功耗最小策略和延時最小策略)對目標FPGA芯片進行一系列邏輯存儲寬度width和深度cbpth的不同的實驗,記錄每種邏輯大小下對應的訪存延時D、選通器的級數mux以及被使用的物理存儲單元的總數mem,列出三個表格。
[0042]其次,從上述三個表中觀察得到隨著訪存延時增大時,其他因素的變化規律,即根據記錄的延時測試結果確定與訪存延時有關的因素。該實驗中初步確定與訪存延時有關的兩個影響因素為選通器的級數以及所使用的物理存儲單元的總數,并假設訪存延時與上述兩個影響因素之間的關系為簡單多項式關系D=a+b Xmemt^dXmuxfi,其中a, b, c, d, e為待確定的常數。
[0043]所述關系式擬合模塊與所述延時影響因素提取模塊和所述物理存儲單元配置產生模塊連接,用于根據所述延時影響因素提取模塊提取得到的延時影響因素以及延時測試結果(三個表格),比如可以利用Matlab中cvfit擬合工具,擬合得到訪存關鍵路徑延時D與延時影響因素之間的具體數學關系式,即確定所述假設的多項式中每個常數(a,b, c, d, e)的值,不同種類的FPGA芯片因為內部不同的邏輯資源結構、不同的布線資源結構和不同的工藝,曲線擬合所產生的數學關系式也不同,即不同型號芯片對應不同的數學關系式。
[0044]所述物理存儲單元配置產生模塊與所述關系式擬合模塊連接,用于根據所述關系式擬合模塊得到的訪存關鍵路徑延時D與延時影響因素之間的上述關系式和所述輸入模塊得到的設計者對映射性能的要求,對需要的物理存儲單元進行配置。
[0045]根據本發明的另一方面,還提出一種現場可編程邏輯芯片(FPGA)內部存儲器映射方法,如圖2所示,該方法包括以下步驟:
[0046]步驟I,根據用戶輸入的邏輯存儲寬度width和深度depth以及每個物理存儲單元的存儲容量cap初步得到需要的物理存儲單元的總數mem ;
[0047]步驟2,根據關系式擬合模塊擬合得到的訪存關鍵路徑延時D與延時影響因素之間的關系式以及用戶輸入的時序約束D,得到可以滿足不等式a+bXmenf+dXmux6 ( D的最大選通器的級數mux; [0048]步驟3,利用用戶輸入的邏輯存儲深度cbpth和最大選通器的級數mux,得到關鍵路徑部分每個物理存儲單元的配置深度d。;
[0049]該步驟根據下式計算出所述配置深度d。:.depth
[0050]
【權利要求】
1.一種可編程邏輯芯片內部存儲器映射裝置,其特征在于,該裝置包括:輸入模塊、延時影響因素提取模塊、關系式擬合模塊和物理存儲單元配置產生模塊,其中: 所述輸入模塊與所述延時影響因素提取模塊連接,用于接收、存儲映射性能要求、用戶邏輯存儲大小及用戶選擇的優化策略; 所述延時影響因素提取模塊與所述輸入模塊和所述關系式擬合模塊連接,用于通過對于不同型號FPGA內部結構的實驗,得到與訪存關鍵路徑延時有關的影響因素; 所述關系式擬合模塊與所述延時影響因素提取模塊和所述物理存儲單元配置產生模塊連接,用于根據所 述延時影響因素提取模塊提取得到的延時影響因素以及延時測試結果,擬合得到訪存關鍵路徑延時與延時影響因素之間的關系式; 所述物理存儲單元配置產生模塊與所述關系式擬合模塊連接,用于根據所述關系式擬合模塊得到的訪存關鍵路徑延時與延時影響因素之間的關系式和所述輸入模塊得到的映射性能要求,對需要的物理存儲單元進行配置。
2.根據權利要求1所述的裝置,其特征在于,所述映射性能要求至少包括用戶的時序約束。
3.根據權利要求1所述的裝置,其特征在于,所述影響因素包括實現物理存儲單元輸出數據選通的選通器級數和所使用的物理存儲單元的總數。
4.根據權利要求1所述的裝置,其特征在于,在所述延時影響因素提取模塊中,首先對目標FPGA芯片進行一系列邏輯存儲寬度width和深度depth的不同的實驗,記錄每種邏輯大小下對應的訪存延時D、選通器的級數mux以及被使用的物理存儲單元的總數mem ;其次,根據記錄的延時測試結果確定與訪存延時有關的因素,并假設訪存延時與影響因素之間的關系為簡單多項式關系。
5.根據權利要求1所述的裝置,其特征在于,不同型號的芯片對應不同的數學關系式。
6.一種根據權利要求1所述的映射裝置對可編程邏輯芯片內部存儲器進行映射的方法,其特征在于,該方法包括以下步驟: 步驟1,根據用戶輸入的邏輯存儲寬度width和深度cbpth以及每個物理存儲單元的存儲容量cap初步得到需要的物理存儲單元的總數mem ; 步驟2,根據關系式擬合模塊擬合得到的訪存關鍵路徑延時D與延時影響因素之間的關系式以及用戶輸入的時序約束D,得到滿足不等式a+bXmenf+dXmux6 ( D的最大選通器的級數mux ; 步驟3,利用用戶輸入的邏輯存儲深度depth和最大選通器的級數mux,得到關鍵路徑部分每個物理存儲單元的配置深度d。; 步驟4,根據所述每個物理存儲單元的配置深度d。,從物理存儲單元配置模式中找到相應的配置寬度W。; 步驟5,根據用戶輸入的邏輯存儲寬度width以及所述步驟4得到的配置寬度w。,得到構成關鍵路徑的物理存儲單元的組數g ; 步驟6,根據所述步驟4得到的配置寬度W。、用戶輸入的邏輯存儲寬度width以及所述步驟5得到的組數g,得到非關鍵路徑部分的位寬A ; 步驟7,根據用戶選擇的優化策略執行相應的步驟:如果用戶選擇的優化策略為功耗最小策略,則執行步驟8-9,并跳過步驟10-16,執行步驟17以及后續步驟;如果用戶選擇資源優化策略,則跳過步驟8-9并執行步驟10-17以及后續步驟; 步驟8,從物理存儲單元配置模式中找到滿足式wM ^ Wr的最小物理存儲單元配置位寬Wm ; 步驟9,根據所述步驟8得到的物理存儲單元配置位寬wM和用戶輸入的邏輯存儲深度depth,得到構成非關鍵路徑的物理存儲單元的個數men^ ; 步驟10,將物理存儲單元的所有配置模式按配置寬度由大到小形成數組wM[i],相應的配置深度形成數組dM[i]; 步驟11,按配置位寬由大到小的順序遍歷物理存儲單元所有的配置位寬,根據每個配置位寬得到構成非關鍵路徑的物理存儲單元的初始配置數組e[i]; 步驟12,根據所述步驟11得到的初始配置數組e[i]和用戶輸入的邏輯存儲深度depth,得到構成非關鍵路徑的物理存儲單元總數menir ; 步驟13,將所述步驟12得到的menv和所述步驟11得到的配置數組e[i]暫存到存儲器 memtenip 和 etenip ; 步驟14,找到滿足etemp[i] Φ O的最大索引系數i,將etemp[i]的值置為零,且將etemp[1-l]加 I ; 步驟15,根據暫存的配置數組etemp[i]和用戶輸入的邏輯存儲深度cbpth,得到構成非關鍵路徑的物理存儲單元暫存總數memtMP ; 步驟16,判斷如果構成非關鍵路徑的物理存儲單元暫存總數memtMP與構成非關鍵路徑的物理存儲單元總數memr滿足:memtemp ( memr,則將memtemp的值賦給memr,將數組etemp[i]的值賦給e[i],并重新執行步驟14-16 ;否則執行步驟17以及后續步驟; 步驟17,根據組數g、選通器級數mux以及構成非關鍵路徑的物理存儲單元總數menv,得到被使用的物理存儲單元的總數mem。
7.根據權利要求6所述的方法,其特征在于,所述步驟3中,根據下式計算出所述配置深度d。:.depth
8.根據權利要求6所述的方法,其特征在于,所述步驟11中,根據下式計算出構成非關鍵路徑的物理存儲單元的初始配置數組e[i]:
9.根據權利要求6所述的方法,其特征在于,所述步驟15中,根據下式計算出構成非關鍵路徑的物理存儲單元暫存總數Hiemtemp:
10.根據權利要求6所述的方法,其特征在于,所述步驟17中,根據下式計算出被使用的物理存儲單元的總數mem:
【文檔編號】G06F12/02GK103678147SQ201310589045
【公開日】2014年3月26日 申請日期:2013年11月20日 優先權日:2013年11月20日
【發明者】楊海鋼, 杜方清, 林郁, 王飛, 劉峰, 劉飛 申請人:中國科學院電子學研究所