問題タブ [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.
boolean-logic - 論理ゲートのオンまたはオフの切り替え
3つの入力「A、B、および制御線C」を持つ「ANDゲート」がある場合
ANDゲートのオン/オフの切り替えを制御できますか..このように、C == 1の場合、ANDゲートは入力A、Bで動作しますC == 0の場合、何も起こりません
これは任意の方法で行うことができますか??
scala - チゼル: エラーを回避する方法 ワイヤのデフォルトは指定されていません
Mem への構造化読み取りポートを実装しようとしています。
コンビネーションを使うとき
シーケンシャルの代わりに
エラーが発生する
このエラー メッセージの意味は何ですか?
2 番目の質問:
SystemVerilog の構造化された赤いポートを持つことは可能ですか。つまり、直接読み取ります。
それ以外の
ありがとう!
scala - Vec[Mem] が Chisel にあるといいですね
セットアソシアティブ キャッシュの場合は、Vec[Mem] が便利です。
残念ながら、Chisel は Vec[Mem] コンストラクトをサポートしていません。
それはそう:
ただし、簡単な回避策は問題なく機能します。
そして、タグを書くため(いくつかの when(...) 句の下での原因の)
提案されたスキームを改善するためのコメント、提案はありますか? ありがとう!
assembly - MIPS 命令セットのバイト操作
MIPS 命令セットを使用してバイト操作を行いたいと考えています。
- を持っているレジスタ
$S0
と を持っている0x8C2E5F1E
レジスタ$S1
があります0x10AC32BB
。 $S0
の 2 バイト目を5F
の 3 バイト目$S1
に格納したいと思いAC
ます。
私のロジックは、レジスタのバイトを別のレジスタに格納し、$S0
それを目的のバイトにシフトすることです。次に、に登録$S1
し0xFF00FFFF
ます。最後に、1 つまたは 2 つのレジスタを使用します。それはどのように聞こえますか?それが正しいか?もっと良い方法はありますか?
任意の提案や解決策をいただければ幸いです。
scala - Verilog 用でも C++ 用でもありません。
次のフラグメントの場合、Chisel で合成されたものはありません:
(level <- 1 until num_levels) のループを手動でアンロールし、定数を折り畳んだ場合と同じ動作:
両方のスニペットに対して生成された Verilog (および同様の C++ コード) (元のスニペットと 16 通りのケースで展開/インスタンス化されたもの):
なぜダミー構造しかないのかわからない ロジックの合成を強制するにはどうすればよいですか? ありがとう!
c - C でデジタル回路をモデル化することは、言語の標準操作を使用するのとは対照的に、実用的な利点がありますか?
だから私はデジタル回路設計を調べ始め、ほとんどすべての操作 (私が知っている) がすべて 3 つの論理操作から派生していることを発見しました: AND、OR、およびNOT。類推として、これらは、他のすべてを構成する原子に対する亜原子粒子のようなものです。アトムがプロセッサ命令にあるように、サブアトミック粒子は論理ゲートにある。Assembly でのプログラミングが原子を組み立てるようなものだとすれば、C でのプログラミングは分子 (および原子) を組み立てるようなものです。 私がここの基地から外れているかどうか誰か教えてください。
そうは言っても、GCC やその他のほとんどのコンパイラは、C から機械語コードへの最適化を非常にうまく行っていることは承知しています。x386 命令セットを見ているとしましょう。$$
、||
、およびのみを使用して 32 ビットの全加算器を構築した場合~
、コンパイラはプロセッサによって提供される既存の命令を使用するのに十分スマートであるか、または私の全加算器は、既に存在するもののより肥大化した効率の悪いバージョンになってしまうでしょうか。プロセッサ。
免責事項:
私はアセンブリの学習を開始するためにデジタル回路を調べ始めました.Cで公正です.デジタル回路の理解を深めるために、これらの回路のいくつかをCでモデル化したい. +
しかし、単純なwill doを使用すると、それが効率的なコード (または学習以外のその他の実用的な利点) にもなるという幻想に自分自身を誘惑したくありません。そして、はい、コードのひどい保守性が、このコーディング「スタイル」が提供する利点よりもはるかに重要であることを私は認識しています。
algorithm - 数論: 解決策の必要性
a = a31 a30 . . . a1 a0
が 32 ビットのバイナリ ワードであるとします。次のアルゴリズムで計算された
32 ビットのバイナリ ワードを考えてみましょう。b = b31 b30 . . . b1 b0
- a を右から左にスキャンし
b
、最初のビット1
が見つかるまでそのビットを にコピーします (これも にコピーされb
ます) 。 - その後、 のビットのブール否定をコピーします
a
。
たとえば、a = 10100 . . . 00
に変換されb = 01100 . . . 00
ます。a
およびb
が 2 進数として解釈される場合、このアルゴリズムが計算する内容を説明してください。
digital - 非同期回路とは
組み合わせ回路と順序回路があります。順序回路には、使用されるメモリ要素があります。回路内の記憶素子のようなフリップフロップも使用される非同期回路です。また、それらがどのように不安定であり、回路の選択に適していません。非同期回路の不安定性はどのように説明できますか?