書名: Intel FPGA權威設計指南:基于Quartus Prime Pro 19集成開發環境作者名: 何賓編著本章字數: 4818字更新時間: 2021-10-29 21:33:54
1.7 配置技術
本節將介紹Cyclone 10 GX器件的配置策略、設計安全和遠程系統更新。Cyclone 10 GX器件的配置策略和功能如表1.32所示。
表1.32 Cyclone 10 GX器件的配置策略和功能

為了選擇不同的配置策略,MSEL引腳硬連線到VCCPGM或GND,無須上拉或下拉電阻。用于不同配置策略的MSEL引腳的設置如表1.33所示。
表1.33 用于不同配置策略的MSEL引腳的設置

Cyclone 10 GX器件的配置引腳如表1.34所示。
表1.34 Cyclone 10 GX器件的配置引腳

1.7.1 AS配置
用于AS配置策略的EPCQ-L編程高級視圖如圖1.74所示。在AS配置策略中,配置數據保存在EPCQ-L配置器件中。設計者可以使用帶有串行Flash加載器IP核的JTAG接口對系統內的 EPCQ-L 器件進行編程。SFL 充當 JTAG 接口與 EPCQ-L 器件之間的橋接器。Cyclone 10 GX器件內的AS存儲器接口控制配置過程。

圖1.74 用于AS配置策略的EPCQ-L編程高級視圖
AS配置策略支持1位數據寬度和4位數據寬度模式。AS×4模式的配置時間比AS×1模式的配置時間快4倍。在AS配置方案中,Cyclone 10 GX器件控制配置接口。

注
對于使用SFL的AS編程,MSEL引腳必須設置為AS設置,以允許編程器讀取EPCQ-L ID。
設計者可以使用 Intel FPGA 下載電纜在系統內編程 EPCQ-L 器件,或者可以使用帶有SRunner軟件驅動程序的微處理器對EPCQ-L進行編程。
在系統編程(In-System Programming,ISP)為設計者提供了使用 AS 編程接口或JTAG接口對EPCQ-L進行編程的選項。使用AS編程接口時,通過Quartus軟件或支持第三方軟件編程到EPCQ-L中。使用JTAG接口,必須將稱為SFL的IP核下載到Cyclone 10 GX器件中,以構成JTAG接口和EPCQ-L之間的橋接。這允許EPCQ-L使用JTAG接口直接編程。

注
EPCQ_L 即將停產,改由使用 MT25QU256 芯片,該芯片為 1.8V 供電,與 EPCQ_L 兼容。在使用該芯片配置 Cyclone 10 GX 器件時,在quartus.ini文件中,添加pgm_allow_mt25q=on。
1.使用JTAG接口用于編程EPCQ-L
使用JTAG接口編程EPCQ-L的連接設置(×4模式),如圖1.75所示。

圖1.75 使用JTAG接口編程EPCQ-L的連接設置(×4模式)

注
(1)每個Cyclone 10 GX器件有3個nCSO引腳,即nCSO[2..0],這樣該器件就可以連接最多 3 個 EPCQ-L 器件。使用 3 個 EPCQ-L 器件的優勢如下。
① 能保存多個設計文件,用于遠程系統更新。
② 當超過最大單個EPCQ-L器件容量時,可以增加存儲容量。
(2)在×1 模式下,只連接 Cyclone 10 GX 的 AS_DATA1 引腳和EPCQ-L的DATA引腳。
在配置期間,Cyclone 10 GX器件通過將其nCSO輸出引腳驅動為低來使能EPCQ-L器件,該引腳連接到 EPCQ-L 器件的片選(nCS)引腳。Cyclone 10 GX器件通過使用DCLK和ASD0引腳給EPCQ-L器件發送操作命令和讀地址信號。EPCQ-L器件在其串行數據輸出(DATA[])引腳上提供數據,它連接到Cyclone 10 GX器件的AS_DATA[]引腳輸入。

注
如果希望控制EPCQ-L引腳,請將nCONFIG引腳保持為低電平,并將nCE引腳拉高。這將導致器件復位并使AS配置引腳處于三態。
AS配置的時序如圖1.76所示。

圖1.76 AS配置的時序

注
(1)如果使用AS×4模式,這個信號表示AS_DATA[3..0],并且在每個DCLK周期EPCQ-L發送4位數據;
(2)初始化時鐘可以來自于內部振蕩器或CLKUSR引腳;
(3)當選項比特位使能 INIT_DONE 引腳配置到器件后,INIT_DONE變低;
(4)nCSO下降沿到DCLK第一個切換的時間大于15ns。
2.使用AS接口編程EPCQ-L
使用AS接口編程EPCQ-L器件的電路連接如圖1.77所示。當編程EPCQ-L器件時,下載電纜通過將 nCE 引腳驅動為高電平來禁止訪問 AS 接口。同時,nCONFIG 線也被拉低,使得Cyclone 10 GX器件處于復位階段。編程完成后下載電纜釋放nCE和nCONFIG,允許下拉和上拉電阻分別將引腳驅動到GND和VCCPGM。

圖1.77 使用AS接口編程EPCQ-L器件的電路連接
在使用下載電纜對 EPCQ-L 器件編程的期間,通過 DATA0 將編程數據、操作命令和地址信息從下載電纜傳送到EPCQ-L器件。在使用下載電纜驗證EPCQ-L器件的期間,DATA1將編程數據傳輸給下載電纜。
3.多器件AS配置
多器件AS配置如圖1.78所示。

圖1.78 多器件AS配置
1.7.2 PS配置
用于 PS 配置策略的 EPCQ-L 編程高級視圖如圖 1.79 所示。PS 配置使用外部主機。設計者可以使用微處理器、MAX II器件、MAX V器件或者主機PC作為外部設備。

圖1.79 用于PS配置策略的EPCQ-L編程高級視圖
設計者可以使用外部主機控制配置數據從外部存儲器(如 Flash)到 FPGA 的傳輸。控制配置過程的設計駐留在外部主機中。
設計者可以將配置數據保存在編程器目標文件(progtammer object file,.pof)、.rbf、.hex或.ttf中,首先發送每個數據字節的LSB。例如,如果.rbf包含字節序列02 1B EE 01 FA,則發送到設備的串行數據必須是0100-0000 1101-1000 0111-0111 1000-0000 0101-1111。
設計者可以將PFL IP核與MAX II或MAX V器件一起使用,以從閃存器件中讀取配置數據,并配置Cyclone 10 GX器件。
對于PC主機,使用Intel FPGA下載電纜將PC連接到設備。配置數據串行移入器件的DATA0引腳。
如果使用Quartus編程器并且使能CLKUSR引腳,則不需要為該引腳提供時鐘源來初始化器件。
1.使用外部主機的PS單器件配置
在該模式下,配置Cyclone 10 GX器件,將器件連接到一個外部主機,如圖1.80所示。通過將CONF_DONE和nSTATUS引腳連接在一起,器件可以同時初始化并進入用戶模式。如果鏈路中的任何器件發生錯誤,則將停止配置整個鏈,并且必須重新配置所有器件。例如,如果鏈路中的第一個器件在 nSTATUS 引腳上標記錯誤,則會通過拉低 nSTATUS 引腳來復位整個鏈路。
如果使用相同的配置數據在鏈路中配置器件,則器件必須具有相同的封裝和密度。
2.使用Intel FPGA下載電纜的PS單器件配置
在該模式下,配置Cyclone 10 GX器件,將器件連接到下載電纜,如圖1.81所示。

圖1.80 使用外部主機的PS單器件配置

圖1.81 使用Intel下載電纜的PS單器件配置
3.使用多個配置數據
要使用多個配置數據在鏈中配置多個Cyclone 10 GX器件時,將器件連接到外部主機,如圖1.82所示。
在器件配置完后,它的 nCEO 引腳釋放為低電平,以激活鏈中下一個器件的 nCE 引腳。在一個時鐘周期內,自動開始配置第二個器件。

圖1.82 使用多個配置數據

注
默認,Quartus 軟件禁止 nCEO 引腳。對于多器件配置鏈,必須在Quartus軟件中使能nCEO引腳。否則,配置器件可能會失敗。
4.使用一個配置數據
要使用一個配置數據在鏈中配置多個Cyclone 10 GX器件時,將器件連接到外部主機,如圖1.83所示。

圖1.83 使用一個配置數據
在該鏈路中,器件的nCE引腳連接到GND,允許這些器件的配置同時開始和結束。
5.使用PC主機和下載電纜
要配置多個Cyclone 10 GX器件,將器件連接到下載電纜,如圖1.84所示。

默認,Quartus 軟件禁止 nCEO 引腳。對于多器件配置鏈,必須在Quartus軟件中使能nCEO引腳。否則,配置器件可能會失敗。
注
在器件配置完后,它的 nCEO 引腳釋放為低電平,以激活鏈中下一個器件的 nCE 引腳。為第二個器件自動開始配置。
6.PS配置時序
PS配置的時序如圖1.85所示。

注
(1)上電后,器件在POR延遲時保持nSTATUS為低電平。
(2)上電后,配置前和配置期間,CONF_DONE為低電平。
(3)配置后,不要讓 DCLK 浮動。可以將它驅動為高或低,以更方便的方式。
(4)配置后,DATA0 可作為用戶的 I/O 引腳。該引腳的狀態取決于在器件和引腳選項中的兩用引腳設置。
(5)為確保配置成功,給器件發送整個配置數據。當器件成功接收到所有配置數據后,CONF_DONE 釋放為高電平。在 CONF_DONE 變成高電平后,在DCLK發送兩個額外的下降沿以開始初始化并進入用戶模式。
(6)當使能選項位去使能INIT_DONE引腳配置到器件后,INIT_DONE變低。
(7)在nSTATUS拉高之前,不要將DCLK切換為高電平。
1.7.3 FPP配置
用于 FPP 配置策略的 Flash 高級視圖如圖 1.86 所示。FPP 配置策略使用一個外部主設備,可選的主設備有微處理器、MAX II器件或MAX V器件。這個策略是配置Cyclone 10 GX器件最快的方法。FPP配置策略支持8位、16位和32位的數據寬度。
可以使用外部主機來控制配置數據從外部存儲器(如閃存)到FPGA的傳輸。控制配置過程的設計駐留在外部主機中。可以將配置數據存儲在原始二進制文件(raw binary file,rbf)、十六進制(Intel格式)文件(.hex)或者表格文本文件(tabular text file,ttf)中。

圖1.84 使用Intel FPGA 下載電纜的多個器件的PS配置

圖1.85 PS配置的時序

圖1.86 用于FPP配置策略的Flash編程高級視圖
可以將PFL IP核與MAX II或MAX V器件一起使用,以從閃存器件讀取配置數據并配置到Cyclone 10 GX器件。

注
在CONF_DONE引腳變高后,要求兩個DCLK下降沿,以便在FPP配置中為未壓縮核壓縮的配置數據開始初始化設備。
1.單個器件配置
要配置Cyclone 10 GX器件,將器件連接到外部主機,如圖1.87所示。

圖1.87 FPP模式的單個器件配置

注
如果使用 FPP×8 配置模式,使用 DATA[7..0]引腳;如果使用 FPP×16配置模式,使用DATA[15..0]引腳;如果使用FPP×32配置模式,使用DATA[31..0]引腳。
2.使用多個配置數據配置多個器件
使用多個配置數據配置一個鏈路中的多個 Cyclone 10 GX 器件,將器件連接到外部主機,如圖1.88所示。
3.使用一個配置數據配置多個器件
使用多個配置數據配置一個鏈路中的多個 Cyclone 10 GX 器件,將器件連接到外部主機,如圖1.89所示。在該鏈路中,器件的nCE引腳連接到GND,允許同時開始和結束配置這些器件。
4.FPP配置時序
當DCLK到DATA[]的比值為1時的FPP配置時序如圖1.90所示。

注
(1)上電后,器件在POR延遲時保持nSTATUS為低電平。
(2)上電后,在配置前和配置期間,CONF_DONE為低電平。
(3)配置后,不要讓 DCLK 懸空。當配置完成后,將忽略 DCLK。如果需要,可將它切換到高或低。
(4)對于 FPP×16,使用 DATA[15..0];對于 FPP×8,使用 DATA [7..0]。配置后,DATA[31:0]可作為用戶 I/O 引腳使用,該引腳的狀態取決于引腳的雙用途設置。
(5)為了確保配置成功,將整個配置數據發送到器件。當器件成功收到所有配置數據時,將CONF_DONE釋放為高。在CONF_DONE變為高電平后,在 DCLK 上發送兩個額外的下降沿以開始初始化并進入用戶模式。
(6)在使能位使能 INIT_DONE 引腳配置到器件后,INIT_DONE 變為低。
(7)在nSTATUS拉高之前,不要將DCLK切換為高電平。
當DCLK到DATA[]的比值大于1時的FPP配置時序如圖1.91所示。

圖1.88 EPP模式使用多個配置數據配置多個器件

圖1.89 EPP模式使用一個配置數據配置多個器件

圖1.90 當DCLK當DATA[]的比值為1時的FPP配置時序

圖1.90 當DCLK到DATA[]的比值大于1時的FPP配置文件

注
(1)上電后,器件在POR延遲時保持nSTATUS為低電平。
(2)上電后,在配置前和配置期間,CONF_DONE為低電平。
(3)在配置后,不要讓DCLK懸空。可將它驅動為高或低。
(4)“r”表示DCLK到DATA[]的比值。對于使用解壓縮和設計安全功能設置DCLK到DATA[]的比值。
(5)如果需要,暫停 DCLK 并保持為低電平。重啟 DCLK 時,外部主機必須在發送第一個DCLK上升沿之前在DATA[31..0]引腳上提供數據。
(6)為了確保配置成功,將整個配置數據發送到器件。當器件成功收到所有配置數據時,將CONF_DONE釋放為高。在CONF_DONE變為高電平后,在 DCLK 上發送兩個額外的下降沿以開始初始化并進入用戶模式。
(7)在使能位使能 INIT_DONE 引腳配置到器件后,INIT_DONE 變為低。
(8)在nSTATUS拉高之前,不要將DCLK切換為高電平。
1.7.4 JTAG配置
在Cyclone 10 GX器件中,JTAG指令優先于其他配置方案。JTAG是英文全稱Joint Test Action Group(聯合測試行動小組)的縮寫,它是一種國際標準測試協議(IEEE1149.1 兼容),主要用于測試芯片的內部。
Quartus 軟件生成一個 SRAM 對象文件(SRAM Object File,SOF),設計者可以使用Quartus 軟件編程器中的下載電纜配置 JTAG。或者,使用帶有.rbf 或 JAM 標準測試和編程語言(Standard Test and Programming Language,STAPL)格式文件(.jam)的 JRunner 軟件,或者使用帶有第三方編程器工具的JAM字節代碼(JAM byte code,jbc)文件。

注
如果使用基于JTAG的配置來配置Cyclone 10 GX器件,則無法使用Cyclone 10 GX器件的解壓縮或設計安全功能。Cyclone 10 GX器件上的芯片級復位(DEV_CLRn)和芯片級輸出使能(DEV_OE)引腳不會影響JTAG邊界掃描或編程操作。Intel FPGA下載電纜可支持1.5V/1.8V的VCCPGM電壓,但是不支持1.2V的目標電源電壓。
1.單個器件配置
要在 JTAG 鏈中配置單個器件,編程軟件會將其他器件設置為旁路模式。在旁路模式下的器件,通過單個旁路寄存器將編程數據從TDI 引腳傳輸到 TDO引腳。配置數據在一個時鐘周期后可用。
Quartus 軟件使用 CONF_DONE 引腳驗證通過 JTAG 接口的配置過程是否完成。當CONF_DONE 引腳為低電平時表示配置失敗;當 CONF_DONE 引腳為高電平時表示配置成功。
當使用JTAG TDI接口串行傳輸配置數據后,TCK接口再驅動額外的1222周期以執行器件初始化操作。
要使用下載電纜配置Cyclone 10 GX器件,按圖1.92所示設計電路。

圖1.92 使用下載電纜配置器件
使用外部微處理器配置Cyclone 10 GX器件,按圖1.93所示設計電路。設計者可以使用JRunner作為軟件驅動程序。
2.多個器件配置
JTAG也可以配置鏈路上的多個器件,如圖1.94所示。在JTAG多器件配置模式下,應遵守下面的規則:
(1)隔離CONF_DONE和nSTATUS引腳,允許每個器件獨立進入用戶模式。
(2)一個JTAG兼容頭連接到JTAG鏈中的多個器件。鏈路中器件的個數僅受下載電纜驅動能力的限制。
(3)如果 JTAG 鏈中有 4 個或以上的器件,則使用板載緩沖器緩沖 TCK、TDI 和 TMS引腳。設計者也可以將其他具有JTAG支持的Intel FPGA連接到該鏈路中。
(4)當系統包含多個器件或使用JTAG邊界掃描測試(Boundary Scan Testing,BST)電路測試系統時,JTAG鏈的器件編程是理想的選擇。

圖1.93 使用外部微處理器配置器件

圖1.94 使用JTAG配置多個器件
1.7.5 配置流程
Cyclone 10 GX器件的配置過程如圖1.95所示。

圖1.95 Cyclone 10 GX器件的配置過程

注
除用于部分可重配置操作外,設計者可以通過將 nCONFIG 引腳拉低至少最小 tCFG的低脈沖來初始化重配置。當拉低該引腳時,nSTATUS和CONF_DONE引腳也被拉低,所有I/O引腳都連接到弱上拉。
- 用“芯”探核:龍芯派開發實戰
- Applied Unsupervised Learning with R
- 基于Proteus和Keil的C51程序設計項目教程(第2版):理論、仿真、實踐相融合
- 精選單片機設計與制作30例(第2版)
- 電腦軟硬件維修從入門到精通
- Hands-On Machine Learning with C#
- 計算機組裝與維修技術
- 固態存儲:原理、架構與數據安全
- Building 3D Models with modo 701
- SiFive 經典RISC-V FE310微控制器原理與實踐
- OpenGL Game Development By Example
- 筆記本電腦維修實踐教程
- 電腦組裝與維護即時通
- STM32自學筆記
- The Reinforcement Learning Workshop