您可能會在 Intel® Arria® 10 裝置的初始化階段看到使用者輸出針腳進入意料之外的狀態。
這是因為使用者邏輯和使用者 I/O 針腳會逐漸啟動,在初始化階段不會同時啟動。
下方顯示一個範例。( 範例圖 )
- 使用者輸入針腳連接到收銀機的低主動集埠。
- 從電源到使用者模式,此使用者輸入針腳保持低功耗。
- 收銀機中的資料輸出埠連接到使用者輸出針腳。
使用者輸出針腳預期會保持高位,因為使用者 I/O 針腳處於輸入三狀態,在組態階段和初始化狀態期間拉起較微弱,而且在使用者模式下,收銀機預計會由設定埠設定為高。
但是在初始化階段,使用邏輯和使用者 I/O 針腳會逐漸啟動。 當比輸入埠更快啟動收銀機和使用者輸出針腳,而且收銀機的初始狀態較低時,輸出針腳會從收銀機低傳傳播,直到啟動輸入埠,並且將收銀機的設定埠變低。
當外部裝置監測Intel Arria 10 裝置的輸出時,初始化階段的意外狀態可能會影響外部裝置的行為。
若要解決這個問題,請使用下列其中一種方式。
- 解決方法 1:讓外部裝置忽略使用者輸出針腳的狀態,直到INIT_DONE針腳變高(解決方法圖 1)
- 解決方法 2:使用外部邏輯將外部裝置的輸入狀態保持正確,直到針腳INIT_DONE變高(解決方法圖 2)
- 解決方法 3:使用使用者邏輯維持Arria 10 裝置的輸出狀態,直到內部INIT_DONE訊號傳高(解決方法圖 3)
您可以使用內部INIT_DONE訊號與下列 WYSIWYG 即時。
<< Verilog >>
twentynm_controller u1 (.initdonecore ():
<< VHDL >>
元件twentynm_controller是
埠(initdonecore:輸出STD_LOGIC):
終端元件;
u1:twentynm_controller
埠圖 (initdonecore => );