記事 ID: 000085872 コンテンツタイプ: トラブルシューティング 最終改訂日: 2017/11/08

書き込み有効にしたが、唲氾氾された Busズライー・ブロックで主張しないのはなぜですか?

環境

    インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
    DSP Builder for インテル® FPGA
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

DSP Builder Advanced Blockset バージョン 17.1 以前の問題により、Simulink® が BusStimulus ブロックの前で他のバスブロックを実行すると、次のエラーが表示されることがあります。

  • 午氾的な Bus 2009 ブロックの書き込み有効は、決して主張しません
  • すべてのバスブロック上のその他の出力は、1 クロックサイクル後に発生します

DSP Builder では、バスブロック (RegField ブロックなど) は BusStimulus ブロックに依存しています。その間に暗黙の配線があります。そのため、Simulink は他のバスブロックの前で BusStimulus ブロックを実行する必要があります。しかし、Simulink はこの依存性を認識しないため、Simulink はこれらのブロックを任意の順序で自由に実行できます。

バスブロックの実行順序は、設計の変更によって変更されることがあります。例えば、自動検証のためにバスのレイテンシーに依存するデザインでは、スコープブロックを追加したためにエラーが発生する可能性があります。追加のブロックは、BusStimulus ブロックの前に RegField ブロックを配置することで実行順序を変更し、その間のレイテンシーを変更する場合があります。

解決方法

この問題を回避するには、BusStimulus ブロックの優先度を DSP Builder デザインを含むサブシステム・ブロックより低い値に設定します。例えば、BusStimulus ブロック Priority を 0 に設定し、DSPBA サブシステム・ブロックを 1 に設定します。Simulink は、サブシステムの何より前に BusStimulus ブロックを実行し、一貫したバス動作を保証する必要があります。

実行順序を表示するには、メイン・メニュー・バーで[Display -> Blocks -> Sorted Execution Order (ソートされた実行順序)] を選択します。

ブロックの優先度を設定するには、ブロックを右クリックして、[プロパティ: 優先度] フィールドを [全般] タブで選択します。

注:優先度の値は、低い値が最初に実行されるという点で、実行順序に似ています。ただし、優先度の値は、サブシステムをまたがらないという点で実行順序とは異なります。これは、DSP Builder サブシステムに含まれるバスブロックではなく、DSP Builder サブシステムで優先順位を設定することが要件の理由です。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。