引言:在需要多個(gè)FPGA芯片的應(yīng)用中,如果JTAG鏈上所有FPGA采用相同配置,可以通過(guò)“成組”加載方式同時(shí)加載;如果每個(gè)FPGA需要采用不同的配置數(shù)據(jù)流,可以通過(guò)“菊花鏈”加載方式或者使用外部邏輯依次加載。本文分別介紹串行配置和并行配置模式下的多片F(xiàn)PGA配置數(shù)據(jù)流加載方式。
1.菊花鏈串行配置模式(串行,多片F(xiàn)PGA采用不同配置流)
單一配置源可以通過(guò)利用串行菊花鏈方式加載多片7系列FPGA。在串行菊花鏈中,器件通過(guò)DIN管腳接收配置數(shù)據(jù),通過(guò)DOU管腳將配置數(shù)據(jù)傳輸給下游器件。離配置源最近的器件稱為最上游器件,離配置源最遠(yuǎn)的器件稱為最下游器件。如下圖所示。
圖1 Slave串行模式菊花鏈配置
在串行菊花鏈中,所有器件都設(shè)置為串行模式,配置時(shí)鐘由外部提供,如圖1中的Processor設(shè)備。如圖1所示:
1)DONE管腳為開(kāi)路輸出,在Slave串行菊花鏈中應(yīng)連接在一起,在最遠(yuǎn)一片F(xiàn)PGA上拉;
2)INIT_B管腳為雙向管腳,開(kāi)路,需要外部上拉電阻;
3)比特流啟動(dòng)時(shí)鐘必須設(shè)置為CCLK。????串行菊花鏈中的第一個(gè)器件是最后加載數(shù)據(jù)流的。在配置鏈中的最后一個(gè)器件完成配置,并通過(guò)CRC校驗(yàn),進(jìn)入啟動(dòng)順序。在所有器件釋放它們的DONE管腳后,DONE信號(hào)上拉為高或者有鏈路中第一個(gè)器件驅(qū)動(dòng)為高。
7系列FPGA與早期Virtex/Spartan系列FPGA串行菊花鏈連接考慮
1)許多較舊的FPGA設(shè)備無(wú)法接受7系列設(shè)備所能產(chǎn)生的CCLK頻率。選擇鏈中所有設(shè)備支持的配置CCLK速度;
2)7系列設(shè)備應(yīng)始終位于串行菊花鏈的開(kāi)頭,而較舊的系列設(shè)備位于鏈的末端;
3)為7系列FPGA位流選項(xiàng)提供的指南應(yīng)盡可能適用于串行菊花鏈中的所有設(shè)備;
4)設(shè)備可通過(guò)其DOUT引腳的配置位數(shù)有限。對(duì)于從Virtex II系列開(kāi)始的7系列和Virtex設(shè)備,限制為4294967264位。對(duì)于Spartan-6和Spartan-3代設(shè)備,限制為2147483632位。所有下游設(shè)備的比特流長(zhǎng)度總和不得超過(guò)此數(shù)字。
串行菊花鏈配置設(shè)計(jì)要點(diǎn)
1)啟動(dòng)順序。應(yīng)在DONE之前或在DONE的同一周期內(nèi)釋放,以確保所有DONE引腳釋放后,設(shè)備可正常工作。
2)連接所有DONE管腳。所有設(shè)備的DONE引腳必須以串行菊花鏈連接,以防止配置失敗。出于調(diào)試目的,有一種斷開(kāi)單個(gè)DONE的方法通常很有用,從而可以通過(guò)串行或JTAG接口單獨(dú)配置設(shè)備。
3)DONE管腳上升時(shí)間。釋放所有DONE引腳后,DONE引腳應(yīng)從邏輯0上升到邏輯1。如果DONE信號(hào)上升需要額外的時(shí)間,可以通過(guò)DonePipe選項(xiàng)設(shè)置,參看UG628。
2.成組串行配置模式(串行,多片F(xiàn)PGA采用相同配置流)
使用成組串行配置設(shè)置,可以從同一位流源同時(shí)配置多個(gè)設(shè)備(圖9-2)。在這種布置中,串行配置引腳被連接在一起,使得每個(gè)設(shè)備看到相同的信號(hào)轉(zhuǎn)變。對(duì)于成組串行配置,所有設(shè)備必須相同。配置可以由外部配置控制器驅(qū)動(dòng),從閃存或其他存儲(chǔ)器讀取位流。
圖2 成組串行配置模式如圖2所示:
1)DONE引腳為漏極開(kāi)路輸出;
2)INIT_B引腳是雙向開(kāi)放漏極引腳。需要外部上拉電阻器;
3)必須為串行配置的CCLK設(shè)置啟動(dòng)時(shí)鐘設(shè)置;
4)對(duì)于成組串行配置,所有設(shè)備必須相同(相同的ID CODE),并且必須使用相同的比特流進(jìn)行配置。
成組串行配置考慮要點(diǎn)
1)啟動(dòng)順序
應(yīng)在DONE之前或在DONE的同一周期內(nèi)釋放,以確保所有DONE引腳釋放后,設(shè)備可正常工作。
2)DONE管腳可斷開(kāi)
出于調(diào)試目的,有一種斷開(kāi)單個(gè)DONE的方法通常很有用,從而可以通過(guò)串行或JTAG接口單獨(dú)配置設(shè)備。
3)CCLK作為電路板時(shí)鐘信號(hào)布局布線??? CCLK信號(hào)相對(duì)較慢,但7系列FPGA輸入緩沖器上的邊緣速率非???。即使CCLK信號(hào)上的輕微信號(hào)完整性問(wèn)題也會(huì)導(dǎo)致配置失敗。典型的故障癥狀是DONE仍然為低,INIT_B為高。因此建議采用注重信號(hào)完整性的設(shè)計(jì)實(shí)踐,包括IBIS的信號(hào)完整性仿真。4)用于組合串行配置的PROM
用于組合串行配置的PROM文件與用于配置單個(gè)設(shè)備的PROM相同。沒(méi)有特殊的PROM文件注意事項(xiàng)。
3.成組串行配置模式(并行Slave,多片F(xiàn)PGA采用不同配置流)
處于從屬SelectMAP模式的多個(gè)7系列設(shè)備可以連接在一個(gè)公共SelectMAP總線上,如圖3所示。在SelectMAP總線中,DATA、CCLK、RDWR_B、PROGRAM_B、DONE和INIT_B引腳在所有設(shè)備之間共享公共連接。為了允許單獨(dú)訪問(wèn)每個(gè)設(shè)備,不得將CSI_B(芯片選擇)輸入連接在一起。需要CSI_B信號(hào)的外部控制,通常由微處理器或CPLD提供。
圖3 從屬SelectMAP模式的多個(gè)7系列設(shè)備
如果要在配置后對(duì)設(shè)備執(zhí)行回讀,則必須正確處理RDWR_B信號(hào)。否則,RDWR_B可能被綁定為低。
如圖3所示:
1)DONE引腳為漏極開(kāi)路輸出;
2)INIT_B引腳是雙向開(kāi)放漏極引腳。需要外部上拉電阻器;
3)不支持回退重新配置;
4)必須為SelectMAP配置的CCLK設(shè)置啟動(dòng)時(shí)鐘設(shè)置;
5)需要諸如微處理器或CPLD的外部控制器來(lái)控制配置;
6)數(shù)據(jù)總線可以是x8、x16或x32(用于從屬SelectMAP)。
4. 并行菊花鏈配置模式(主/從并行,多片F(xiàn)PGA采用不同配置流)
7系列FPGA配置支持并行菊花鏈。圖4顯示了BPI模式下主導(dǎo)設(shè)備的示例示意圖。主導(dǎo)設(shè)備也可以處于主或從SelectMAP模式。D[15:00]、CCLK、RDWR_B、PROGRAM_B、DONE和INIT_B引腳在所有設(shè)備之間共享公共連接。CSI_B引腳為菊花鏈。
圖4 并行菊花鏈
如圖4所示:
1)DONE引腳為漏極開(kāi)路輸出;
2)INIT_B引腳是雙向開(kāi)放漏極引腳,需要外部上拉;
3)必須為SelectMAP配置的CCLK設(shè)置啟動(dòng)時(shí)鐘設(shè)置;
4)應(yīng)啟用FCS_B、FWE_B、FOE_B、CSO_B弱上拉電阻器,否則每個(gè)引腳需要外部上拉電阻器。默認(rèn)情況下,所有多功能I/O都具有配置后的弱下拉;
5)鏈中的第一個(gè)設(shè)備可以是主SelectMAP、從SelectMAP或BPI。以下設(shè)備必須處于從屬SelectMAP模式;
6)不支持并行菊花鏈方案中的回讀;
7)不支持回退重新配置。
5. 并行成組配置模式(并行,多片F(xiàn)PGA采用相同配置流)
也可以通過(guò)使用成組的SelectMAP配置,使用相同的配置位流同時(shí)配置多個(gè)設(shè)備。如圖5所示,在成組SelectMAP布置中,兩個(gè)或更多設(shè)備的CSI_B引腳連接在一起(或連接到GND),使所有設(shè)備識(shí)別D引腳上顯示的數(shù)據(jù)。
圖5 成組的SelectMAP配置
如圖5所示,如果外部振蕩器可用,所有設(shè)備都可以設(shè)置為Slave SelectMAP模式。
1)不支持同步SelectMAP模式;
2)不支持回退重新配置;
3)DONE引腳為漏極開(kāi)路輸出;
4)INIT_B引腳是一個(gè)雙向開(kāi)放漏極引腳,需要外部上拉電阻器;
5)必須為SelectMAP配置的CCLK設(shè)置啟動(dòng)時(shí)鐘設(shè)置;
6)公共DONE信號(hào)上需要一個(gè)外部上拉電阻器。由于扇出增加,設(shè)計(jì)者必須仔細(xì)關(guān)注信號(hào)的完整性。建議進(jìn)行信號(hào)完整性模擬;
7)如果CSI_B信號(hào)連接在一起,則無(wú)法進(jìn)行回讀,因?yàn)樗性O(shè)備都同時(shí)嘗試驅(qū)動(dòng)數(shù)據(jù)信號(hào)。