眾所周知,PC 需要 PCIe 設(shè)備在 100ms 內(nèi)啟動,這樣 PC 才能掃描到 PCIe 設(shè)備。其實對于 FPGA PCIe 板卡,同樣也需要滿足這個時間要求。這一類板卡,PCIe 的啟動時間通常包括Power Ramp Time、Power on reset delay Time、FPGA配置時間等,其中 Power Ramp Time 和 Power on reset delay Time 和硬件電路相關(guān),F(xiàn)PGA 配置時間和 FPGA 設(shè)計相關(guān)。
Intel FPGA 系列是基于 sram(掉電丟失)的,所以會需要配置器件來存儲配置碼流。FPGA 的配置模式有很多種,模式不同,啟動時間也不同。以我們常見的 ASx4 和 FPP 來分析:
ASx4 模式:只需要一顆 EPCS/PECQ 即可配置;
FPP 模式:需要一個額外外部 Host 用來搬移配置數(shù)據(jù)。因其是并行 x8 x16 x32,所以配置時間會少很多。
以 Cyclone V 和 Arria 10兩種器件類型為例,ASx4 模式和FPP模式的配置時間差異如下圖:
顯而易見,F(xiàn)PGA 的配置時間都不滿足 PCIe 100ms 或 FPGA 120 ms 的時間要求。
而從 Figure 4-1可知,除去 Power Ramp Time ,Power on reset delay Time 等時間后,F(xiàn)PGA 配置時間必須要小于80 ms才能滿足 PC 機的啟動時間要求。所以,當(dāng) Arria 10器件及大容量的 Cyclone V器件使用AS X4模式時,PCIe 啟動時間基本滿足不了PC機的要求 ;如果是大容量的 Arria 10器件,即使使用FPP模式,在FPP32方式配置下,PCIe 啟動時間也滿足不了要求!更何況,在實際情況中,硬件設(shè)計或板卡通常采用 AS X4配置模式的 EPCQ 方案。
該如何解決這個問題,確保FPGA PCIe的啟動時間滿足PC機的要求?
這里提供三種方法供大家參考:
1
FPGA 板卡采用外部供電的方式,讓FPGA板卡先于 PC 上電,相當(dāng)于在 PC 開機之前,F(xiàn)PGA 的 PCIe 已經(jīng)啟動。
2
PCIe 供電時,F(xiàn)PGA 板卡同 PC 機一起上電,待系統(tǒng)啟動之后,重啟 PC 機,F(xiàn)PGA 板卡不會掉電,重啟 PC 之前,F(xiàn)PGA 的 PCIe 已經(jīng)啟動。
3
使用 Autonomous PCIe HIP Mode (注意要器件支持這個功能才能使用哦)。
由于方法一和方法二是非常規(guī)方法,很多場景無法完成,且更側(cè)重于避開時間要求,而非縮短啟動時間,所以更推薦大家使用方法三哦!