專利名稱:基于單片塊ram的并行寫入多fifo實現(xiàn)方法
技術領域:
本發(fā)明屬于信息技術應用領域。具體是涉及一種采用單片塊RAM實現(xiàn)多個要求并行寫入和隨機順序讀出的FIFO的實現(xiàn)方法,為低成本FPGA的應用提供一種解決方案。
背景技術:
隨著大規(guī)??删幊碳夹g的發(fā)展,F(xiàn)PGA的應用在電子設計中應用越來越廣泛。FPGA 主要由輸入輸出控制塊、可編程邏輯塊、可編程連線、嵌入式存儲塊(塊RAM)等部分組成, 其中塊RAM是非常寶貴的片上資源,應用靈活、功能強大,可定制實現(xiàn)RAM、ROM、CAM、DPRAM、 FIFO等各種存儲結構。其中,F(xiàn)IFO應用尤其廣泛,在數(shù)據(jù)緩存、異步時鐘域數(shù)據(jù)傳輸幾乎不可或缺。對于低端FPGA芯片,塊RAM的數(shù)量非常有限,若采用ip核向導來定制FIFO,每個塊RAM只能實現(xiàn)一個FIFO。單片塊RAM的容量一般比較大,如altera的為9Kbit,xilinx 的達18Kbit,在一般設計現(xiàn)實中,作為數(shù)據(jù)緩存的FIFO往往不需要這么大的容量,而一個塊RAM例化一個FIFO后,剩余的存儲空間不能再用于別的用途,白白浪費掉了,導致資源利用率低。特別是在FIFO數(shù)量需求較多、且每個FIFO的深度要求較小、但要求各FIFO能夠在一定程度上并行寫入時,F(xiàn)PGA設計經(jīng)常出現(xiàn)總體存儲容量充足,但存儲器個數(shù)嚴重不足的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供了一種在一片塊RAM中實現(xiàn)多個可并行寫入和隨機順序讀出的FIFO的方法,可充分利用現(xiàn)有的存儲容量,大大提高存儲器的利用率,顯著降低產(chǎn)品成本,提升市場競爭力。本發(fā)明所要解決的技術問題在于用單片塊RAM設計多個可并行寫入和隨機順序讀出的FIFO。本發(fā)明采用以下技術方案解決上述技術問題基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,該方法包括5個步驟(1)將塊RAM例化成DPRAM用于存儲各通道FIFO數(shù)據(jù),每通道FIFO在DPRAM中都有對應的存儲空間,各存儲空間互不重疊;(2)寫入控制邏輯能接受各通道FIFO并行數(shù)據(jù)寫入要求,并將數(shù)據(jù)寫入相應的相應輸入緩沖區(qū);(3)寫入控制邏輯在輸入緩沖區(qū)接到數(shù)據(jù)后,產(chǎn)生內(nèi)部寫命令,將各FIFO數(shù)據(jù)從輸入緩沖區(qū)取出,依次寫入各FIFO在DPRAM對應的存儲空間;(4)在接到外部讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從DPRAM對應的存儲空間讀出,并送往FIFO數(shù)據(jù)輸出端口 ;(5)標記設置邏輯用于設置各通道FIFO的空(full)、滿(empty)、可編程空 (prog_empty)和可編程滿(prog_full)標志,以滿足并行寫入和隨機順序讀出的訪問需求。所述步驟(1)中,通過調用FPGA開發(fā)平臺的IP核例化工具將塊RAM用例化成DPRAM ;根據(jù)FIFO的通道數(shù)目在DPRAM中設置儲存區(qū),每通道FIFO在DPRAM中都有對應的存儲空間,各存儲空間互不重疊;DPRAM的高位地址用于選擇各FIFO的存儲空間,DPRAM的低位地址用于存儲空間內(nèi)部訪問。所述步驟O)中,輸入緩沖區(qū)與寫入控制邏輯接收到FIFO并行數(shù)據(jù)寫入請求信號Wr_en后1)檢測到full信號為0且ready信號為1時,內(nèi)部寫控制將latch信號置1,將外部數(shù)據(jù)寫入各通道FIFO相應輸入緩沖區(qū),輸入緩沖區(qū)深度可根據(jù)并行要求設置;2)將表示接收數(shù)據(jù)準備就緒標記ready置為0,在緩沖區(qū)數(shù)據(jù)寫入DPRAM之前不再接收新的數(shù)據(jù)。所述步驟(3)中,輸入緩沖區(qū)寫入控制邏輯在輸入緩沖區(qū)接到數(shù)據(jù)后,控制控制邏輯產(chǎn)生內(nèi)部寫 DPRAM命令wr_en_inter,將各通道FIFO數(shù)據(jù)從相應輸入緩沖區(qū)取出,依次寫入各通道FIFO 在DPRAM對應的存儲空間1)內(nèi)部寫控制將通道編號ch_c0de_w設為0,確定是選擇將通道0的FIFO的數(shù)據(jù)從緩沖區(qū)寫入DPRAM ;2)根據(jù)當前通道號ch_c0de_w,地址選擇器選擇的當前地址指針write_p為 write_p_0 ;3)根據(jù)當前通道號ch_c0de_w,數(shù)據(jù)選擇器選擇通道0的數(shù)據(jù)緩沖輸出作為DPRAM 寫入端數(shù)據(jù)輸入; 4) ch_code_w與write_p_0組合,得到存儲器的寫入端訪問地址wr_addr,其中ch_ code_w 為 wr_addr 高位,write_p_0 為低位;5)若full_0為0,則寫入數(shù)據(jù);6)寫入數(shù)據(jù)后,write_p加1 ;7)以同樣的步驟1)-步驟6)將其余各通道的FIFO的數(shù)據(jù)從緩沖區(qū)寫入DPRAM8)接收數(shù)據(jù)準備就緒ready信號置為1。所述步驟(4)中,讀出控制邏輯主要由讀出通道編碼,讀出端地址指針選擇,DPRAM讀出端地址合成和讀出端各通道地址生成組成,在接到外部任意通道的FIFO讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從該通道FIFO對應的DPRAM存儲空間讀出,并送往FIFO數(shù)據(jù)輸出端口 ;在接到0通道FIFO的讀請求信號rd_en_0后1)對rd_en_0進行編碼,作為當前通道編碼即ch_c0de_r置為0,確定對通道0的 FIFO進行操作;2)根據(jù)當前通道編碼ch_c0de_r,地址選擇器選擇的當前通道FIFO地址指針 read_p 為 read_p_0 ; 3)由ch_c0de_r與read_p組合,得到存儲器的寫入端訪問地址rd_addr,其中ch_ code_r 為 rd_addr 1 ^立,read_p ^1 ^ ;4)若empty_0為0,則讀出數(shù)據(jù);5) read_p_0 力口 1 ;其余各通道按步驟1)-步驟幻讀出。
所述步驟(5)中,標記設置邏輯用于設置各通道FIFO的空、滿、可編程空和可編程滿標志,以滿足并行寫入和隨機順序讀出的訪問需求,標記設置方法如下各標記信號設置如下1. full 寫入端標記,full為0表示所有各通道都非滿,只要任意通道為滿,full 置1 ;2.其余為各通道相關標志信號;1) empty_0 寫入地址指針write_p_0與讀出地址read_p_0相等,或寫入地址指針 write_p_0比讀出地址指針read_p_0多1而正在讀出時,設置empty_0為1,否則設置為0 ;2) full_0 當FIFO寫入地址指針write_p_0與讀出地址指針read_p_0只有最高位不相同,或讀出地址指針read_p_0比寫入指針write_p_0地址多1而正在寫入時,設置 full_0為1,否則設置為0 ;3)prOg_full_0 當存入字數(shù)大于或等于預先設置的個數(shù)時,設置為1,否則設置為0;4)prog_empty_0 當FIFO中空間大于或等于預先設置的字數(shù)時,設置為1,否則設置為0;5)其余各通道標記位設置方法按步驟1)-步驟4)設置。本發(fā)明的優(yōu)點在于提出了一種在一片塊RAM中實現(xiàn)多個可并行寫入和隨機順序讀出的FIFO的方法,可充分利用現(xiàn)有的存儲容量,大大提高存儲器的利用率,顯著降低產(chǎn)品成本,提升市場競爭力,對于FPGA設計開發(fā)有著重要意義。在低成本的FPGA應用項目中, 由于FPGA中的塊RAM數(shù)量有限,本發(fā)明可在塊RAM數(shù)量不足但總體容量充足的情況,用單片塊RAM實現(xiàn)多個要求并行寫入和隨機順序讀出的FIFO,可以更充分利用系統(tǒng)資源,降低對芯片要求,從而可以降低產(chǎn)品成本。
圖1是本發(fā)明的系統(tǒng)框圖。圖2是本發(fā)明的FIFO存儲空間分配框圖。圖3是本發(fā)明的寫入控制邏輯框圖。圖4是本發(fā)明的讀出控制邏輯框圖。圖5是本發(fā)明的標記設置邏輯框圖。
具體實施例方式下面參照附圖結合實施例對本發(fā)明作進一步的描述。本發(fā)明提出一種采用單片塊RAM實現(xiàn)多個要求并行寫入和隨機順序讀出的FIFO 的實現(xiàn)方法。在該方法中,首先利用FPGA開發(fā)平臺的IP核例化工具將塊RAM例化成DPRAM 用于存儲各通道FIFO數(shù)據(jù);寫入控制邏輯能接受并行的各通道FIFO數(shù)據(jù)寫入要求,寫入控制邏輯在接到外部寫信號后,將數(shù)據(jù)存入各通道FIFO相應的緩沖區(qū),然后產(chǎn)生內(nèi)部寫命令,依次將各緩沖區(qū)的數(shù)據(jù)寫入DPRAM對應的存儲空間;在接到外部讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從DPRAM對應的存儲空間讀出,并送往FIFO數(shù)據(jù)輸出端口 ;標記設置邏輯用于設置各通道FIFO的空、滿、可編程空和可編程滿標志,以滿足并行寫入和隨機順序讀出的訪問需求。圖1是本發(fā)明的系統(tǒng)框圖,其中詳細展示了基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法的四個部分。第一個部分進行的是存儲空間分配,將塊RAM例化成DPRAM用于存儲各通道FIFO 數(shù)據(jù),每通道FIFO在DPRAM中都有對應的存儲空間且互不重疊;第二部分是寫入控制邏輯, 寫入控制邏輯能接受并行的各通道FIFO數(shù)據(jù)寫入要求,寫入控制邏輯在接到外部寫信號后,將數(shù)據(jù)存入各通道FIFO相應的緩沖區(qū),然后產(chǎn)生內(nèi)部寫命令,依次將各緩沖區(qū)的數(shù)據(jù)寫入DPRAM對應的存儲空間;第三部分是讀出控制邏輯,在接到外部讀出請求時,讀出控制邏輯根據(jù)要求選擇通道,將數(shù)據(jù)從DPRAM對應的存儲空間讀出,并送往FIFO數(shù)據(jù)輸出端口 ; 第四部分是標記設置邏輯,用于設置各通道FIFO的空、滿、可編程空和可編程滿標志,以滿足并行寫入和隨機順序讀出的訪問需求。圖2是本發(fā)明的FIFO存儲空間分配框圖,即將塊RAM例化成DPRAM用于存儲各通道FIFO數(shù)據(jù),每通道FIFO在DPRAM中都有對應的存儲空間,如在圖2中所示的FIF00空間、 FIF01空間、FIF02空間,……,各存儲空間互不重疊。其中wr_addr和din為DPRAM的寫入端信號,rd_addr和dout為DPRAM的讀出端信號。本發(fā)明通過調用FPGA開發(fā)平臺的IP核例化工具將塊RAM用例化成DPRAM(例如用ip核生成工具,選項中指定使用Block RAM(塊RAM),DPRAM的兩個端口一端用于寫入, 另一端用于讀出);根據(jù)FIFO的通道數(shù)目在DPRAM中設置儲存區(qū),每通道FIFO在DPRAM中都有對應的存儲空間,各存儲空間互不重疊;DPRAM的高位地址(即通道號,其中寫入端為 Ch_COde_W,讀出端為ch_c0de_r)用于選擇各FIFO的存儲空間,低位地址(即相應讀寫地址指針)用于存儲空間內(nèi)部訪問。圖3是本發(fā)明的輸入緩沖和寫入控制邏輯框圖。主要由各通道地址指針生成、內(nèi)部寫控制、DPRAM寫入端地址合成、DPRAM寫入端數(shù)據(jù)選擇,寫入數(shù)據(jù)緩沖等部分組成。輸入緩沖和寫入控制邏輯能接受各通道FIFO并行數(shù)據(jù)寫入要求,并將數(shù)據(jù)寫入各通道FIFO相應輸入緩沖區(qū);檢測到輸入緩沖區(qū)接到數(shù)據(jù)后,寫入控制邏輯產(chǎn)生內(nèi)部寫命令,將各通道FIFO數(shù)據(jù)從輸入緩沖區(qū)依次取出,并寫入各通道FIFO在DPRAM對應的存儲空間。信號說明ready 表示各通道FIFO的數(shù)據(jù)已經(jīng)全部存入DPRAM,可以接收新的數(shù)據(jù);full 表示所有各通道寫入端狀態(tài),0表示所有FIFO都非滿,可以并行寫入;write_p_n 通道η的地址指針,最高位為循環(huán)寫入的輪次計數(shù)用,在設置標記位時,需要最高位,當?shù)刂肥褂脮r,不需最高位;ch_code_w 當前 FIFO 通道號;write_p 當前FIFO寫入端地址指針,根據(jù)通道編碼從write_p_n中選擇一個,但不需最高位;wr_addr DPRAM 寫入端地址;wr_en 并行寫入信號,外部輸入;latch 鎖存信號,將外部輸入數(shù)據(jù)存入緩沖區(qū);
wr_en_n 通道η的FIFO的寫信號,用于控制η通道寫地址指針增量;din_n 通道η的FIFO外部數(shù)據(jù)輸入;wr_en_inter =DPRAM寫入端寫使能信號;wr_addr =DPRAM 寫入端地址;din =DPRAM寫入端數(shù)據(jù)輸入;數(shù)據(jù)的并行寫入分成兩個步驟,第一步數(shù)據(jù)先存入數(shù)據(jù)緩沖區(qū);第二步將數(shù)據(jù)從緩沖區(qū)讀出,寫入到DPRAM ;具體實現(xiàn)如下1.寫入控制邏輯接收各通道FIFO并行數(shù)據(jù)寫入信號Wr_en后1)檢測到full信號為0且ready信號為1時,內(nèi)部寫控制將latch信號置1,將外部數(shù)據(jù)寫入各通道FIFO相應輸入緩沖區(qū),緩沖區(qū)深度可根據(jù)并行要求設置;2)將表示接收數(shù)據(jù)準備就緒標記ready置為0,在緩沖區(qū)數(shù)據(jù)寫入DPRAM之前不再接收新的數(shù)據(jù)。2.(詳見本發(fā)明圖幻輸入緩沖區(qū)接到數(shù)據(jù)后,控制控制邏輯產(chǎn)生內(nèi)部寫DPRAM 命令wr_en_inter,將各通道FIFO數(shù)據(jù)從相應輸入緩沖區(qū)取出,依次寫入各通道FIFO在 DPRAM對應的存儲空間。輸入緩沖區(qū)接到數(shù)據(jù)后,寫入DPRAM過程具體實現(xiàn)如下1)內(nèi)部寫控制將通道編號ch_c0de_w設為0,確定是選擇將通道0的FIFO的數(shù)據(jù)從緩沖區(qū)寫入DPRAM ;2)根據(jù)當前通道號ch_c0de_w,地址選擇器選擇的當前地址指針write_p為 write_p_0 ;3)根據(jù)當前通道號ch_c0de_w,數(shù)據(jù)選擇器選擇通道0的數(shù)據(jù)緩沖輸出作為DPRAM 寫入端數(shù)據(jù)輸入; 4) ch_code_w與write_p_0組合,得到存儲器的寫入端訪問地址wr_addr,其中ch_ code_w 為 wr_addr 高位,write_p_0 為低位;5)若full_0為0,則寫入數(shù)據(jù);6)寫入數(shù)據(jù)后,fifoO寫地址模塊將write_p_0加1 ;7)以同樣的步驟將其余各通道的FIFO的數(shù)據(jù)從緩沖區(qū)寫入DPRAM8)接收數(shù)據(jù)準備就緒ready信號置為1 ;圖4是本發(fā)明的讀出控制邏輯框圖。讀出控制邏輯主要由讀出通道編碼,讀出端地址指針選擇,DPRAM讀出端地址合成,讀出端各通道地址生成等部分組成。主要任務是在接到外部任意通道的FIFO讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從該通道FIFO對應的DPRAM存儲空間讀出,并送往FIFO數(shù)據(jù)輸出端口 ;信號說明ch_code_r 讀出端當前通道FIFO編碼序號;read_p 讀出端當前通道FIFO地址指針;read_p_n 讀出端第η個通道FIFO地址指針,在設置標記位時,需要最高位,當?shù)刂肥褂脮r,不需最高位;rd_en_n 第η個通道FIFO的讀請求信號,外部輸入;dout_n 第η個通道FIFO的數(shù)據(jù)輸出;rd_addr =DPRAM存儲器的讀出端地址;
以通道0的FIFO為例,讀出控制邏輯工作過程如下在接到0通道FIFO的讀請求信號rd_en_0后1)對rd_en_0進行編碼,作為當前通道編碼即ch_c0de_r置為0,確定對通道0的 FIFO進行操作;2)根據(jù)當前通道編碼ch_c0de_r,地址選擇器選擇的當前通道FIFO地址指針 read_p 為 read_p_0 ;3)由ch_code_r與read_p組合,得到存儲器的寫入端訪問地址rd_addr,其中ch_ code_r 為 rd_addr 1 ^立,read_p ^1 ^ ;4)若empty_0為0,則讀出數(shù)據(jù);5) fifoO讀地址加模塊將read_p_0加1 ;其余各通道讀出步驟相同。圖5是本發(fā)明的標記設置邏輯框圖。標記設置邏輯利用fifo滿空信號產(chǎn)生模塊來設置各通道FIFO的空、滿、可編程空和可編程滿標志,以滿足并行寫入和隨機順序讀出的訪問需求,標記設置方法如下信號說明full 寫入端端標記,full為0表示所有各通道都非滿;empty_n 第η個通道空信號;prog_mepty_n 第η個通道可編程空信號;full_n 第η個通道滿信號;prog_full_n 第η個通道可編程滿信號;各標記信號設置如下1. full 寫入端標記,full為0表示所有各通道都非滿,只要任意通道為滿,full 置1 ;2.其余為各通道相關標志信號,以0通道FIFO標記設置為例1) empty_0 寫入地址指針write_p_0與讀出地址read_p_0相等,或寫入地址指針 write_p_0比讀出地址指針read_p_0多1而正在讀出時,設置empty_0為1,否則設置為0 ;2)full_0 當FIFO寫入地址指針write_p_0與讀出地址指針read_p_0只有最高位不相同,或讀出地址指針read_p_0比寫入指針write_p_0地址多1 (兩指針最高位不參與比較,且最高位應該不同)而正在寫入時,設置full_0為1,否則設置為0 ;
3)prOg_full_0當存入字數(shù)大于或等于預先設置的個數(shù)時,設置為1,否則設置
4)prog_empty_0當FIFO中空間大于或等于預先設置的字數(shù)時,設置為1,否則設
5)其余各通道標記位設置相同,即也按步驟1)-步驟4)。 為0; 置為0;
權利要求
1.基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,包括如下步驟(1)將塊RAM例化成DPRAM用于存儲各通道FIFO數(shù)據(jù),每通道FIFO在DPRAM中都有對應的存儲空間,各存儲空間互不重疊;(2)輸入緩沖區(qū)和寫入控制邏輯能接受各通道FIFO并行數(shù)據(jù)寫入請求,并將數(shù)據(jù)寫入各通道FIFO相應輸入緩沖區(qū);(3)輸入緩沖區(qū)和寫入控制邏輯在輸入緩沖區(qū)接到數(shù)據(jù)后,產(chǎn)生內(nèi)部寫命令,將各通道 FIFO數(shù)據(jù)從輸入緩沖區(qū)取出,依次寫入各通道FIFO在DPRAM對應的存儲空間;(4)在接到外部任意通道FIFO讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從該通道FIFO在DPRAM對應的存儲空間讀出,并送該FIFO數(shù)據(jù)輸出端口 ;(5)標記設置邏輯用于設置各通道FIFO的空(full)、滿(empty)、可編程空(prog_ empty)和可編程滿(prog_full)標志,以滿足并行寫入和隨機順序讀出的訪問需求。
2.如權利要求1所述的基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,其特征在于所述步驟(1)中,通過調用FPGA開發(fā)平臺的IP核例化工具將塊RAM用例化成DPRAM ;根據(jù)FIFO的通道數(shù)目在DPRAM中設置儲存區(qū),每通道FIFO在DPRAM中都有對應的存儲空間,各存儲空間互不重疊;DPRAM的高位地址用于選擇各FIFO的存儲空間,DPRAM的低位地址用于存儲空間內(nèi)部訪問。
3 如權利要求1所述的基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,其特征在于所述步驟O)中,輸入緩沖區(qū)與寫入控制邏輯接收到FIFO并行數(shù)據(jù)寫入請求信號wr_en后1)檢測到full信號為0且ready信號為1時,內(nèi)部寫控制將latch信號置1,將外部數(shù)據(jù)寫入各通道FIFO相應輸入緩沖區(qū),輸入緩沖區(qū)深度可根據(jù)并行要求設置;2)將表示接收數(shù)據(jù)準備就緒標記ready置為0,在緩沖區(qū)數(shù)據(jù)寫入DPRAM之前不再接收新的數(shù)據(jù)。
4.如權利要求1所述的基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,其特征在于所述步驟(3)中,輸入緩沖區(qū)寫入控制邏輯在輸入緩沖區(qū)接到數(shù)據(jù)后,控制控制邏輯產(chǎn)生內(nèi)部寫DPRAM 命令wr_en_inter,將各通道FIFO數(shù)據(jù)從相應輸入緩沖區(qū)取出,依次寫入各通道FIFO在 DPRAM對應的存儲空間1)內(nèi)部寫控制將通道編號ch_c0de_w設為0,確定是選擇將通道0的FIFO的數(shù)據(jù)從緩沖區(qū)寫入DPRAM ;2)根據(jù)當前通道號ch_c0de_w,地址選擇器選擇的當前地址指針write_p為write_P_0 ;3)根據(jù)當前通道號ch_COde_W,數(shù)據(jù)選擇器選擇通道0的數(shù)據(jù)緩沖輸出作為DPRAM寫入端數(shù)據(jù)輸入;4)ch_code_w與write_p_0組合,得到存儲器的寫入端訪問地址wr_addr,其中ch_ code_w 為 wr_addr 高位,write_p_0 為低位;5)若full_0為0,則寫入數(shù)據(jù);6)寫入數(shù)據(jù)后,write_pW1 ;7)以同樣的步驟1)-步驟6)將其余各通道的FIFO的數(shù)據(jù)從緩沖區(qū)寫入DPRAM8)接收數(shù)據(jù)準備就緒ready信號置為1。
5.如權利要求1所述的基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,其特征在于所述步驟(4)中,讀出控制邏輯主要由讀出通道編碼,讀出端地址指針選擇,DPRAM讀出端地址合成和讀出端各通道地址生成組成,在接到外部任意通道的FIFO讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從該通道FIFO對應的DPRAM存儲空間讀出,并送往FIFO數(shù)據(jù)輸出端口 ;在接到0通道FIFO的讀請求信號rd_en_0后1)對rd_en_0進行編碼,作為當前通道編碼即ch_c0de_r置為0,確定對通道0的FIFO 進行操作;2)根據(jù)當前通道編碼ch_c0de_r,地址選擇器選擇的當前通道FIFO地址指針read_p 為 read_p_0 ;3)由ch_c0de_r與read_p組合,得到存儲器的寫入端訪問地址rd_addr,其中ch_ code_r 為 rd_addr 1 ^立,read_p ^1 ^ ;4)若empty_0為0,則讀出數(shù)據(jù);5)read_p_0力口 1 ;其余各通道按步驟1)-步驟幻讀出。
6.如權利要求1所述的基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,其特征在于所述步驟(5)中,標記設置邏輯用于設置各通道FIFO的空、滿、可編程空和可編程滿標志,以滿足并行寫入和隨機順序讀出的訪問需求,標記設置方法如下各標記信號設置如下.1.full寫入端標記,full為0表示所有各通道都非滿,只要任意通道為滿,full置1 ;.2.其余為各通道相關標志信號;1)empty_0 寫入地址指針write_p_0與讀出地址read_p_0相等,或寫入地址指針 write_p_0比讀出地址指針read_p_0多1而正在讀出時,設置empty_0為1,否則設置為0 ;2)full_0當FIFO寫入地址指針write_p_0與讀出地址指針read_p_0只有最高位不相同,或讀出地址指針read_p_0比寫入指針write_p_0地址多1而正在寫入時,設置 full_0為1,否則設置為0 ;3)prog_full_0當存入字數(shù)大于或等于預先設置的個數(shù)時,設置為1,否則設置為0 ;4)prog_empty_0當FIFO中空間大于或等于預先設置的字數(shù)時,設置為1,否則設置為.0 ;5)其余各通道標記位設置方法按步驟1)-步驟4)設置。
全文摘要
本發(fā)明公開一種基于單片塊RAM的并行寫入多FIFO實現(xiàn)方法,其步驟為將塊RAM例化成DPRAM用于存儲各通道FIFO數(shù)據(jù),每通道FIFO在DPRAM中有對應的存儲空間;輸入緩沖區(qū)和寫入控制邏輯能接受各通道FIFO并行數(shù)據(jù)寫入請求,并將數(shù)據(jù)寫入各通道FIFO相應輸入緩沖區(qū);輸入緩沖區(qū)和寫入控制邏輯在輸入緩沖區(qū)接到數(shù)據(jù)后產(chǎn)生內(nèi)部寫命令,將各通道FIFO數(shù)據(jù)從輸入緩沖區(qū)取出,依次寫入各通道FIFO的存儲空間;在接到外部任意通道FIFO讀出請求時,讀出控制邏輯將根據(jù)要求,將數(shù)據(jù)從該通道FIFO的存儲空間讀出,并送該FIFO數(shù)據(jù)輸出端口;標記設置邏輯用于設置各通道FIFO的空、滿、可編程空和可編程滿標志。本發(fā)明能實現(xiàn)多個要求并行寫入和隨機順序讀出的FIFO。
文檔編號G06F5/06GK102520902SQ20111034643
公開日2012年6月27日 申請日期2011年11月1日 優(yōu)先權日2011年11月1日
發(fā)明者姚進根, 楊偉藝, 鄒復民, 陳建順, 龔志鵬 申請人:福建富順電子有限公司