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は前後関係を推定してエラーは出ない。
これを1chipにしてQuaruts2コンパイルするとIDLEが重なってエラーになるのだ。
→modelSimは前後関係を推定してエラーは出ない。
実行してみるとエラー
従来のdefine記述ではマクロ名が重ならないようにだらだらと長い名前を書いていたが
enumで型を付ければ。。と考えていたけどQuaruts2では駄目でした。。おしまい。。
IEEE 1800-2010ではこの辺のことはどう規定しているのだろう??情報求む!!
Error (10784): HDL error at timer_package.sv(17): see declaration for object "IDLE"駄目なのか。。
従来のdefine記述ではマクロ名が重ならないようにだらだらと長い名前を書いていたが
enumで型を付ければ。。と考えていたけどQuaruts2では駄目でした。。おしまい。。
IEEE 1800-2010ではこの辺のことはどう規定しているのだろう??情報求む!!
systemVerilog Quaruts2