0

SIMULINK でカウンタ ロジックを実装しようとしています。

in1, in2 are inputs

out1 is the output

if in2 = 0, out1 = 0;

if in2 = 1, out1 = 1 after x high edges of in1

"Detect Rise Positive" ブロックを使用してみましたが、SIMULINK でタイミング ダイアグラムを正しく実装する十分な経験がないため、惨めに失敗しました。誰か親切に私を正しい方向に向けてもらえますか?

アップデート

この質問を投稿してから取ったアプローチは、「トリガーされ有効化されたサブシステム」です。次のように設定しようとしています。

in2 becomes the enable signal
in1 becomes the trigger
in2 becomes the intput to the subsystem
Out1 becomes the output of the subsystem

しかし、上記はゴミだと思います。残念ながら、ハードウェア ロジックの 4 ~ 5 行の記述を使用して実装できたのは VHDL ではありません。

4

2 に答える 2

0

Triggered and Enabled サブシステムを使用することは正しいアプローチですが、入力 (およびサブシステムの内部にあるものは間違いなく) を変更する必要があります。

サブシステムへの入力はありません (トリガー信号とイネーブル信号以外)。

サブシステムの内部では、

  • enable ブロック プロパティを設定して、無効になったときに状態をリセットします。
  • 無効になったときに outport プロパティをリセットするように設定し、初期条件を 0 にします。
  • 定数 (値 = 1)、合計、および単位遅延ブロックからカウンターを作成します。
  • カウンターを、質問の「x」値に設定された Compare to Constant ブロックにフィードします。
  • そのブロックを出力ポートに送ります。

有効にすると、カウンターは、出力が高くなる前に必要なステップ数をカウントする必要があります (トリガーされた場合)。

于 2013-07-28T15:58:33.680 に答える