waljj

一个SignalTap II的使用技巧

0
阅读(3851)

    在用SignalTap II 进行调试的时候,时钟选择非常关键。这里一般都是选择系统时钟。在一般的应用中,选择系统时钟作为触发,基本上都能很好的得到所需要的效果。如下图,clk为系统时钟

         

但是有时候,我们希望看到一些组合逻辑到底是在这个时钟周期的那个位置得到输出结果的,以便进行相关的时序约束。这时仅仅用系统时钟作为触发是不够的,因为这只在时钟的上升沿的时候得到数据,而在周期当中什么时候得到输出就不能知道了。

     现在很多系统时钟都是通过PLL进行分频或倍频得出的,这时候我们就可以通过PLL再陪频出一个时钟clks。如:

     spll  mypll(

          .inclk0(clk_50mhz),

                  .c0(clk),

          .c1(clks)

        );

使clks是系统时钟频率的两倍,然后用clks作为SignalTap II 的采集时钟。这样的话,我们就可以得出组合逻辑是在系统时钟的前半周期还是后半周期得到输出结果的,从而可以进行相应的时序约会。

    不过这样做,在相同的采样深度的情况下,采集到的数据量会相应的减半。这时候可以通过采集条件的设置,仅仅只采集有用的部分就可以了。

    这个方法进行时序的调整,有时候挺有用的。不知道这里有没有表述清楚,欢迎大家一起讨论。