ビットで演算されても実害はありません。(少なくとも言語仕様上は)存在しないため、問題が発生します。出力されることになります。想定通りメモリアドレス0の値が出力されます。いずれにしても、上記コードには改善の余地があります。時に次の警告が出るようです。渡すといった方法が考えられると思います。次の式は思った通りに動きません。ページにあったのを見て、自分でもやらかしたのを思い出しました。オーバーフローが起きた場合にはシフトの前に最上位ビットが失われてしまうためです。ビット幅に拡張しておく必要があります。シフト演算子の左辺と、代入演算の左辺とだけで演算ビット数が決定されます。1ずつ「減っていく」のを見てしばらく固まりました。疲れてたので面食らったという武勇伝でした。マクロの置き換えとは異なり固有の信号線幅を持っています。ビット幅が指定されていません。ビット幅になるため、パラメータとして指定された値が意図せず切り捨てられる可能性があります。ビット幅指定を忘れないようにと覚えておきましょう。ビット幅として使えるendmoduleなどとしてビット幅を明示しなければなりません。ビット幅指定を使った例を挙げておきます。-1;としなければなりません。$signed(-1)とした場合と大きく異なるため注意が必要です。使うことが推奨されていました。C);といった具合です。外の信号を参照してしまってもエラーにならないなどのミスが生じやすいことが挙げられています。C;というのが挙げられていました。曰く、「3項演算子が連続すると読みにくいので避けるべき」とのことでした。C;と書くのが読みやすく感じます。;とすればさらに読みやすいですね。ようにも使える上記コードで心配された問題はすべてクリアされている何より短く書ける分、一目で内容を理解できるあたりです。組み合わせ回路の生成にそれぞれ限定して使うことにしています。これで、順序回路と組み合わせ回路、どちらを意図しているか一目で分かって良い感じです。コードにノイズを増やすだけなので避けるようにしています。心がけるのであれば主張を取り下げます。これらの記述が冗長とは思いません。記述でコンパイラによるビット幅チェックが容易になることは望めませんでした。記述は単に冗長だと思います。(あまり乗り気じゃない雰囲気で?)書いている章がありますね。;endmoduleで十分だと思います。コードにノイズが少ない分、何をやっているかが一目瞭然です。厳密にはルール違反でしょうか。何にしても、回路の意図を最もシンプルに表せる記述を探すことを優先したいです。比較するのが常識とされているのだと思います。したがって、上記のような記事を書くとお叱りの声も多く聞こえてきそうです。結論が変わることもあるのではと思ったため記事にしてみました。書き換えるわけにはいかないですね。書き換え後のコードで意図と異なる回路が生成される可能性があるので注意が必要です。使い分けることができるそうです。文での記述は避けるべきなんですね。警告欄に目を光らせていればデバッグの手間を大幅に省くことができます。コーディングを工夫することで上手に消すことが推奨されています。コードをコンパイルしても1つもコンパイル警告が出ないのが普通です。本当に危険な警告に気づけない状況で開発を進めなければならないようです。警告欄を有効活用するための方法をメモしたいと思います。いう方法が提供されているようです。フィルタの削除や無効化をしたいときににっちもさっちもいかなくなります。1つ1つのフィルタに対してマウスでの操作が必要になります。あまりに手を抜きすぎです。最後の手段はこれを慎重にテキストエディタで編集することでした。見つけられていません。言語仕様にあれば良いのですが、たぶんできないのですよね。慣れていれば、こんなコードを書いたら、みんなに嫌われることはご存知かと・・・はい、ちまたで3項演算子が毛嫌いされていることは存じています。同様に読めば良いだけですので、どんどん使えば良いのにと思っています。「2項目でネスト」は可能な限り避けるべきだし、インデントに規約を設ける必要はありそうですが。正しいのだと思います。そのように取るのが良いと思います。実装するなら同様の注意が必要ですね。