1

我只想在时钟的第一个上升沿发出事件。

例如

event clkr_e is rise ('pll_clk') @ sim; 

clkr_e在每个上升时钟发出。

但是我只需要在 pll_clk 的第一个上升沿发出一个事件。任何人都可以对此有所了解。

谢谢。

4

1 回答 1

1

使用标志:

clk_has_risen : bool;
keep clk_has_risen == FALSE;

event first_clk_rise_e is true(clk_has_risen == FALSE) @ clkr_e;
on first_clk_rise_e {
    clk_has_risen = TRUE;
};

此外,这是一个性能禁忌:

event clkr_e is rise ('pll_clk') @ sim; 

您应该使用 Specmansimple_port构造。当我们切换到端口而不是滴答访问时,我们的模拟速度提高了一倍。在您的 Specman 文档中查找。

于 2011-07-28T16:00:57.200 回答