文章 ID: 000076343 內容類型: 疑難排解 最近查看日期: 2015 年 10 月 05 日

為什麼我的原生固定點 DSP 模組在模擬中顯示出意料之外的延遲?

環境

  • Intel® Quartus® II 訂閱版
  • DSP
  • 模擬
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    對於一些參數、模擬器和 RTL 編碼樣式的組合,此模組在模擬中的延遲偏離了預期的延遲:一個頻率。實際的硬體會顯示預期的延遲。

    舉例來說,如果驅動 DSP 區塊的頻率是產生輸入資料的頻率延遲版本,那麼輸入頻率的模擬延遲會比輸入資料多。

    解決方法

    若要解決此問題,您必須確保產生 DSP 區塊輸入資料的頻率與 DSP 區塊的輸入頻率之間的延遲會因輸入資料上的延遲而平衡。或者,相較于 DSP 區塊的輸入頻率,確保輸入資料在稍後的絕對時間到達,或是較晚的模擬三角延遲時間。

    請注意,與資料路徑相比,頻率路徑上的作業陳述較多,這些路徑之間的模擬三角延遲差異。

    若要達成此目標,請修改您的測試台:

    1. 確保 產生原始 DSP 區塊輸入的頻率與輸入原生 DSP 區塊的頻率訊號完全相同。
    2. 如果 #1 不可行,請 延遲 相對於頻率的輸入資料。

    例如,請考慮下列原始 RTL 代碼:

    原始 RTL:

    clk_gen:程式
    開始
    clk_orig <= \'0\';
    等待 5 ns;
    clk_orig <= \'1\';
    等待 5 ns;
    結束程式;

    ...

    如果 (rising_edge (clk_orig)) 然後
    ax <= ax 1;
    ay <= ay - 1;
    結束,如果

    mac_test_bad_style:mult_acc
    埠地圖 (
    ...
    ax => std_logic_vector(ax),--[in]
    ay => std_logic_vector(ay),--[in]
    clk => (「00」 &clk_orig),--[in]
    結果 =>結果a2, -- [輸出]
    ...
    );

    結果會顯示比預期少一個頻率的延遲。請注意,倍增器\的 clk 埠作業中「00 &clk」的組別,從產生輸入資料的「clk_orig」中增加了模擬三角延遲。

    可能的解決方法包括:

    範例 1,建議:在整個過程中使用 3 位頻率

    您可以直接產生倍增器\的 3 位頻率,並使用主動位來計時輸入資料:

    clk_gen:程式
    開始
    clk3bit <= \'000\';
    等待 5 ns;
    clk3bit <= \'001\';
    等待 5 ns;
    結束程式;

    ...

    如果 (rising_edge (clk3bit (0)) 然後
    ax <= ax 1;
    ay <= ay - 1;
    結束,如果

    mac_test_bad_style:mult_acc
    埠地圖 (
    ...
    ax => std_logic_vector(ax),--[in]
    ay => std_logic_vector(ay),--[in]
    clk => (clk_3bit),-- [in]
    結果 =>結果a2, -- [輸出]
    ...
    );

    範例 2,替代建議:在輸入資料中加入對應的延遲

    \'clk => (「00」 &clk_orig)\' 聲明使 \'clk」埠有額外的模擬三角延遲,因為 \'clk_orig\'即驅動資料。為了克服此問題,您可以使用原始的clk_gen程式,並且僅透過分配對帳單將模擬三角延遲新增到資料中。

    clk_gen:程式(與原始程式相同)

    ax_del <= ax;
    ay_del<=ay;

    mac_test_bad_style:mult_acc
    埠地圖 (
    ...
    ax => std_logic_vector(ax_del),--[in]
    ay => std_logic_vector(ay_del),--[in]
    clk => (「00」 &clk_orig),--[in]
    結果 =>結果a2, -- [輸出]
    ...
    );

    相關產品

    本文章適用於 1 產品

    Intel® Arria® 10 GX FPGA

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。