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