Vivado 合成では、RTL でのカスタム属性の使用がサポートされています。カスタム属性のビヘイビアー合成は不明です。カスタム属性は通常、合成後に実行されるほかのツールで使用するためのものです。
注意:
Vivado 合成は、不明な属性があると、それらの属性を合成出力ネットリストに転送しようとしますが、そのリスクを理解しておく必要があります。カスタム属性が設定されていても合成最適化が阻止されることはないので、カスタム属性が設定されているオブジェクトが最適化で削除されると、その属性は失われます。
カスタム属性を合成後の段階に渡す必要がある場合は、DONT_TOUCH
または KEEP_HIERARCHY
属性を使用して、カスタム属性が必要なオブジェクトが合成最適化により削除されないようにする必要があります。
カスタム属性を設定可能なオブジェクトは、階層と信号です。
合成ではデフォルトでデザイン階層がフラット化され、デザインが最適化されてからデザイン階層が再構築されるので、カスタム属性を階層に設定する場合は、-flatten_hierarchy
オプションを none
に設定するか、その階層レベルに KEEP_HIERARCHY
を設定する必要があります。
デザイン階層がフラット化されると、階層に設定されたカスタム属性は失われます。