semaphore
semaphoreの例題です。
semaphoreには、つぎのような関数(メソッド)があります。
・ new
・ put
・ get
・ trg_get
putとgetの引数はデフォルト値として1が指定されていますので、
引数を指定しない場合は、put(1)、get(1)と同じことになります。
添付ファイル(semaphore.sv)をModelSim AE 6.4a Starter Editionでシミュレーションした結果は、次のようになります。
# vsim -do {run ;quit} -c test_sem
# Loading sv_std.std
# Loading work.test_sem
# run
# 1:sem1.try_get = 1 at 5
# 1:sem1.put at 5
# 1:sem2.try_get = 1 at 20
# 2:sem2.get at 20
# 1:sem2.try_get = 0 at 40
# 2:sem2.put at 40
# 2:done at 40
# 1:sem2.try_get = 0 at 40
# 3:sem2.get at 40
# 1:sem2.try_get = 1 at 50
# 3:sem2.put at 50
# 3:done at 50
# quit