問題タブ [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.

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

scala - チゼル 3 のダイナミック テスト ハーネス

Chisel にプロセッサを実装しており、非常にトリッキーなテスト ケースが多数あります。多くの状態を持つ要素の場合、オンザフライでテスト ベクトルの長いシーケンスを生成し、オンザフライで正しい応答も計算したいと考えています。Chisel 3 でこれを行う唯一の方法は、Java イントロスペクションを使用してハッキングし、scala コードを C++ テスト ハーネスに接続して、C++ コードで刺激ベクトルと正しい応答を生成することです。

あまりきれいではありません。Scala フレームワーク内に留まり、Scala コードで動的テストを作成する方法はありますか? これまでの問題は、Verilator によって生成された C++ に Scala を接続することでした。Verilator で生成された C++ シミュレーターを、刺激ベクトルを生成してその場で応答をテストする Scala/Chisel テスト ハーネス コードと対話させるクリーンな方法はありますか?

ありがとう

0 投票する
4 に答える
823 参照

chisel - Chisel3 で Mem のデータを初期化する方法

Mem のデータをファイルから初期化する簡単な方法はありますか (Verilog の「readmemh」に似た方法)?

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

scala - Scala/Chisel の型パラメーターを使用したオーバーライド/オーバーロード演算子

私は Chisel を使用していますが、実際にはこれは Scala の問題です。私がやろうとしているのは、派生オブジェクトの > 演算子をオーバーライドすることです。次のクラスを考慮します。

次に、Record から派生した任意のレコード タイプのジェネリック コンパレータを作成したいと思います。

私が使用しても大丈夫です

しかし、試してみると失敗します

これはコンパイラを通過しますが、> 演算子は常に RecordIndexed からではなく Record からのものです。

> はオーバーライドではなくオーバーロードであるため、その理由はある程度理解できます。Comparator の型 T に従って、コンパイラは Record から > を静的に選択します。

これを回避し、Scala にオーバーロードを選択させるにはどうすればよいですか? 型付けされた特性は進むべき道だと思いますが、その方法を完全に理解できませんでした。

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

chisel - ベクトルのレジスタを初期化する方法は?

このようなベクトルのレジスタを定義しました

を使用して for ループでこのレジスタの要素にアクセスしますmy_reg(i)

ここで、このレジスタをゼロに初期化したいので、変数定義を次のように変更します

ただし、このレジスタの要素にアクセスしようとすると、次のコンパイル エラーが発生します。

ベクトルのレジスタを定義し、それらを同期的に適切に初期化するにはどうすればよいですか?

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

chisel - Chisel で SteppedHWIOTester を使用するとエラーが発生する

https://github.com/freechipsproject/chisel-testers/wiki/Using-the-Hardware-IO-Testersに従って、SteppedHWIOTester を使用して Adder を作成しましたが、何か問題があります。

エラーは次のとおりです。

それで、それを修正するにはどうすればよいですか?どうもありがとう!

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

parallel-processing - chisel は並列/マルチ CPU で firrtl を verilog に変換できますか?

このような並列ハードウェア アーチをチゼルで実装するために、レジスタのメッシュ配列、たとえば 32x32 バイトの D フリップフロップをチゼルで設計しました。firrtl ファイルは 10 万行のようなもので、ネットリストのように見えます。その場合、firrtl から verilog への変換にかかる時間は、何時間にもなります。この間、処理は 1 つの CPU で行われます。CPU で並列に実行する方法を教えていただけますか?

キーコード:

scala コンパイラおよびコード ランナー バージョン 2.11.8

次のような実行バッチを作成しました。./run を実行してから ./target/Bench.v を待ちます。

scalac/scala は、scala のインストール後に自動生成され、My Test.scala は次のとおりです。

Top.scala は次のとおりです。

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

scala - Chisel: Windows での Chisel ライブラリのコンパイル

Chisel ソースから Verilog を正常に生成するために、Windows で sbt を使用し、カスタム build.sbt スクリプトを最上位ファイルのインポート Chisel._ と組み合わせて使用​​しています。

Chisel の開発を促進するために、IDE を Windows で動作させようとしています。私は Eclipse ベースの SCALA IDE http://scala-ide.org/download/sdk.html/を使用しました。

毎回リポジトリからソースをダウンロードしてソースを再コンパイルすることなく、インポート Chisel._ をローカルで解決できるように、Chisel ライブラリをコンパイルしたいと考えています。Git から Chisel-master リポジトリをダウンロードし、SCALA IDE の SCALA プロジェクトに src\main フォルダーを含めると、Chisel SCALA ファイルで多くの構文エラーが発生し、プロジェクトをビルドできません。

プロジェクト構成で未定義のシンボルが発生する可能性があるため、以前にWindowsでこのようなことをした人はいますか、またはSCALA IDEでの作業に関する知識はありますか?

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

riscv - riscv ベンチマークでの vvadd および mt-vvadd との違い

riscv-test、具体的にはベンチマークテスト。vvadd と mt-vvadd テストの違いは何ですか??? どちらも「このベンチマークは 2 つのベクトルを追加し、結果を 3 番目のベクトルに書き込みます。入力データ (および参照データ) は vvadd_gendata.pl perl スクリプトを使用して生成し、dataset.h という名前のファイルにダンプする必要があります」

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

scala - Chisel3 型が FixedPoint の配列と一致しません

Scala では、Doubles、Long、および Boolean の配列の ArrayBuffer を宣言できる 1 つの方法は次のとおりです。

私はノミで同じことをしたいと思います。
chisel では、長さ n のベクトルを入力として宣言する 1 つの方法を次のように知っています。

ここで、n は Int です。これでうまくいきます。
ここで、n FixedPoint の配列も初期化しようとしましたが、次のようにしました。

配列の初期化から発想を得た

しかし、これはうまくいきませんでした。エラーが発生します

誰かが FixedPoint の上に A を宣言し、FixedPoint 番号の配列をチゼルで宣言する正しい方法を教えてください。ありがとう!あなたの注意とあなたの応答のために。

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

scala - chisel k Nearest Neighbors Verilog 出力

以下のチゼル コードから生成された Verilog に問題があります。これは、チゼル コードの記述方法に関連している可能性があります。生成された Verilog 出力を使用して、私のコードの Scala バージョンとチゼル バージョンよりも細かい。

私のコードのScalaバージョンは次のとおりです。

鑿バージョンはこちら。誰かが私のコードを調べて、どこが間違っているかを確認できますか?

これは、ファイルの値を使用してコードを実行する方法です。

データファイルが同じフォルダーにあることを示しました。コードは実行されましたが、生成された verilog が心配です。

生成された Verilog の正確性を確認する方法についてもアドバイスをお願いします。私はハードウェア言語をまったく初めて使用します。ありがとう!あなたの応答を楽しみにしています。