0
    case task is

       when 1 => task <= 2;

       when 2 => task <= 3; 

       when other =>...

    end case

ケース内のスイッチ変数を変更しようとしましたが、ケース句が渡された後の値には影響しません。それを行う適切な方法は何ですか?

4

2 に答える 2

3

シグナル割り当てを使用しているため、変数ではなくシグナルである<=と想定しています。taskタスクの新しい値は、次のシミュレーション サイクル (デルタ サイクル) で使用できます。これは通常、プロセスが再度実行されたとき、または「待機」ステートメントの後に新しい値が表示されることを意味します (ただし、コードを合成する場合は、おそらく待機ステートメントは必要ありません)。

別の方法として、 に変数task使用し、変数代入演算子を使用できます。task := 2;

于 2012-09-11T15:00:49.680 に答える
0

シグナルではなく変数を使用してください。これにより、期待どおりに更新されます。

シグナルは、更新が適切に制御されるため、複数のプロセス間の通信に役立ちます。通常の変数はプロセススコープに限定されていないため、エラーが発生しやすいプロセス間通信に誤って使用されることはありません。

于 2012-09-12T15:52:03.630 に答える