重大問題
FIR 編譯器 II 所生產的一些 FIR 濾波器發生故障 使用所有適當的 DSP 區塊輸入暫存器。TimeQuest 沒有正確分析這些 FIR 濾波器,而且它們看起來 符合時機。實際上,未註冊路徑的時機是 未經分析,這些 FIR 篩選器可能會導致計時相關 在硬體中實用時發生錯誤。此問題影響到 Stratix V, Arria V (GX 和 GZ),以及 Cyclone V 裝置。問題會影響 FIR 篩選準則:使用 systolic 模式需要奇數的乘數,這一點 問題不會影響需要數量甚至數量的 FIR 篩選準則 乘數。奇數,甚至請參閱實體乘數數量 可執行 FIR 篩選,而不是您最初使用的水龍頭數量 指定。具有數量均勻水龍頭的 FIR 篩選器可能需要一個奇數 實體乘數數量,反之亦然。若要判斷是否 我的 FIR 篩選器受到影響,請按照下列步驟:檢查所產生的 VHDL 代碼,以判斷它是否包含 d對應倍增器。A systolic FIR 篩選器包含許多 CHAINMULTADD 評論。 如果您的 FIR 篩選器未包含任何類似的評論 以下評論,您的 FIR 篩選器不是 systolic FIR 篩選器 並且不會受到影響: --u0_m0_wo0_cma0(CHAINMULTADD,33)@13
如果您的 FIR 包含一個或多個 CHAINMULTADD 意見,請檢查 遵循每個此類評論的 VHDL 代碼。之後幾行 CHAINMULTADD 評論,尋找類似鏈條的程式 下列代碼:u0_m0_wo0_cma0_chainmultadd:處理 (clk,元件) 開始如果 (被設定 = '1') 然後u0_m0_wo0_cma0_a (其他 =>'0')); u0_m0_wo0_cma0_b (其他人 =>'0');) u0_m0_wo0_cma0_c (其他 => '0')); u0_m0_wo0_cma0_anl (其他 => '0')); ELSIF (clk'EVENT 和 clk = '1') 然後 IF (d_u0_m0_wo0_compute_q_13_q = 「1」) 然後 u0_m0_wo0_cma0_a (0) '0'); u0_m0_wo0_cma0_b (0) '0'); u0_m0_wo0_cma0_c (0) '0'); u0_m0_wo0_cma0_anl
為了解決這個問題,請增加您指定的長度 適用于 FIR 篩檢程式。如果您選擇正確的長度,則實作 不需要任何 dlier 倍增器。或者,以手動方式編輯 FIR 編譯器 II 所產生的 VHDL,以新增 Quartus II 保留 屬性為 DSP 輸入暫存器。Quartus II 合成確實如此 請不移除 ddvd 倍增輸入寄存器和 Quartus II 介面卡可正確封裝所有 DSP 區塊輸入暫存器。自 手動編輯 VHDL,請按照下列步驟操作:尋找聲明 輸入寄存器的名稱與下列代碼類似:類型 u0_m0_wo0_cma0_a_type是簽名陣列(0 至 3)(16 下至 0);信號 u0_m0_wo0_cma0_a:u0_m0_wo0_cma0_a_type;輸入u0_m0_wo0_cma0_b_type 是陣列 (0 至 3) 的簽名 (16 下至 0);訊號u0_m0_wo0_cma0_b :u0_m0_wo0_cma0_b_type;類型 u0_m0_wo0_cma0_c_type 是陣列 (0 到 3) UNSIGNED(2 下至 0);訊號u0_m0_wo0_cma0_c:u0_m0_wo0_cma0_c_type;如果 FIR 篩選器不使用 DSP 區塊\的預設程式,\'b\' 訊號 不存在。新增下列代碼:屬性保留:boolean;屬性 保留u0_m0_wo0_cma0_a:訊號屬實;屬性保留 u0_m0_wo0_cma0_b:訊號屬實;屬性保留u0_m0_wo0_cma0_c :訊號屬實;應只新增保留屬性應宣告 只有一次。
此問題已在 DSP Builder v13.1 中得到解決。