問題タブ [alu]

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 投票する
5 に答える
11191 参照

hdl - 「Nand to Tetris」コースで ALU の出力フラグを設定するにはどうすればよいですか?

この宿題にタグを付けましたが、実際には無料で自分でやっているコース用です。とにかく、このコースは「ナンドからテトリスへ」と呼ばれており、誰かがこのコースを見たり受講したりしているので、助けが得られることを願っています. 提供された hdl 言語で ALU を構築している段階です。私の問題は、チップを適切にコンパイルできないことです。ALU の出力フラグを設定しようとすると、エラーが発生します。問題は、中間変数に添字を付けられないことだと思います。これは、ランダム変数(入力フラグなど)に基づいてフラグをtrueまたはfalseに設定しようとすると、エラーが発生しないためです。すべての組み込みチップを使用しているため、使用しようとしているチップに問題がないことはわかっています。

これまでのところ、私のALUチップは次のとおりです。

そのため、'out' の添字付きバージョンを Or8Way チップに送信しようとすると、問題が発生します。「out」とは異なる変数を使用してみましたが、同じ問題があります。次に、中間変数に添字を付けることができないことを読みました。中間変数を他のチップに送信し、そのチップに添字を付ければ問題は解決するのではないかと思いましたが、同じエラーが発生しました。残念ながら、中間変数に添え字を付けずに zr フラグと ng フラグを設定する方法が思い浮かびません。

ご存知のように、問題のある行を次のように置き換えると、コンパイルされます (ただし、ランダムな入力を使用しているだけなので、正しい結果は得られません)。

誰にもアイデアはありますか?

編集:これは、hdlの仕組みを指定するコースの本の付録です。具体的には、バスについて説明しているセクション 5 を見てください。

編集:ここに私が得る正確なエラーがあります:「68行目、ゲートの出力ピンをパーツに接続できません」。ただし、実際の問題ではないように見えるため、エラーメッセージはやや混乱しています。「Or8way( in=out[0..7], out=zr1 );」を置き換えるだけなら 「Or8way( in=false, out=zr1 );」で このエラーは生成されないため、付録を調べたところ、 out 変数は中間として導出されたため、添え字を付けることができませんでした。

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

vhdl - 複数の 1 ビット ALU から 4 ビット ALU を作成する

複数の 1 ビット ALU を 4 ビット ALU に結合しようとしています。VHDLで実際にこれを行う方法について混乱しています。私が使用している1ビットALUのコードは次のとおりです。

alu1 をより大きなエンティティ alu4 のコンポーネントとして定義すると仮定していますが、どうすればそれらを結び付けることができますか?

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

cpu - 最新の CPU における整数演算エラー

最新の CPU で起こりうる誤算 (たとえば、2 つの整数の加算と 1 回の結果) を計画する必要があり1ます13?

  • (どのくらいの頻度で) ALU でそのようなエラーが発生しますか?
  • 今日、これに対する組み込みの保護はありますか?

上記の例で述べたような算術エラーが、ほとんどの「ハイゼンバグ」の背後にある理由であるという現実的な可能性はありますか?

0 投票する
5 に答える
25216 参照

math - CPUはどのように減算を行いますか?

基本的な疑問がいくつかありますが、面接の質問に手を出すたびに、これらの質問と疑問が浮かび上がります。

A = 5、B=-2と言います。AとBが4バイトであるとすると、CPUはどのようにA + B加算を行いますか?

Aは正の値を示すために0として符号ビット(MSB)を持ち、Bは負の整数を表すために1として符号ビットを持つことを理解しています。

ここで、C ++プログラムで印刷したい場合A + B、ALU(算術論理演算装置)の加算モジュールは最初に符号ビットをチェックし、次に減算を実行してから減算の手順に従います。減算がどのように行われるかが私の次の質問になります。

やりたいA - B。コンピューターはBの2の補数を取り、BのA + 2の補数を追加して、これを返します(左側の余分なビットを破棄した後)?

するA - B。この場合、コンピューターはどのように動作しますか?

if-thenなどの条件付きロジックはすべてALU内のハードウェアで実行されることを理解しています。2s補数の計算など、余分なビットをすべて破棄するのは、ALU内のハードウェアで行われます。ALUのこのコンポーネントはどのように見えますか?

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

c# - alutLoadMemoryFromFile 呼び出しエラー

これは、C# と Tao で作成したスプライト ゲームのサウンドをロードする関数の一部です。

私のPCでは、このAssertは問題ありません。私は自分のゲームを少数の人に与えましたが、彼らのコンピューターではこのアサートが失敗します。考えられる理由は何ですか?

ありがとうございました

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

undefined - VHDL ALU 未定義値

FPGA、基本的な(しかし難しい)プロジェクトをプログラミングするためのVHDLを学んでいます。私はこのALUを持っています。4 ビット ALU であると想定されます。しかし、 Add操作をresultisの値にしたい場合UUUU。他のすべての操作については、正常に機能しています。

何かアドバイスはありますか?

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

vhdl - ALUはどのように機能しますか?

符号なし数値のみを使用してVHDLで8ビットALUを実装します。合計の結果が(1)00000000の場合、1が実行されますが、ALUのゼロフラグを1に設定する必要がありますか?または、結果は0とは異なると見なされますか?

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

c - 論理式を計算するための最良のオプション?

それで、私は Hack CPU エミュレーターを作成していますが、出力を計算する最良の方法は何かと考えていました。一度に 1 ステップずつ結果を計算するよりも、出力計算を判読できない 1 行にまとめる方が効率的でしょうか? コンパイラは、両方のオプションが問題ないように最適化しますか? 基本的に、これらのうちどれがより効率的か -

これ:

またはこれ:

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

scheme - スキームのALU-n手順

私はScheme言語の初心者なので、nビットの数値を受け取ってALUに入れる手続きを書くのに苦労しています。ALU は、1 ビット ALU を使用して構築されることになっています。

1 ビット ALU は次のとおりです。

これは、マルチプレクサと全加算器とともに機能します。

これは、n ビット ALU をシミュレートするためにいくつかの手順を使用する私の試みです。

そして、それが完了すると、「選択」に従って、2つのnビット数値を取り、それらを加算または減算などすることになっています。これは入力になります:

そして、「選択」パラメーターが原因で発生しているように見えるエラーが実行時に発生します。すべてのパラメーターに混乱しているだけだと思いますが、問題を修正して ALU を機能させる方法がわかりません。Dr. Racket プログラム、言語 R5RS を使用してこれを実行しています。

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

scheme - 方式の n ビット ALU

スキームでnビットALUを作成していますが、これまでのところ1ビットALUがあります。誰かがこの問題にアプローチする方法を教えてもらえますか? その手順は次のとおりです。

手続きの形式は、

最初のパラメーターは、 、、、、またはselectionのいずれかの値を取ることができます。2 番目と 3 番目のパラメータとは、リスト形式の 2 つの n ビット 2 進数です。'add'sub'and'or'xorx1x2