これに関連する質問は見つかりませんでしたが、何を検索するのか分からない可能性があります。合成ツールを使用する場合(特定のツールが必要な場合はSynplifyと言いますが、ツール間で機能する標準準拠のバージョンがあれば最適です)、モジュールのインスタンス数を追跡し、合成ガイド?私はそうは思わないが、私はこのようなものに対して多くのユースケースを見ることができる。私が意味することのいくつかの例を挙げてみましょう。合成グローバルインスタンスカウント
いくつかの文脈では、私はFPGA開発を念頭に置いてこれを書いていますが、ASICデザインにもその用途があると思います。
私はデバイスに10個の乗算器があり、複雑な乗算器のようないくつかの演算が(多くの場所で(ループを生成するだけでなく、デザイン全体に)インスタンス化したいと考えているとします。この関数に専用の乗算器を使用して1つの実装があるとしますが、そのファブリックを使用する複素乗算器もあります。ファブリックの実装に移る前に、私の複素乗算器が専用の乗算器を使い果たすようにしたいと思います。
複雑な乗算器をラッパーでインスタンス化することは可能ですか?このラッパーがエラボレーション中にインスタンス化されるたびに、グローバルインスタンスカウントが増分されるので、使用された乗数を記録できますか?さらに、このグローバル変数をgenerate-if文または他の構文で使用して、使用されている乗算器モジュールのインスタンス数に基づいて2つの実装の間で決定を下すことができますか?
例として乗数を使用しています。私はこの動作を得るために乗数を推論することができることを理解しています。私は、このグローバル変数の現在の値に基づいて、異なるフィルタ構造(例えば、タップ付き遅延線FIRフィルタ対分散算術FIRフィルタ)を推測したいと思うデザインを想像しています。新しいFPGAにコードを移植する際には、これは確かに役立ちます。
私はしばらくこのようなものを探していましたが、存在しないと思われます。私は、私のシステムのアーキテクチャーを正しい方法で設計するだけで、私が望むものに非常に近い何かをすることができることを理解しています。ここでの意図は、私の設計におけるプロセスを自動化することです。そのため、設計の将来の変更では、(タイミングやリソースの制限が作用しない限り)システム全体のレイアウトをリファクタリングする必要はありません。私はこれを、同じファミリのデバイス間で非常に異なるリソース割り当て(これはDSPスライスが増え、LUTの数が増えているなど)を使用して移植可能に保つ手段とも見ています。
これは1つのツールまたは1つの言語でしか存在しない場合、それでも私にとっては受け入れられる解決策です。あなたが決定的な証拠やそれがうまくいかない理由について論理的な理由を提示できれば、それは私には受け入れられる解決策にもなります。
関連する質問[VHDLリソース使用プロファイリングツールはありますか?](https://stackoverflow.com/questions/41907940/are-there-any-vhdl-resource-usage-profiling-tools)を参照してください。 – user1155120