問題タブ [digital-logic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hardware - デジタル ロジック - 簡単なステート マシン?
Mealy ステート マシンの動作方法を理解しています。出力ロジックは、現在の状態だけでなく、入力の関数でもあります。
しかし、Moore マシンよりも優れている点は何でしょうか? Mely FSM は一般的に使用されていますか?
race-condition - レース条件
私は現在、競合状態に関連する 2 つのことを理解しようとして立ち往生しています。
問題 1:
私は次の質問を提示されました。
そして、与えられた答えは次のとおりです。
これはどのように正確に達成されますか?これは私がこれまでに考えたことです:
- aが0から始まるので、cは1から始まります
- bは 1から始まるため、 dは 0 から始まります。
- 時間が 2 に等しい場合、aは 1 になります... cが 0 に切り替わるまでに 1 の伝搬遅延があるため、3 時間単位で 0 になります
- 同じロジックがdに適用されます
- eとfは定数 1 または 0 を意味しますが、何かの影響を受けているようです。
ここで実際に何が起こっているのですか?ブール関数または何かに関連していますか。もしそうなら何?
問題 2:
単純な回路を生成するための単純な方法または論理的アプローチを誰かが持っていますか (XOR、AND、OR、NOT、NAND ブール関数を使用して:
- 静的な競合状態 - 値が一定であることを意図している場合
- 動的競合状態 - 値の変更が予想される場合
よろしくお願いします!
hardware - VHDL での経験を向上させるにはどうすればよいですか?
私は電子工学部の学生で、昨年 VHDL の基礎を学びました。この分野とデジタル デザインの分野での経験を向上させたいと思っています。この分野の専門家になりたいと思っています。これどうやってするの?私はウェブをたくさん検索しましたが、何も見つかりませんでした。助けてください。本当にありがとうございました。
floating-point - 浮動小数点変換を使用した 2 進数から 10 進数への変換
初めての投稿です。
ここに私の問題があります。次の例がわかりません。
バイナリ表現: 0100000001100000000000000000000
=+(1.11)base 2x 2^(128-127)
<-すべての質問はこの行を参照します。
•=+(1.11)base 2 x2^1
•=+(11.1) base 2
•=+(1x21+1x20+1x2-1)=(3.5) base 10
質問: 128-127 はどこから来たのですか?
なぜ1.11なのですか?
logic - このカルノー図はどのように構成されていますか?
K-mapジェネレーターがこれを生成してくれました!カルノー図
そして、私は値が互いにどのように一致するかを理解しようとしてきました。たとえば。テーブルの値7は、7ではない01101によって識別されているように見えます。
rotation - バレルシフターの応用
私は VLSI プロジェクトを行っており、DSCH というツールを使用してバレル シフターを実装しています。同じ回路図は、トランスミッション ゲートを使用して実現されています。
回路が行うことは、1クロックサイクルでデコーダから選択された数の回転で8ビットワード(8ビットシフター)を回転させることです。
しかし、ローテーターの使い方と、回転しているのになぜシフターと呼ばれているのかを知りたいです。
また、使用方法を示すために現在の回路に追加できる Rotator に関するいくつかのアプリケーションを教えてください。
hardware - 半加算回路を描く
私は加算器ユニット、特に半加算器を扱っています。
現時点では、標準の半加算器ユニットを Digital Works で作成しています (下の画像のように)。
しかし、AND OR XOR NOT などの選択したゲートを使用して半加算器ユニット回路を描くように依頼されました。
では、半加算器を描画する他の方法はありますか?
loops - デジタル ロジック シミュレータでループを処理する方法は?
後で独自の CPU を構築するためのデジタル ロジック シミュレータを開発しています (したがって、これは長期的なプロジェクトです)。フルアダーなど、ループのない回路ではすべてがうまく機能します。次に、SRラッチのような回路があり、ゲートの入力の1つが別のゲートの出力に接続されます。両方のゲートが他のゲートの出力を必要とし、独自の出力を計算するため、私はループに陥っています。
これを解決する最善の方法は何ですか? (ループが検出されたときに)最後の出力を返すように実装しました。または、この実行が最初の実行である場合 (以前の出力がなかった場合)、ゼロ (低) を返します。したがって、最初はすべての出力が低/ゼロだったと思います。これまでのところ機能していますが、これは問題を解決する良い方法ではないと確信しています。
何か案は?
boolean - ブール代数の単純化
私はそれを証明しようとしていますBC + !A!B + !A!C = ABC +!A
私はド・モルガンの法則を使用して と を代用しようとしX for !A!B
ましY for !A!C
たが、これではうまくいきませんでした。
私はまた、Aのようにグループ化しようとしましたが、!A(!B+!C)
再びどこにも行きませんでした.誰かが私を正しい方向に向けることができれば、解決するのを手伝ってください.それを行うことができるツールを見せてください.ありがたい。
compiler-errors - VHDL エラー (単純な式が必要)
私は VHDL を初めて使用し、修正できないように見えるコードに問題があります。これは、選択した信号割り当てまたはテーブル ルックアップのいずれかを使用して行うことになっています。発生しない入力に対して don't care を使用することになっているため、私のものは 2 つの組み合わせのようなものです。
このコードは基本的に、2 の補数入力またはオフセット バイナリのいずれに対しても同じ出力を与えると想定されています。たとえば、10 進数の 7 は、オフセット 2 進数では "1111"、2 の補数では "0111" です。どちらの形式も、スイッチ oe の値に応じて "1111100000" の出力を生成する必要があります (オフセット バイナリの場合は '1'、2 の補数の場合は '0')。
このレベルでできる限りコードをデバッグしましたが、何が間違っているのかわかりません。
Active-HDL は現在、48 行目と 55 行目でエラーを表示しています。2 つの「単純な式が必要です」というエラーが表示されています。
私のコードは、以下のペーストビンの URL にあります。これにより、読みやすさと構文の強調表示が改善されます (さらに、コードを投稿する Stack Exchange の奇妙な方法をいじるのは好きではありません)。また、割り当ての指示を維持しながらコードを改善する方法についてのヒントがあれば、何でもお気軽に提案してください。