文章 ID: 000076343 内容类型: 故障排除 上次审核日期: 2015 年 10 月 05 日

为什么我的本机固定点 DSP 模块在模拟中表现出意想不到的延迟?

环境

  • 英特尔® Quartus® II 订阅版
  • DSP
  • 模拟
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    对于一些参数、模拟器和 RTL 编码风格组合,模拟中的该模块的延迟与预期的延迟视同一个时钟而异。实际硬件实现了预期的延迟。

    例如,如果驱动 DSP 模块的时钟是生成输入数据的时钟延迟版本,从而对输入时钟产生比输入数据更多的模拟延迟。

    解决方法

    要解决此问题,必须确保将输入数据生成到 DSP 模块的时钟与 DSP 模块的输入时钟之间的延迟因输入数据的延迟而平衡。或者,与 DSP 模块的输入时钟相比,可确保输入数据在以后的绝对时间到达,或者较晚的模拟并联网延迟时间。

    请注意,诸如时钟路径上的更多分配语句与数据路径相比较,将导致这些路径之间的模拟并联网延迟差异。

    要做到这一点,请将您的测试台修改为:

    1. 确保 为 Native 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), -- [在]
    clk =>(“00” &clk_orig),-- [在]
    resulta => 结果 2, -- [out]
    ...
    );

    结果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), -- [在]
    clk => (clk_3bit),-- [in]
    resulta => 结果 2, -- [out]
    ...
    );

    示例 2、替代建议:将相应的延迟添加到输入数据中

    \'clk =>(“00” & clk_orig)\' 的声明导致 \'clk“端口在 \'clk_orig\' 的驱动下增加了一个模拟 delta 延迟。要克服这一问题,您可以使用原始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),-- [在]
    clk =>(“00” &clk_orig),-- [在]
    resulta => 结果 2, -- [out]
    ...
    );

    相关产品

    本文适用于 1 产品

    英特尔® Arria® 10 GX FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。