2011-07-28 46 views
1

我只想在時鐘的第一個上升沿發射一個事件。Specman(e)問題

例如

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

clkr_e在每個上升時鐘被髮射。

但我只需要在pll_clk的第一個上升沿發出一個事件。請問任何人都可以從中看出這一點。

謝謝。

回答

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; 

您應該使用的Specman simple_port結構。當我們切換到端口而不是剔訪問時,我們的模擬速度翻了一番。在Specman文檔中查看它。