1
ModelSIMで赤信号をデバッグするにはどうすればよいですか?
コンビナトリアルパーツにはNANDゲート、シーケンシャルロジックにはDフリップフロップのみを使用してステートマシンを設計する必要があります。すべては1ghz / 53のクロックで実行する必要があります。 さて、「私たちはあなたのために宿題をやらない」と私に暴行する前に、私は仕事の日々を投資した後、私はすべてを廃棄し、より厳格にすべてを再び始めたと言ってみましょう。私は自分でこれをやりたいのですが、プロジェクトの最も単純な部分でランダムな未定義の信号を絶えず受け取り、イライラさせられます。 さて、まず最初に、ステートマシンとそれに対して行った真理値表を次の図に示します。 次はkmapsです。 DフリップフロップD = Q +の場合、組み合わせロジックの配線(単純化したブロックに構築した後)はそれほど難しくないはずです。 しかし、私の最初の問題はQ3 +のテストベンチで発生します。情報を簡素化するために、Q3 +で作成した高速なダイアグラムをここに配置します。 ポストの後半では、VHDLで実際に入力をin1Q3plusからin11Q3plus(11入力)と名付けました。これは最終ブロックではないためです(最終組み合わせロジックブロックは4つのQ3 +、Q2 +、Q1 +、Q0 +信号に)。 そのため、NANDゲートを使用してすべてを作成する必要がありました。つまり、構造的なアプローチをとる必要がありました。すべてのゲートは基本的にNANDゲートに基づいており、複雑になります(ただし、NANDゲートから構造的に記述されるのはAND、OR、NOTゲートのみです)。次に、3つの入力を持つORゲート、3つの入力を持つANDゲート、5つの入力を持つORゲート(論理図の例のように)があり、それぞれ前の2つの入力AND&ORゲートに基づいています。 Q3plus 1(上記の図)が機能するまでのすべてのテストベンチ。テストの手順は、各入力に対して信号を作成することです。これにより、シミュレーションウィンドウで信号を簡単に見ることができます。たとえば、3入力ANDゲートには次の信号があります。 process begin a1 <= '0' ; wait for 4ns; a1 <= '1' ; wait for 4ns; end process; process begin b1 <= '0' ; wait for 8ns; b1 <= …