由於Quartus® Prime Pro Edition 軟體版本 23.2 及更早版本存在問題,當您的 HDL 代碼具有生成的區塊,供您在針對 Agilex™ 7 F-Tile 裝置的設計實例化和其他受支援裝置之間進行選擇時,您可能會看到此錯誤。
如果未標記“生成if”塊,則對未標記生成塊的跨模組引用會引發錯誤。
例如
生成
if(Agilex == 0)
begin
...
結束
否則
開始
...
結束
生成
此錯誤發生在分析和合成階段。
若要變通解決此問題,請為 Verilog HDL 中的每個“if and else”語句定義一個標籤,並在 VHDL 中定義一個“生成”語句。例如,如果某個設計的目標是在 Agilex™ F-Tile 裝置與 Arria® 10 裝置之間進行選擇,則可以使用 Verilog HDL 和 VHDL 中的 generate 語句來選擇實例化,如下所示。
Verilog HDL
生成
if(Agilex == 0)
開始 : label1_notfor_AG
...
結束
還
開始 : label2_for_AG
...
結束
最終生成
Vhdl
標籤:
如果 cond1 生成
...
elsif cond2 generate
...
否則生成
...
結束生成標籤;