Verification Engineerの戯言
SystemVerilogでは、semaphoreが使えます。
使えるメソッドは、次の4つ。。
function new(int keyCount = 0 );
task put(int keyCount = 1);
task get(int keyCount = 1);
function int try_get(int keyCount = 1);
new関数が定義されているので、semaphoreはクラス(組み込みクラス)と考えてよいでしょう!
semaphore sem;
sem = new(1); // new関数の引数を0にすると、get(1)で獲得できないので注意!
sem.get(1);
// ここで排他処理をする....
sem.put(1);
排他処理をするには、このsemaphoreを使えばいいのです。便利ですよ。。。