当方、C言語に関してまったくの初心者なのですが(始めて一週間です;;)、現在verilogのシミュレーション環境からPLI関数を呼びだしてクロックを生成することを目指しています。
具体的にはCのソース部分で100MHzのクロックを生成したいのですが、どのようにクロック周波数やシミュレーション時間を定義したらよいのかわからず途方にくれております。
見様見真似でかいた.cのソースコードは以下の通りです。
.C file
#include "acc_user.h" #include "veriuser.h" // Define the ON and OFF time of clock #define init_time 0.0 #define last_time 100.0ps #define step 10e-8s clock () { int i; char clock = 0, last_clock; // Main routine which toggles the clock for (i = 0; i < step; i++) { last_clock = clock; clock = !( last_clock ) ; io_printf ("i:%2d", i) ; io_printf ("clock:%1d", clock) ; } }.v file
module clkGen(clk); output clk; reg clk; initial begin //$shm_open("trn_open"); //$shm_probe("AC"); $clkGen(clk); end endmoduleこれだとテキスト出力はされるのですが、時間の流れが負えず、所望の波形が出力されているのかどうか確認できません。
何かよい知恵がございましたら、ご教授ください。
よろしくお願いいたします。