問題タブ [vlsi]
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.
computer-science - BCD 加算器と 10 進数出力
( ) を持つ の計算についてDecimal Output
次 のうち正しいものはどれですか?125 * A - 100 * (A Mod 4) + 2
one BCD digit
1) 少なくとも 2 つの小数加算器が必要です。
2) 少なくとも 2 つの 4 ビット バイナリ加算器が必要です。
3) 少なくとも 1 つの 10 進乗数と 1 つの 10 進加算器が必要です。
4) 上記のいずれでもない。
インストラクター(4)
がソリューションとして選択し、選択しなかったのはなぜ(3)
ですか? アイデアやヒントはありますか?
ありがとうございます。
computer-science - CPU とサイクルのデータパス
Datapath
次の図のように、1 つの CPU から構成されています。次の命令アドレスが にある場合PC Register
、
次の命令をいくつフェッチして実行
clock cycle
する必要がありますか?word add
メモリは 10 ビットで、各命令は少なくとも 2 ワードです。すべてのレジスタは 10 ビットで、INC (increment), CLR (clear), LD(load)
命令があります。Addr
ダイレクトアドレッシングを意味します。命令は 10 ビット ワードで機能します。
私のインストラクターは、それが15クロックサイクルであることを解決します。ヒントやアイデア、これはどのように計算されますか?
編集:
私の試行 * よくわかりません。私の試行は True または False です。
verilog - 合成の結果は?
私は次のようにゲートに実装しようとしています。しかし、どのように合成してゲートするのかわかりませんか?
ケース1
ケース 2
また。
ケース 3
ケース4
ゲートに合成する方法を知っている人はいますか? これを説明していただけますか?
verilog - 固定小数を整数に適用するにはどうすればよいですか
次のように、修正された分数で整数に乗算したいと思います
分数をCSD形式に変換する方法を見つけるために何をしましたか。しかし、整数に乗算する方法を知りたいです。
たとえば、これを手に入れました
0.46194 = 2^-1 - 2^-5 - 2^-7 + 2^-10.
次に、Verilog rtl 式として次のように取得できます。
y= (x>>1) - (x>>5) - (x>>7) + (x>>10);
しかし、問題は、入力値が 3 の場合、上記のコードをどのように計算できるかということです。
y= (3>>1) - (3>>5) - (3>>7) + (3>>10);
しかし、私が知っているように、計算は不可能です。3>>1 は 1、(3>>5) は 0、(3>>7) は 0、(3>>10) は 0 なので、
そのため、通常の結果を得ることができません。また、変更された分数式を見つける理由もなくなりました。次に、この投稿の質問ポイントは、「変更された分数を整数に適用するにはどうすればよいですか」です。
更新:これは次のようになります。y= ((3<<1024)>>1) - ((3<<1024)>>5) - ((3<<1024)>>7) + ((3<<1024)>>10);
verilog - 15を掛ける改善方法は何ですか?
私は次のように15倍するように実装しようとしています。
しかし、a を 15 倍するための改善方法はありますか?
このように2通りあると思います
1.result = a<<4 -1;
2.result = {a,3'b1111_1111};
回答 2が一番いい方法だと思いますが、合成の面もよくわかりません。
アップデート:
{a,3'b1111_1111} で 0 を乗算するとどうなりますか? これは 0 ではなく 255 です。
誰かが最善の方法を知っていますか?
更新 この方法はどうですか?
ケース1
結果 = {a,8'b0}+ {a,7'b0}+ {a,6'b0}+ {a,5'b0}+ {a,4'b0}+ {a,7'b0}+ {a,3'b0}+ {a,2'b0}+ {a,1'b0}+ a; しかし、8加算器が使用されているようです。
ケース2
結果 = <<8 -1
他に何が最善の方法なのかわかりません。
verilog - 2x2 乗数のみを使用して 4x4 乗数を作成できますか?
2x2 ビット乗算器のみを使用して 4x4 ビット乗算器に実装したいと考えています。
例: a=1110 b=1011 2x2 の結果は 10011010 になります。
このように分割できると思います。
2x2 乗数を使用して 2 の結果を得ることができます。しかし、どうすれば 2x2 乗数のみを使用して 4x4 乗数にすることができますか?
しかし、私は何のヒントにも近づくことができません。では、どうすれば 4x4 乗数を作成できますか。誰もこれを行う方法を知っていますか? 助けてください。
簡単に言えば、8x8 乗算を実行するために必要な 4x4 乗算器の数です。4x4 乗数のみを使用して 8x8 乗数を作成するにはどうすればよいですか?
アップデート :
これは稼働していますか? http://blog.pioneermathematics.com/2011/04/26/vedic-trick-on-multiplication/どうやって?