2017-07-05 18 views
0

私はMビット幅のN個のレジスタを持っています。すべてのレジスタに値が設定されていますが、MSBが1のレジスタだけを調べるなど、特定のパターンに適合するレジスタをサンプリングしたいだけです。クロックの各立ち上がりエッジで1つのMビット幅そのパターンに合致するレジスタ。VHDL:私が気にしないレジスタをすばやくスキップするには?

例: 256個の8ビットレジスタ(reg0〜reg255)があります。 Reg0、Reg3、Reg255はMSB = 1のパターンを満たします。最初の立ち上がりクロックエッジで、パターンに一致するためreg0が出力に送信され、2番目の立ち上がりクロックエッジReg3が出力に送信され、3番目のクロックエッジReg255が出力に送られます。

私はHDLに非常に緑色ですので、何か助けていただければ幸いです。これは、クロックされたプロセス内のforループを使用するアプリケーションが役に立ちますか?ああ、私はこれを理解するためにVHDLを使用しています。

私は完全な答えを探しているわけではありません。

おかげで、 J

+1

作成するハードウェアの画像を描画するのが最適です。それでは、コードの作成に関するいくつかのより良い質問をすることができますが、その時点でVHDLまたはマルチプレクサの登録をVHDLで検索することができます。 –

+0

ジムが書いたように、最初の問題はHDLではなくデジタルハードウェア設計ですコーディング。 HDLコーディングが可能になることを、あなたが望むハードウェアの明確なアイデアを得ることができれば一度です。 –

+0

これはVHDLに関する質問ではなく、より一般的な設計上の質問です。私は[電気工学スタック取引所](https://electronics.stackexchange.com/)に入れました 私はあなたの説明で、パターン認識と多重化/バス調停の2つのタスクを読んでいます。私たちは何のクロック周波数ですか?タイミング要件は何ですか?これは、汎用プロセッサを使用して達成できないのですか? – JHBonarius

答えて

1

はそれを行うための一つの方法があります。

あなたはレジスタごとに1つのフラグ(バイナリレジスタ)を使用しなければならない:

パターンが関連するレジスタに検出された場合を示し、このフラグは、送信するために登録するかを知るために使用するであろう。レジスタが送信されると、このフラグはリセットされます。冒頭

、あなたは「0」(ノーパターン検出/レジスタを送信する必要はありません)にフラグを登録し、すべてを強制

あなたはレジスタにデータをロードします。パターンが検出された場合

プロセスチェック、その場合には、フラグを超える(推奨しない)他の場合は「1」

使用アモールループまたはBIGに関連するレジスタのフラグを設定します。フラグが '1'に等しい場合は、レジスタを送信してリセットします。そうでない場合は、次のページに進みます。 この最後のステップは、他のいくつかのレジスタ(送信する必要がない)によって分離されていても、1クロックサイクルで別のレジスタに送信するためにレジスタから渡される可能性があります。

/!\このメカニズムは複雑でタイミングの制約がありますので、デザインのクロックのパフォーマンスが影響を受けるため、より多くのLUTを使用してください。

よろしくお願いいたします。

関連する問題