|
勇敢的芯伴你玩轉Altera FPGA連載14:FPGA下載配置電路 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1i5LMUUD
上世紀八十年代,聯合測試行為組織(Joint Test ActI/OnGroup,簡稱JTAG)制定了主要用于PCB和IC的邊界掃描測試標準。該標準于1990 年被IEEE 批準為IEEE1149.1-1990 測試訪問端口和邊界掃描結構標準。隨著芯片設計和制造技術的快速發展,JTAG越來越多的被用于電路的邊界掃描測試和可編程芯片的在線系統編程。 FPGA器件都支持JTAG進行在線配置,JTAG邊界掃描的基本原理如圖2.11所示。在FPGA器件內部,邊界掃描寄存器由TDI信號作為數據輸入,TDO信號作為數據輸出,形成一個很大的移位寄存器鏈。而JTAG通過整個寄存器鏈,可以配置或者訪問FPGA器件的內部邏輯狀態或者各個I/O引腳的當前狀態。
圖2.11 JTAG邊界掃描原理 在這里我們不過多的研究JTAG的原理。對于電路設計來說,JTAG的四個信號TCK/TMS/TDI/TDO(TRST信號一般可以不用)以及電源、地連接到下載線即可。 說到FPGA的配置,這里不得不提一下他們和CPLD內部存儲介質的不同。CPLD由于大都是基于PROM或Flash來實現可編程特性,因此對他們進行在線編程時就已將配置數據流固化好了,重新上電后還能夠運行固有的配置數據。FPGA大都是基于SRAM來實現可編程特性,換句話說,通過JTAG實現在線編程時,在保持不斷電的情況下,FPGA能夠正常運行,而一旦掉電,SRAM數據丟失,FPGA則一片空白,無法繼續運行任何既定功能。因此,FPGA通常需要外掛一個用于保存當前配置數據流的PROM或Flash芯片,我們通常稱之為“配置芯片”,CPLD則不需要。 因此,對于FPGA器件,我們若希望它產品化,可以脫機(PC機)運行,那么就必須在板級設計時考慮它的配置電路。也不用太擔心,其實FPGA廠商的器件手冊里也會給出推薦的配置芯片和參考電路,大多情況下依葫蘆畫瓢便可。當然了,板級設計還是馬虎不得的,有幾個方面是需要注意的: ● 配置芯片盡量靠近FPGA。 ● 考慮配置信號的完整性問題,必要時增加阻抗匹配電阻。 ● 部分配置引腳可以被復用,但是要謹慎使用,以免影響器件的上電配置過程。 FPGA配置電路的設計是非常重要的,相關信號引腳通常都是固定并且專用的,需要參考官方推薦電路進行連接。 如圖2.12所示,這是FPGA下載和配置的示意圖。在圖2.12的左側,DC10插座將FPGA器件的JTAG專用引腳TCK、TMS、TDI、TDO引出,通過USB-Blaster下載器可以連接這個DC10插座和PC機,實現從PC機的Quartus II軟件到FPGA器件的在線燒錄或配置芯片(SPI FLASH)的固化。而在圖2.12的右側,一顆SPI FLASH作為FPGA器件的配置芯片,FPGA器件的固化代碼可以存儲在這顆SPI FLASH中,當FPGA器件每次上電時,都會直接從SPI FLASH中讀取固化代碼并運行。
圖2.12 FPGA下載和配置示意圖 為了實現上述圖2.12的配置電路正常工作,我們還需要如圖2.13所示,將MSEL0/MSEL1/MSEL2引腳分別連接到GND/2.5V/GND,這是設定FPGA器件在上電后直接進入AS配置模式,即從SPI FLASH的固化代碼啟動運行。需要額外說明的是,無論MSEL0/MSEL1/MSEL2引腳如何設置,當JTAG在線配置FPGA時,FPGA器件都會優先運行JTAG最新燒錄的代碼。CONF_DONE\nCONFIG\nSTATUS三個信號則分別上拉到3.3V,同時nCONFIG連接按鍵S17,可以通過這個按鍵使FPGA器件重新加載配置代碼。
圖2.13 FPGA配置引腳連接電路 |