問題タブ [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 - チゼル 3 のダイナミック テスト ハーネス
Chisel にプロセッサを実装しており、非常にトリッキーなテスト ケースが多数あります。多くの状態を持つ要素の場合、オンザフライでテスト ベクトルの長いシーケンスを生成し、オンザフライで正しい応答も計算したいと考えています。Chisel 3 でこれを行う唯一の方法は、Java イントロスペクションを使用してハッキングし、scala コードを C++ テスト ハーネスに接続して、C++ コードで刺激ベクトルと正しい応答を生成することです。
あまりきれいではありません。Scala フレームワーク内に留まり、Scala コードで動的テストを作成する方法はありますか? これまでの問題は、Verilator によって生成された C++ に Scala を接続することでした。Verilator で生成された C++ シミュレーターを、刺激ベクトルを生成してその場で応答をテストする Scala/Chisel テスト ハーネス コードと対話させるクリーンな方法はありますか?
ありがとう
chisel - Chisel3 で Mem のデータを初期化する方法
Mem のデータをファイルから初期化する簡単な方法はありますか (Verilog の「readmemh」に似た方法)?
scala - Scala/Chisel の型パラメーターを使用したオーバーライド/オーバーロード演算子
私は Chisel を使用していますが、実際にはこれは Scala の問題です。私がやろうとしているのは、派生オブジェクトの > 演算子をオーバーライドすることです。次のクラスを考慮します。
次に、Record から派生した任意のレコード タイプのジェネリック コンパレータを作成したいと思います。
私が使用しても大丈夫です
しかし、試してみると失敗します
これはコンパイラを通過しますが、> 演算子は常に RecordIndexed からではなく Record からのものです。
> はオーバーライドではなくオーバーロードであるため、その理由はある程度理解できます。Comparator の型 T に従って、コンパイラは Record から > を静的に選択します。
これを回避し、Scala にオーバーロードを選択させるにはどうすればよいですか? 型付けされた特性は進むべき道だと思いますが、その方法を完全に理解できませんでした。
chisel - ベクトルのレジスタを初期化する方法は?
このようなベクトルのレジスタを定義しました
を使用して for ループでこのレジスタの要素にアクセスしますmy_reg(i)
。
ここで、このレジスタをゼロに初期化したいので、変数定義を次のように変更します
ただし、このレジスタの要素にアクセスしようとすると、次のコンパイル エラーが発生します。
ベクトルのレジスタを定義し、それらを同期的に適切に初期化するにはどうすればよいですか?
chisel - Chisel で SteppedHWIOTester を使用するとエラーが発生する
https://github.com/freechipsproject/chisel-testers/wiki/Using-the-Hardware-IO-Testersに従って、SteppedHWIOTester を使用して Adder を作成しましたが、何か問題があります。
エラーは次のとおりです。
それで、それを修正するにはどうすればよいですか?どうもありがとう!
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 は次のとおりです。
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での作業に関する知識はありますか?
riscv - riscv ベンチマークでの vvadd および mt-vvadd との違い
riscv-test、具体的にはベンチマークテスト。vvadd と mt-vvadd テストの違いは何ですか??? どちらも「このベンチマークは 2 つのベクトルを追加し、結果を 3 番目のベクトルに書き込みます。入力データ (および参照データ) は vvadd_gendata.pl perl スクリプトを使用して生成し、dataset.h という名前のファイルにダンプする必要があります」
scala - Chisel3 型が FixedPoint の配列と一致しません
Scala では、Doubles、Long、および Boolean の配列の ArrayBuffer を宣言できる 1 つの方法は次のとおりです。
私はノミで同じことをしたいと思います。
chisel では、長さ n のベクトルを入力として宣言する 1 つの方法を次のように知っています。
ここで、n は Int です。これでうまくいきます。
ここで、n FixedPoint の配列も初期化しようとしましたが、次のようにしました。
配列の初期化から発想を得た
しかし、これはうまくいきませんでした。エラーが発生します
誰かが FixedPoint の上に A を宣言し、FixedPoint 番号の配列をチゼルで宣言する正しい方法を教えてください。ありがとう!あなたの注意とあなたの応答のために。
scala - chisel k Nearest Neighbors Verilog 出力
以下のチゼル コードから生成された Verilog に問題があります。これは、チゼル コードの記述方法に関連している可能性があります。生成された Verilog 出力を使用して、私のコードの Scala バージョンとチゼル バージョンよりも細かい。
私のコードのScalaバージョンは次のとおりです。
鑿バージョンはこちら。誰かが私のコードを調べて、どこが間違っているかを確認できますか?
これは、ファイルの値を使用してコードを実行する方法です。
データファイルが同じフォルダーにあることを示しました。コードは実行されましたが、生成された verilog が心配です。
生成された Verilog の正確性を確認する方法についてもアドバイスをお願いします。私はハードウェア言語をまったく初めて使用します。ありがとう!あなたの応答を楽しみにしています。