FPGA設(shè)計(jì)筆記:QSPI Flash與DDR3L SDRAM采用同一I/O分區(qū)
眾所周知FPGA的硬件資源被劃分為若干個(gè)不同的bank,Xilinx一些高端的FPGA器件由22個(gè)甚至更多個(gè)bank組成,這樣設(shè)計(jì)主要是為了提高靈活性。FPGA的I/O支持1.8V、2.5V和3.3V等多種電平輸入輸出,為了獲得這些I/O電平,就需要在對(duì)應(yīng)bank的供電引腳輸入對(duì)應(yīng)的電源電壓,這樣就節(jié)省了很多總線轉(zhuǎn)換器。
Flash是一種具有電可擦除的可編程ROM存儲(chǔ)器,掉電內(nèi)容不會(huì)丟失,按接口可以分為兩大類:并行Flash和串行Flash,并行Flash存儲(chǔ)量大,速度快;而串行Flash存儲(chǔ)量相對(duì)較小,但體積小,連線簡(jiǎn)單,可減小電路面積,節(jié)約成本。SPI Flash是內(nèi)嵌SPI總線接口的串行Flash,它比起傳統(tǒng)的并行總線接口Flash,節(jié)省了很多的I/O口資源。
SDRAM(Synchronous Dynamic Random Access Memory,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)也是FPGA設(shè)計(jì)中經(jīng)常采用的內(nèi)存器件,掉電后不能保存數(shù)據(jù),功耗也比較大。因此Flash用于保存FPGA系統(tǒng)啟動(dòng)所需的配置文件,SDRAM則用于系統(tǒng)的數(shù)據(jù)的緩存,所有程序的運(yùn)行都在內(nèi)存中進(jìn)行,速度快。
Xilinx Spartan-7 FPGA器件適用于那些成本敏感型應(yīng)用。它采用小型封裝卻擁有高比例的I/O數(shù)量,單位功耗性價(jià)比相較前代產(chǎn)品提升多達(dá)四倍,可提供靈活的連接能力、接口橋接和輔助芯片等功能。
圖1:Xilinx推出的成本敏感型的Spartan-7系列FPGA器件
最小型的Spartan-7 FPGA只集成了100個(gè)I/O管腳,劃分為兩個(gè)bank,如果能夠?qū)崿F(xiàn)將QSPI Flash和DDR SDRAM都集成到同一bank那么就會(huì)充分利用有限的I/O資源。QSPI Flash的工作電壓是1.8V,而DDR3L SDRAM的工作電壓為1.35V,因此我們需要借助電壓轉(zhuǎn)換模塊、MIG(Memory Interface Generator, 內(nèi)存接口生成器)IP模塊和Vivado工具的一些設(shè)置,專用I/O bank 0電壓為1.8V,bank 14電壓為1.35V,具體鏈接方式如下圖所示:
圖2:Spartan-7 FPGA同一bank連接1.8V SPI Flash和1.35V DDR3L
雖然這不是一個(gè)標(biāo)準(zhǔn)的解決方案,只是限于有限的I/O資源,但是對(duì)于小型系統(tǒng)設(shè)計(jì)不失為一種好的方法。具體設(shè)計(jì)細(xì)節(jié)如器件選型、原理圖、確定時(shí)鐘頻率等要求請(qǐng)參看官方文檔XAPP1313。