Xilinx Spartan-3系列FPGA的配置電路
這里要談的是Xilinx的spartan-3系列FPGA的配置電路。當然了,其它系列的FPGA配置電路都是大同小異的,讀者可以類(lèi)推,重點(diǎn)參考官方提供的datasheet,畢竟那才是最權威的資料。
所謂典型,這里要列出一個(gè)市面上最常見(jiàn)的spartan-3的xc3s400的配置電路。所有spartan-3的FPGA配置電路的鏈接方式都是一樣的。Xc3s400是40萬(wàn)門(mén)FPGA,它的Configuration Bitstream雖然只有1.699136Mbit,但是它還是需要2Mbit的配置芯片XCF02S,不能想當然的以為我的設計簡(jiǎn)單,最多用到1Mbit,那么我選XCF01S(1Mbit)就可以了。事實(shí)并非如此,即使你只是用xc3s400做一個(gè)流水燈的設計,那么你下載到ROM(XCF02S)里的數據也是1.699136Mbit的,所以對于FPGA的配置ROM的選擇宜大不宜小。
配置電路無(wú)非有下面五種:主串,從串,主并,從并,JTAG。前四種是相對于下載到PROM而言的(串并是相對于不同配置芯片是串口和時(shí)并口協(xié)議和FPGA通訊區分的),只有JTAG是相對于調試是將配置下載到FPGA的RAM而言的(掉電后丟失)。FPGA和CPLD相比,CPLD是基于ROM型的,就是在數據下載到CPLD上,掉電后不丟失。而FPGA則是基于RAM的,如果沒(méi)有外部ROM存儲配置數據,那么掉電后就丟失數據。所以FPGA都需要外接有配置芯片(當然現在也有基于FLASH的FPGA出現)。那么我們就來(lái)看一下主串模式下FPGA的配置電路的連接。
官方的硬件連接如下:
為了增加配置電路的可靠性,通常我們我們增加一些抗干擾的設計(如增加濾波電容、匹配電阻):
先看PROM芯片的各個(gè)管腳吧。18,19,20腳就不談了,根據datasheet給供相對應的電平;3腳CLK是接了FPGA的CCLK,數據通信的同步就是通過(guò)FPGA的CCLK產(chǎn)生的時(shí)鐘進(jìn)行的;因為使用的芯片時(shí)串行的配置芯片,所以只有一個(gè)數據信號口DO,連接到FPGA的DIN口(上圖沒(méi)有畫(huà)出),和上面的時(shí)鐘信號協(xié)同工作完成串行數據傳輸,每當CLK的上升沿鎖存數據,同時(shí)PROM內部的地址計數器自動(dòng)增加;另外還有兩條控制信號線(xiàn)時(shí)INIT(連接PROM的OE/RESET)和DONE(連接PROM的CE),OE/RESET是為了確保每次重新配置前PROM的地址計數器復位;關(guān)于CE腳,官方資料說(shuō)得也不是很詳細,以我個(gè)人的理解,CE應該是chip enable的縮寫(xiě),從它和FPGA的DONE腳連接我們不難推斷出,FPGA未配置完成時(shí)DONE=0,那么配置芯片PROM處于片選狀態(tài),而一旦配置完成DONE=1,那么PROM就不再被選通,同時(shí)datasheet也說(shuō)到這個(gè)管腳可以直接接地,就是一直片選中,但是這樣會(huì )使DATA口有持續的數據信號輸出,同時(shí)導致不必要的電流消耗;CEO腳這里不接,因為它在多個(gè)PROM的配置電路中時(shí)作為下一個(gè)PROM的OE端信號連接用的;CF信號時(shí)連接FPAG的PROG_B接口的,它的作用就是產(chǎn)生開(kāi)始配置信號,它連接了一個(gè)上拉電阻,如果PROG_B產(chǎn)生低電平脈沖則PROM會(huì )重新開(kāi)始一次配置,所以我們會(huì )在這條線(xiàn)上接一個(gè)按鍵到地,如果按鍵按下那么就會(huì )使能PROM重新配置FPGA;還有幾個(gè)信號接口TDI,TCK,TMS,TDO都是PROM和PC連接的信號,PC通過(guò)這些電路(通常接一片驅動(dòng)隔離芯片后通過(guò)并口通信,這里不重點(diǎn)介紹了)下載數據到PROM中。
上面談及PROM的信號接口時(shí)都附帶的談到了FPGA的配置管腳。這里再做一些歸納性的說(shuō)明。FPGA有7個(gè)專(zhuān)用的配置管腳(CCLK,DIN,PROG_B,DONE,HSWAP_EN,M0,M1,M2),4個(gè)專(zhuān)用的JTAG管腳(TDI,TCK,TMS,TDO),這些管腳是由VCCAUX專(zhuān)門(mén)供電的(該系列FPGA通常接VCCAUX=2.5V)。FPGA的M0,M1,M2腳是進(jìn)行配置模式選擇用的,該電路主串模式下{M0,M1,M2}=000,如果時(shí)JTAG下載模式{M0,M1,M2}=101。上面沒(méi)有提及的HSWAP_EN管腳接地,則是用于設置當FPAG處于配置狀態(tài)下其它閑置管腳為上拉狀態(tài),而如果該管腳接高電平,則FPAG處于配置狀態(tài)下其它閑置管腳浮空。所以為了減少FPGA配置過(guò)程的干擾,一般把此腳接地。
fpga相關(guān)文章:fpga是什么
電流傳感器相關(guān)文章:電流傳感器原理 上拉電阻相關(guān)文章:上拉電阻原理
評論