2

私は文章を書くVHDLのはある程度上手ですが、答える必要がある比較的基本的な質問がありVHDLます。

基本的な例: で 8 ビットを設計してALUいたとします。その実装VHDLにはいくつかのオプションがあります。VHDL

ALU 全体を 1 つのエンティティとして設計するだけです。エンティティで必要なすべての I/O を使用します (IEEE_STD_ARITHMETIC ライブラリにより実行できます)。

- また -

そのALUを後続のブロックに分割します。たとえば、キャリー先読み加算器といくつかのマルチプレクサです。

- また -

それを、キャリー先読みを行うブロックにさらに分割します。多数の部分全加算器、キャリー パス、およびマルチプレクサを構成し、構造要素を使用してそれらをすべて接続します。

次に、(必要に応じて) そのすべてをゲート レベルまで分解し、それぞれのエンティティ、動作、および構造を作成することができます。

もちろん、分割すればALUするほど、VHDL必要なファイルが増えます。

これは合成後のフィジカル インプリメンテーションに影響しますか?

4

1 に答える 1

4

VHDLを最高レベルの抽象化に保つ必要があるため、説明したように「分解」しないでください。あなたが提案しているのは、合成を自分で行うことです(キャリー先読み加算器を作成するなど)。これは悪い考えです。ターゲット デバイス (FPGA または ASIC ライブラリ) もシンセサイザーも知らないため、シンセサイザーに何をすべきかを伝えようとするべきではありません。追加を行う場合は、+演算子を使用すると、ツールが設計上の制約に適合する最適な構造を見つけ出します。

通常、モジュール間の最適化はモジュール内の最適化よりも難しいため、デザインを多くのモジュールに分割すると、デザインの最適化がより困難になることがよくあります。

もちろん、設計と可読性を維持するために、明確に定義されたインターフェイスを持つ主要な機能ブロックは個別のモジュールに配置する必要があります。ALU は 1 つのモジュールであり、命令 ROM は別のモジュールである可能性があります。これらのモジュールには明確に定義された明確な機能があり、モジュール内の最適化の機会はあまりありません。利用可能な最適化の最後のビットを取得したい場合は、最適化の前にデザインを平坦化し、ツールに作業を任せてください。

于 2013-12-21T21:46:53.157 に答える