我是從UserGuide上整理出來的
也就是我們可以有下面兩種產生clock的方法
或者說是任意的波形
第一種方法
For examples, assume you have defined a clock as:
sc_clock clk(“my clock”, 20, 0.5);
You can simulate the generation of clocks for 200 default time units by calling
sc_start(200);
第二種方法
sc_signal
sc_initialize(); //
for (int i = 0; i <= 200; i++)
clock = 1;
sc_cycle(10);
clock = 0;
sc_cycle(10);
}
另外關於非同步的時序
可參考我改寫的例子
此處可以寫出 VCD檔來
#include
int sc_main(int argc,char** argv){
// sc_clock clock;
sc_signal
sc_trace_file *wf = sc_create_vcd_trace_file("sc_cycle");
sc_trace(wf, clock, "clock");
sc_trace(wf, reset, "reset");
sc_initialize();
// Let the clock run for 10 cycles
for (int i = 0; i <= 200; i++) {
clock = 1;
sc_cycle(10);
clock = 0;
sc_cycle(10);
}
// Inject asynchronous reset
clock = 1;
sc_cycle(5);
reset = 1;
sc_cycle(5);
clock = 0;
sc_cycle(10);
clock = 1;
sc_cycle(5);
reset = 0;
sc_cycle(5);
clock = 0;
sc_cycle(10);
// Now let the clock run indefinitely
for (int i=0 ;i<300;i++) {
clock = 1;
sc_cycle(10);
clock = 0;
sc_cycle(10);
}
sc_close_vcd_trace_file(wf);
return 0;
}
2011年5月21日 星期六
SystemC 時序控制的方法
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言