武堅 武健 張宇烜



摘要:基于FPGA的嵌入式結構產品在硬件設計領域得到了廣泛應用,該文介紹了Virtex系列FPGA的邏輯加載模式,對加載速度較高的Slave SelectMAP模式的邏輯加載過程進行了研究,并分析了加載中各信號的使用情況。同時結合產品使用實例,對典型的邏輯加載故障進行了分析和研究。
關鍵詞: Slave SelectMAP模式 ;邏輯加載故障
中圖分類號:TP3? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)36-0232-02
1 介紹
以高密度現場可編程邏輯器件FPGA為處理核心設計的嵌入式結構產品 ,具有低成本、高集成度、低功耗、小封裝等優(yōu)點,并且其在線編輯具有很高的靈活度,后期升級維護也非常簡單。常用的FPGA芯片如Virtex系列,是一種高密度、大容量的現場可編程門陣列芯片,其邏輯單元多達100萬個,可兼容16種高性能接口標準,最高工作頻率可達200MHZ。Virtex系列FPGA的邏輯文件加載方式由FPGA內部的模式選擇信號M[2:0] 的電平來決定[1],常見的加載模式包括JTAG模式、串行模式和并行模式。其中串行模式包括Master Serial和Slave Serial兩種,并行模式也分Master SelectMap和Slave SelectMap兩類。這些模式的選擇與M[2:0]的對應關系見表1。
其中JTAG加載模式中,不需要存儲芯片介入,該模式主要用于邏輯文件燒寫和調試階段,在產品斷電后需要重新進行加載。串行模式需要使用到的FPGA加載信號較少,通常由FPGA在CCLK的上升沿接收1位數據進行加載,該加載方式速度較慢。而并行模式是一種8位數據加載模式,配置加載時鐘最可達66MHz,每個加載時鐘周期內有8位配置數據下載到FPGA內。在對加載速度要求較高的一些應用場合,一般采用并行加載模式。本文主要分析了Slave SelectMAP并行模式的邏輯文件加載流程,并對該模式邏輯加載中常見故障進行了分析研究,為基于FPGA的嵌入式產品故障排查提供了理論支持。
2 基于Slave SelectMAP模式的邏輯加載流程
Virtex系列FPGA采用SRAM工藝,FPGA本身具有易失性, 產品下電以后FPGA內部的邏輯文件就會丟失[2], 因此需要外接存儲器來保存其邏輯配置數據。圖1給出了Virtex系列FPGA基于Slave SelectMAP模式的邏輯加載電路,選取一片專用的Platform Flash存儲芯片用以存放邏輯文件[3]。
在邏輯加載過程中,圖1中的Virtex系列FPGA為主控設備,左側的存儲芯片為從設備,FPGA發(fā)出控制信號從存儲芯片中讀取邏輯文件,完成加載過程。具體的加載步驟如下:
1)設備上電。在邏輯加載過程中,根據手冊要求,設備管腳在加電電源正確時,加載過程才能正常工作;
2)設備初始化及加載模式采樣。初始化過程如下:
(1)FPGA完成內部接口上電初始化后,發(fā)出PROGRAM_B信號,復位存儲芯片,存儲芯片發(fā)出READY_WAIT低有效信號,表明還在初始化中;
(2)當FPGA完成上電配置,結束PROGRAM_B信號后,并且存儲芯片也完成自身初始化后,存儲芯片釋放READY_WAIT信號(Open-Drain狀態(tài)),此時INIT_B信號(即存儲芯片的READY_WAIT)由外部電阻上拉至高電平狀態(tài);
(3)當INIT_B拉高后,設備在加載時鐘的上升沿,對特定地址信號管腳M[2:0]進行采樣,[0,1,1]表示Slave-SelectMAP加載模式,采樣后開始邏輯加載過程。
3)加載過程。配置完成后,設備開始邏輯文件的加載過程,具體過程如下:
(1)對加載設備ID進行校驗檢查,防止設備錯誤;
(2)在時鐘信號、片選、讀信號的控制下,驅動相應單元有效數據至地址總線DO[15:0],并按照CCLK時序完成加載數據傳輸操作;
(3)完成全部邏輯數據的加載,并且數據CRC校驗正常,FPGA發(fā)出DONE信號,表明邏輯加載操作成功。
常用的Slave SelectMAP加載模式和JTAG加載模式使用的主要信號見表2。
3 基于Slave SelectMAP模式的邏輯加載故障分析
3.1 加載控制信號錯誤導致邏輯加載故障
在某產品邏輯加載故障后,使用示波器測量FPGA發(fā)出的控制信號,測試結果如圖2,圖中綠色線為PROGRAM_B信號,藍色為INIT_B加載控制信號。結果顯示,FPGA能夠正常輸出PROGRAM_B信號,但INIT_B加載控制信號異常,發(fā)現INIT_B加載控制信號無法拉高。
結合上文分析過程,INIT_B加載控制信號需要在PROGRAM_B信號變?yōu)楦唠娖胶螅?~3ms內變?yōu)楦唠娖讲拍苷_M行邏輯加載。照手冊要求,存儲芯片完成初始化后,該信號應該由外部電阻上拉至高電平(2.5V以上),而實際測試該信號時鐘始終為低電平(0.8V以下),表明存儲芯片不能正常完成上電初始化,達到正常狀態(tài),所以后續(xù)FPGA邏輯加載操作不能啟動。
3.2 加載地址線信號錯誤導致邏輯加載故障
在某產品邏輯加載故障后,編寫測試程序對存儲芯片進行逐行寫入,并讀出寫入數據。讀寫結果如圖3所示,根據測試程序,通過比較正確狀態(tài)地址故障態(tài)地址,發(fā)現是存儲芯片地址線A19發(fā)生錯誤,由0偏轉為1。經清查,發(fā)現該存儲芯片管腳脫焊,導致地址線信號錯誤,FPGA從存儲芯片中加載邏輯文件時故障。
3.3 Slave SelectMAP模式能夠加載,JTAG模式加載故障
某產品邏輯能夠正常加載,但使用外部仿真器在JTAG模式下無法重新加載邏輯文件。根據故障現象及表2中羅列的信號對比可知,在Slave SelectMAP加載過程中,不使用地址線信號及寫有效信號,JTAG模式加載時需要從A0地址開始寫入數據。經測量,寫有效信號常高,導致邏輯雖然能夠正常加載,但JTAG模式寫入邏輯文件時故障。
4 總結
本文對基于Slave SelectMAP模式的邏輯加載模式進行了研究,分析了加載過程中主設備FPGA及從設備存儲芯片各信號的定義和使用情況。結合加載流程和信號分析,研究了三種SelectMAP模式下邏輯加載的典型故障,對FPGA產品故障快速定位提供理論依據和技術指導。
參考文獻:
[1] 郭天天.Virtex系列FPGA的SelectMAP配置接口電路[J].微處理機,2000,21(4):17-19.
[2] 瞿海妮.基于單片機的Virtex-ⅡFPGA SelectMAP模式的配置方法[J].微計算機應用,2005(4):463-465.
[3] UG438,Platform Flash XL Configuration and Storage Device User Guide,2009.
【通聯(lián)編輯:代影】