專利名稱:雙端口ram的讀寫控制電路、方法及裝置的制作方法
技術領域:
本發(fā)明涉及存儲器技術,尤其涉及雙端口 RAM的讀寫控制電路、方法及裝置。
背景技術:
RAM (Random Access Memory,隨機存儲器)根據(jù)端口的數(shù)量,可分為單端 口 RAM (SPRAM)和雙端口 RAM (DPRAM)。雙端口 R扁才艮據(jù)兩個端口采用的時鐘是否 同步,可分為同步時鐘RAM與異步時鐘RAM。異步時鐘RAM中,每個端口有獨立 的控制端(端口使能端、讀使能端、寫使能端)、地址端、數(shù)據(jù)端,兩個端口共 享一個存儲器。
在數(shù)字電路中,器件特性包括建立時間和保持時間。其中建立時間是器 件輸入端在時鐘信號有效沿到來前,要求輸入信號穩(wěn)定不變的時間。保持時間 是器件輸入端要求輸入信號在時鐘信號有效沿到來后保持穩(wěn)定不變的時間。如 果輸入信號不滿足建立時間和保持時間的要求,就可能導致數(shù)據(jù)鎖存錯誤。如 圖1所示,aclk時鐘域的數(shù)據(jù)adata要傳給bclk時鐘域,adata滿足aclk的 建立和保持時間,但是aclk和bclk是兩個異源時鐘,adata —定會在某些時刻 不滿足bclk的建立和保持時間,即當aclk和bclk兩個時鐘上升沿靠得很近的 時,adata就會出現(xiàn)一個亞穩(wěn)態(tài),這種狀態(tài)的電平既不是高電平也不是低電平。
與此類似,在雙端口 R扁對同一存儲單元進行讀寫時,如果兩個端口都佳_ 能,并且地址總線信號相同(在時鐘上升沿),并且CLKA上升沿和CLKB上升沿 之間的建立時間小于一定值,就會產(chǎn)生讀寫沖突。
允許在兩個端口上對異步時鐘RAM的同 一存儲單元同時進行讀/讀操作。但 是當在兩個端口上對異步時鐘RAM的同一存儲單元同時進行寫/寫、寫/讀的操作時, 一端口的讀數(shù)據(jù)可能會被另一端口的寫數(shù)據(jù)破壞; 一端口的寫數(shù)據(jù)也有 可能因為另一端口對同一地址的讀操作或寫操作而無法寫入。RAM的行為將不可 預測, 一次寫操作可能沒有完成,輸出端的數(shù)據(jù)也可能為無效。因此,無法保 證讀數(shù)據(jù)或寫數(shù)據(jù)的正確性。大多數(shù)的雙端口 RAM的內部邏輯設計,避免了兩 個端口的寫/寫沖突,但是沒有解決雙端口 RAM的讀寫操作沖突。
在芯片設計中,雙端口 RAM經(jīng)常用在芯片中,作為兩個不同功能^=莫塊接口 交互的地方,例如芯片與CPU (Central processing unit,中央處理器)或者 DSP之間完成交互功能的MPI (Micro Precessor Interface,;微處理器j姿口)。 以與DSP (Digital Signal Processing,數(shù)字信號處理器)配合使用的 ASIC (Application Specific Integrated Circuit,專用集成電3各)芯片為例, 這類ASIC芯片通常會有一個DSP接口處理模塊,用來接收來自DSP的控制信息, 送到芯片的各個功能模塊,而產(chǎn)生芯片的控制信號。由于DSP對ASIC的配置通 常是受上層信令驅動,對于ASIC而言,DSP會隨機對芯片寫入?yún)?shù)。而ASIC功 能模塊對參數(shù)的使用則是受芯片內部數(shù)據(jù)流驅動,與上層信令無關,因此很難保 證不與DSP的寫參數(shù)操作發(fā)生沖突。并且DSP時鐘與ASIC時鐘通常是不同頻的, 相當于ASIC內部的RAM的雙端口使用的是異步時鐘。因此,也會產(chǎn)生雙端口 RAM 的讀寫沖突問題。
目前,為了解決雙端口 RAM讀寫沖突的問題,采用如下方案,為每個地址 參數(shù)設置"配置準備標志,,,通過地址參數(shù)的"配置準備標志,'來對RAM讀寫進 行控制。方案具體為,DSP在每次寫某一地址參數(shù)前,先將參數(shù)地址所對應的一 個"配置準備標志"配置為高,然后再寫參數(shù),寫完參數(shù)后,邏輯自動將"配 置準備標志,,清0。功能模塊在讀取參數(shù)緩存R扁時,同時檢測地址參數(shù)對應的 "配置準備標志"是否為高,如果"配置準備標志"為高,則將雙口RAM的讀口使能關閉;如果"配置準備標志"為低,則可以對讀口進行讀操作。 在上述方案的實施過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在以下問題
1、 需要DSP為每個地址參數(shù)增加一個"配置準備標志",增加了DSP的負
擔;
2、 DSP如果誤寫配置準備標志,會導致功能邏輯一直無法讀取所配置的參
數(shù);
3、 需要增加復雜的"配置準備標志,,的控制邏輯。
發(fā)明內容
一方面,本發(fā)明的實施例提供一種結構簡單的雙端口 RAM的讀寫控制電路。 能夠規(guī)避雙端口 R細的讀寫沖突問題。
為達到上述目的,本發(fā)明的實施例采用以下技術方案
一種雙端口 RAM的讀寫控制電路,所述雙端口 RAM包括用于讀/寫的兩個端 口 ,雙端口 RAM的讀寫控制電3各包括
比較電路,比較電路的輸入端接收第一端口地址總線信號和第一端口寫使 能信號以及第二端口地址總線信號,比較第一端口地址總線信號和第二端口地 址總線信號,當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并且第一 端口寫使能信號有效時,比較電路的輸出端輸出第二端口地址總線信號對應的 存儲單元讀屏蔽信號,第二端口地址總線信號對應的存儲單元讀屏蔽信號至少3 個時鐘周期前為高電平,至少3個時鐘周期后為低電平;
非門,用于對第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運
算;
第一與門,第一與門的一路輸入端接收非運算后的第二端口地址總線信號 對應的存儲單元讀屏蔽信號,第 一與門的另 一路輸入端接收第二端口的讀使能信號,第 一與門的輸出端連接第二端口的讀使能端。另一方面,本發(fā)明的實施例提供一種結構簡單的雙端口 RAM的讀寫控制方 法,能夠規(guī)避雙端口 RAM的讀寫沖突問題。為達到上述目的,本發(fā)明的實施例采用以下技術方案一種雙端口 RAM的讀寫控制方法,所述雙端口 RAM包括用于讀/寫的兩個端 口,所述雙端口 RAM的讀寫控制方法包括比較第一端口地址總線信號和第二端口地址總線信號,輸出第二端口地址 總線信號對應的存儲單元讀屏蔽信號;第二端口地址總線信號對應的存儲單元 讀屏蔽信號為當?shù)?一端口地址總線信號和第二端口地址總線信號相同并且第 一端口寫使能信號有效時,至少3個時鐘周期前為高電平,至少3個時鐘周期 后為低電平;將第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算;將非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,與第二 端口的讀使能信號進行與運算,輸入到第二端口的讀4吏能端。再一方面,本發(fā)明的實施例提供一種結構簡單的雙端口 RAM的讀寫控制裝 置,能夠規(guī)避雙端口 RAM的讀寫沖突問題。為達到上述目的,本發(fā)明的實施例采用以下技術方案一種雙端口 RAM的讀寫控制裝置,所述雙端口 RAM包括用于讀/寫的兩個端 口,所述雙端口 RAM的讀寫控制裝置包括比較單元,用于比較第一端口地址總線信號和第二端口地址總線信號,輸 出第二端口地址總線信號對應的存儲單元讀屏蔽信號;第二端口地址總線信號 對應的存儲單元讀屏蔽信號為當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線 信號相同并且第一端口寫使能信號有效時,至少3個時鐘周期前為高電平,至少3個時鐘周期后為低電平;非運算單元,用于對第二端口地址總線信號對應的存儲單元讀屏蔽信號進 行非運算;第一與運算單元,用于將非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號與第二端口的讀使能信號進行與運算后,輸入到第二端口的讀使a匕二山 月匕v而。本發(fā)明實施例雙端口 RAM的讀寫控制電路、方法、裝置,通過比較第一端 口地址總線信號和第二端口地址總線信號,輸出第二端口地址總線信號對應的 存儲單元讀屏蔽信號,當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同 并且第一端口寫使能信號有效時,第二端口地址總線信號對應的存儲單元讀屏 蔽信號至少3個時鐘周期前為高電平,至少3個時鐘周期后為低電平。當在雙 端口 RAM的第一端口進行寫操作,并且在第二端口的相同存儲單元進行讀操作 時,至少3個時鐘周期前,屏蔽第二端口的讀使能端,至少3個時鐘周期后,第 二端口的讀使能端有效。因此,規(guī)避了雙端口 RAM的讀寫沖突問題。另外,此 方案結構筒單,容易實現(xiàn),不占用存儲器資源。
圖l是現(xiàn)有技術中產(chǎn)生雙端口 R細讀寫沖突問題的時序圖;圖2是本發(fā)明雙端口 RAM的讀寫控制電路第一實施例的電路圖;圖3是本發(fā)明雙端口 RAM的讀寫控制電路第一實施例中比較電路的電路圖;圖4是本發(fā)明雙端口 R扁的讀寫控制電路第一實施例的時序圖;圖5是本發(fā)明雙端口 RAM的讀寫控制電路第二實施例中比較電路的電路圖;圖6是本發(fā)明雙端口 RAM的讀寫控制電路第二實施例的時序圖;圖7是本發(fā)明雙端口 RAM的讀寫控制方法的流程圖;圖8是本發(fā)明雙端口 RAM的讀寫控制方法第一實施例的流程圖; 圖9是本發(fā)明雙端口 RAM的讀寫控制方法第二實施例的流程圖; 圖IO是本發(fā)明雙端口 RAM的讀寫控制裝置的方框圖;圖11是本發(fā)明雙端口 RAM的讀寫控制裝置第一實施例中比較單元的方框圖;圖12是本發(fā)明雙端口 RAM的讀寫控制裝置第二實施例中比較單元的方框圖。
具體實施方式
為使本發(fā)明實施例的技術方案更加清楚,下面結合附圖和具體實施例對本 發(fā)明的實施例作進一步的詳細iJi明。如圖2所示,所述雙端口 RAM的讀寫控制電路包括比較電路,比較電路的輸入端接收第一端口地址總線信號A_wr_addr和第 一端口寫使能信號A—wr_en以及第二端口地址總線信號B_rcLadd,比4交第一端 口地址總線信號A_wr_addr和第二端口地址總線信號B_rd_add,當?shù)谝欢丝诘?址總線信號A_wr_addr和第二端口地址總線信號B_rd_add相同并且第一端口寫 使能信號A—wr_en有效時,比較電路的輸出端輸出第二端口地址總線信號 B_rd-add對應的存儲單元讀屏蔽信號rd—mask—sel,第二端口地址總線信號 B_rd-add對應的存儲單元讀屏蔽信號rd_mask_sel至少3個時鐘周期前為高電 平,至少3個時鐘周期后為低電平;本實施例為至少5個時鐘周期。非門,用于對第二端口地址總線信號B_rd—add對應的存儲單元讀屏蔽信號 rd—mask—sel進行非運算;第一與門,第一與門的一路輸入端接收非運算后的第二端口地址總線信號 對應的存儲單元讀屏蔽信號rd-mask-sel,第一與門的另一路輸入端接收第二端口的讀使能信號B_rd_en,第 一 與門的輸出端連接第二端口的讀使能端 portB_rd。第二延遲電路,第二延遲電路由觸發(fā)器組成,用于將第一端口寫使能信號 A-wr — en延遲至少2個時鐘周期后,輸入第一端口的寫4吏能端portA—wr;本實 施例為至少3個時鐘周期。第三延遲電路,第三延遲電路由觸發(fā)器組成,用于將第一端口的數(shù)據(jù)總線 信號A_data延遲后,輸入第一端口的數(shù)據(jù)端portA_data,第三延遲電3各延遲的 時鐘周期數(shù)與第二延遲電路延遲的時鐘周期數(shù)相同。本實施例為至少3個時鐘 周期。一組第四與門;每個第四與門的一路輸入端連接第二端口的一個數(shù)據(jù)端 portB_data,該第四與門的另一路輸入端連接所述第一與門的輸出端,每個第 四與門的輸出端輸出與運算后的第二端口數(shù)據(jù)信號。當?shù)诙丝诘淖x使能端 portB-rd被屏蔽為無效時,雙口 RAM的第二端口輸出數(shù)據(jù)為0。其中,該組第 四與門的數(shù)量可以與雙端口 RAM第二端口數(shù)據(jù)總線位數(shù)相同。本發(fā)明實施例雙端口 RAM的讀寫控制電路,比較電路比較第一端口地址總 線信號和第二端口地址總線信號,輸出第二端口地址總線信號對應的存儲單元 讀屏蔽信號,當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并且第一 端口寫使能信號有效時,第二端口地址總線信號對應的存儲單元讀屏蔽信號至 少5個時鐘周期前為高電平;至少5個時鐘周期后為低電平。因此,當在雙端 口 RAM的第一端口進行寫操作,并且在第二端口的相同存儲單元進行讀操作時, 至少5個時鐘周期前,屏蔽第二端口的讀使能端,并且寫信號延遲至少3個時鐘 周期進行寫操作,第一端口的寫使能端具有至少2個前保護間隙,至少5個時 鐘周期后,第二端口的讀使能端有效,第一端口的寫使能端具有至少2個后保護間隙,失見避了雙端口 RAM的讀寫沖突問題。另外,采用此方法容易實現(xiàn),不占用存儲器資源。其中,本發(fā)明實施例提供兩種比較電路,以下分別以8位地址線為例分別 說明兩種比較電路。第一種比較電路如圖3所示,包括譯碼器,譯碼器的輸入端接收第一端口 地址總線信號A—wr-addr;譯碼器的輸出端輸出 一組第 一端口存儲單元選擇信 號;所述一組第 一端口存儲單元選擇信號在第 一端口地址總線信號對應的輸出 端為高電平,在剩余輸出端為低電平;本實施中,當前地址線總線信號為(0, 1, 1, 1, 1, 1, 1, 1),則輸出端Yu產(chǎn)l,其它輸出端為0。一組第二與門,分別用第二與門-0、第二與門-x、第二與門-191等表示, 每個第二與門的一路輸入端接收一個第一端口存儲單元選擇信號,該第二與門 的另一路輸入端接收第一端口寫使能信號;因此,當?shù)谝欢丝诘膶懯鼓苄盘栍?效,當前地址線總線信號為(0, 1, 1, 1, 1, 1, 1, 1)時,則第二與門-127 的輸出端為l,其它第二與門的輸出端為0。其中,該組第二與門數(shù)量與雙端口 RAM第一端口地址總線位數(shù)有關,假設雙端口 RAM第一端口地址總線位數(shù)為n, 則該組中第二與門數(shù)量為2的n次方個,本實施例中,地址總線位數(shù)為8位, 則第二與門數(shù)量為2的8次方個,即256個。一組第 一延遲電路,該組中第 一延遲電路數(shù)量可以與第二與門數(shù)量相同, 分別由觸發(fā)器組成,分別用第一延遲電路-O、第一延遲電路-x、第一延遲電路 -191等表示,每個第一延遲電路輸入端連接一個第二與門的輸出端,所述第一 延遲電路延遲至少3個時鐘周期,本實施例中,延遲5個時鐘周期。一組D觸發(fā)器,其中,該組中D觸發(fā)器數(shù)量可以與第二與門數(shù)量相同,分 別用D觸發(fā)器-O、 D觸發(fā)器-x、 D觸發(fā)器-191等表示,每個D觸發(fā)器的時鐘脈沖端接收第一端口的時鐘信號,該D觸發(fā)器的預置端連接一個第二與門的輸出端,該D觸發(fā)器的清除端連接一個第一延遲電路的輸出端,該D觸發(fā)器的輸出 端輸出一個第一端口存儲單元讀屏蔽信號。D觸發(fā)器的工作原理為當D觸發(fā)器 的預置端SET=1并且CLR為O時,D觸發(fā)器的輸出為1。當D觸發(fā)器的預置端SET=0 并且CLR為1時,D觸發(fā)器的輸出為O。因此,對于D觸發(fā)器-127來說,當?shù)谝?端口的寫使能信號有效,當前地址線總線信號為(0, 1, 1, 1, 1, 1, 1, 1) 時,則D觸發(fā)器-127的預置端輸入為1并且CLR輸入為0, D觸發(fā)器的輸出為1。 5個時鐘周期后,D觸發(fā)器-127的預置端SET輸入為0并且CLR輸入為1, D觸 發(fā)器-127輸出的存儲單元讀屏蔽信號為0。一組兩個串聯(lián)的D觸發(fā)器;該組中兩個串聯(lián)的D觸發(fā)器的數(shù)量可以與第二 與門的數(shù)量相同,分別用D觸發(fā)器-0-ld、 D觸發(fā)器-0-2d、 D觸發(fā)器-x-ld、 D觸 發(fā)器-x-2d、 D觸發(fā)器-191-ld、 D觸發(fā)器-191-2d等表示, 一組兩個串聯(lián)的D觸 發(fā)器接收第一端口存儲單元讀屏蔽信號rd-mask[x];延遲2個時鐘周期后,輸 出延遲2個時鐘周期后的存儲單元讀屏蔽信號rd-mask_2d[x],所述兩個串聯(lián)的 D觸發(fā)器的時鐘脈沖端分別接收第二端口的時鐘信號B_clk。這組兩個串聯(lián)的D 觸發(fā)器,用于進行存儲單元讀屏蔽信號的時鐘域同步轉換,并且消除亞穩(wěn)態(tài)。多路選擇器,多路選擇器的數(shù)據(jù)輸入端接收一組第 一端口存儲單元讀屏蔽 信號(rd—mask_2d
,…rd—mask—2d[x]…rd-mask—2d[191]…),多3各選擇器的 選擇信號輸入端接收第二端口地址總線信號B—rd-addr,多路選擇器的輸出端輸 出第二端口地址總線信號對應的存儲單元讀屏蔽信號rd-mask-sel。在本實施例 中,當?shù)诙丝诘刂房偩€信號B—rd-addr為(0, 1, 1, 1, 1, 1, 1, 1)時, 第一端口地址總線信號與第二端口的地址總線信號一致,并且第一端口寫地址 信號有效時,多路選擇器將輸出端輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號rd_mask_sel為1, 5個時鐘周期后,輸出的第二端口地址總線信號 對應的存儲單元讀屏蔽信號為0。第一端口寫地址信號有效時,第二端口地址總 線信號B_rd-addr為(1, 1, 1, 1, 1, 1, 1, 1),第一端口地址總線信號與第 二端口的地址總線信號不一致,多路選擇器輸出端輸出第二端口地址總線信號 對應的存儲單元讀屏蔽信號rd-mask-sel為0, 5個時鐘周期后,輸出的第二端 口地址總線信號對應的存儲單元讀屏蔽信號rd-mask-sel為1。由圖4的時序圖可以看出,本發(fā)明實施例雙端口 R雄的讀寫控制電路,產(chǎn) 生一組讀屏蔽信號,當寫使能信號有效時,至少5個時鐘周期前,在第一端口 地址總線信號對應的輸出端為高電平,在剩余輸出端為低電平;至少5個時鐘 周期后,在第一端口地址總線信號對應的輸出端為低電平,在剩余輸出端為高 電平;多路選擇器選出第二端口地址總線信號對應的存儲單元讀屏蔽信號;并 且通過非門和與門,輸出到第二端口的讀使能端口。因此,當?shù)谝欢丝诘膶懙?址總線與第 一端口的讀地址總線相同時,多路選擇器選出高電平的讀屏蔽信號, 通過非門和與門后,給第二端口的讀使能端輸出低電平,屏蔽第二端口的讀使 能端口,因此避免了對端口 RAM的同一地址單元同時進行讀寫的可能性,避免 了雙端口讀寫沖突問題。延遲至少3個時鐘周期后,多路選擇器選出高電平的 讀屏蔽信號,通過非門和與門后,給第二端口的讀使能端輸出低電平,使第二 端口的讀使能端口有效,規(guī)避了雙端口 RAM的讀寫沖突問題??蛇x的,對于地址深度較深的雙口 RAM,可以不必為每個存儲單元產(chǎn)生一個 讀口屏蔽標志,可采用一組存儲單元對應一個讀屏蔽信號的方法,以減少產(chǎn)生 讀屏蔽信號所需要的寄存器。對于DSP寫入?yún)?shù)的延遲拍數(shù)也可根據(jù)2個時鐘 的頻率關系何保護區(qū)間進行調整。本發(fā)明實施例中,第一端口地址總線為第一 端口的高位地址線;第二端口地址總線為第二端口的高位地址線;所述第一端口高位地址線的位數(shù)與第二端口高位地址線的位數(shù)相同。如圖5所示,第二種比較電路包括第一譯碼器,第一譯碼器的輸入端接收第一端口地址總線信號A—wr-addr; 第一譯碼器的輸出端Y輸出一組第一端口存儲單元選擇信號;所述一組第一端 口存儲單元選擇信號在第 一端口地址總線信號對應的輸出端為高電平,在剩余 輸出端為低電平;本實施中,當前地址線總線信號為(0, 1, 1, 1, 1, 1, 1, 1),則第一譯碼器的輸出端YU7=1,其它輸出端為0。第二譯碼器,第二譯碼器的輸入端接收第 一端口地址總線的寫完成信號 A_wr-finish_addr;第二譯碼器的輸出端輸出一組存儲單元寫完成信號;本實 施中,當前地址總線信號寫完成后,則第二譯碼器的輸出端Y127=l,其它輸出端 為0。一組第二與門,分別用第二與門-0、第二與門-x、第二與門-191等表示, 每個第二與門的一路輸入端接收一個第一端口存儲單元選4奪信號,該第二與門 的另一路輸入端接收第一端口寫使能信號A_wr_en;其中,該組第二與門數(shù)量與 雙端口 RAM第一端口地址總線位數(shù)有關,假設雙端口 RAM第一端口地址總線位 數(shù)為n,則該組中第二與門數(shù)量為2的n次方個,本實施例中,地址總線位凄t為 8位,則第二與門數(shù)量為2的8次方個,即256個;一組第三與門,該組中第三與門的數(shù)量可以與第二與門的數(shù)量相同,分別 用第三與門-0、第三與門-x、第三與門-191等表示,每個第三與門的一路輸入 端接收一個存儲單元寫完成信號,該第三與門的另 一路輸入端接收第一端口寫 完成信號A—wr—finish;一組第一延遲電路,該組中第一延遲電路的數(shù)量可以與第二與門的數(shù)量相 同,分別由觸發(fā)器組成,分別用第一延遲電路-0、第一延遲電路-x、第一延遲電路-191等表示,每個第一延遲電路的輸入端接收一個第三與門的輸出端,該第一延遲電路延遲至少1個時鐘周期;一組D觸發(fā)器,該組中D觸發(fā)器的數(shù)量可以與第二與門的數(shù)量相同,分別 用D觸發(fā)器-O、 D觸發(fā)器-x、 D觸發(fā)器-191等表示,每個D觸發(fā)器的時鐘脈沖端 接收第一端口的時鐘信號A_clk;該D觸發(fā)器的預置端SET連接一個第二與門的 輸出端;該D觸發(fā)器的清除端CLR連接第一延遲電路的輸出端;該D觸發(fā)器的 輸出端輸出一個第一端口存儲單元讀屏蔽信號rd-mask[x];對于D觸發(fā)器-127 來說,當?shù)谝欢丝诘膶慯^能信號有效,地址線總線信號為(0, 1, 1, 1, 1, 1, 1, 1)時,則D觸發(fā)器-127的預置端輸入為1并且CLR輸入為0, D觸發(fā)器的輸 出為1。地址線總線信號寫完成信號延遲l個時鐘周期后,D觸發(fā)器-127的預置 端SET輸入為O并且CLR輸入為1, D觸發(fā)器-127輸出的存儲單元讀屏蔽信號為 0。一組兩個串聯(lián)的D觸發(fā)器;該組中兩個串聯(lián)的D觸發(fā)器的數(shù)量可以與第二 與門的數(shù)量相同,分別用D觸發(fā)器-O-ld、 D觸發(fā)器-0-2d、 D觸發(fā)器-x-ld、 D觸 發(fā)器-x-2d、 D觸發(fā)器-191-ld、 D觸發(fā)器-191-2d等表示, 一組兩個串聯(lián)的D觸 發(fā)器接收第一端口存儲單元讀屏蔽信號rd-mask[x];延遲2個時鐘周期后,輸 出延遲2個時鐘周期后的存儲單元讀屏蔽信號rd_mask_2d[x],所述兩個串聯(lián)的 D觸發(fā)器的時鐘脈沖端分別接收第二端口的時鐘信號B—cik。這組兩個串聯(lián)的D觸 發(fā)器,用于進行存儲單元讀屏蔽信號的時鐘域同步轉換,并且消除亞穩(wěn)態(tài)。多路選擇器,接收所述一組延遲2個時鐘周期后的存儲單元讀屏蔽信號 rd-mask_2d[x],多路選擇器的選擇信號輸入端接收第二端口地址總線信號,多 路選擇器的輸出端輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號。在 本實施例中,當?shù)诙丝诘刂房偩€信號B—rd—addr為(0, 1, 1, 1, 1, 1, 1,l)時,第一端口地址總線信號與第二端口的地址總線信號一致,并且第一端口 寫地址信號有效時,在第一端口寫完成信號延遲至少1個時鐘周期前,多路選 擇器輸出端輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號rd-mask_sel為1,在第一端口寫完成信號延遲至少1個時鐘周期后,輸出的第 二端口地址總線信號對應的存儲單元讀屏蔽信號為0。第一端口寫地址信號有效 時,第二端口地址總線信號B_rd—addr為(1, 1, 1, 1, 1, 1, 1, 1),第一端 口地址總線信號與第二端口的地址總線信號不 一致,在第 一端口寫完成信號延 遲至少1個時鐘周期前,多路選擇器輸出端輸出第二端口地址總線信號對應的 存儲單元讀屏蔽信號rd_mask-sel為0,在第一端口寫完成信號延遲至少1個時 鐘周期后,輸出的第二端口地址總線信號對應的存儲單元讀屏蔽信號 rd—mask-sel為1。由圖6的時序圖可以看出,本發(fā)明實施例雙端口 RAM的讀寫控制電路,產(chǎn) 生一組存儲單元讀屏蔽信號,當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信 號相同并且第一端口寫使能信號有效時,第一端口寫完成信號延遲至少1個時 鐘周期前,第二端口地址總線信號對應的存儲單元讀屏蔽信號為高電平,第一 端口寫完成信號延遲至少1個時鐘周期后,為低電平。因此,當在雙端口 RAM 的第一端口進行寫操作,并且在第二端口的相同存儲單元進行讀操作時,寫信 號延遲3個時鐘周期進行寫操作,并且在第一端口寫完成信號延遲至少1個時 鐘周期前,屏蔽第二端口的讀使能端,因此,第一端口的寫使能端具有前保護間 隙;第一端口寫完成信號延遲至少1個時鐘周期后,第二端口的讀使能端有效, 第二端口的寫使能端具有后保護間隙,因此規(guī)避了雙端口 R扁的讀寫沖突問題??蛇x的,對于地址深度較深的雙口 RAM可以不必為每個存儲單元產(chǎn)生一個 讀口屏蔽標志,可采用 一組存儲單元增加一個寫完成信號產(chǎn)生讀口屏蔽信號的方法,以減少產(chǎn)生讀口屏蔽信號所需要的寄存器。第一端口地址總線為第一端口的高位地址線;第二端口地址總線為第二端口的高位地址線;所述第一端口 高位地址線的位數(shù)與第二端口高位地址線的位數(shù)相同。本發(fā)明實施例在雙口 RAM之外增加了一個雙端口 RAM的讀寫控制電路,有效 規(guī)避了雙口 RAM經(jīng)常可能發(fā)生的讀寫沖突問題,具有以下有益效果1、 簡化了規(guī)避雙口 RAM讀寫沖突的邏輯設計實現(xiàn);2、 無需二級緩存,節(jié)省了存儲器資源開銷;3、 釆用通用的異步時鐘轉換電路,提高了規(guī)避異步RAM讀寫沖突問題的可靠性。本發(fā)明實施例規(guī)避了第 一端口進行寫#:作而在第二端口進行讀#:作時的讀 寫沖突,本領域技術人員可以理解,可以對等的設置電路,來規(guī)避第一端口進 行讀操作而在第二端口進行寫操作時的讀寫沖突。本發(fā)明實施例還提供了一種雙端口 RAM的讀寫控制方法,如圖7所述,包括701,比較第一端口地址總線信號和第二端口地址總線信號,輸出第二端口 地址總線信號對應的存儲單元讀屏蔽信號;第二端口地址總線信號對應的存儲 單元讀屏蔽信號為當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并 且第一端口寫使能信號有效時,至少3個時鐘周期前為高電平,至少3個時鐘 周期后為低電平;702 ,將第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算; 703,將非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,與 第二端口的讀使能信號進行與運算,輸入到第二端口的讀使能端。704,將第一端口寫使能信號延遲至少2個時鐘周期,輸入第一端口的寫使能端705,將第一端口的數(shù)據(jù)總線信號延遲后,輸入第一端口的數(shù)據(jù)端;數(shù)據(jù)總 線信號延遲的時鐘周期數(shù)與第 一端口寫使能信號延遲的時鐘周期數(shù)相同。本發(fā)明實施例雙端口 RAM的讀寫控制方法,比較第一端口地址總線信號和 第二端口地址總線信號,輸出第二端口地址總線信號對應的存儲單元讀屏蔽信 號,當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并且第一端口寫使 能信號有效時,第二端口地址總線信號對應的存儲單元讀屏蔽信號至少3個時 鐘周期前為高電平,至少3個時鐘周期后為低電平。因此,當在雙端口RAM的 第一端口進行寫操作,并且在第二端口的相同存儲單元進行讀操作時,至少3 個時鐘周期前,屏蔽第二端口的讀使能端,至少3個時鐘周期后,第二端口的讀 使能端有效,規(guī)避了雙端口 RAM的讀寫沖突問題。另外,采用此方法容易實現(xiàn), 不占用存儲器資源。本發(fā)明雙端口 RAM的讀寫控制方法的第一實施例,如圖8所述,包括801, 將第一端口地址總線信號譯碼,生成一組第一端口存儲單元選擇信號; 所述一組第 一端口存儲單元選擇信號在第 一端口地址總線信號對應的輸出端為 高電平,在剩余輸出端為低電平;802, 將所述一組第一端口存儲單元選擇信號分別與第一端口寫使能信號進 行與運算;803, 將與運算后的一組第 一端口存儲單元選擇信號分別進行反向;804, 至少3個時鐘周期前,將與運算后的一組第一端口存儲單元選擇信號 作為一組存儲單元讀屏蔽信號輸出;至少3個時鐘周期后,將反向后的一組第 一端口存儲單元選擇信號作為一組存儲單元讀屏蔽信號輸出;805, 使用第二端口的時鐘信號,對一組第一端口存儲單元讀屏蔽信號進行兩級時鐘域的同步轉化。806, 從一組第一端口存儲單元讀屏蔽信號中,選出與第二端口地址總線信 號對應的存儲單元讀屏蔽信號。807, 將第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算;808, 將非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,與 第二端口的讀使能信號進行與運算,輸入到第二端口的讀使能端。809, 將第一端口寫使能信號延遲至少2個時鐘周期,輸入第一端口的寫使 a匕二山.810, 將第一端口的數(shù)據(jù)總線信號延遲后,輸入第一端口的數(shù)據(jù)端;數(shù)據(jù)總 線信號延遲的時鐘周期數(shù)與第 一端口寫使能信號延遲的時鐘周期數(shù)相同。本發(fā)明實施例雙端口 RAM的讀寫控制方法,產(chǎn)生一組讀屏蔽信號,當寫使 能信號有效時,至少3個時鐘周期前,在第一端口地址總線信號對應的輸出端 為高電平,在剩余輸出端為低電平;至少3個時鐘周期后,在第一端口地址總 線信號對應的輸出端為低電平,在剩余輸出端為高電平;選出第二端口地址總 線信號對應的存儲單元讀屏蔽信號;并且通過非運算和與運算,輸出到第二端 口的讀使能端口。因此,當?shù)谝欢丝诘膶懙刂房偩€與第一端口的讀地址總線相 同時,選出高電平的讀屏蔽信號,通過非運算和與運算后,給第二端口的讀使 能端輸出低電平,屏蔽第二端口的讀使能端口,因此避免了對端口 R雄的同一 地址單元同時進行讀寫的可能性,避免了雙端口讀寫沖突問題。延遲至少3個 時鐘周期后,選出高電平的讀屏蔽信號,通過非運算和與運算后,給第二端口 的讀使能端輸出低電平,使第二端口的讀使能端口有效。本發(fā)明雙端口 RAM的讀寫控制方法的第二實施例,如圖9所示,包括 901,將第一端口地址總線信號譯碼,生成一組第一端口存儲單元選擇信號;所述一組第一端口存儲單元選擇信號在第一端口地址總線信號對應的輸出端為高電平,在剩余輸出端為低電平;902,將第一端口地址總線寫完成信號譯碼,生成一組第一端口存儲單元寫 完成信號;所述一組第一端口存儲單元寫完成信號在第一端口地址總線信號對 應的輸出端為高電平,在剩余輸出端為低電平;903,將所述一組第一端口存儲單元選4奪信號分別與第一端口寫使能信號與運算;904,將所述一組第 一端口存儲單元寫完成信號分別與第一端口寫完成信號與運算;905,將與運算后的一組存儲單元寫完成信號延遲至少l個時鐘周期; 906,將延遲的一組存儲單元寫完成信號反向;907,在第一端口寫完成信號延遲至少1個時鐘周期前,將與運算后的一組 第一端口存儲單元選擇信號,作為一組第一端口存儲單元讀屏蔽信號輸出;在 第一端口寫完成信號延遲至少l個時鐘周期后,將反向后的一組第一端口存儲 單元寫完成信號,作為一組第一端口存儲單元讀屏蔽信號輸出;908,使用第二端口的時鐘信號,對一組第一端口存儲單元讀屏蔽信號進行 兩級時鐘域的同步轉化。909, 從一組第一端口存儲單元讀屏蔽信號中,選出與第二端口地址總線信 號對應的存儲單元讀屏蔽信號。910, 將第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算; 911,將非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,與第二端口的讀使能信號進行與運算,輸入到第二端口的讀使能端。912,將第一端口寫使能信號延遲至少2個時鐘周期,輸入第一端口的寫使a匕二山,913,將第一端口的數(shù)據(jù)總線信號延遲后,輸入第一端口的數(shù)據(jù)端;數(shù)據(jù)總 線信號延遲的時鐘周期數(shù)與第 一端口寫使能信號延遲的時鐘周期數(shù)相同。本發(fā)明實施例雙端口 RAM的讀寫控制方法,產(chǎn)生一組讀屏蔽信號,當寫使 能信號有效時,在第一端口寫完成信號延遲至少1個時鐘周期前,在第一端口 地址總線信號對應的輸出端為高電平,在剩余輸出端為低電平;在第一端口寫 完成信號延遲至少1個時鐘周期后,在第一端口地址總線信號對應的輸出端為 低電平,在剩余輸出端為高電平;選出第二端口地址總線信號對應的存儲單元 讀屏蔽信號;并且通過非運算和與運算,輸出到第二端口的讀使能端口。因此, 當?shù)谝欢丝诘膶懙刂房偩€與第一端口的讀地址總線相同時,在第一端口寫完成 信號延遲至少1個時鐘周期前,選出高電平的讀屏蔽信號,通過非運算和與運 算后,給第二端口的讀使能端輸出低電平,屏蔽第二端口的讀使能端口,因此 避免了對端口 RAM的同一地址單元同時進行讀寫的可能性,避免了雙端口讀寫 沖突問題。在第一端口寫完成信號延遲至少1個時鐘周期后,選出高電平的讀 屏蔽信號,通過非運算和與運算后,給第二端口的讀使能端輸出低電平,使第 二端口的讀使能端口有效。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟, 是可以通過程序指令相關硬件完成的。實施例對應的軟件可以存儲在一個計算 機可存儲讀取的介質中。本發(fā)明實施例還提供一種雙端口 RAM的讀寫控制裝置,如圖IO所述,包括:比較單元,用于比較第一端口地址總線信號A_wr_addr和第二端口地址總 線信號B_rd-addr,輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號 rd-mask-sel;第二端口地址總線信號對應的存儲單元讀屏蔽信號為當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并且第 一端口寫使能信號有效時,至少3個時鐘周期前為高電平,至少3個時鐘周期后為低電平;非運算單元,用于對第二端口地址總線信號對應的存儲單元讀屏蔽信號 rd—mask-sel進行非運算;第一與運算單元,用于將非運算后的第二端口地址總線信號對應的存儲單 元讀屏蔽信號rd—mask—sel與第二端口的讀使能信號B_read—en進行與運算后, 輸入到第二端口的讀使能端;第二延遲單元,用于將第一端口寫使能信號A—wr—en延遲至少2個時鐘周 期,輸入第一端口的寫使能端;第三延遲單元,用于將第一端口的數(shù)據(jù)總線信號A—data延遲后,輸入第一 端口的數(shù)據(jù)端,第三延遲電路延遲的時鐘周期數(shù)與第二延遲電路延遲的時鐘周 期數(shù)相同。本發(fā)明實施例雙端口 RAM的讀寫控制電路,比較單元比較第一端口地址總 線信號和第二端口地址總線信號,輸出第二端口地址總線信號對應的存儲單元 讀屏蔽信號,當?shù)?一端口地址總線信號和第二端口地址總線信號相同并且第一 端口寫使能信號有效時,第二端口地址總線信號對應的存儲單元讀屏蔽信號至 少3個時鐘周期前為高電平,至少3個時鐘周期后為低電平。因此,當在雙端 口 RAM的第一端口進行寫操作,并且在第二端口的相同存儲單元進行讀操:作時, 寫信號延遲3個時鐘周期進行寫操作,并且在第一端口寫完成信號延遲至少1 個時鐘周期前,屏蔽第二端口的讀使能端,因此,第一端口的寫使能端具有前保 護間隙;第一端口寫完成信號延遲至少1個時鐘周期后,第二端口的讀^f吏能端 有效,第二端口的寫使能端具有后保護間隙,因此規(guī)避了雙端口 RAM的讀寫沖突問題。另外,此電路結構筒單,容易實現(xiàn),不占用存儲器資源。所述比較單元有兩種,如圖ll所示,第一種比較單元包括 第一i奪碼單元,用于將第一端口地址總線信號A_wr—addr譯碼,生成一組 第一端口存儲單元選擇信號A—wr_addr = x;所述一組第一端口存儲單元選擇信 號A-wr—addr = x在第一端口地址總線信號對應的輸出端為高電平,在剩余輸 出端為低電平;第二與運算單元,用于將一組第一端口存儲單元選擇信號A_wr_addr = x 分別與寫使能信號A_wr_en與運算;第一延遲單元,用于將一組與運算后的一組第一端口存儲單元選擇信號 A_wr_addr = x分別延遲至少3個時4中周期;反向單元,用于將延遲的一組第一端口存儲單元選擇信號分別反向;輸出單元,用于在至少3個時鐘周期前,將與運算后的一組第一端口存儲 單元選擇信號作為一組第一端口存儲單元讀屏蔽信號輸出;至少3個時鐘周期 后,將反向后的一組第一端口存儲單元選擇信號作為一組第一端口存儲單元讀 屏蔽信號輸出;同步轉化單元,用于使用第二端口的時鐘信號B-clk,對一組第一端口存儲 單元讀屏蔽信號rd-mask[X]進行經(jīng)過兩級時鐘域的同步轉化,輸出同步轉化后 的一組存儲單元讀屏蔽信號rd-mask_2d [X];選擇單元,用于根據(jù)第二端口地址總線信號B_rd_addr ,從同步轉化后的 一組第一端口存儲單元讀屏蔽信號rd-mask_2d[X]中,選出與第二端口地址總線 信號對應的存儲單元讀屏蔽信號rd-mask—sel。本發(fā)明實施例雙端口 RAM的讀寫控制裝置,產(chǎn)生一組讀屏蔽信號,當寫使 能信號有效時,至少3個時鐘周期前,在第一端口地址總線信號對應的輸出端 為高電平,在剩余輸出端為低電平;至少3個時鐘周期后,在第一端口地址總線信號對應的輸出端為低電平,在剩余輸出端為高電平;選擇單元選出第二端 口地址總線信號對應的存儲單元讀屏蔽信號;并且通過非門和與門,輸出到第 二端口的讀使能端口。因此,當?shù)谝欢丝诘膶懙刂房偩€與第一端口的讀地址總 線相同時,選擇單元選出高電平的讀屏蔽信號,通過非運算單元和與運算單元 后,給第二端口的讀使能端輸出低電平,屏蔽第二端口的讀使能端口,因此避 免了對端口 RAM的同一地址單元同時進行讀寫的可能性,避免了雙端口讀寫沖 突問題。延遲至少3個時鐘周期后,選擇單元選出高電平的讀屏蔽信號,通過 非運算和與運算單元后,給第二端口的讀使能端輸出低電平,使第二端口的讀 使能端口有效。如圖12所示,第二種比較單元包括第一譯碼單元,用于將第一端口地址總線信號A_wr_addr if碼,生成一組 第一端口存儲單元選擇信號A—wr—addr-x;第二與運算單元,用于將所述一組第一端口存儲單元選擇信號A_wr_addr =x 分別與寫使能信號A—wr_en與運算,輸出與運算后的一組第一端口存儲單元選 擇信號;第二譯碼單元,用于將第一端口地址總線寫完成信號A_wr_finish—addr i奪 碼,生成一組第一端口存儲單元寫完成信號A_wr_finish-addr=x;第三與運算單元,用于將所述一組第一端口存儲單元寫完成信號 A—wr —finish_addr=x分別與第一端口寫使能信號A_wr_finish與運算,輸出與 運算后的一組第一端口存儲單元寫完成信號;第一延遲單元,用于將一組第一端口存儲單元寫完成信號 A_wr-finish_addr=x延遲至少1個時鐘周期,輸出延遲后的一組第一端口存儲 單元寫完成信號;反向單元,用于將延遲的一組第一端口存儲單元寫完成信號A—wr —f inish_addr=x分另ll反向;輸出單元,用于在第一端口寫完成信號延遲至少1個時鐘周期前,將與運 算后的一組第 一端口存儲單元選擇信號,作為 一組第 一端口存儲單元讀屏蔽信 號輸出;在第一端口寫完成信號延遲至少1個時鐘周期后,將反向后的一組第 一端口存儲單元寫完成信號,作為一組第一端口存儲單元讀屏蔽信號輸出;同步轉化單元,用于使用第二端口的時鐘信號,對一組第一端口存儲單元 讀屏蔽信號rd-mask[191]進行經(jīng)過兩級時鐘域的同步轉化,輸出同步轉化后的 一組存儲單元讀屏蔽信號rd-mask—2d[191];選擇單元,用于根據(jù)第二端口地址總線信號,從同步轉化后的一組第一端 口存儲單元讀屏蔽信號rd—mask-2d[191]中,選出與第二端口地址總線信號對應 的存^f諸單元讀屏蔽^[言號rd—mask-sel。本發(fā)明實施例雙端口 RAM的讀寫控制裝置,產(chǎn)生一組讀屏蔽信號,當寫使 能信號有效時,在第一端口寫完成信號延遲至少1個時鐘周期前,在第一端口 地址總線信號對應的輸出端為高電平,在剩余輸出端為低電平;在第一端口寫 完成信號延遲至少1個時鐘周期后,在第一端口地址總線信號對應的輸出端為 低電平,在剩余輸出端為高電平;選擇單元選出第二端口地址總線信號對應的 存儲單元讀屏蔽信號;并且通過非運算單元和與運算單元,輸出到第二端口的 讀使能端口。因此,當?shù)谝欢丝诘膶懙刂房偩€與第一端口的讀地址總線相同時, 在第一端口寫完成信號延遲至少l個時鐘周期前,選擇單元選出高電平的讀屏 蔽信號,通過非運算單元和與運算單元后,給第二端口的讀使能端輸出低電平, 屏蔽第二端口的讀使能端口,因此避免了對端口 RAM的同一地址單元同時進行 讀寫的可能性,避免了雙端口讀寫沖突問題。在第一端口寫完成信號延遲至少1個時鐘周期后,選擇單元選出高電平的讀屏蔽信號,通過非運算單元和與運算 單元后,給第二端口的讀使能端輸出低電平,使第二端口的讀使能端口有效。 本發(fā)明實施例可用于芯片電路設計中。當然,本發(fā)明的實施例還可有很多種,在不背離本發(fā)明的實施例精神及其 實質的情況下,本領域技術人員當可根據(jù)本發(fā)明的實施例做出各種相應的改變 和變形,但這些相應的改變和變形都應屬于本發(fā)明的實施例所附的權利要求的 保護范圍。
權利要求
1、一種雙端口RAM的讀寫控制電路,所述雙端口RAM包括用于讀/寫的兩個端口,其特征在于,所述雙端口RAM的讀寫控制電路包括比較電路,比較電路的輸入端接收第一端口地址總線信號和第一端口寫使能信號以及第二端口地址總線信號,比較第一端口地址總線信號和第二端口地址總線信號,當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并且第一端口寫使能信號有效時,比較電路的輸出端輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號,第二端口地址總線信號對應的存儲單元讀屏蔽信號至少3個時鐘周期前為高電平,至少3個時鐘周期后為低電平;非門,用于對第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算;第一與門,第一與門的一路輸入端接收非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,第一與門的另一路輸入端接收第二端口的讀使能信號,第一與門的輸出端連接第二端口的讀使能端。
2、 根據(jù)權利要求1所述的雙端口 RAM的讀寫控制電路,其特征在于,所述 比專交電3各包才舌譯碼器,譯碼器的輸入端接收第一端口地址總線信號;譯碼器的輸出端輸 出 一組第一端口存儲單元選擇信號;所述一組第一端口存儲單元選擇信號在第 一端口地址總線信號對應的輸出端為高電平,在剩余輸出端為低電平;一組第二與門,每個第二與門的一路輸入端接收一個第一端口存儲單元選 擇信號,該第二與門的另 一路輸入端接收第一端口寫使能信號;一組第一延遲電路,每個第一延遲電路輸入端連接一個第二與門的輸出端, 所述第一延遲電路延遲至少3個時鐘周期;一組D觸發(fā)器,每個D觸發(fā)器的時鐘脈沖端接收第一端口的時鐘信號,該D觸發(fā)器的預置端連接一個第二與門的輸出端,該D觸發(fā)器的清除端連接一個第一延遲電路的輸出端,該D觸發(fā)器的輸出端輸出一個第一端口存儲單元讀屏蔽信號;多路選擇器,多路選擇器的數(shù)據(jù)輸入端接收一組第一端口存儲單元讀屏蔽 信號,多路選擇器的選擇信號輸入端接收第二端口地址總線信號,多路選擇器的輸出端輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號。
3、根據(jù)權利要求1所述的雙端口 RAM的讀寫控制電路,其特征在于,所述 比專交電3各包4舌第一譯碼器,第一譯碼器的輸入端接收第一端口地址總線信號;第一"^碼 器的輸出端輸出 一組第 一端口存儲單元選擇信號;所述一組第 一端口存儲單元 選擇信號在第 一端口地址總線信號對應的輸出端為高電平,在剩余輸出端為低 電平;第二譯碼器,第二譯碼器的輸入端接收第 一端口地址總線的寫完成信號; 第二譯碼器的輸出端輸出 一組存儲單元寫完成信號;一組第二與門,每個第二與門的一路輸入端接收一個第一端口存儲單元選 擇信號,該第二與門的另 一路輸入端接收第 一端口寫使能信號;一組第三與門,每個第三與門的一路輸入端接收一個存儲單元寫完成信號, 該第三與門的另 一路輸入端接收第 一端口寫完成信號;一組第一延遲電路,每個第一延遲電路的輸入端接收一個第三與門的輸出 端,該第一延遲電路延遲至少1個時鐘周期;一組D觸發(fā)器,每個D觸發(fā)器的時鐘脈沖端接收第一端口的時鐘信號;該D 觸發(fā)器的預置端連接一個第二與門的輸出端;該D觸發(fā)器的清除端連接第一延 遲電路的輸出端;該D觸發(fā)器的輸出端輸出一個第一端口存儲單元讀屏蔽信號;多路選擇器,多路選擇器的數(shù)據(jù)輸入端接收一組第 一端口存儲單元讀屏蔽 信號,多路選擇器的選擇信號輸入端接收第二端口地址總線信號,多路選擇器 的輸出端輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號。
4、 根據(jù)權利要求2或3所述的雙端口 RAM的讀寫控制電路,其特征在于, 第一端口地址總線為第一端口的高位地址線;第二端口地址總線為第二端口的高位地址線;所述第一端口高位地址線的位數(shù)與第二端口高位地址線的位 數(shù)相同。
5、 根據(jù)權利要求2或3所述的雙端口 RAM的讀寫控制電路,其特征在于, 比較電路還包括 一組兩個串聯(lián)的D觸發(fā)器;多路選擇器的數(shù)據(jù)輸入端通過所述一組兩個串聯(lián)的D觸發(fā)器,接收所述一 組第一端口存儲單元讀屏蔽信號;所述兩個串聯(lián)的D觸發(fā)器的時鐘脈沖端分別 接收第二端口的時鐘信號。
6、 根據(jù)權利要求2或3所述的雙端口 RAM的讀寫控制電路,其特征在于, 還包括第二延遲電路,用于將第一端口寫使能信號延遲至少2個時鐘周期后,輸 入第一端口的寫使能端;第三延遲電路,用于將第一端口的數(shù)據(jù)總線信號延遲后,輸入第一端口的 數(shù)據(jù)端,第三延遲電路延遲的時鐘周期數(shù)與第二延遲電路延遲的時鐘周期數(shù)相同。
7、 根據(jù)權利要求6所述的雙端口 RAM的讀寫控制電3各,其特征在于,第一 延遲電路、第二延遲電路、以及第三延遲電路分別由觸發(fā)器組成。
8、 根據(jù)權利要求1所述的雙端口 RAM的讀寫控制電路,其特征在于,還包 括一組第四與門;每個第四與門的一路輸入端連接第二端口的一個數(shù)據(jù)端,該第四與門的另 一路輸入端連接所述第 一與門的輸出端,每個第四與門的輸出端 輸出與運算后的數(shù)據(jù)信號。
9、 一種雙端口 RAM的讀寫控制方法,所述雙端口 RAM包括用于讀/寫的兩 個端口,其特;f正在于,所述雙端口 RAM的讀寫控制方法包4舌比較第一端口地址總線信號和第二端口地址總線信號,輸出第二端口地址 總線信號對應的存儲單元讀屏蔽信號;第二端口地址總線信號對應的存儲單元 讀屏蔽信號為當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線信號相同并且第 一端口寫使能信號有效時,至少3個時鐘周期前為高電平,至少3個時鐘周期 后為低電平;將第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算; 將非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,與第二 端口的讀使能信號進行與運算,輸入到第二端口的讀使能端。
10、 根據(jù)權利要求9所述的雙端口 RAM的讀寫控制方法,其特征在于, 比較第一端口地址總線信號和第二端口地址總線信號,輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號的步驟包括將第一端口地址總線信號譯碼,生成一組第一端口存儲單元選擇信號;所 述一組第一端口存儲單元選擇信號在第一端口地址總線信號對應的輸出端為高 電平,在剩余輸出端為低電平;將所述一組第 一端口存儲單元選擇信號分別與第一端口寫使能信號與運算;將與運算后的 一組第 一端口存儲單元選擇信號分別進行反向; 至少3個時鐘周期前,將與運算后的一組第一端口存儲單元選擇信號作為 一組存儲單元讀屏蔽信號輸出;至少3個時鐘周期后,將反向后的一組第一端口存儲單元選擇信號作為一組存儲單元讀屏蔽信號輸出;從一組第一端口存儲單元讀屏蔽信號中,選出與第二端口地址總線信號對 應的存儲單元讀屏蔽信號。
11、根據(jù)權利要求9所述的雙端口 RAM的讀寫控制方法,其特征在于,比 較第一端口地址總線信號和第二端口地址總線信號,輸出第二端口地址總線信 號對應的存儲單元讀屏蔽信號的步驟包括將第一端口地址總線信號譯碼,生成一組第一端口存儲單元選擇信號;所述一組第一端口存儲單元選擇信號在第一端口地址總線信號對應的輸出端為高 電平,在剩余輸出端為低電平;將第一端口地址總線寫完成信號譯碼,生成一組第一端口存儲單元寫完成 信號;所述一組第一端口存儲單元寫完成信號在第一端口地址總線信號對應的 輸出端為高電平,在剩余輸出端為低電平;將所述一組第一端口存儲單元選擇信號分別與第一端口寫使能信號與運算;將所述一組第 一端口存儲單元寫完成信號分別與第 一端口寫完成信號與運算;將與運算后的一組存儲單元寫完成信號延遲至少1個時鐘周期; 將延遲的一組存儲單元寫完成信號反向;在第一端口寫完成信號延遲至少i個時鐘周期前,將與運算后的一組第一 端口存儲單元選擇信號,作為一組第一端口存儲單元讀屏蔽信號輸出;在第一 端口寫完成信號延遲至少1個時鐘周期后,將反向后的一組第一端口存儲單元 寫完成信號,作為一組第一端口存儲單元讀屏蔽信號輸出;從一組第一端口存儲單元讀屏蔽信號中,選出與第二端口地址總線信號對應的存儲單元讀屏蔽信號。
12、 根據(jù)權利要求10或11所述的雙端口 RAM的讀寫控制方法,其特征在于,從一組第一端口存儲單元讀屏蔽信號中,選出與第二端口地址總線信號對 應的存儲單元讀屏蔽信號的步驟之前,還包括使用第二端口的時鐘信號,對一組第一端口存儲單元讀屏蔽信號進行兩級 時鐘域的同步轉化。
13、 根據(jù)權利要求10或11所述的雙端口 RAM的讀寫控制方法,其特征在 于,還包括將第一端口寫使能信號延遲至少2個時鐘周期,輸入第一端口的寫使能端; 將第一端口的數(shù)據(jù)總線信號延遲后,輸入第一端口的數(shù)據(jù)端;數(shù)據(jù)總線信 號延遲的時鐘周期數(shù)與第 一端口寫使能信號延遲的時鐘周期數(shù)相同。
14、 一種雙端口 RAM的讀寫控制裝置,所述雙端口 RAM包括用于讀/寫的兩 個端口,其特征在于,所述雙端口 RAM的讀寫控制裝置包括比較單元,用于比較第一端口地址總線信號和第二端口地址總線信號,輸 出第二端口地址總線信號對應的存儲單元讀屏蔽信號;第二端口地址總線信號 對應的存儲單元讀屏蔽信號為當?shù)谝欢丝诘刂房偩€信號和第二端口地址總線 信號相同并且第一端口寫使能信號有效時,至少3個時鐘周期前為高電平,至 少3個時鐘周期后為低電平;非運算單元,用于對第二端口地址總線信號對應的存儲單元讀屏蔽信號進 行非運算;第一與運算單元,用于將非運算后的第二端口地址總線信號對應的存儲單 元讀屏蔽信號與第二端口的讀使能信號進行與運算后,輸入到第二端口的讀使
15、 根據(jù)權利要求14所述的雙端口 RAM的讀寫控制裝置,其特征在于,所 述比較單元包括第一譯碼單元,用于將第一端口地址總線信號譯碼,生成一組第一端口存 儲單元選擇信號;所述一組第一端口存儲單元選擇信號在第一端口地址總線信 號對應的輸出端為高電平,在剩余輸出端為低電平;第二與運算單元,用于將一組第 一端口存儲單元選擇信號分別與寫使能信號與運算;第一延遲單元,用于將一組與運算后的一組第一端口存儲單元選擇信號分別延遲至少3個時鐘周期;反向單元,用于將延遲的一組第一端口存儲單元選擇信號分別反向; 輸出單元,用于在至少3個時鐘周期前,將與運算后的一組第一端口存儲單元選擇信號作為一組第一端口存儲單元讀屏蔽信號輸出;至少3個時鐘周期后,將反向后的一組第一端口存儲單元選擇信號作為一組第一端口存儲單元讀屏蔽信號輸出;選擇單元,用于根據(jù)第二端口地址總線信號,從一組第一端口存儲單元讀 屏蔽信號中,選出與第二端口地址總線信號對應的存儲單元讀屏蔽信號。
16、 根據(jù)權利要求14所述的雙端口 R扁的讀寫控制裝置,其特征在于,所 述比較單元包括第一譯碼單元,用于將第一端口地址總線信號譯碼,生成一組第一端口存 儲單元選擇信號;第二與運算單元,用于將所述一組第 一端口存儲單元選擇信號分別與第一 端口寫使能信號與運算,輸出與運算后的一組第一端口存儲單元選擇信號;第二譯碼單元,用于將第一端口地址總線寫完成信號譯碼,生成一組第一 端口存儲單元寫完成信號;第三與運算單元,用于將所述一組第 一端口存儲單元寫完成信號分別與第 一端口寫完成信號與運算,輸出與運算后的一組第一端口存儲單元寫完成信號;第一延遲單元,用于將一組第一端口存儲單元寫完成信號延遲至少1個時 鐘周期,輸出延遲后的一組第一端口存儲單元寫完成信號;反向單元,用于將延遲的一組第一端口存儲單元寫完成信號分別反向; 輸出單元,用于在第一端口寫完成信號延遲至少1個時鐘周期前,將與運 算后的一組第 一端口存儲單元選擇信號,作為 一組第 一端口存儲單元讀屏蔽信 號輸出;在第一端口寫完成信號延遲至少1個時鐘周期后,將反向后的一組第 一端口存儲單元寫完成信號,作為一組第一端口存儲單元讀屏蔽信號輸出;選擇單元,用于根據(jù)第二端口地址總線信號,從一組第一端口存儲單元讀 屏蔽信號中,選出與第二端口地址總線信號對應的存儲單元讀屏蔽信號。
17、 根據(jù)權利要求15或16所述的雙端口 RAM的讀寫控制裝置,其特征在于,還包括同步轉化單元,用于使用第二端口的時鐘信號,對一組第一端口存 儲單元讀屏蔽信號進行經(jīng)過兩級時鐘域的同步轉化,輸出同步轉化后的一組存 儲單元讀屏蔽信號;選擇單元,用于根據(jù)第二端口地址總線信號,從同步轉化后的一組第一端 口存儲單元讀屏蔽信號中,選出與第二端口地址總線信號對應的存儲單元讀屏 蔽信號。
18、 根據(jù)權利要求15或16所述的雙端口 RAM的讀寫控制裝置,其特征在 于,還包括第二延遲單元,用于將第一端口寫使能信號延遲至少2個時鐘周期,輸入第一端口的寫使能端;第三延遲單元,用于將第一端口的數(shù)據(jù)總線信號延遲后,輸入第一端口的 數(shù)據(jù)端,第三延遲電路延遲的時鐘周期數(shù)與第二延遲電路延遲的時鐘周期數(shù)相同。
全文摘要
本發(fā)明實施例公開了一種雙端口RAM的讀寫控制電路、裝置、以及方法,涉及存儲器技術領域,為規(guī)避雙端口RAM的讀寫沖突問題而發(fā)明。所述電路包括比較電路,用于輸出第二端口地址總線信號對應的存儲單元讀屏蔽信號;非門,用于對第二端口地址總線信號對應的存儲單元讀屏蔽信號進行非運算;第一與門,第一與門的一路輸入端接收非運算后的第二端口地址總線信號對應的存儲單元讀屏蔽信號,第一與門的另一路輸入端接收第二端口的讀使能信號,第一與門的輸出端連接第二端口的讀使能端。本發(fā)明實施例可用于芯片電路設計中。
文檔編號G11C7/22GK101226767SQ20081000819
公開日2008年7月23日 申請日期2008年2月18日 優(yōu)先權日2008年2月18日
發(fā)明者王小璐, 趙宇翔 申請人:華為技術有限公司