從StratixIII及CycloneIV開(kāi)發(fā)板談FPGA配置(2)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
上文中說(shuō)到了CycloneIV中的幾種配置方式,JTAG或者AS模式配置EPCS64,其中我個(gè)人比較傾向于將上文提到的統(tǒng)稱為串行配置模式,而EPCS系列的配置芯片都是屬于串行配置芯片。而在本文中講到StratixIII的配置所使用的是FPP模式——快速被動(dòng)并行模式。配置芯片則不再是EPCS系列了,而是一款CFI Flash。
在此插入一個(gè)小知識(shí),Altera的Cyclone系列FPGA只支持AS、PS、JTAG這幾種串行的配置方式,而更為高端的Stratix系列則另外還能支持并行配置方式了。下面我們?cè)敿?xì)講講它的配置過(guò)程。
首先,不管是給EPCS也好,F(xiàn)lash也好,都得先生成適用于它們的sof文件。
這里和EPCS不同的是,需要設(shè)定Flash寫(xiě)入的開(kāi)始地址,選擇option,初始地址設(shè)置為0x3FE0000。至于為什么要這樣設(shè)置,可以查閱相關(guān)手冊(cè),在后文也會(huì)稍微解釋這個(gè)問(wèn)題,我們先重點(diǎn)了解配置過(guò)程。
有了配置文件,我們是否可以像AS模式配置EPCS那樣直接配置Flash呢?答案是否定的。所以這里我們需要借助FPGA,就跟上文中提到的jic模式一樣,通過(guò)FPGA來(lái)對(duì)Flash進(jìn)行讀寫(xiě)。上文中的jic模式,是通過(guò)Quartus提供jic文件,它可以自動(dòng)將這個(gè)過(guò)程整合在一起,將FPGA設(shè)定為Flash Loader。但在這里,Quartus還沒(méi)有做到如此完善,需要我們自己手動(dòng)得將FPGA“設(shè)計(jì)”成我們的Flash Loader。
雖然Quartus沒(méi)能把這個(gè)過(guò)程設(shè)置得像上文中的那么簡(jiǎn)單,但它給我們提供了一個(gè)IP核可用于并行配置:
我們可以在新工程中創(chuàng)建這樣一個(gè)IP核,選擇Flash Programming模式:
創(chuàng)建好了之后,在頂層原理圖中如下圖設(shè)計(jì):
如此便完成了FPGA Flash Loader的設(shè)計(jì),我們將這個(gè)工程的sof文件燒寫(xiě)到FPGA中:
隨后回到我們?cè)泄こ痰腜rogrammer,選擇Auto Detect,便可檢測(cè)到我們的Flash了。
如上圖,下方的結(jié)構(gòu)圖就和上文中jic模式時(shí)很類(lèi)似了,F(xiàn)PGA充當(dāng)了Flash Loader,對(duì)CFI Flash進(jìn)行寫(xiě)入操作。在配置文件選擇中,將之前生成的pof文件加入到Flash中,Start后便可完成對(duì)Flash的配置了。之后再上電,F(xiàn)lash便會(huì)對(duì)FPGA進(jìn)行配置。
在這個(gè)過(guò)程中可以明顯感覺(jué)到,這種并行模式的速度要比之前的串行模式快很多,只不過(guò)配置過(guò)程稍顯復(fù)雜了。