1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. Vivado® ML Editionで表示されるメッセージについて 【第2回】

TECHブログ

Vivado® ML Editionで表示されるメッセージについて 【第2回】

Vivado® ML Editionで表示されるメッセージについて 【第2回】

今回は、前回ブログの続きで、Vivado® ML Editionで表示されるメッセージについて記載します。
Vivado® ML EditionでSynthesis/Implementationを実行時に表示されるメッセージについて解説します。

目次

はじめに

Synthesis/Implementationは、AMD ザイリンクス社の以下のようなツールとなります。

Synthesis:
デバイス用の合成ツール
Implementation:
デバイス用の配置配線ツール

Vivado® ML Editionのツール画面に、エラーやワーニング等いろいろなメッセージが表示されます。
デザインによっては、数百または、それ以上の件数が表示されることがあります。

エラーメッセージの内容を確認し、処置後にImplementationを実行すると別のエラーメッセージが表示されることも多々あります。
そのためImplementation完了まで、数回メッセージ確認を繰り返すケースがあります。

Synthesis/Implementationの実行時に表示されるメッセージについて

メッセージは、以下のような意味を含みます。
※重要度の高い順に記載しています。
(前回ブログでも同様に記載しています。)

ERROR

デザインを使用することができない問題が発生しています。
ユーザー側で修正or変更の必要があります。

CRITICAL WARNING

制約の一部が適用できない等によりデザインに対して良い結果が得られません。
ユーザー側で修正or変更の必要があります。

WARNING

制約が意図通りに適用できない可能性があるため、デザイン結果が最適なものにはならない状態を指します。
ユーザー側で修正が可能、また現状維持も可能です。
→メッセージの内容確認必要となります。

INFO

メッセージIDが含まれており、アンサー レコードを検索して問題について確認することが可能です。

STATUS

一般的なステータス、デザインに関するユーザー側への通知です。


Synthesis/Implementationのメッセージの重要度は同じです。
メッセージの内容は、ユーザーの設計によって多数ありますので、本ブログでは、表示例として記述します。

Synthesis実行時に表示されるメッセージについて

メッセージの例

Critical Warning : [Synth 8-3352] multi-driven net

このクリティカルワーニングは、RTLソース記述のwire宣言によるメッセージです。
どのような記述かというと、例えば、

wire [31:0] reg_data = 32'h0;

です。

連続するassign文として処理され、初期値として処理されません。


ちなみにREG宣言で同様に記述すると

reg [31:0] reg_data = 32'h0;

これは、初期値として処理されます。
RTLソースで対応可能です。


CRITICAL WARNING: [Synth 8-2490] overwriting previous definition of module [<モジュール名>.v: <行数>]

このクリティカルワーニングは、複数のRTLファイルに宣言しているモジュール名かつ信号名が同一のため、メッセージが表示されます。

このクリティカルワーニングの解決策として

1.
複数のRTLファイルでモジュール名(信号名)が使用されていないことを確認する
2.
使用されていた場合、対象のRTLのモジュール名を変更する

など対応が必要となります。


Critical Warning:[Constraints 18-1055] Clock 'top_clk' completely overrides clock 'clk', which is referenced by one or more other constraints. Any constraints that refer to the overridden clock will be ignored.

このクリティカルワーニングは、XDCファイルで与えたクロック制約とClocking Wizard IP で既に制約されている内容と不一致のため、メッセージが表示されています。
そのため、ユーザーで作成しているXDCファイルとClocking Wizard IPの設定の確認を行い、制約内容を見直します。
もしIPの設定に問題あった場合は、改めてClocking Wizard IPで生成しなおします。


CRITICAL WARNING: [Timing 38-282] The design failed to meet the timing requirements. Please see the timing summary report for details on the timing violations.

このクリティカルワーニングは、Implementation後のデザインでタイミングエラーが発生しているメッセージです。
タイミングサマリーのレポートを確認し、エラー発生の原因解析が必要です。
Vivado® ML EditionのGUI上からも確認できますが、テキスト形式のファイルも生成されています。
フォルダの場所は以下になります。

<プロジェクトフォルダ> / <プロジェクト名>.runs / impl_1
対象ファイル:
<トップファイル名>_timing_summary_routed.rpt

ファイル内の検索キーワードとして” Slack (VIOLATED)”でタイミングエラー発生箇所のレポートにHITします。

タイミングレポートの見方については、別の機会で記載できたらと思います。

付録

UltraScale/UltraScale+ Memory IPでCSVを使用するIPを移動すると問題が発生する場合があります。
これは、新たなプロジェクトに、共通のため、過去のプロジェクトからIPを移動するとCSVが検出されない現象になり、エラーメッセージが表示されます。
回避策として、新たなプロジェクト内で対象のIPを生成しなおすことで問題がなくなります。

おわりに

いかがでしたでしょうか。本ブログは、ここまでとなります。
このようにVivado® ML Editionで表示されるメッセージは、似たような内容もありますが、たくさんあります。
Vivado® ML Editionのバージョンによっても、メッセージ表示内容が異なる場合や、メッセージが表示される場合、表示されない場合がありますので、AMD ザイリンクス社のアンサーレコードを確認しましょう。

最後までご覧いただきありがとうございました。


弊社ではFPGA設計や回路図設計、レイアウト設計、ソフトウェア設計、筐体設計などを受託開発しています。サービス内容をWEBサイトに掲載していますので、ぜひご覧ください。


詳細はこちら

このブログのシリーズ

関連ブログ