2017-02-20 9 views
0

私は依然として感度リストを理解するのに苦労しており、プロセスを起動しています。 ほとんどの教科書は、機密性リスト内の信号にイベントが発生するたびにプロセスがアクティブになると言います。プロセスがアクティブ化または中断されていますか?

process(in) 
begin 
    x <= in; 
end process; 

この例を見ると、 "in"はエンティティで宣言された入力です。ここで、 "in"が0で始まり1に変わると、プロセスはアクティブになり、xの値は "in"の値をとります。今度は、0から1に変更した後、定数1に留まるとします。これは、プロセスがアクティブ化されないことを意味しますか? xはまだ '1'の出力を出すでしょうか?私はそれが有効にならないと言いたいと思います.1回から0回までの変更を一度有効にします。

+1

予約語ではありませんか? –

+0

それはありますが、彼はそれを例として使用したかったと思いました。 @BrianDrummond –

答えて

0

何らかのタイプの信号変更(L→H、0→1、1→0)があるときはいつでも、感度リスト(これはハードウェア言語、VHDLと同じ構文とフォーマットを仮定します) ..あなたが感度リストにリストアップした変数の変更)、それはプロセスをアクティブにし、完了するまでプロセスが実行され、プロセスは終了します。プロセスが終了すると、信号/出力(それらをどのように解釈するかに依存します)がドライバに格納され、伝播遅延の後に所定の信号が更新されます。

したがって、2番目のステートメントから、はい。 0→1に変わるとプロセスはアクティブになり、1→0であればプロセスはアクティブになり、のが1のままであればプロセスはアクティブになりません。だからxの価値は残っている。

+0

はい、それはVHDLですが、ありがとうございます! –

関連する問題