2011-07-25 17 views
2

モジュールをインスタンス化して出力の一部のビットのみを気にするとき、ビットを捨てるための簡潔な構文がありますか?この場合モジュールの出力でのVerilog連結

my_module module_instance 
( 
.some_output({garbage1,important1[7:0]}) 
); 

のようなものは、my_moduleの信号some_outputは9ビット幅ですが、私は唯一のimportant1に下位8ビットを固執したいです。私はすべての9ビットの信号を作ることができ、それから8を選択するだけで、コンパイラが最適化することは分かっていますが、イディオムまたは省略形を探しています。

my_module module_instance #(.WIDTH(8)) 
( 
.some_output(important1[7:0]) 
); 
+0

いずれのオプションもうまくいきました。 –

+4

このアプローチ(出力を無視する)の欠点の1つは、通常、シンセサイザーからの警告が表示されることです。あなたがメッセージを最小限に抑えて、重要なメッセージをより簡単に捕まえることができない限り、大したことではありません。 –

答えて

3

あなたはモジュール内の出力ポートの幅をパラメータ化した場合、そのインスタンスにパラメータを渡す、未使用のビットを捨てるための信号を作成する必要はありませんツールが示唆するように、モジュールをパラメータ化する。あなたが広いポートについているなら、私は余分なビットを捨てるためのシームレスな方法を知らない。

未使用ビットに1'bzを使用すると魅力的ですが、合法ではありません。

未使用ビットがMSBの場合、9ビットポートを8ビット信号に接続できますが、これはコーディングスタイルが悪く、一部のツールから警告が表示されます。

1つの可能性は、未使用の信号の規則を定義することです。たとえば、接尾辞_NC(no-connect)を定義します。これは、意図を記録するのに役立ちます。シグナルを個別にリストするのではなく、パターンマッチを使用して、ダングリングシグナルに関する警告をフィルタリングすることもできます。

信号がポートを通過する際に信号の名前が変更されないコーディングスタイルを採用すると、特に余分なビットをポートで完全に整えることができます。

1

一つのオプションはにある:

+0

'nc_'を使うことは私がやっていることです。しかし、それは頻繁に起こっていません。 – Marty

関連する問題