問題タブ [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.

0 投票する
1 に答える
937 参照

digital-logic - デジタル回路設計におけるオペコードの使用

論理ゲートを使用して加算や減算などの基本的な操作を実行する回路に取り組んでいます。

現在、3 つの入力、2 つの 4 ビット数値、および実行する操作を示す 3 ビットのオペコードが必要です。

ここでは、3-8 デコーダーを使用することをお勧めします。これは私のモックアップです!

ここに画像の説明を入力

もう少しコンテキストを与えるために、これが私の加算器回路の外観です (+)。XとYの2つの4ビット数値を取るように設計しました:

ここに画像の説明を入力

しかし、私が混乱しているのは、それぞれの操作 (+、-、​​= など) を処理する回路のそれぞれに 4 つの入力または 4 つのワイヤを供給しなければならないという事実です。私が到達する必要がある回路に 1 本のワイヤしか接続していないようです。4ビットの数値を入力する必要があるため、実際には8本のワイヤを接続する必要があります。

更新: MUX を使用して、必要な出力を選択することになりました。

ここに画像の説明を入力

0 投票する
3 に答える
18947 参照

vhdl - ビヘイビア アーキテクチャを使用したバレル シフタの VHDL コードの構造

左右のシフト機能を備えた 16 ビット バレル シフターを構築しようとしています。私がやりたいと思うことを実行するようにコードを構成する方法に問題があります。

方向を決定するオペコード入力、シフトする入力ベクトル、出力ベクトル、および 4 ビットの位置ベクトルがあります。

位置ベクトルを使用して、シフトの「レベル」を設定しています。位置(0)を確認したいのですが、1に設定されていれば1つずらします。次に、position(1) を確認し、2 ポジション、position(3) 4 ポジション、position(3) 8 ポジションをシフトします。

位置ベクトルのすべての位置を実行し、ビットを順次シフトすると、最終的にすべてのオプションが取得されるはずです。この方向が適切に機能する場合、他のオペコードを追加します。

アーキテクチャの中間ベクトルの割り当てに行き詰まっています。適切な方法がどうあるべきかわからず、グーグルで何も見つかりません。おそらくケースシステムの方がうまくいくでしょう。

エラーメッセージ

編集

詳細な回答ありがとうございます。一般的なシフト関数が組み込まれていることは理解していますが、それを自分で実装する方法を理解しようとしています。

bit_vector についてのヒントをありがとう。私が理解していることから、ビット型は、入力がマルチソースでないことが確実な場合にのみ使用できます。この場合はおそらく問題ないはずですが、先に進んで将来のために心に留めておきます。

やってみたいコンセプトは健全だと思います。1 の位置の各ビットをチェックし、最後に適切な量だけシフトすると、シフトされたビット数は位置ベクトルの値に等しくなります。

a = "1111 1111 1111 1111" および pos = "1010" なので、小数点以下 10 桁シフトする必要があります。したがって、最初の反復を実行しても変化はありません。2 回目は 2 ビットシフトし、3 回目は 0 ビットだけシフトし、4 回目は 8 ビットシフトして合計 10 ビットシフトし、a="1111 1100 0000 0000" を取得します。 .

私の問題は、特定のシフト操作に関するものではありません (おそらく間違っているので、別の方法を使用する場合は、現在、自分のアイデアを実装する方法に興味があります)、ベクトルを更新してチェックするコードを書くことが問題です。位置ベクトルの次の位置。デルタサイクルと感度リストについてあなたが投稿したものを見ていました。VHDL は、プロセッサを介して波及する操作の観点から現実世界を記述しなければならないため、混乱を招く可能性があります。また、標準的なプログラミングとは異なる考え方が必要です。

以下のコードを試してみましたが、テスト ベンチで 1 回だけ変更およびシフトされます。位置のすべての組み合わせを実行するテストベンチをセットアップしましたが、次のコードでは pos = 1000 でのみシフトし、その後 8 桁シフトします。最後の if ステートメントだけでなく、各 if ステートメントでコードを強制的にチェックすることはありますか?

アーキテクチャの動作を終了します。

テストベンチ

0 投票する
1 に答える
738 参照

logic - 0 から 9 までの JK バイナリ カウンターで、NAND ゲートが 1 番目と 4 番目ではなく 2 番目と 4 番目の JK フリップフロップに接続されているのはなぜですか?

0 から 9 までカウントする 4 つの JK フリップフロップを使用するバイナリ カウンター デザインでは、2 番目のフリップフロップ NAND からの出力が 4 番目のフリップフロップである場合、フリップフロップはリセットされます。バイナリ 9 は 1001 であるため、なぜ NAND はこれらの 2 つの出力に接続され、1 番目と 4 番目のビットが 1 であるため、1 番目と 4 番目には接続されません。

回路の画像: http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/bincount.html (2 つ目)。

0 投票する
1 に答える
10165 参照

verilog - Verilog の周波数除数

Verilog で分周器が必要なため、以下のコードを作成しました。それは機能しますが、最善の解決策であるかどうかを知りたいです、ありがとう!

quartus によって生成された回路:

ここに画像の説明を入力

0 投票する
1 に答える
144 参照

verilog - Verilog の例 間違っていますか? アービタ コード MSB ファインダ

例として私の本には次のように記載されています。

n=4 の場合、c は 4 ビットですが、連結すると 5 ビットになります! 0.o
)r ここで Verilog について理解できないことがありますか。

0 投票する
2 に答える
256 参照

boolean-logic - ブール代数の最小化

F = ABC + AC + C'D'

2つの入力ナンドゲートのみで回路図を作成したいので、この機能をさらに最小限に抑える方法はありますか?

助言がありますか ?ありがとう

0 投票する
0 に答える
442 参照

binary - エラー訂正コード チェックサム

質問!:すべてのバイトを合計すると 118h になります。キャリー ニブルをドロップして 18 時間を与えます。この「Carry Nible」という言葉がわかりません。

このバイトのチェックサムを 10010101(95hex) にすると、チェックサムは 4(04hex) になりますか?


ソース: http://www.asic-world.com/digital/numbering4.html#Error_Detecting_and_Correction_Codes

" パリティ方式は、バイト、ワード、またはダブルワードで計算されます。しかし、128 バイト以上 (基本的にはデータのブロック) でエラーをチェックする必要がある場合、パリティの計算は正しい方法ではありません。データ ブロックのエラーをチェックします。チェックサムにはさまざまなバリエーションがあります。

すべてのバイトを追加 CRC Fletcher のチェックサム Adler-32

データ内のアサートされたビットを単純に合計する最も単純な形式のチェックサムでは、多くの種類のエラーを検出できません。特に、そのようなチェックサムは以下によって変更されません:

メッセージ内のバイトの並べ替え ゼロ値バイトの挿入または削除 合計がゼロになる複数のエラー

チェックサムの例: 与えられた 4 バイトのデータ (任意のバイト数で実行可能): 25h、62h、3Fh、52h

すべてのバイトを合計すると 118h になります。キャリー ニブルをドロップして 18 時間を与えます。 E8h を取得するには、18h の 2 の補数を取得します。これはチェックサム バイトです。

チェックサム バイトをテストするには、元のバイト グループに単純に追加します。これにより、200hが得られます。

00h を指定して、キャリー ニブルを再度ドロップします。これは 00h であるため、チェックサムはバイトがおそらく変更されなかったことを意味します。」