ハードウェアの気になるあれこれ

技術的に興味のあることを調べて書いてくブログ。主にハードウェアがネタ。

RISC-V

Chiselで作ったRISC-VとUARTをArty 35Tで動かしてみた

今回は作ってたRISC-V(dirv)とUARTを接続した簡単なシステムがFPGAで動いたので、その結果について簡単にまとめておきたいと思う。

riscv-toolsリポジトリのデータでRV32Iのビルド環境を作りなおした話

RISC-Vのビルド環境を作りなおす必要が出てきたので、せっかくだから最新のriscv-toolsのリポジトリの環境を使って作りなおすことにした。 今回はその際に幾つか躓いた部分があったのでそれについてまとめておく。 crosstool-ngを使ったRISC-Vのコンパイラの…

Chiselで簡単なRISC-Vを作った話

今年のGWの自分宿題としてものすごく簡単なRISC-Vを作っていました。 ツイッター見てる方はご覧になってたかもしれませんが、GW中に一応riscv-tests位ならPASSするものが出来ています。 今回はその後にVivadoで合成してみた結果も取ることが出来たのでそれも…

riscv-sodorをintelliJ IDEAで解析する環境を整えた話

前回のChiselネタではVCD波形の確認に使うGTKWaveのビルドについてをまとめた。 www.tech-diningyo.info 今回はChisel-bootcampの傍らで確認を始めているRISC-Vの実装の一つsodorの実行&解析環境を作る際にIntelliJ IDEAとsbtの扱いでハマった話を備忘のた…

Chisel Bootcamp - Module3.2(6) - 練習問題:Vecを使ったRISC-Vのレジスタファイル

前回の記事ではChisel BootcampはChiselのコレクション型である`Vec`について調べた。 今日はModule3.2の締めくくりとして練習問題を見ていく。

SCR1の解析 - ecall命令の処理とriscv-testsの終了条件の確認

昨日の記事の結びで以下のように書いた。 > ということは`ecall`命令がうまく処理されていないことになるが、そもそも`ecall`命令って何??な状態なので次回は`ecall`命令の中身を把握するところからやっていきたい。 [https://www.tech-diningyo.info/entr…

SCR1の解析 - riscv-tests処理内容の確認

昨日の記事でVivadoシミュレータ上で実行した[riscv-testsのaddiテスト](https://github.com/riscv/riscv-tests/blob/master/isa/rv64ui/addi.S)が正常に終了しない件についての調査を行い、テストベンチ上の`$finish`に辿り着く条件を満たしていないことが…

RISC-Vの実装の1つ - SCR1の解析 - シミュレーション環境の疑問点の確認(2)

前回のSCR1ネタではVivadoシミュレータを使用した際に`$readmemh`がうまく行かない問題を解析していった。 今回はもうひとつ残っているシミュレーションが正常に終わらない問題について解析していく。

RISC-Vの実装の1つ - SCR1の解析 - riscv-testsの実行

前回のSCR1の記事ではriscv-toolsのビルドを行い、spikeを使ってRISC-Vのバイナリの実行が可能なことを確認した。 tech-diningyo.hatenablog.com 今回はビルドしたRISC-V用のtoolchainを使ってriscv-testsをSCR1向けにビルドしVivadoのシミュレータでシミュ…

RISC-Vの実装の1つ - SCR1の解析 - riscv-toolsのビルド

前回SCR1のVivadoシミュレーション環境の起動が確認できて、HW側の準備は整った。 今回は実際のRISC-Vバイナリを使ってシミュレーションするために必要となるriscv-toolsのビルドを行っていく。

RISC-Vの実装の1つ - SCR1の解析 - Vivadoプロジェクト準備(3)

今回も引き続き、SCR1のVivadoシミュレーション環境のエラー解析を行っていく。 今回はVivadoシミュレーション本体がSIGSEGVでツールごと落ちる問題を見ていく。

RISC-Vの実装の1つ - SCR1の解析 - Vivadoプロジェクト準備(2)

前回Vivado上でSCR1コアのプロジェクトを立ち上げシミュレーションを実行したところ、エラーが発生した。 今回の記事ではそのエラー内容の解析を行っていく。

RISC-Vの実装の1つ - SCR1の解析 - Vivadoプロジェクト準備(1)

RISC-Vのサイトに紹介されているコアで、最初の学習に良さそうなコアを探したところsyntacoreコア社のSCR1というコアが扱いやすそうなので、このコアをシミュレーションできる環境をVIvadoシミュレータを使って立ち上げていく。