RAM分為簡(jiǎn)單雙口RAM和真雙口RAM
在FPGA設(shè)計(jì)過程中,使用好雙口RAM,也是提高效率的一種方法。
官方將雙口RAM分為簡(jiǎn)單雙口RAM和真雙口RAM。
簡(jiǎn)單雙口RAM只有一個(gè)寫端口,一個(gè)讀端口。
真雙口RAM分別有兩個(gè)寫端口和兩個(gè)讀端口。
無論是簡(jiǎn)單雙口RAM還是真雙口RAM,在沒有讀操作的情況下,應(yīng)將讀使能rden信號(hào)拉成低電平,節(jié)省功耗。
在兩種情況下,都應(yīng)當(dāng)避免read-during-write,雖然可在軟件中進(jìn)行設(shè)置,但是,作為設(shè)計(jì)者,應(yīng)當(dāng)盡量避免此種情況。
對(duì)于真雙口RAM,還應(yīng)當(dāng)避免兩個(gè)讀端口或者兩個(gè)寫端口同時(shí)操作同一個(gè)地址,RAM中并沒有此種沖突解決電路,設(shè)計(jì)者應(yīng)該避免這種沖突。
無論是那種雙口RAM,讀時(shí)序圖是相同的。
當(dāng)讀使能有效時(shí),數(shù)據(jù)會(huì)在時(shí)鐘下一個(gè)上升沿從Q端輸出。
真雙口RAM給設(shè)計(jì)帶來很多便利。在高速存儲(chǔ)中,需要對(duì)連續(xù)的數(shù)據(jù)同時(shí)處理,使用簡(jiǎn)單雙口RAM只能讀取一個(gè)數(shù)據(jù),而使用真雙口RAM可以同時(shí)讀取兩個(gè)數(shù)據(jù),這樣明顯提高讀取速度以及處理速度。
調(diào)用真雙口RAM,如圖設(shè)置。
這里可以設(shè)置時(shí)鐘方案,而讀使能rden并非必須信號(hào)。當(dāng)使用rden信號(hào)時(shí),此信號(hào)高電平有效,當(dāng)不使用rden信號(hào)時(shí),給定地址,下一個(gè)脈沖數(shù)據(jù)從q端口送出。
這里的設(shè)置非常重要,當(dāng)選中read output ports時(shí),q端會(huì)增加一級(jí)寄存器。雖然這樣增加流水線能夠提高電路的速度,但同時(shí)從讀使能有效到最終數(shù)據(jù)有效將會(huì)多延遲一個(gè)時(shí)鐘周期。在設(shè)計(jì)中要格外注意。根據(jù)設(shè)計(jì)自行設(shè)置。
上面兩張圖是指定對(duì)同一地址操作時(shí)的輸出。作為設(shè)計(jì)者,應(yīng)盡量在自己的設(shè)計(jì)中避免這種情況發(fā)生。
真雙口RAM用好了是非常省時(shí)間的。之前我們文章中提到硬件FFT的實(shí)現(xiàn),在實(shí)現(xiàn)過程中,使用基2的設(shè)計(jì)方案,需要同時(shí)讀取兩個(gè)RAM數(shù)據(jù),這種情況下可以使用真雙口RAM提高效率。