必要的重置方式,提升Intel® Stratix® 10和Intel Agilex™設備的性能
#目錄
- 簡介
- Stratix 10和Agilex設備的配置
- 設計中的重置狀態
- 重置釋放IP的作用
- PLL和重置邏輯
- 設計初始化條件
- 禁用上電初始化
- 重置釋放IP的實例化
- 總結
#重置釋放IP和為Stratix 10和Agilex設備設計的重要性🔌
在設計和配置Intel Stratix 10和Intel Agilex FPGAs時,關注重置邏輯非常重要。這是確保設計正確運行並避免非法狀態的關鍵元素。在本文中,我們將討論一種稱為重置釋放Intel FPGA IP的解決方案,它可以有效地管理和控制重置時序。
1. 簡介
隨著Stratix 10和Agilex設備的發展,配置流程變得更加複雜。這些設備的配置過程是以分區的方式進行的,並且在配置期間,在其設計的不同區域可能會進入用戶模式。這就產生了一個問題,即設計在完全配置之前可能處於過渡狀態,這可能會導致非法狀態或錯誤操作。
2. Stratix 10和Agilex設備的配置
2.1 SDM安全設備管理器
Stratix 10和Agilex FPGAs使用SDM(Secure Device Manager)對設備進行配置。SDM是一個微處理器模塊,提供了一個強大、安全、完全驗證的配置方案。SDM將配置數據傳送到FPGA的每個分區,並為每個分區配置中至少提供一個微處理器來幫助進行配置。
2.2 分區配置
分區配置是在一個偽串行的方式下進行的,每個分區以非同步的方式開始配置,這導致部分分區在完全配置之前進入用戶模式。這就產生了設計的初始狀態不穩定的問題。
3. 設計中的重置狀態
在設計中,重置邏輯對於確保設計正確運行至關重要。特別是對於依賴於寄存器初始狀態的狀態機設計,重置邏輯必須在整個設備完全進入用戶模式之前將FPGA片上資源保持在重置狀態。
3.1 非法狀態和不完整配置
在設備的配置過程中,部分分區進入用戶模式,而其他分區仍在配置中。這就產生了部分設計運行在用戶模式之前的過渡狀態,導致狀態機進入非法狀態或未知狀態。這對於需要所有寄存器進入初始狀態才能運行正確的狀態機設計來說尤其重要。
3.2 狀態機重置邏輯
在具有PLL的設計中,常常使用PLL鎖定信號來控制設計的重置,以確保在PLL鎖定之前不會運行任何定制邏輯。然而,在Stratix 10和Agilex設備中,PLL的鎖定時間可能小於配置時間,這就意味著如果使用鎖定的PLL輸出來控制重置,則需要確保在PLL鎖定之前重置設計。這時,重置釋放IP可以發揮作用。
4. 重置釋放IP的作用
重置釋放IP是一個Intel FPGA IP,可以在設計中控制和管理重置時序,並防止非法狀態的發生。
4.1 防止非法狀態
重置釋放IP通常與PLL或其他定制邏輯結合使用,以確保在設計完全配置之前設備處於重置狀態。它可以通過保持電路重置,直到整個設備進入用戶模式來防止非法狀態的發生。
4.2 控制重置時序
在使用PLL鎖定信號進行重置時序的設計中,重置釋放IP可以與PLL鎖定信號相結合,以確保在PLL需要重新鎖定或客戶需要重置設計時,將設計重置。
5. PLL和重置邏輯
5.1 PLL鎖定和配置時間
在設計中使用PLL時,需要考慮到PLL鎖定時間和配置時間之間的關係。如果使用PLL鎖定信號來控制重置,需要確保在PLL鎖定之前重置設計。
5.2 使用PLL鎖定信號重置
在新的Intel設備系列中,PLL的鎖定時間可能小於配置時間,這就導致了使用鎖定信號來控制重置時的一些問題。為了解決這個問題,建議在重置序列中使用重置釋放IP的init done信號。
6. 設計初始化條件
在設計中,寄存器的初始條件非常重要。如果不指定寄存器的初始條件,軟件工具將將寄存器的初始條件設置為零。然而,鑑於Intel Stratix 10和Intel Agilex設備在配置過程中的性質,建議不依賴於寄存器的初始條件,而是依賴於重置網絡來維護所需的初始條件。
6.1 設備初始化
通常,軟件工具將未初始化信號的初始條件設置為零。然而,為了確保正確的重置邏輯運行,建議在仿真設計時對信號進行未初始化狀態(例如X狀態)的傳播。這樣可以確保重置網絡的正確運行。
6.2 重置網絡
重置網絡是設計中的關鍵元素,用於確保在需要時將設計重置到正確的初始狀態。它通常由重置釋放IP控制,以確保設計在完全配置之前保持在重置狀態。
7. 禁用上電初始化
如果不希望在上電時進行初始化,可以通過Intel Quartus Prime Pro軟件的設置來禁用上電初始化。這可以通過設備和引腳選項配置中的禁用寄存器上電初始化選項來實現。
8. 重置釋放IP的實例化
8.1 實例化步驟
要在設計中使用重置釋放IP,首先需要在IP目錄中找到它。然後,根據設計需求,選擇重置接口或傳導接口作為介面類型。最後,實例化重置釋放IP並根據需要進行配置。
8.2 使用PLL和重置釋放IP的實例化示例
下面是使用Verilog和VHDL的重置釋放IP的實例化示例。這些示例中的重置釋放IP與PLL結合使用,以確保在FPGA完全配置之前將所有設計資源保持在重置狀態。
// 重置釋放IP的實例化示例(Verilog)
reset_release_inst : reset_release_ip
(
.clk(clk), // 適用於設計的時鐘信號
.reset_in(reset_in), // 重置信號的輸入
.reset_out(reset_out), // 重置信號的輸出
// 其他設定參數...
);
-- 重置釋放IP的實例化示例(VHDL)
reset_release_inst : entity work.reset_release_ip
port map (
clk => clk, -- 設計的時鐘信號
reset_in => reset_in, -- 重置信號的輸入
reset_out => reset_out, -- 重置信號的輸出
-- 其他設定參數...
);
9. 總結
在設計和配置Intel Stratix 10和Intel Agilex FPGAs時,重置邏輯的設計和管理非常重要。重置釋放IP是一個有效的解決方案,可以控制和管理重置時序,並防止非法狀態的發生。通過合理設置重置邏輯,可以確保設計始終處於正確的初始狀態。
有關更多信息,請參考以下資源: