1

学校用のシンプルなものをデザインする必要があります。具体的にはムーア FSM です。状態遷移がどのように発生するかわかりません。次の状態は各クロックですか? レジスタをシフトして値を追加できるかどうか疑問に思っているので、すべて同じ状態で知る必要があります... ウェーブエッジを使用できますか?

編集

ゲート レベルから回路図としてレジスタを使用してALU部分を設計する必要があるため、ターゲットCPUはありません。

アルゴリズム図を作成し、 Moore FSMのルールに従って状態を関数ブロックに配置しました。操作の各ブロックは 1 つの状態を取得します。

たとえば、状態S1では、次の操作があります。y0 = Reg1 を左にシフトします。y1 = Reg1 = Reg1 + Reg2 . したがって、Moore FSMの制御部分が出力するマイクロコマンドは0000011 (yn...y1,y0) になります。このマイクロコマンドは、設計する必要がある ALU 部分への入力である必要があります。どちらもReg1を使用しているため、y1、y0が互いに競合することに気付きました。

私は実際に制御部分を持っていないため、コアFSMを想像し、レジスタを備えたALUのみを設計する必要があるため、問題があります。これが、複数のクロック サイクルを取得するかどうか疑問に思っていた理由です。つまり、y0、y1をシーケンスすることができますか、それとも 1 クロックで操作全体を完了する必要がありますか?

並列入力、並列出力の非シフト レジスタを作成する予定です。明らかに、マイクロコマンドの 2 つの操作を同時に行うことはできません。それで、なにかお手伝いできますか:

1. make extra states? which i really dont want to do
2.use edges of a single clock? (might cause problems?)
3.Assume i get a preset amount of ticks from the clock to complete the microcommand ?
This would make the most sense, but i dont know if its the case.
The control unit does "know" the algorithm and thus how many operations need to be performed

制御部分は完全に抽象的であり、これが実際にどのように処理されるかわかりません。

4

1 に答える 1

0

FSM自体には、固有の時間の概念はありません (ただし、定義することはできます)。ムーア マシンは単純化されたモデルであり、進行し続ける「時間」を正式に表現する機能さえありません (もちろん、カウントを完全に状態で実装する必要はありません)。覚えておいてください、有限の状態セットしかありません。

いずれにせよ、特定の FSM の実装の詳細に時間が導入される可能性があり、特定の状態間で変化するのに必要な時間は一定ではない可能性があります。(特定の FSM は、異なる実装に異なる方法でマッピングされる場合もあります。)クロック システムの場合、各「クロック」が実装でどのように定義されているかを調べる必要があります。リーディング エッジ、トレーリング エッジ、またはその両方、またはまったく異なるものである可能性があります。

ガイダンスとしてここで FSM を見るのではなく (これは状態の論理的な進行にすぎません)、FSM が表すオペコード (または実装が何であれ) と、問題の CPU (または実装が何であれ) がどのように機能するかを見てください」それらを実行します。

(本は何と言っていますか? ;-)

于 2012-05-04T21:22:03.620 に答える