問題タブ [chisel]
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 - Chisel で X を取得するためにデフォルトを指定しないようにすることは可能ですか?
次のChiselコードは期待どおりに動作します。
io.rdData := UInt(0)
ただし、デフォルトが必要なため、指定しないとコンパイル時エラーになります。明示的に指定するX
か、デフォルトで X、erm を出力しないモジュールをデフォルトにする方法はありますか?
これを行う理由としては、出力がアサートされていない場合ren
は出力に依存するべきではなく、X を指定すると出力を指定できるため、最適化のために、X を指定することで合成ツールにドントケアであることを伝えることができます。
scala - テスト ハーネスのチゼル ランタイム エラー
このChiselコードは問題なく動作します:
ただし、これは小さなバリエーションですが、実行時エラーが発生します。
scala - vec を UInt ポートに割り当てる
io.myoutput = UInt(width = 840) である io ポートがある場合
次に、val a = vec.fill(140){UInt(width = 6)} があります
vec 全体を出力ポートに割り当てるにはどうすればよいですか? forループを試しました
しかし、それは私に与えます
ありがとう
scala - UInt(0) とはどういう意味ですか?
UInt(1) は 1 ビットの 10 進リテラルを参照することを読みました。UInt(0) が何を意味するのか混乱しています。次のようにカウンターコードで使用されます:-
強調表示された (アスタリスクで囲まれた) 2 つのステートメントの動作を説明できる人はいますか?
scala - Chisel コンパイラは非常に遅い
私は行列加算のような設計に取り組んでいます。コンパイラは、100 万行以上のコードを生成するのに 4 時間以上かかります。すべての行が "assign....." です。これはコンパイラの非効率なのか、コーディング スタイルが悪いのかわかりません。誰かが素晴らしい代替案を提案できれば!
コードの説明は次のとおりです。入力は要素ごとにランダムな行列の AND になり、.reduce を使用して合計されるため、結果の行列は 140X6 vec になるはずです。それらを一緒に猫にすると、840 ビットの出力が得られます。
(140x840x6ビットのランダム行列であると思われるrndvec。ランダムな値を生成する方法がわからないため、固定の140x6から始めて1つの行を表し、入力を何度もフィードします)
これは私のコードです
端末レポート:
scala - 制御データ フロー グラフまたは中間表現
割り当て決定図と呼ばれるものに関して、コードの中間表現を考え出すプロジェクトに取り組んでいます。したがって、コードをどのようにコンパイルしているか、およびコンパイル中に生成されたグラフにアクセスする方法、つまり文法のためにコードを解析した後、誰かが教えてくれれば非常に役に立ちます。
コンパイラの解析後のコードへのアクセスに関するヘルプも問題ありません。それを行う方法に関するヘルプも大歓迎です。
scala - チゼル: エラーを回避する方法 ワイヤのデフォルトは指定されていません
Mem への構造化読み取りポートを実装しようとしています。
コンビネーションを使うとき
シーケンシャルの代わりに
エラーが発生する
このエラー メッセージの意味は何ですか?
2 番目の質問:
SystemVerilog の構造化された赤いポートを持つことは可能ですか。つまり、直接読み取ります。
それ以外の
ありがとう!
scala - Vec[Mem] が Chisel にあるといいですね
セットアソシアティブ キャッシュの場合は、Vec[Mem] が便利です。
残念ながら、Chisel は Vec[Mem] コンストラクトをサポートしていません。
それはそう:
ただし、簡単な回避策は問題なく機能します。
そして、タグを書くため(いくつかの when(...) 句の下での原因の)
提案されたスキームを改善するためのコメント、提案はありますか? ありがとう!
scala - Verilog 用でも C++ 用でもありません。
次のフラグメントの場合、Chisel で合成されたものはありません:
(level <- 1 until num_levels) のループを手動でアンロールし、定数を折り畳んだ場合と同じ動作:
両方のスニペットに対して生成された Verilog (および同様の C++ コード) (元のスニペットと 16 通りのケースで展開/インスタンス化されたもの):
なぜダミー構造しかないのかわからない ロジックの合成を強制するにはどうすればよいですか? ありがとう!
scala - Chisel シフトレジスタの例
私はscalaとChiselに非常に慣れていません。動的サイズの Shiftregister の例を作成しようとしましたが、次のコードが正しいかどうかわかりません。誰かがそれをレビューできればいいのですが:
次の VHDL コードと同等のものを作成しようとしました。