問題タブ [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.
scala - Chisel verilog バックエンドによって生成された不要なレジスタを削除するには?
Chisel で生成された verilog モジュールを合成すると、次のような警告が表示されます (たくさん!)。
Verilog コードを生成するときに、このタイプの「役に立たない」信号を削除するオプションはありますか?
scala コードでこのオプションを使用して verilog を生成します。
そしてここに私の built.sbt :
chisel - Chisel で透明なラッチを作成するにはどうすればよいですか?
これが私の最善の推測ですが、生成されたビヘイビアー Verilog が合成されたときに単純な透過ラッチになるようには見えません。
これに関するあなたのアイデアに感謝します。
scala - zed ボードでの dummy_rocc_test の実行
dummy_rocc_test は、custom0 命令を使用してスパイクで正常に実行されますが、それを zed ボードに配置して実行すると./fesvr-zynq pk dummy_rocc_test
、不正な命令のエラーが発生します。
これは、rocc io がロケット チップのデフォルト構成に含まれていないためだと理解していますが、zed ボードで dummy_roc_test を実行するために RoCC インターフェイスを有効にする方法を知りたいです。スニペットに示すように、以下にリストされた値を「BuildRoCC」に与えてみました
しかし、ロケットの作成中に、次のエラーが発生します。
configs.scala コードは次のとおりです。
実際のアキュムレータの例が示されている Rocc.scala は次のとおりです。
riscv - ロケットプロセッサーのトップモジュールはどこ?
make (ロケットの作成とプロジェクトの作成) を行いましたが、ターゲット ボードがまだないため、make プロジェクトでエラーが発生しました。そのため、viva do のプロジェクト ファイルが完全に生成されていません。ファイルを手動で追加する必要があります。
ロケットプロセッサ(標準構成)のトップモジュールはどこにありますか?
scala - ロケット チップのチゼルでスタック メモリの実装が正しく機能しない
私はロケット コアの rocc インターフェースを変更しようとしており、現在、rocc インターフェースを変更して、custom0 命令を使用してデータをロードおよび保存できるスクラッチパッドとして機能させています。チゼルで作成し、スクラッチパッド内でインスタンス化したスタック メモリにデータをプッシュ アンド ポップしようとすると、問題が発生します。関数フィールドの値が異なる同じcustom0命令を使用して、スタックにプッシュおよびポップします。
チゼルのコードは、スクラッチパッドと私のスタックの両方について以下に示すとおりです
フロント エンド サーバーで実行している C コードは次のとおりです。
ご覧のとおり、1 から 6 までの一連の数字をプッシュしようとしていますが、zed ボードでこのコードを実行すると、これが出力されます。
理想的には、6,5,4,3,2,1 をポップする必要があります
chisel - モジュールのベクトルを実行する方法は?
要素の 1 次元配列をインスタンス化したいのですが、要素はモジュールを拡張します。どうすればいいですか?私の最善の推測を言うと、それは次のとおりです。
次のエラー メッセージが表示されます。
どうぞよろしくお願いいたします。
java - Chisel の推奨 Java/Scala 設定
最近、私はトップダウンで Chisel を学んでいます。以前は Scala に触れたことがなく、Java に触れただけでした。ますます大きなハードウェア構成を試みたので、Java が持つと考えているリソースに関連していると判断した Java から不可解なエラーが生成され始めています。これは、異なるマシンで同一の Chisel コードを実行し、成功するか、不可解な「next on empty iterator」から明示的な「GC オーバーヘッド制限を超えました」または Java スタック スペースまたはヒープ スペース エラーまでの範囲の Java エラーが発生することで判断しました。 . 確かではありませんが、Java および/または Scala/Chisel を構成して、一部の環境で実行している制限を開く方法があることを期待しています。私'
このおそらく一般的な初心者の困難について、いくつかの知恵を得ることができれば素晴らしいことです. 気になる Java/Scala の設定は? それらが何であるかを知るにはどうすればよいですか?どうすれば変更できますか? あなたの洞察を前もって感謝します。
また、リソースに関連する可能性がある不可解な Java/Scala エラーの「ヒット リスト」の作成を開始できれば幸いです。「次の空のイテレータ」は本当にストローをつかんでいました。
chisel - 意図的な組み合わせループ
私は、その性質上、準安定組み合わせ回路を作成するように構成できる再構成可能なロジックを設計しています。Chisel は私の回路を正常にコンパイルしますが、組み合わせループの可能性を検出したため、実行の開始時に停止します。
Chisel がこれをエラーとしてフラグ付けすることは非常に適切です。回路の組み合わせの性質は意図的なものであるため、有効な構成の範囲で回路の動作をテストできるように、エラーをオフにする必要があります。これどうやってするの?
この件についてご協力いただきありがとうございます。
chisel - Mem の cloneType がありませんか?
Mem のブロックを「bank」と呼ばれるかなり一般的なモジュールにラップし、次のように Vec でインスタンス化しています。
val rams = Vec.fill( 100 ) { Module( 新しい銀行 ).io }
ここまでは順調ですね。信号を接続するときに問題が発生しています。モジュールの信号のベクトルを信号のベクトルに直接接続すると、次のようになります。
...など、エラーは発生しません。
ただし、それらをクロスバーなどの重要なパターンで接続すると、「バンク」と呼ぶ Mem ラッパーを参照しているように見える奇妙なエラーが発生し始めます。
"パラメータ化されたバンドル クラス ascenium.bank$$anon$1 には cloneType メソッドが必要です"
このエラーは、具体的には Chisel エラーです。誰がそれが何を意味し、それを修正する方法を教えてもらえますか?
必要に応じてソースコードを提供できます。