ステートに名前を付けるWaveformViewを見ていても数字の羅列で分かりにくい事があります。Verilog3.1では、enumを使って記述できるのですが、Verilog3.1がメジャーになり、普通に合成ツールのサポートされるまで、まだ数年かかるでしょう。Veritakで、記述がスマートでなくなってしまうし、、と思っていたところ、あるUser様より素晴らしいアイデアを頂戴しました。その方法は、名前をパラメータのリストで実現するものです。次のような記述になります。Verilog言語仕様に完全に合致する記述です。endmoduleこれを、WaveformViewで見ると、下図のようになります。ToolTipで、数字も出しています。ところで、これをするには、WaveformView上で、信号とステート名の対応付けを指定してやる必要があります。下のように信号右クリック=>表示選択=>enum選択を指定します。するとパラメータを選択するダイアログが現れるので、指定します。ダイアログ内に表示されるのは、インスタンス展開した後の、モジュール内パラメータリストで、記述順に並びます。Veritak内部では、この記述順で、対応(バインディング)を管理しています。(従って、順番が変わらなければ、中身が変わっても関知しませんが、Scopeが変わると消失します。)Note:リストでないパラメータは表示されません(Ver1.24よりすべてのパラメータ表示に変更しました。)ダブルクリックすると当該記述箇所をVeripadが開きます。ダイアログに表示されるのは、8個のパラメータまでですが、WaveformView上は、無制限です。Viewer内部では、数値の比較を行い名前に変換しています。論理的には、===と似た動作です(従ってX,Zも可)が、ビット幅は、min(信号、パラメータ)にしています。ダイアログを閉じた後、SaveProject(または、名前を付けて保存)でその時点のバインディングが記録されます。次の例は、YACCプロジェクトのALUの記述例です。endendmoduleTIPSVerilo2001では、$sformat($sprintf)を使い、上図のように逆アセンブラも容易に書くことができます。YACCプロジェクトのページをご参照ください。