私は信号割り当てがプロセスの最後に行われることを知っています。しかし、私は2つの信号 "A"と "B"を持っているとしましょう。私のプロセス(ほとんどのサイクルで)ではAの値が頻繁に変化し、BはAの値を次のクロックサイクルで他の信号に割り当てるための一時的な値として保持するために使用されます。しかし、ある種のことが起こらない限り、Bの価値を変えたくない。ですから、AをBに1回代入すると、Aの値が変わるたびにBの値が自動的に更新されますか?答えが「はい」の場合、if文が成立したときにのみ、Bがその値を変更できるようにするにはどうすればよいですか? Bがこれを解決するため、シグナルの代わりに変数を使用していますか?信号を使って温度値を保持するVHDL
0
A
答えて
0
信号と変数の主な違いの1つは、変数の割り当てが直ちに行われ、信号の割り当てがプロセス評価の終了時(通常はクロックサイクルの終了時)に行われることです。
AおよびBは、両方の信号として宣言された場合:
ステートメントが真と評価された場合、Bは、Aが(Some_Frequently_Changing_Signalの間であった何であろうどのプロセスへのエントリ時に有していた値が割り当てられprocess (reset, clk)
begin
if (reset = '1') then
A <= '0';
B <= '0';
elsif rising_edge(clk) then
A <= Some_Frequently_Changing_Signal;
if ("certain thing happens") then
B <= A;
end if;
end if;
end process;
前のクロックサイクル)。
我々ではなく、信号の変数として宣言する場合:
process (reset, clk)
begin
if (reset = '1') then
A := '0';
B <= '0';
elsif rising_edge(clk) then
A := Some_Frequently_Changing_Signal;
if ("certain thing happens") then
B <= A;
end if;
end if;
end process;
文が真と評価された場合、Bが割り当てられているA.しかし、Aは変数の代入がかかるためSome_Frequently_Changing_Signalの現在の値を保持していますすぐに置く。このタイプのコーディングスタイルはお勧めしません。
process (reset, clk)
begin
if (reset = '1') then
B <= '0';
elsif rising_edge(clk) then
if ("certain thing happens") then
B <= Some_Frequently_Changing_Signal;
end if;
end if;
end process;
関連する問題
- 1. エコー度記号(温度)をテキストファイルutf8に保存しますか?
- 2. ファセットラベルの温度記号
- 3. VHDL:複数の値と信号を比較する
- 4. トグル温度値Jquery
- 5. arduinooキットの温度センサを使用して温度値を測定することができません
- 6. 温度値を表示するXamarinフォーム
- 7. VHDLの信号値を特定できません
- 8. AWS IOTの温度をDynamoDBに保存
- 9. 時間温度データをDBに保存
- 10. は、私は数年間の温度レコードを含むデータファイルを持っている
- 11. VHDL信号を送るポートを指定する
- 12. macOS。プログラムによってCPU温度を取得する方法
- 13. Rainbow HAT Androidの温度の温度オフセット
- 14. SVインターフェース信号をVHDLタイプにバインドする方法は?
- 15. lmセンサーを使用して温度を取得する
- 16. Caffe:スケール層を使用してSoftmax温度を追加する
- 17. VHDLで信号を遅延させるテストベンチ
- 18. 角度グリッターを使って高さを保持する方法は?
- 19. 温度ヒートマップ:間違った平日/年
- 20. VHDLの符号付き信号の平均操作
- 21. 湿度と人数のフィールドが私の温度フィールドと同じ機能を持っています。
- 22. GUIを使用した温度コンバータ
- 23. グローバル温度テーブルでマージを使用
- 24. 温度値の移動平均(Python)
- 25. Arduino温度センサーカウントバック
- 26. 温度変換
- 27. iPhone温度センサー
- 28. 温度コンバータJava
- 29. ファンクタは、私はこのコードを持っている信号オブジェクト
- 30. 同時との条件付き信号の割り当て(VHDL)
私はあなたの質問を理解していません。 [MCVE](http://stackoverflow.com/help/mcve)の生成はどうですか?もしあなたがそうしたら、あなたは自分自身によく答えるかもしれません。 –
あなたは不明です。コードで説明してください。機密リストには何がありますか? – user1155120
プロセス内のどのような割り当てがやや基本的なレベルであるかを理解しているとは思いません。実行するたびにプロセス内に 'B <= A'を割り当てると、プロセスの最後に(0時の差分)' B'は 'A'がプロセスにエントリ*したときの値を取得します。 'if'文内に' B <= A'を割り当てるだけであれば、プロセスは実行されますが 'if'文を満たさない場合、' B'は前の値を保持します。あなたのプロセスがクロック供給されていると仮定すると、これはフリップフロップに 'B'を実装します。それがロックされていないプロセスだった場合、それはラッチ(悪い)で実装されます。 – QuantumRipple