systemVerilogサンプル・その6 casting

Quaruts2のhelpをcastを検索すると
4.14-4.16  Casting  Supported

と出てくるので試してみた。

        case (timer.state)
          state_t'(IDLE) : begin
             if(timer.cont_reg.count_en == 1'b1)
               timer.state <= #1 state_t'(LOAD) ;

実は timer_coreとuart16550にenum値でIDLEを使用している。
これを1chipにしてQuaruts2コンパイルするとIDLEが重なってエラーになるのだ。
  →modelSimは前後関係を推定してエラーは出ない。

仕方ないのでcastingで型を合わせてみた”上記のコード参照”。
IDLEがtimer_t型ならuartのIDLEとは型が違うので問題なくコンパイル??

実行してみるとエラー
Error (10784): HDL error at timer_package.sv(17): see declaration for object "IDLE"
駄目なのか。。
従来のdefine記述ではマクロ名が重ならないようにだらだらと長い名前を書いていたが
enumで型を付ければ。。と考えていたけどQuaruts2では駄目でした。。おしまい。。
IEEE 1800-2010ではこの辺のことはどう規定しているのだろう??情報求む!!

systemVerilog Quaruts2