Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

semaphore

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を使えばいいのです。便利ですよ。。。