新四季網

提高fpga存儲器利用率的方法和裝置的製作方法

2023-10-08 21:36:14

專利名稱:提高fpga存儲器利用率的方法和裝置的製作方法
技術領域:
本發明涉及乙太網領域,尤其是一種通過長度變換提高FPGA內部存儲器利用率的方法和實現該方法的裝置。
背景技術:
在利用FPGA做乙太網引擎的硬體仿真時,常常會遇到很短很寬的FIFO的實現問題。一種現有技術中,通過多塊塊狀存儲器在寬度上拼接來實現很大寬度FIFO的存儲或者讀取,這種方法由於僅僅是寬度上的拼接,所以對塊狀存儲器長度(深度)上的利用率極低,且如果處理多個此類FIFO時,對於FPGA內部的塊狀存儲器的資源佔用很多,甚至,FPGA內部的塊狀存儲器的數量沒有辦法滿足實現此類FIFO所需數量。另一種現有技術,是通過採用FPGA內部的查找表LUT拼接來實現較長寬度FIFO的存儲或者讀取,這種方法,由於地址線的扇出太大,會消耗大量的布線資源
發明內容

針對上述技術問題,本發明的目的在於提供了一種提高FPGA內部塊狀存儲器利用率的方法和裝置。相應的,所述提高FPGA存儲器利用率的方法包括以下步驟
51、輸入一原始數據;
52、切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中;
53、從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。本發明的進一步改進在於,在第一時鐘域中,輸入一原始數據;在第二時鐘域中,切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中,所述第一時鐘域比所述第二時鐘域慢。本發明的進一步改進在於,在第一時鐘域中,從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。本發明的進一步改進在於,所述步驟S2中「切分所述原始數據的寬度得到若干被切分數據」具體為將所述原始數據的寬度按照所述塊狀存儲器的寬度切分成若干等份。本發明的進一步改進在於,所述步驟S2中,所述第二時鐘域對所述第一時鐘域進行採樣,當採樣到所述第一時鐘域的一個下降沿的同時,對寫信號進行判斷,若寫信號有效,則完成切分所述原始數據的過程。本發明的進一步改進在於,所述步驟S3具體為按照原始數據的寬度,從所述塊狀存儲器中連續讀取若干組數據並依次拼接,得到所述原始數據。本發明的進一步改進在於,所述步驟S3中,所述第二時鐘域對所述第一時鐘域進行採樣,當採樣到所述第一時鐘域的一個下降沿的同時,對讀信號進行判斷,若讀信號有效,則將所述被切分數據拼接成所述原始數據進行輸出的過程。相應的,所述提高FPGA存儲器利用率的裝置,該裝置包括
輸入單元用於輸入一原始數據;
切分單元用於切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中;
輸出單元用於從所述塊狀存儲器中讀取所述被 切分數據,將所述被切分數據拼接成所述原始數據進行輸出。本發明的進一步在於,改進所述輸入單元工作於第一時鐘域,所述切分單元工作於第二時鐘域,所述第一時鐘域比所述第二時鐘域慢。本發明的進一步改進在於,所述輸出單元工作於第二時鐘域。相較於現有技術,本發明的有益效果是通過利用內部高速時鐘進行FPGA內部數據總線的變換,實現存儲器長度的變換,充分利用了 FPGA內部塊狀存儲器的長度和寬度的限制,提高了 FPGA內部塊狀存儲器的利用率,同時相關邏輯消耗較小。


圖I本發明提高FPGA存儲器利用率方法的一實施例中流程 圖2本發明提高FPGA存儲器利用率方法的一實施例中寬度切分過程示意 圖3本發明提高FPGA存儲器利用率裝置的模塊示意圖。
具體實施例方式以下將結合附圖所示的各實施例對本發明進行詳細描述。但這些實施例並不限制本發明,本領域的普通技術人員根據這些實施例所做出的結構、方法、或功能上的變換均包含在本發明的保護範圍內。如圖I所示,以512D36W大小的雙埠塊狀存儲器為例,一種通過長寬變換提高FPGA內部存儲器利用率的方法,包括以下步驟
SI、輸入一原始數據。在第一時鐘域(一般為CLK),的一個上升沿輸入一個原始數據;所述原始數據往往為一段很寬很淺的FIFO。以Xi I inx公司的Virtex4系列的FPGA XC4VLX100為例,V4系列包含總共具有18432bits存儲位的BLOCK RAM,即塊狀存儲器,可以實現18432DxlW,9216Dx2W,…,512Dx36W大小的雙埠存儲器,其中最大位寬是36bits。S2、切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中。具體為,第二時鐘域是一內部高速時鐘信號,一般為CLKFAST,其頻率至少是CLK信號頻率的33倍,為了簡化異步時鐘域的設計,同時為了使CLKFAST和CLK的頻率變化時,不需要重新設計,可以規定CLKFAST的頻率=(數據總線位寬/36x2+2)x CLK頻率;所述第二時鐘域CLKFAST對所述第一時鐘域CLK進行採樣,當採樣到所述第一時鐘域CLK的一個下降沿的同時,對寫信號wr進行判斷,若寫信號wr有效,則將所述原始數據的寬度按照塊狀存儲器的寬度切分成若干等份,並將所述被切分數據存儲於一塊狀存儲器中,完成切分所述原始數據的過程。以存儲一個1152bits的原始數據為例,CLKFAST採樣到CLK的下降沿的同時對wr信號做判斷,如果wr信號有效,則開始按照36bits為單位將所述1152bits的原始數據切分成32等份,每切分出一份36bits的數據,就寫入512D36W的塊狀存儲器中。值得一提的是,如果數據總線信號除以36bits數據位寬得到的結果不是2的指數次方,為了簡化設計,512D36W的尋址可以按照2的指數次方設計,例如,如果數據總線位寬是1158bits,轉換成36bits的數據,共有33個,為了尋址方便,可以在512D36W分配連續64個36bits的單元給一個1158bits數據總線,這樣浪費了 31個36bits的存儲單元,尋址地址設計方便了,第一個1158bits數據從O開始,第二個從64開始,以此類推。也可以只分配33個36bits的存儲單元給一個1158bits的數據,尋址地址設計稍微麻煩,第一個1158bits數據從O開始,第二個從33開始,第三個從66開始,以此類推,雖然這樣的方式在尋址設計上略顯麻煩,但節省了存儲資源。S3、從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。寬度擴展是寬度切分的反過程,具體為,當內部高速時鐘域CLKFAST對所 述第一時鐘域CLK進行採樣,當採樣到所述第一時鐘域CLK的一個下降沿的同時,對讀信號rd進行判斷,若讀信號有效,則按照原始數據的寬度,從所述塊狀存儲器中連續讀取若干組數據並依次拼接,得到所述原始數據,完成原始數據恢復的過程。以讀取I個1152bits的數據為例,CLKFAST採樣到CLK的下降沿的同時對rd信號做判斷,如果rd信號有效,則開始按照36bits為單位從512D36W的塊狀存儲器中連續讀取32個36bits的存儲數據,拼接成一個1152bits的數據總線信號rddata[1152:0]輸出。如圖2所示,詳細解釋了存儲器寬度變換的過程,以寫一個1152bits的數據為例,步驟I是在CLK時鐘的上升沿輸出一個1152bits的數據,步驟2是在CLK時鐘的下降沿,CLKFAST開始切分1152bits的數據總線,從Dl [35:0]開始,連續切分32個數據,同時每切分一個36bits數據就寫入到512D36W的塊狀存儲器中,一直到D32[35:0]結束。然後又開始另一個新的1152bits的數據切分。參閱圖3,為提高FPGA存儲器利用率裝置的示意圖,在本實施方式中,該裝置包括輸入單元、切分單元、輸出單元。所述輸入單元用於輸入一原始數據;其中,在第一時鐘域,一般為CLK,的一個上升沿輸入一個原始數據;所述原始數據往往為一段很寬很淺的FIFO。以Xilinx公司的Virtex4系列的FPGA XC4VLX100為例,V4系列包含總共具有18432bits存儲位的BLOCK RAM,即塊狀存儲器,可以實現18432DxlW,9216Dx2W,…,512Dx36W大小的雙埠存儲器,其中最大位寬是36bits。切分單元用於切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中;具體為,第二時鐘域是一內部高速時鐘信號,一般為CLKFAST,其頻率至少是CLK信號頻率的33倍,為了簡化異步時鐘域的設計,同時為了使CLKFAST和CLK的頻率變化時,不需要重新設計,可以規定CLKFAST的頻率=(數據總線位寬/36x2+2) X CLK頻率;所述第二時鐘域CLKFAST對所述第一時鐘域CLK進行採樣,當採樣到所述第一時鐘域CLK的一個下降沿的同時,對寫信號wr進行判斷,若寫信號wr有效,則將所述原始數據的寬度按照塊狀存儲器的寬度切分成若干等份,並將所述被切分數據存儲於一塊狀存儲器中,完成切分所述原始數據的過程。以存儲一個1152bits的原始數據為例,CLKFAST採樣到CLK的下降沿的同時對wr信號做判斷,如果wr信號有效,則開始按照36bits為單位將所述1152bits的原始數據切分成32等份,每切分出一份36bits的數據,就寫入512D36W的塊狀存儲器中。輸出單元用於從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。寬度擴展是寬度切分的反過程,具體為,當內部高速時鐘域CLKFAST對所述第一時鐘域CLK進行採樣,當採樣到所述第一時鐘域CLK的一個下降沿的同時,對讀信號rd進行判斷,若讀信號有效,則按照原始數據的寬度,從所述塊狀·存儲器中連續讀取若干組數據並依次拼接,得到所述原始數據,完成原始數據恢復的過程。以讀取I個1152bits的數據為例,CLKFAST採樣到CLK的下降沿的同時對rd信號做判斷,如果rd信號有效,則開始按照36bits為單位從512D36W的塊狀存儲器中連續讀取32個36bits的存儲數據,拼接成一個1152bits的數據總線信號rddata[1152:0]輸出。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如R0M/RAM、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本申請各個實施方式或者實施方式的某些部分所述的方法。以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施方式方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。本申請可用於眾多通用或專用的計算系統環境或配置中。例如個人計算機、伺服器計算機、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。應當理解,雖然本說明書按照實施方式加以描述,但並非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施方式中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們並非用以限制本發明的保護範圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護
範圍之內。
權利要求
1.一種提高FPGA存儲器利用率的方法,其特徵在於該方法包括以下步驟 51、輸入一原始數據; 52、切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中; 53、從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。
2.根據權利要求I所述的提高FPGA存儲器利用率的方法,其特徵在於,在第一時鐘域中,輸入一原始數據;在第二時鐘域中,切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中,所述第一時鐘域比所述第二時鐘域慢。
3.根據權利要求2所述的提高FPGA存儲器利用率的方法,其特徵在於,在第一時鐘域中,從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。
4.根據權利要求3所述的提高FPGA存儲器利用率的方法,其特徵在於,所述步驟S2中「切分所述原始數據的寬度得到若干被切分數據」具體為將所述原始數據的寬度按照所述塊狀存儲器的寬度切分成若干等份。
5.根據權利要求4所述的提高FPGA存儲器利用率的方法,其特徵在於,所述步驟S2中,所述第二時鐘域對所述第一時鐘域進行採樣,當採樣到所述第一時鐘域的一個下降沿的同時,對寫信號進行判斷,若寫信號有效,則進行切分所述原始數據的過程。
6.根據權利要求4所述的提高FPGA存儲器利用率的方法,其特徵在於,所述步驟S3具體為按照原始數據的寬度,從所述塊狀存儲器中連續讀取若干組切分數據並依次拼接,得到所述原始數據。
7.根據權利要求6所述的提高FPGA存儲器利用率的方法,其特徵在於,所述步驟S3中,所述第二時鐘域對所述第一時鐘域進行採樣,當採樣到所述第一時鐘域的一個下降沿的同時,對讀信號進行判斷,若讀信號有效,則進行將存儲的切分數據拼接成所述原始數據的過程。
8.一種提高FPGA存儲器利用率的裝置,其特徵在於,該裝置包括 輸入單元用於輸入一原始數據; 切分單元用於切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中; 輸出單元用於從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。
9.根據權利要求8所述的提高FPGA存儲器利用率的裝置,其特徵在於,所述輸入單元工作於第一時鐘域,所述切分單元工作於第二時鐘域,所述第一時鐘域比所述第二時鐘域慢。
10.根據權利要求9所述的提高FPGA存儲器利用率的裝置,其特徵在於,所述輸出單元工作於第二時鐘域。
全文摘要
本發明涉及一種通過長寬變換提高FPGA內部存儲器利用率的方法和裝置,其中,所述方法包括S1.輸入一原始數據;S2.切分所述原始數據的寬度得到若干被切分數據,並將所述被切分數據存儲於一塊狀存儲器中;S3.從所述塊狀存儲器中讀取所述被切分數據,將所述被切分數據拼接成所述原始數據進行輸出。本發明通過利用內部高速時鐘進行FPGA內部數據總線的變換,實現存儲器長度的變換,充分利用了FPGA內部塊狀存儲器的長度和寬度的限制,提高了FPGA內部塊狀存儲器的利用率,同時相關的邏輯消耗較小。
文檔編號G06F12/06GK102955744SQ20111024805
公開日2013年3月6日 申請日期2011年8月26日 優先權日2011年8月26日
發明者許俊 申請人:盛科網絡(蘇州)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀