目前,大多數FPGA芯片是基于 SRAM 的結構的, 而 SRAM 單元中的數據掉電就會丟失,因此系統上電后,必須要由配置電路將正確的配置數據加載到 SRAM 中,此后 FPGA 才能夠正常的運行。
常見的配置芯片有EPCS 芯片 (EPCS4、EPCS8、EPCS16、EPCS64、EPCS128),還有通用的串行 SPI FLASH 芯片如 M25P40、 M25P16、 W25Q16 等。
配置(configuration)是對FPGA的內容進行編程的過程。每次上電后都需要進行配置是基于SRAM工藝FPGA的一個特點,也可以說是一個缺點。FPGA配置過程如下:
FPGA配置方式
根據FPGA在配置電路中的角色,可以將配置方式分為三類:
1.FPGA主動串行(AS)方式
2. JTAG方式
3. FPGA被動(Passive)方式
FPGA配置過程
FPGA的配置包括3各階段:復位、配置和初始化。
FPGA正常上電后,當其nCONFIG管腳被拉低時,器件處于復位狀態,這時所有的配置RAM內容被清空,并且所有I/O處于高阻態,FPGA的狀態管腳nSTATUS和CONFIG_DONE管腳也將輸出為低。當FPGA的nCONFIG管腳上出現一個從低到高的跳變以后,配置就開始了,同時芯片還會去采樣配置模式(MSEL)管腳的信號狀態,決定接受何種配置模式。
隨之,芯片將釋放漏極開路(open-drain)輸出的nSTATUS管腳,使其由片外的上拉電阻拉高,這樣,就表示FPGA可以接收配置數據了。在配置之前和配置過程中,FPGA的用戶I/O均處于高阻態。
在接收配置數據的過程中,配置數據由DATA管腳送入,而配置時鐘信號由DCLK管腳送入,配置數據在DCLK的上升沿被鎖存到FPGA中,當配置數據被全部載入到FPGA中以后,FPGA上的CONF_DONE信號就會被釋放,而漏極開路輸出的CONF_DONE信號同樣將由外部的上拉電阻拉高。因此,CONF_DONE管腳的從低到高的跳變意味著配置的完成,初始化過程的開始,而并不是芯片開始正常工作。
INIT_DONE是初始化完成的指示信號,它是FPGA中可選的信號,需要通過Quartus II工具中的設置決定是否使用該管腳。在初始化過程中,內部邏輯、內部寄存器和I/O寄存器將被初始化,I/O驅動器將被使能。
當初始化完成以后,器件上漏極開始輸出的INIT_DONE管腳被釋放,同時被外部的上拉電阻拉高。這時,FPGA完全進入用戶模式,所有的內部邏輯以及I/O都按照用戶的設計運行,這時,那些FPGA配置過程中的I/O弱上拉將不復存在。不過,還有一些器件在用戶模式下I/O也有可編程的弱上拉電阻。在完成配置以后,DCLK信號和DATA管腳不應該被浮空(floating),而應該被拉成固定電平,高或低都可以。
FPGA配置模式選擇
用戶可以通過設置FPGA上的MSEL0、MESL1兩個引腳的狀態來選擇配置方式。各種方式的MSEL0、MESL1設置如下表所列:
說明:
在上表中,如果只采用一種配置方式,則可以直接將MSEL0、MESL1連接到VCC(注意要與FPGA的IO口的供電VCCIO相同)或GND;
如果需要多種配置方式,那么MSEL要用控制器(單片機、CPLD等)來控制以進行切換;
MSEL管腳在配置開始前必須處于一個固定的狀態,因此不能將MSEL管腳懸空。
主動串行配置
主動串行配置方式(AS)是將配置數據事先存儲在串行配置器件EPCS中,然后在系統上電時Cyclone IV FPGA通過串行接口讀取配置數據(如果是壓縮數據,還會進行解壓縮處理)對內部的SRAM單元進行配置。
因為上述配置過程中FPGA控制配置接口,因此通常稱為主動配置方式。在配置期間,Cyclone IV用過串行接口來讀配置數據,來對里面的SRAM編程。串行配置器件的四個接口包括,串行時鐘輸入DCLK,串行數據輸出DATA,低有效的片選信號NCE,串行數據輸入ASDI。
主動串行配置電路圖:
因為FPGA上的nSTATUS、CONFIG_DONE管腳都是開漏結構,所以都要接上拉電阻。FPGA的片選腳nCE必須接地。
JTAG配置
通過JTAG接口,利用Quartus II軟件可以直接對FPGA進行單獨的硬件重新配置。Quartus II軟件在編譯時會自動生成用于JTAG配置的.sof文件。
如果同時使用AS方式和JTAG方式來配置FPGA,JTAG配置方式擁有最高的優先級,此時AS方式將停止,而執行JTAG方式配置。
利用Quartus II軟件和USB Blaster等下載電纜可下載配置數據到FPGA。Quartus II軟件可以驗證JTAG配置是否成功。JTAG配置通過下載電纜使用SOF、Jam或者JBC文件直接對FPGA進行配置,這種配置方式只能用于調試階段,因為,掉電后FPGA中的配置數據將丟失。
被動串行配置
被動串行PS配置方式是Altera Cyclone IV系列FPGA配置方式中比較常用的方式。但是,在工程應用中若采用這種配置方式,FPGA需要連接一個智能主機(比如復雜可編程邏輯器件CPLD/微控制單元MCU等)以給其提供配置時鐘和配置數據。
在該配置方式下,智能主機在保證與存儲配置數據的閃存通信無誤的情況下,只需向FPGA提供一個DCLK信號和一個DATA0信號即可實現對FPGA的配置。另外,該DCLK信號還可以實現多種頻率以滿足用戶對配置時間的需求,這是該配置方式的一大亮點。
本文介紹了以Altera型的FPGA芯片為例介紹了FPGA的上電過程,并描述了三種常見的配置模式,用戶可以根據不同的需求來采用對應的配置模式,每種配置模式下對應的配置數據類型也是不相同的。
今天的內容就到這了,如果您對文章內容方面還有疑問,可以掃描下方二維碼,會有專門的老師幫你解決。
掃描失敗可添加微信號:18138814636
加入發燒友VIP會員獲取更多學習資料請點擊下方鏈接:
﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
免責聲明:內容整理自網絡,版權歸原作者所有,如涉及作品版權問題,請及時與我們聯系,謝謝!
————你可能錯過的往期干貨,更多干貨請點擊文末閱讀原文————
向上劃動即可查看更多哦
5、關于射頻芯片,看這一篇就夠了?。ǜ韶浭詹兀?/span>
7、55頁PPT!很火的MOS管電路工作原理及詳解,沒有之一!
1、大神教你DIY | 如何用一塊FPGA開發板制作音樂盒?!
3、四旋翼 DIY高大上!用STM32單片機搞定四旋翼無人機飛控
5、史上最具創意鬼才10大DIY詳細集錦,你趕緊看看吧?。ㄊ詹匕妫?/span>
8、暴力拆解特斯拉電池組,探究美帝黑科技!(驚呆了?。?/a>
電子發燒友學院精選
2、【學院推薦】LabVIEW與PLC如何進行Modbus通信?
4、【學院推薦】LabVIEW編程實例:手把手教你按鍵監視小軟件的實現
5、【學院推薦】PCB工程師不得不看:超級實用AD常用快捷鍵總結
電子發燒友活動推薦
1、關于ESD原理及防護,這篇文章太專業了!點贊!(征文)
3、超強的四軸無人機飛控源代碼,支持STM32所有系列(附項目資料)
4、11個電源設計小技巧,看完提高一半的工作效率?。ǜ劫Y料下載)
5、從菜鳥到高手,學習arm32位單片機的必經之路,給大家分享個人經驗!
7、學好LLC開關電源設計,你必須要弄懂的原理知識(文末送資料大禮包)
電子發燒友電路精選
2、20個超經典模擬電路,工程師你知道幾個?(收藏:附答案下載)
7、太牛了!電路圖符號超強科普,不懂物理也能輕松看懂電路圖?。ㄍ扑]收藏)
電子發燒友資料精選
2、STM32大神筆記,超詳細單片機學習匯總資料(干貨分享)
3、工程師快速提升技能就看這份資料——固態繼電器(SSR)使用指南
6、測量電子電路設計資料大全(電路圖集+設計方案+制作流程)
電子發燒友熱文推薦
7、55頁PPT!很火的MOS管電路工作原理及詳解,沒有之一!
電子發燒友拆解及DIY推薦
1、大神教你DIY | 如何用一塊FPGA開發板制作音樂盒?!
3、四旋翼 DIY高大上!用STM32單片機搞定四旋翼無人機飛控
5、史上最具創意鬼才10大DIY詳細集錦,你趕緊看看吧!(收藏版)
8、暴力拆解特斯拉電池組,探究美帝黑科技?。@呆了?。?/a>
電子發燒友學院精選
2、【學院推薦】LabVIEW與PLC如何進行Modbus通信?
4、【學院推薦】LabVIEW編程實例:手把手教你按鍵監視小軟件的實現
5、【學院推薦】PCB工程師不得不看:超級實用AD常用快捷鍵總結
電子發燒友活動推薦
1、關于ESD原理及防護,這篇文章太專業了!點贊!(征文)
3、超強的四軸無人機飛控源代碼,支持STM32所有系列(附項目資料)
4、11個電源設計小技巧,看完提高一半的工作效率?。ǜ劫Y料下載)
5、從菜鳥到高手,學習arm32位單片機的必經之路,給大家分享個人經驗!
7、學好LLC開關電源設計,你必須要弄懂的原理知識(文末送資料大禮包)
電子發燒友電路精選
2、20個超經典模擬電路,工程師你知道幾個?(收藏:附答案下載)
7、太牛了!電路圖符號超強科普,不懂物理也能輕松看懂電路圖?。ㄍ扑]收藏)
電子發燒友資料精選
2、STM32大神筆記,超詳細單片機學習匯總資料(干貨分享)
3、工程師快速提升技能就看這份資料——固態繼電器(SSR)使用指南
-
FPGA
+關注
關注
1630文章
21802瀏覽量
606412 -
時序
+關注
關注
5文章
392瀏覽量
37448
原文標題:FPGA上電加載時序介紹
文章出處:【微信號:elecfans,微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
FPGA上電加載時序介紹
FPGA上電時序加載過程詳解
詳解FPGA上電加載時序
FPGA配置引腳說明及加載時序
基于多片FPGA自動加載系統的設計
TMS320C61416控制FPGA數據加載設計
![TMS320C61416控制<b class='flag-5'>FPGA</b>數據<b class='flag-5'>加載</b>設計](https://file1.elecfans.com//web2/M00/A5/F6/wKgZomUMOwaAXXcfAAASpRU4rSc511.jpg)
不同場景的FPGA外圍電路的上電時序分析與設計
![不同場景的<b class='flag-5'>FPGA</b>外圍電路的<b class='flag-5'>上</b><b class='flag-5'>電</b><b class='flag-5'>時序</b>分析與設計](https://file1.elecfans.com//web2/M00/A6/EE/wKgZomUMQVWAUHKQAAAVdjUwz_U253.jpg)
FPGA配置模式選擇 FPGA上電加載時序介紹
![<b class='flag-5'>FPGA</b>配置模式選擇 <b class='flag-5'>FPGA</b><b class='flag-5'>上</b><b class='flag-5'>電</b><b class='flag-5'>加載</b><b class='flag-5'>時序</b><b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/B9/60/pIYBAF6BrkSARp1xAAIKCHg8sdc254.png)
基于DSP芯片TMS320C6416實現上電Flash自行加載FPGA的應用設計
![基于DSP芯片TMS320C6416實現<b class='flag-5'>上</b><b class='flag-5'>電</b>Flash自行<b class='flag-5'>加載</b><b class='flag-5'>FPGA</b>的應用設計](https://file.elecfans.com/web1/M00/E7/62/pIYBAGBdduqAFJgyAAAwpVrlvyY325.png)
評論