|
例說FPGA連載37:DDR控制器集成與讀寫測(cè)試之FPGA片內(nèi)存儲(chǔ)器概述 特權(quán)同學(xué),版權(quán)所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1c0nf6Qc
片內(nèi)存儲(chǔ)器是基于FPGA的嵌入系統(tǒng)中最簡單的存儲(chǔ)器。因?yàn)榇鎯?chǔ)是在FPGA內(nèi)部完成的,電路板上無需外部連線。FPGA的片內(nèi)存儲(chǔ)器可以根據(jù)需求定義存儲(chǔ)器的大小、位寬、種類、及特殊的片內(nèi)存儲(chǔ)器特性,如DDR模式等。 片內(nèi)存儲(chǔ)器在基于FPGA的嵌入式系統(tǒng)的存儲(chǔ)器中具有最高吞吐量和最低反應(yīng)延時(shí)。它的反應(yīng)延時(shí)通常僅為一個(gè)時(shí)鐘周期。通過流水線操作訪問存儲(chǔ)器,可以使吞吐量達(dá)到每個(gè)時(shí)鐘周期進(jìn)行一次數(shù)據(jù)處理。 片內(nèi)存儲(chǔ)器的另一個(gè)好處是,由于它是在FPGA上直接實(shí)現(xiàn)的,它無需在板上或電路中進(jìn)行寫入。使用片內(nèi)存儲(chǔ)器可以節(jié)省開發(fā)時(shí)間和成本。 盡管速度很快,片內(nèi)存儲(chǔ)器在一定程度上會(huì)受到其容量的限制。FPGA可用的片內(nèi)存儲(chǔ)器的數(shù)量由所使用的特定FPGA器件決定,如Cyclone II系列有低至15KB存儲(chǔ)量的器件,Stratix III系列卻有高到2MB存儲(chǔ)量的器件。 因?yàn)槎鄶?shù)片內(nèi)存儲(chǔ)器都是易失性的,它在斷電后丟失數(shù)據(jù)。然而,某些片內(nèi)存儲(chǔ)器可以在FPGA配置時(shí)自動(dòng)初始化,相當(dāng)于提供了一種非易失性的功能。 片內(nèi)存儲(chǔ)器的最佳應(yīng)用場(chǎng)合包括作為常見的緩存、點(diǎn)到點(diǎn)的緩存、查找表以及FIFO等。 緩存,由于其具有低反應(yīng)延時(shí),片內(nèi)存儲(chǔ)器在微處理器中作為緩存表現(xiàn)良好。NIOS II處理器使用片內(nèi)存儲(chǔ)器作為引導(dǎo)和數(shù)據(jù)緩存。片內(nèi)存儲(chǔ)器有限的容量作為緩存通常不是一個(gè)問題,因?yàn)榫彺姹旧矶枷鄬?duì)很小。 點(diǎn)到點(diǎn)的緩存,低延時(shí)的存取也使得片內(nèi)存儲(chǔ)器適用于作為器件間的緩存,即點(diǎn)到點(diǎn)的緩存。它是指處于正常的尋址空間,但與微處理器有專用接口的存儲(chǔ)器。這些存儲(chǔ)器主要用來實(shí)現(xiàn)緩存存儲(chǔ)器的高速、低反應(yīng)延時(shí)特性。 查找表,針對(duì)某些軟件編程功能,尤其是數(shù)學(xué)上的功能。與在軟件中進(jìn)行計(jì)算相比,使用查找表儲(chǔ)存所有可能的功能結(jié)果通常是最快的方法。片內(nèi)存儲(chǔ)器在這方面表現(xiàn)良好,前提是片內(nèi)存儲(chǔ)器的可用容量能夠容納可能的功能結(jié)果。 FIFO,嵌入系統(tǒng)經(jīng)常需要管理從一個(gè)模塊到另一個(gè)模塊的數(shù)據(jù)流。FIFO可以在以不同的高速運(yùn)行著的模塊間作為數(shù)據(jù)緩沖存儲(chǔ)器。根據(jù)應(yīng)用程序所需的FIFO的大小,片內(nèi)存儲(chǔ)器可以作高速和便利的FIFO存儲(chǔ)。 但片內(nèi)存儲(chǔ)器不適用于需要大容量存儲(chǔ)的應(yīng)用中。因?yàn)槠瑑?nèi)存儲(chǔ)器容量相對(duì)受限,應(yīng)避免使用其儲(chǔ)存大量的數(shù)據(jù)。然而,有些工作可以更好地利用片內(nèi)存儲(chǔ)器完成。如果應(yīng)用程序使用多個(gè)小塊數(shù)據(jù),并且不是所有的數(shù)據(jù)塊都適合使用片內(nèi)存儲(chǔ)器,設(shè)計(jì)者應(yīng)當(dāng)仔細(xì)考慮某些應(yīng)用可以使用片內(nèi)存儲(chǔ)器。如果用戶的目標(biāo)是系統(tǒng)的高速性能,可以將最經(jīng)常存取的數(shù)據(jù)放在片內(nèi)存儲(chǔ)器中。 |