7系列GTP / GTH - 仿真速度太慢,加快仿真

问题描述

GTP和GTH重置例程中有一些DRP写操作会使SIM_RESET_SPEEDUP标志无法工作。

重置将更快但仿真将失败。

这些DRP写入的原因在设计咨询(Xilinx答复53561)(Xilinx答复53779)中有所描述。

解决/修复方法

解决此问题的一种方法是绕过DRP写入。

但是,这可能很困难,因为需要更改的区域是“只读”代码。

另一个问题是,实现中的更改不得到位,否则重置将在硬件中失败。

还有另一种方法可以通过向测试平台添加2行代码来解决此问题。

因为它们只在测试平台中,所以不会影响常规实现。

首先将SIM_RESET_SPEEDUP标志设置为true。这不能在RTL中完成,因为此标志的层次结构存在中断。

第二种是强制DRPWE为0进行仿真。这将阻止写入。

DRPWE总线的宽度将根据设计中的车道数量而变化。

除了您使用DRP之外,通常不需要DRP,但是根据您的线路速率,您可以在延迟大约30 us后强制执行DRPWE。

2个命令中显示的层次结构使用gtwizard0的默认命名,并将根据您命名实例化的内容而更改。

以下代码适用于GTP,但类似的方法可用于GTH。

通过这些更改,GT应该在30到80 us之间启动并运行,具体取决于线路速率而不是正常的1.5 ms。

......

  initial
    begin
        force gtwizard_0_exdes_i.gtwizard_0_support_i.gtwizard_0_init_i.inst.gtwizard_0_i.gt0_gtwizard_0_i.gtpe2_i.DRPWE = 1'h0 ;  ////////////////////////////////////////////////////////////////////////// for simulation speed up only
        track_data_low_r = 1'b0;
        #3500000;
        @(negedge track_data_i) begin
            track_data_low_r = 1'b1;
        end
    end    

  defparam  gtwizard_0_exdes_i.gtwizard_0_support_i.gtwizard_0_init_i.inst.EXAMPLE_SIM_GTRESET_SPEEDUP = "TRUE";           /////////////////////////////////////////////////////////////////////////////////for simulation speedup only
    //----------------- Instantiate an gtwizard_0_exdes module  -----------------
    gtwizard_0_exdes
    gtwizard_0_exdes_i
    (
         .Q0_CLK1_GTREFCLK_PAD_N_IN           (tx_refclk_n_r),
         .Q0_CLK1_GTREFCLK_PAD_P_IN           (tx_refclk_p_r),
        .DRP_CLK_IN_P                        (drp_clk_r),
        .DRP_CLK_IN_N                        (~drp_clk_r),
        .GTTX_RESET_IN                       (gttx_reset_i),
        .GTRX_RESET_IN                       (gtrx_reset_i),
        .PLL0_RESET_IN                       (pll0_reset_i),
        .PLL1_RESET_IN                       (pll1_reset_i),
        .TRACK_DATA_OUT                      (track_data_i),
        .RXN_IN                              (rxn_in_i),
        .RXP_IN                              (rxp_in_i),
        .TXN_OUT                             (txn_out_i),
        .TXP_OUT                             (txp_out_i)
    );
endmodule
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2019-05-10 16:26:32 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它