忍者ブログ

雑記

【SystemVerilog】semaphoreをenum型の配列で宣言する例

雑記 > codeのメモ > 【SystemVerilog】semaphoreをenum型の配列で宣言する例


typedef enum { 
   Task00
  ,Task01
  ,Task02
} SemItem_e ;

semaphore SemTask[SemItem_e] ;

semaphoreはnewが必要でenumの要素分newの記述が必要になるが、 上手く記述すればenumの要素数を増やしてもnewの記述を変えずに済む方法があるとか。



function new (string name)
  super.new(name);
  SemTask[Task00] = new(1) ;
  SemTask[Task01] = new(1) ;
  SemTask[Task02] = new(1) ;
endfunction

semaphoreを使用する箇所は以下のように記述


  SemTask[Task00].get() ;
     do_run_Task00() ;
  SemTask[Task00].put() ;

コメント

カレンダー

08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30