專利名稱:雙端口ram讀取數(shù)據(jù)后更新數(shù)據(jù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種雙端口隨機存取存儲器(RAM)更新數(shù)據(jù)的技術(shù),尤其涉及一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的方法及系統(tǒng)。
背景技術(shù):
雙端口 RAM是數(shù)字設(shè)計中常用的存儲元件,通常能應(yīng)用于以下三種情況中的任意一種情況(I)存儲數(shù)據(jù);(2)以源端寫入,目的端讀出的方式傳遞數(shù)據(jù);(3)完成源端至目的端之間的時鐘域轉(zhuǎn)換。然而,數(shù)字設(shè)計中在完成控制功能時,經(jīng)常是上述三種情況應(yīng)用的綜合,即為源端和目的端工作在不同的時鐘域,數(shù)據(jù)由源端寫入雙端口 RAM,經(jīng)目的端讀出數(shù)據(jù)后再使用。對于三種情況應(yīng)用綜合的情況,為了體現(xiàn)第一次數(shù)據(jù)讀取和再次數(shù)據(jù)讀取不同的數(shù)據(jù)更新需求,還需要目的端將數(shù)據(jù)從雙端口 RAM讀出后,經(jīng)過數(shù)據(jù)處理后再由源端寫入同一個雙端口 RAM。目前,現(xiàn)有技術(shù)對該數(shù)據(jù)更新需求,并沒有很好的解決方案。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的方法及系統(tǒng),能滿足雙端口 RAM讀取數(shù)據(jù)后的上述數(shù)據(jù)更新需求。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的方法,該方法包括在未觸發(fā)先進先出(FIFO)緩存源端的寫使能信號時,使用FIFO緩存源端,為即將寫入雙端口隨機存儲器(RAM)的寫地址信號和寫數(shù)據(jù)信號做緩存準備;在未觸發(fā)FIFO緩存目的端的寫使能信號時,使用FIFO緩存目的端,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備;利用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。其中,該方法還包括在觸發(fā)所述FIFO緩存源端的寫使能信號時,將所述雙端口 RAM的寫地址信號和所述雙端口 RAM的寫數(shù)據(jù)信號,拼湊成FIFO緩存源端的寫數(shù)據(jù)信號;在觸發(fā)所述FIFO緩存目的端的寫使能信號時,將所述雙端口 RAM的讀地址信號和所述雙端口 RAM的讀數(shù)據(jù)信號,拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。其中,該方法還包括將所述雙端口 RAM的讀地址信號,和所述雙端口 RAM的讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理后形成的讀數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。其中,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM之前,該方法還包括根據(jù)構(gòu)造的片選信號對FIFO緩存源端和FIFO緩存目的端做分時讀取。其中,所述根據(jù)構(gòu)造的片選信號對FIFO緩存源端和FIFO緩存目的端做分時讀取具體包括將所述FIFO緩存源端的空標志信號取反后和構(gòu)造的片選信號作與運算,并將運算結(jié)果作為FIFO緩存源端的讀使能信號;將所述FIFO緩存目的端的空標志信號取反后,和構(gòu)造的片選信號的取反信號作與運算,并將運算結(jié)果作為FIFO緩存目的端的讀使能信號;在所述FIFO緩存源端讀使能信號有效時讀取FIFO緩存源端;在所述FIFO緩存目的端的讀使能信號有效時讀取FIFO緩存目的端。其中,該方法還包括將所述構(gòu)造的片選信號,所述FIFO緩存源端的讀使能信號, 所述FIFO緩存目的端的讀使能信號分別作延遲,延遲后的片選信號,分時選通延遲后的 FIFO緩存源端讀使能信號和延遲后的FIFO緩存目的端讀使能信號,并將選通結(jié)果作為雙端口 RAM的寫使能信號;所述將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM具體包括讀取FIFO緩存源端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存源端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中;讀取FIFO緩存目的端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存目的端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中。一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括FIF0緩存源端、FIFO緩存目的端和片選單元;其中,所述FIFO緩存源端,用于在未觸發(fā)FIFO緩存源端的寫使能信號時,為即將寫入雙端口 RAM的寫地址信號和寫數(shù)據(jù)信號做緩存準備;所述FIFO緩存目的端,用于在未觸發(fā)FIFO緩存目的端的寫使能信號時,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備;所述片選單元,用于使用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。其中,所述FIFO緩存源端,進一步用于在觸發(fā)所述FIFO緩存源端的寫使能信號時,將所述雙端口 RAM的寫地址信號和所述雙端口 RAM的寫數(shù)據(jù)信號,拼湊成FIFO緩存源端的寫數(shù)據(jù)信號;所述FIFO緩存目的端,進一步用于在觸發(fā)所述FIFO緩存目的端的寫使能信號時, 將所述雙端口 RAM的讀地址信號和所述雙端口 RAM的讀數(shù)據(jù)信號,拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。其中,所述FIFO緩存目的端,進一步用于將所述雙端口 RAM的讀地址信號,和所述雙端口 RAM的讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理后形成的讀數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。其中,所述片選單元,進一步用于將所述FIFO緩存源端的空標志信號取反后和構(gòu)造的片選信號作與運算,并將運算結(jié)果作為FIFO緩存源端的讀使能信號;將所述FIFO緩存目的端的空標志信號取反后,和構(gòu)造的片選信號的取反信號作與運算,并將運算結(jié)果作為FIFO緩存目的端的讀使能信號;將所述構(gòu)造的片選信號,所述FIFO緩存源端的讀使能信號,所述FIFO緩存目的端的讀使能信號分別作延遲,延遲后的片選信號,分時選通延遲后的FIFO緩存源端讀使能信號和延遲后的FIFO緩存目的端讀使能信號,并將選通結(jié)果作為雙端口 RAM的寫使能信號。
其中,所述片選單元,進一步用于在所述FIFO緩存源端讀使能信號有效時讀取 FIFO緩存源端,讀取FIFO緩存源端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存源端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中;在所述FIFO緩存目的端的讀使能信號有效時讀取FIFO緩存目的端,讀取FIFO緩存目的端且在所述雙端口 RAM 寫使能信號有效時,根據(jù)FIFO緩存目的端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中。本發(fā)明是在未觸發(fā)先進先出(FIF0,F(xiàn)irst In First Out)緩存源端的寫使能信號時,使用FIFO緩存源端,為即將寫入雙端口 RAM的寫地址信號和寫數(shù)據(jù)信號做緩存準備;在未觸發(fā)FIFO緩存目的端的寫使能信號時,使用FIFO緩存目的端,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備;利用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。由于本發(fā)明采用FIFO緩存源端和FIFO緩存目的端對源端和目的端跨時鐘域傳輸數(shù)據(jù)進行調(diào)節(jié),并采用片選單元進行分時讀取FIFO緩存源端和FIFO緩存目的端,并將讀取的數(shù)據(jù)分時寫入雙端口 RAM,因此,能滿足上述三種情況應(yīng)用綜合的情況中雙端口 RAM讀取數(shù)據(jù)后的上述數(shù)據(jù)更新需求,除了讀取源端數(shù)據(jù),還能在目的端將數(shù)據(jù)從雙端口 RAM讀出后,經(jīng)過數(shù)據(jù)處理后再由源端寫入同一個雙端口 RAM。
圖I為本發(fā)明實施例數(shù)據(jù)更新的信號傳遞原理圖;圖2為圖I中基于片選單元信號傳遞的原理圖;圖3為圖I中數(shù)據(jù)處理單元一實施例進行數(shù)據(jù)處理的原理圖。
具體實施例方式本發(fā)明的方案在源端和目的端工作在不同的時鐘域,即源端和目的端跨時鐘域傳輸數(shù)據(jù)時,源端可以將數(shù)據(jù)寫入雙端口 RAM,目的端可以從雙端口 RAM讀出數(shù)據(jù),且目的端讀出數(shù)據(jù)后,經(jīng)過數(shù)據(jù)處理能將數(shù)據(jù)再次寫入同一個雙端口 RAM,從而滿足雙端口 RAM讀取數(shù)據(jù)后的數(shù)據(jù)更新需求。一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的方法,主要包括以下內(nèi)容一、使用FIFO緩存源端作為雙端口 RAM的數(shù)據(jù)輸入緩存源端,在未觸發(fā)FIFO緩存源端的寫使能信號作用下,使用FIFO緩存源端,為即將寫入雙端口 RAM的寫地址信號和寫數(shù)據(jù)信號做緩存準備,且在觸發(fā)FIFO緩存源端的寫使能信號作用下,以該雙端口 RAM的寫地址信號和該寫數(shù)據(jù)信號拼湊成FIFO緩存源端的寫數(shù)據(jù)信號。這里,上述第一部分具體包括I、設(shè)定FIFO緩存源端的深度大于等于2,F(xiàn)IFO緩存源端的寬度等于入雙端口 RAM 的該寫地址信號總線位寬與該寫數(shù)據(jù)信號總線位寬之和。這里需要指出的是FIF0是一種先進先出的數(shù)據(jù)緩存器,只能順序?qū)懭霐?shù)據(jù),順序的讀出數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫指針自動加I完成,不能像普通存儲器那樣可以由地址線決定讀取或?qū)懭肽硞€指定的地址。尤其是在兩個不同的時鐘域間,可以采用FIFO來作為數(shù)據(jù)緩沖器使用。就FIFO的深度而言,F(xiàn)IFO的深度是指FIF0可以存儲多少個N位的數(shù)據(jù)(如果FIFO的寬度為N),如一個8位的FIFO,若深度為8,它可以存儲8個8位的數(shù)據(jù);深度為12,就可以存儲12個8位的數(shù)據(jù),F(xiàn)IFO的深度可大可小,F(xiàn)IFO深度的計算并無一個固定的公式。在FIFO實際工作中,其數(shù)據(jù)的滿標志/空標志可以控制數(shù)據(jù)的繼續(xù)寫入或讀出。就FIFO的寬度而言,F(xiàn)IFO的寬度是指FIF0—次讀寫操作的數(shù)據(jù)位,F(xiàn)IFO的寬度在單片成品IC中是固定的,也有可選擇的,如果用FPGA自己實現(xiàn)一個FIFO,其數(shù)據(jù)位,也就是寬度是可以自己定義的。2、以雙端口 RAM的源端的寫使能信號作為FIFO緩存源端的寫使能信號,以雙端口 RAM的源端的寫地址信號和寫數(shù)據(jù)信號拼湊成FIFO緩存源端的寫數(shù)據(jù)信號。3、將FIFO緩存源端的讀使能信號,讀數(shù)據(jù)信號和空標志信號連接至片選單元。二、使用FIFO緩存目的端作為雙端口 RAM的數(shù)據(jù)輸入緩存目的端,在未觸發(fā)FIFO 緩存目的端的寫使能信號作用下,使用FIFO緩存目的端,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備,且在觸發(fā)FIFO緩存目的端的寫使能信號作用下,以雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。進一步的,可以將雙端口 RAM讀地址信號和讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理單元數(shù)據(jù)處理后的讀數(shù)據(jù)信號拼湊成 FIFO緩存目的端的寫數(shù)據(jù)信號。這里,上述第二部分具體包括I、設(shè)定FIFO緩存目的端的深度大于等于2,F(xiàn)IFO緩存源端的寬度等于RAM的該讀地址信號總線位寬與對該讀數(shù)據(jù)信號數(shù)據(jù)處理后讀數(shù)據(jù)信號總線位寬之和。2、以雙端口 RAM的目的端的讀使能信號經(jīng)延遲后作為FIFO緩存目的端的寫使能信號,延遲時間長度等于RAM本身的讀延遲周期。如果雙端口 RAM本身的讀延遲為0,則此處延遲時間長度為O。以雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理后的數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。3、將FIFO緩存目的端的讀使能信號,讀數(shù)據(jù)信號和空標志信號連接至片選單元。三、利用FIFO緩存源端和FIFO緩存目的端的空標志信號構(gòu)造片選信號,以便將 FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。上述第三部分具體包括I、利用FIFO緩存源端和FIFO緩存目的端的空標志信號構(gòu)造片選信號,構(gòu)造片選信號的片選原則可根據(jù)實際需求設(shè)定。2、根據(jù)片選信號對FIFO緩存源端和FIFO緩存目的端做分時讀取。FIFO緩存源端的空標志信號取反后和片選信號作與運算,其結(jié)果作為FIFO緩存源端的讀使能信號;FIF0 緩存目的端的空標志信號取反后和片選信號的取反信號作與運算,其結(jié)果作為FIFO緩存目的端的讀使能信號。3、將片選信號,F(xiàn)IFO緩存源端的讀使能信號,F(xiàn)IFO緩存目的端的讀使能信號分別作延遲,延遲時間長度等于FIFO緩存源端和FIFO緩存目的端的讀延遲周期。要求FIF0緩存源端和FIFO緩存目的端擁有相同的延遲周期。利用延遲后的片選信號分時選通延遲后的FIFO緩存源端讀使能信號和延遲后的FIFO緩存目的端讀使能信號,選通結(jié)果作為雙端口 RAM的寫使能信號。4、根據(jù)第一部分的FIFO緩存源端寫數(shù)據(jù)信號中雙端口 RAM地址和數(shù)據(jù)的排列關(guān)系,在FIFO緩存源端讀使能信號有效時,獲得雙端口 RAM地址和數(shù)據(jù)信息,并在雙端口 RAM寫使能信號有效時,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中;根據(jù)第二部分FIFO緩存目的端寫數(shù)據(jù)信號中雙端口 RAM地址和數(shù)據(jù)的排列關(guān)系,在FIFO緩存目的端讀使能信號有效時,獲得雙端口 RAM地址和數(shù)據(jù)信息,并在雙端口 RAM寫使能信號有效時,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中。延遲后的片選信號可用于對上述兩過程分時片選。一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的系統(tǒng),該系統(tǒng)主要包括以下內(nèi)容該系統(tǒng)包括FIF0緩存源端、FIFO緩存目的端和片選單元;其中,F(xiàn)IFO緩存源端用于在未觸發(fā)FIFO緩存源端的寫使能信號時,為即將寫入雙端口 RAM的寫地址信號和寫數(shù)據(jù)信號做緩存準備。FIFO緩存目的端用于在未觸發(fā)FIFO緩存目的端的寫使能信號時,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備。片選單元用于使用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將FIFO緩存源端和FIFO 緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。這里,F(xiàn)IFO緩存源端進一步用于在觸發(fā)所述FIFO緩存源端的寫使能信號時,將所述雙端口 RAM的寫地址信號和所述雙端口 RAM的寫數(shù)據(jù)信號,拼湊成FIFO緩存源端的寫數(shù)據(jù)信號。FIFO緩存目的端進一步用于在觸發(fā)所述FIFO緩存目的端的寫使能信號時,將所述雙端口 RAM的讀地址信號和所述雙端口 RAM的讀數(shù)據(jù)信號,拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。這里,F(xiàn)IFO緩存目的端進一步用于將所述雙端口 RAM的讀地址信號,和所述雙端口 RAM的讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理后形成的讀數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。這里,片選單元進一步用于將所述FIFO緩存源端的空標志信號取反后和構(gòu)造的片選信號作與運算,并將運算結(jié)果作為FIFO緩存源端的讀使能信號;將所述FIFO緩存目的端的空標志信號取反后,和構(gòu)造的片選信號的取反信號作與運算,并將運算結(jié)果作為FIFO 緩存目的端的讀使能信號;將所述構(gòu)造的片選信號,所述FIFO緩存源端的讀使能信號,所述FIFO緩存目的端的讀使能信號分別作延遲,延遲后的片選信號,分時選通延遲后的FIFO 緩存源端讀使能信號和延遲后的FIFO緩存目的端讀使能信號,并將選通結(jié)果作為雙端口 RAM的寫使能信號。這里,片選單元進一步用于在所述FIFO緩存源端讀使能信號有效時讀取FIFO緩存源端,讀取FIFO緩存源端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存源端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中;在所述FIFO緩存目的端的讀使能信號有效時讀取FIFO緩存目的端,讀取FIFO緩存目的端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存目的端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM 中。以下對本發(fā)明進行舉例闡述,且為了表述簡便,將雙端口 RAM簡稱為RAM。方法實施例FIF01作為本實施例中的FIFO緩存源端,F(xiàn)IF02作為本實施例中的 FIFO緩存目的端,與RAM進行的源端和目的端跨時鐘域傳輸數(shù)據(jù)進行配合使用。如圖1所示,本實施例包括以下步驟步驟101、使用FIFO緩存源端(FIF01)作為RAM的數(shù)據(jù)輸入緩存源端,即為暫時不寫入數(shù)據(jù),僅在觸發(fā)FIF01的寫使能信號作用下,才寫入數(shù)據(jù)。也就是說,在未觸發(fā)FIF01的寫使能信號作用下,使用FIF01為即將寫入RAM的寫地址信號12和寫數(shù)據(jù)信號11做準備,且在觸發(fā)FIFOl的寫使能信號作用下,以RAM的寫地址信號12和寫數(shù)據(jù)信號11拼湊成FIFOl的寫數(shù)據(jù)信號。這里,本步驟的處理過程具體包括以下步驟步驟1011、設(shè)定FIFOl的深度大于等于2 ;FIF01的數(shù)據(jù)位寬,即簡稱為FIFOl的寬度等于RAM的寫地址信號12總線位寬、與寫數(shù)據(jù)信號11總線位寬之和。步驟1012、以RAM的源端的寫使能信號13作為FIFOl的寫使能信號,以RAM的寫地址信號12和寫數(shù)據(jù)信號11拼湊成FIFOl寫數(shù)據(jù)信號。從而在觸發(fā)FIFOl的寫使能信號作用下,才將RAM的寫地址信號12和寫數(shù)據(jù)信號11拼湊成FIFOl寫數(shù)據(jù)信號,以便寫入數(shù)據(jù)。步驟1013、將FIFOl的讀使能信號32,讀數(shù)據(jù)信號33和空標志信號31連接至片選單元。步驟102、使用FIFO緩存目的端(FIF02)作為RAM的數(shù)據(jù)輸入緩存目的端,即為 暫時不寫入數(shù)據(jù),僅在觸發(fā)FIF02的寫使能信號作用下,才寫入數(shù)據(jù)。也就是說,在未觸發(fā)FIF02的寫使能信號作用下,使用FIF02為即將讀出RAM的讀地址信號62和讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后的讀數(shù)據(jù)信號21做準備,且在觸發(fā)FIF02的寫使能信號作用下,以RAM讀地址信號62和讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后的讀數(shù)據(jù)信號21拼湊成FIF02的寫數(shù)據(jù)信號。這里需要指出的是,也可以在未觸發(fā)FIF02的寫使能信號作用下,使用FIFO緩存源端,為即將讀出RAM的讀地址信號62和讀數(shù)據(jù)信號61做準備,在觸發(fā) FIF02的寫使能信號作用下,以RAM讀地址信號62和讀數(shù)據(jù)信號61拼湊成FIF02的寫數(shù)據(jù)信號。這里,本步驟的處理過程包括以下步驟步驟1021、設(shè)定FIF02的深度大于等于2 ;FIF02的數(shù)據(jù)位寬,即簡稱為FIF02的寬度等于RAM的讀地址信號62總線位寬、與對讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后讀數(shù)據(jù)信號21 總線位寬之和。步驟1022、以RAM的目的端的讀使能信號63經(jīng)延遲后作為FIF02的寫使能信號 23,延遲時間長度等于RAM本身的讀延遲周期。如果RAM本身的讀延遲為O,則此處延遲時間長度為O。以RAM的讀地址信號62和讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后的讀數(shù)據(jù)信號21拼湊成FIF02的寫數(shù)據(jù)信號。圖3為本實施例的數(shù)據(jù)處理單元進行數(shù)據(jù)處理的示意圖,進行數(shù)據(jù)處理的目的是將數(shù)據(jù)的部分比特(bit)清O。步驟1023、將FIF02的讀使能信號42,讀數(shù)據(jù)信號43和空標志信號41連接至片選單元。步驟103、利用FIFOl的空標志信號31和FIF02的空標志信號41構(gòu)成片選信號, 以便將FIFOl中通過讀數(shù)據(jù)信號33所讀出的數(shù)據(jù)、和FIF02中通過讀數(shù)據(jù)信號43所讀出的數(shù)據(jù)分時寫入RAM。這里,如圖2所示,本步驟的處理過程包括以下步驟步驟1031、利用FIFOl的空標志信號31和FIF02的空標志信號41構(gòu)造片選信號 61,片選原則可根據(jù)實際需求設(shè)定,片選原則的一實例如表I所不,表I為片選原則不意表。
FIFOl空信號 (31)FIF02空信號 (41)片選信號空空選通fifol空非空選通fifo2非空空選通fifol非空非空選通fifol表I步驟1032、根據(jù)片選信號61對FIFOl和FIF02做分時讀取。這里,將FIFOl的空標志信號31取反后形成的信號34和片選信號61作與運算, 其結(jié)果作為FIFOl的讀使能信號32 ;將FIF02的空標志信號41取反后形成的信號44和片選信號61的取反信號62作與運算,其結(jié)果作為FIF02的讀使能信號42。步驟1033、將片選信號61,F(xiàn)IFOl的讀使能信號32,F(xiàn)IF02的讀使能信號42分別作延遲,延遲時間長度等于FIFOl和FIF02的讀延遲周期。要求FIF01和FIF02擁有相同的延遲周期。利用延遲后的片選信號63分時選通延遲后的FIFOl讀使能信號35和延遲后的FIF02讀使能信號45,選通結(jié)果作為RAM的寫使能信號51。步驟1034、根據(jù)步驟101的FIFOl寫數(shù)據(jù)信號中RAM地址和數(shù)據(jù)的排列關(guān)系,在 FIFOl讀使能信號32有效時,獲得RAM地址33_1和數(shù)據(jù)信息33_2,并在RAM寫使能信號 51有效時,根據(jù)地址33-1將數(shù)據(jù)33-2寫入RAM中;根據(jù)步驟102的FIF02寫數(shù)據(jù)信號中 RAM地址和數(shù)據(jù)的排列關(guān)系,在FIF02讀使能信號42有效時,獲得RAM地址43_1和數(shù)據(jù)信息43-2,并在RAM寫使能信號51有效時,根據(jù)地址43_1將數(shù)據(jù)43_2寫入RAM中。延遲后的片選信號63可用于對上述兩過程的分時片選。系統(tǒng)實施例如圖I所示,本實施例的系統(tǒng)包括FIF01、FIF02、片選單元、雙口 RAM 和數(shù)據(jù)處理單元。其中,F(xiàn)IFOl作為FIFO緩存源端,F(xiàn)IFOl用于在未觸發(fā)FIFOl的寫使能信號作用下,使用FIFOl為即將寫入RAM的寫地址信號12和寫數(shù)據(jù)信號11做準備,且在觸發(fā)FIFOl 的寫使能信號作用下,以RAM的寫地址信號12和寫數(shù)據(jù)信號11拼湊成FIFOl的寫數(shù)據(jù)信號。這里,F(xiàn)IFOl的深度大于等于2 ;FIF01的數(shù)據(jù)位寬,即簡稱為FIFOl的寬度等于RAM的寫地址信號12總線位寬、與寫數(shù)據(jù)信號11總線位寬之和。以RAM的源端的寫使能信號13 作為FIFOl的寫使能信號,以RAM的寫地址信號12和寫數(shù)據(jù)信號11拼湊成FIFOl寫數(shù)據(jù)信號。FIF02作為FIFO緩存目的端,F(xiàn)IF02用于在未觸發(fā)FIF02的寫使能信號作用下,使用FIF02為即將讀出RAM的讀地址信號62和讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后的讀數(shù)據(jù)信號21 做準備,且在觸發(fā)FIF02的寫使能信號作用下,以RAM讀地址信號62和讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后的讀數(shù)據(jù)信號21拼湊成FIF02的寫數(shù)據(jù)信號。這里需要指出的是,也可以在未觸發(fā)FIF02的寫使能信號作用下,使用FIFO緩存源端,為即將讀出RAM的讀地址信號62和讀數(shù)據(jù)信號61做準備,在觸發(fā)FIF02的寫使能信號作用下,以RAM讀地址信號62和讀數(shù)據(jù)信號61拼湊成FIF02的寫數(shù)據(jù)信號。這里,設(shè)定FIF02的深度大于等于2 ;FIF02的數(shù)據(jù)位寬, 即簡稱為FIF02的寬度等于RAM的讀地址信號62總線位寬、與對讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后讀數(shù)據(jù)信號21總線位寬之和。以RAM的目的端的讀使能信號63經(jīng)延遲后作為FIF02的寫使能信號23,延遲時間長度等于RAM本身的讀延遲周期。如果RAM本身的讀延遲為0, 則此處延遲時間長度為O。以RAM的讀地址信號62和讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后的讀數(shù)據(jù)信號21拼湊成FIF02的寫數(shù)據(jù)信號。數(shù)據(jù)處理單元進行數(shù)據(jù)處理的示意圖如圖3所示,用于對讀數(shù)據(jù)信號61經(jīng)數(shù)據(jù)處理后形成讀數(shù)據(jù)信號21,數(shù)據(jù)處理的目的是將數(shù)據(jù)的部分bit清O。片選單元用于將FIFOl的讀使能信號32,讀數(shù)據(jù)信號33和空標志信號31連接至片選單元,以及在將FIF02的讀使能信號42,讀數(shù)據(jù)信號43和空標志信號41連接至片選單元的情況下,利用FIFOl的空標志信號31和FIF02的空標志信號41構(gòu)成片選信號,將FIFOl 中通過讀數(shù)據(jù)信號33所讀出的數(shù)據(jù)、和FIF02中通過讀數(shù)據(jù)信號43所讀出的數(shù)據(jù)分時寫入 RAM。這里,如圖2所示,片選單元是利用FIFOl的空標志信號31和FIF02的空標志信號41構(gòu)造片選信號61,根據(jù)片選信號61對FIFOl和FIF02做分時讀取時,將FIFOl的空標志信號31取反后形成的信號34和片選信號61作與運算,其結(jié)果作為FIFOl的讀使能信號 32 ;將FIF02的空標志信號41取反后形成的信號44和片選信號61的取反信號62作與運算,其結(jié)果作為FIF02的讀使能信號42。將片選信號61,F(xiàn)IF01的讀使能信號32,F(xiàn)IF02的讀使能信號42分別作延遲,延遲時間長度等于FIFOl和FIF02的讀延遲周期。要求FIF01 和FIF02擁有相同的延遲周期。利用延遲后的片選信號63分時選通延遲后的FIFOl讀使能信號35和延遲后的FIF02讀使能信號45,選通結(jié)果作為RAM的寫使能信號51。根據(jù)步驟101的FIFOl寫數(shù)據(jù)信號中RAM地址和數(shù)據(jù)的排列關(guān)系,在FIFOl讀使能信號32有效時, 獲得RAM地址33-1和數(shù)據(jù)信息33-2,并在RAM寫使能信號51有效時,根據(jù)地址33_1將數(shù)據(jù)33-2寫入RAM中;根據(jù)步驟102的FIF02寫數(shù)據(jù)信號中RAM地址和數(shù)據(jù)的排列關(guān)系,在 FIF02讀使能信號42有效時,獲得RAM地址43_1和數(shù)據(jù)信息43_2,并在RAM寫使能信號51 有效時,根據(jù)地址43-1將數(shù)據(jù)43-2寫入RAM中。延遲后的片選信號63可用于對上述兩過程的分時片選。綜上所述,采用本發(fā)明,由于使用FIFO緩存地址和數(shù)據(jù),因此能滿足相同時鐘域設(shè)計和跨時鐘域設(shè)計的多種需求,從而擴大了應(yīng)用范圍。此外,本發(fā)明擁有良好的擴展性, 為多個源端的扇入提供了連接參考。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的方法,其特征在于,該方法包括在未觸發(fā)先進先出(FIFO)緩存源端的寫使能信號時,使用FIFO緩存源端,為即將寫入雙端口隨機存儲器(RAM)的寫地址信號和寫數(shù)據(jù)信號做緩存準備;在未觸發(fā)FIFO緩存目的端的寫使能信號時,使用FIFO緩存目的端,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備;利用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將 FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,該方法還包括在觸發(fā)所述FIFO緩存源端的寫使能信號時,將所述雙端口 RAM的寫地址信號和所述雙端口 RAM的寫數(shù)據(jù)信號,拼湊成FIFO緩存源端的寫數(shù)據(jù)信號;在觸發(fā)所述FIFO緩存目的端的寫使能信號時,將所述雙端口 RAM的讀地址信號和所述雙端口 RAM的讀數(shù)據(jù)信號,拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法還包括將所述雙端口RAM的讀地址信號,和所述雙端口 RAM的讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理后形成的讀數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM之前,該方法還包括根據(jù)構(gòu)造的片選信號對FIFO緩存源端和 FIFO緩存目的端做分時讀取。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)構(gòu)造的片選信號對FIFO緩存源端和FIFO緩存目的端做分時讀取具體包括將所述FIFO緩存源端的空標志信號取反后和構(gòu)造的片選信號作與運算,并將運算結(jié)果作為FIFO緩存源端的讀使能信號;將所述FIFO緩存目的端的空標志信號取反后,和構(gòu)造的片選信號的取反信號作與運算,并將運算結(jié)果作為FIFO緩存目的端的讀使能信號;在所述FIFO緩存源端讀使能信號有效時讀取FIFO緩存源端;在所述FIFO緩存目的端的讀使能信號有效時讀取FIFO緩存目的端。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,該方法還包括將所述構(gòu)造的片選信號, 所述FIFO緩存源端的讀使能信號,所述FIFO緩存目的端的讀使能信號分別作延遲,延遲后的片選信號,分時選通延遲后的FIFO緩存源端讀使能信號和延遲后的FIFO緩存目的端讀使能信號,并將選通結(jié)果作為雙端口 RAM的寫使能信號;所述將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM具體包括讀取FIFO緩存源端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存源端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中;讀取FIFO緩存目的端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存目的端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中。
7.—種雙端口 RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的系統(tǒng),其特征在于,該系統(tǒng)包括FIF0緩存源端、FIFO緩存目的端和片選單元;其中,所述FIFO緩存源端,用于在未觸發(fā)FIFO緩存源端的寫使能信號時,為即將寫入雙端口 RAM的寫地址信號和寫數(shù)據(jù)信號做緩存準備;所述FIFO緩存目的端,用于在未觸發(fā)FIFO緩存目的端的寫使能信號時,為即將讀出雙端口 RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備;所述片選單元,用于使用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口 RAM。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述FIFO緩存源端,進一步用于在觸發(fā)所述FIFO緩存源端的寫使能信號時,將所述雙端口 RAM的寫地址信號和所述雙端口 RAM的寫數(shù)據(jù)信號,拼湊成FIFO緩存源端的寫數(shù)據(jù)信號;所述FIFO緩存目的端,進一步用于在觸發(fā)所述FIFO緩存目的端的寫使能信號時,將所述雙端口 RAM的讀地址信號和所述雙端口 RAM的讀數(shù)據(jù)信號,拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述FIFO緩存目的端,進一步用于將所述雙端口 RAM的讀地址信號,和所述雙端口 RAM的讀數(shù)據(jù)信號經(jīng)數(shù)據(jù)處理后形成的讀數(shù)據(jù)信號拼湊成FIFO緩存目的端的寫數(shù)據(jù)信號。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述片選單元,進一步用于將所述FIFO 緩存源端的空標志信號取反后和構(gòu)造的片選信號作與運算,并將運算結(jié)果作為FIFO緩存源端的讀使能信號;將所述FIFO緩存目的端的空標志信號取反后,和構(gòu)造的片選信號的取反信號作與運算,并將運算結(jié)果作為FIFO緩存目的端的讀使能信號;將所述構(gòu)造的片選信號,所述FIFO緩存源端的讀使能信號,所述FIFO緩存目的端的讀使能信號分別作延遲,延遲后的片選信號,分時選通延遲后的FIFO緩存源端讀使能信號和延遲后的FIFO緩存目的端讀使能信號,并將選通結(jié)果作為雙端口 RAM的寫使能信號。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述片選單元,進一步用于在所述FIFO 緩存源端讀使能信號有效時讀取FIFO緩存源端,讀取FIFO緩存源端且在所述雙端口 RAM 寫使能信號有效時,根據(jù)FIFO緩存源端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中;在所述FIFO緩存目的端的讀使能信號有效時讀取FIFO緩存目的端,讀取FIFO 緩存目的端且在所述雙端口 RAM寫使能信號有效時,根據(jù)FIFO緩存目的端中地址和數(shù)據(jù)的排列關(guān)系,根據(jù)地址將數(shù)據(jù)寫入雙端口 RAM中。
全文摘要
本發(fā)明公開了一種雙端口RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的方法,在未觸發(fā)先進先出(FIFO)緩存源端的寫使能信號時,使用FIFO緩存源端為即將寫入雙端口隨機存儲器(RAM)的寫地址信號和寫數(shù)據(jù)信號做緩存準備;在未觸發(fā)FIFO緩存目的端的寫使能信號時,使用FIFO緩存目的端為即將讀出雙端口RAM的讀地址信號和讀數(shù)據(jù)信號做緩存準備;利用FIFO緩存源端的空標志信號和FIFO緩存目的端的空標志信號構(gòu)造片選信號,將FIFO緩存源端和FIFO緩存目的端中的數(shù)據(jù)分時寫入雙端口RAM。本發(fā)明還公開了一種雙端口RAM讀取數(shù)據(jù)后更新數(shù)據(jù)的系統(tǒng),采用本發(fā)明的方法及系統(tǒng),能滿足雙端口RAM讀取數(shù)據(jù)后的數(shù)據(jù)更新需求。
文檔編號G06F5/16GK102609235SQ20111002724
公開日2012年7月25日 申請日期2011年1月25日 優(yōu)先權(quán)日2011年1月25日
發(fā)明者劉偉達, 徐心明, 王紅旗 申請人:中興通訊股份有限公司