RISC-V

RiscVの内部動作モニタに、Python cmdライブラリを使ってみました話

最近、RISCVとuartが使えるようになったので、RiscVの内部挙動を確認できるように、モニタを作ってみることにしました。 ひとまず、以下をモニタ可能にしてみました。 PCとして命令アドレス 内部レジスタダンプ で、ハード的にモニタ可能にしたあとは、ター…

Chiselで分周クロックを作って、RISCVの合成をTiming Metさせました!

先日、Vivadoで合成したら、タイミングMetしませんでした。 そのため、何らかの対策をすることが必要になりました。 それは、パイプライン設計とマルチクロックです。 thira2.hatenablog.com パイプラインは中々に手間なので、マルチクロックにしようと思い…

chiselで適当に書いたRISCVをVivadoで合成したら、Timing割れしまくって困っている話

先日、RISCVを作ったので試しにFPGAで合成してみることにしました。 LUTが5000くらいでFFが1200くらいとなかなかに小型であることはわかりました。 問題はここからで、タイミングがまったくMetしていません。 125MHzで8ns周期なのに、WNSが-5.5nsと惜しくも…

RISCVデバッグ仕様について眺めてみました。

先日、RV32Iもどきを作ったので、次に何を作ろうかと思いました。 そんな気分で、ricvの公式サイトをぼんやり眺めていると、なんとRISCVにはデバッグ仕様が存在することが判明しました。 そんなわけで、RISCVのデバッガを作ろうとしました。 Debug Specifica…

chiselで簡単なRV32Iもどきを作りました

先日からコツコツRISCVを作ってたんですが、とりあえず spikeとのレジスタチェック、命令トレースチェック環境を構築し、 簡単なMain関数の実行が適切に流れるところまで確認しました!! 以下の設計方針で簡単に作成しただけですが、ある程度早めに良い感じで…

spikeで簡単なプログラムを流して、レジスタダンプを取得できることがわかった話

chiselでRISC-Vを作ろうとしたのですが、まずプログラム開発環境を揃えることにしました。 spikeで簡単なプログラムを流す(0x0000番地の罠) RISC-Vモデルはspikeにすることにしました。 公式から出ているシミュレータなので安心感があります。 spikeを使って…

RISC-VのVector命令を動かしてみました

最近ベクトル演算機に興味を持っていて、調べているんですが、 Vector命令の仕様がオープンなものは、RISC-V Vector命令しかないようでした。 なので、まずは仕様が明確なRISC-VのVector命令の動かし方について、調べてみました。 まずは、通常のrisc-vtool…

定量的アプローチ第6版を気づけば買ってしまいました

先日、本屋さんに一冊の大きな本が置いてあるのを見つけました。 なんだか、懐かしい感じと希望に溢れている本で気づけば手に取って買って帰りました。 (会計の時にすごく値段が高くてびっくりしました。) はい、そうです、ヘネパタ六版の翻訳版です。 中を…

RISC-Vプロセッサシミュレータ作成試行

RISC-Vについて、仕様理解を深めるために試しにプロセッサシミュレータ(RV32UI)を作ってみている。理解は進められているが、思ったより、難しく、技術を学ぶ必要があるということが結論。 妥当性確認方法 riscv-tests/isaが流れることとして確認を進めている…

Spike使ってriscv-testを試しに実行してみた

RISC-Vの命令セットが期待通り動いているか確認するために、riscv-testがある。今回は命令セットシミュレータspikeを使って、riscv-testがPassすることを確認してみる。 以下方法ではPass/Failの表示がされないため、改良が必要 GitHub - riscv/riscv-tests …

GCCでRISCVの命令セットの指定してコンパイルする方法について

GCCでRISCVの命令セットの指定してコンパイルする方法を調べたので以下に記載する。 -mabiは付けないとなぜかコンパイル失敗してしまう。 ABIはApplication Binary Interfaceの略でバイナリ版のAPIらしいがこの辺りもそのうち調べていきたい。 参考: All Abo…

RISC-V(SCR1)のRTLシミュレーションを試してみた

次に以下コンパイラインストールの続きで適当なRISC-VプロジェクトをcloneしてRTLシミュレーションを実施してみる。 今回は公式ドキュメントが特に詳しく、知名度も高いSCR1を使用してサンプル実行まで確認してみることにした。 前回: RISC-Vのコンパイライ…

RISC-Vのコンパイラインストールについて

今更ではあるがRISC-Vについて聞こえてきて、学ぶいい機会と判断したので、いろいろ使ってみることにした。まずはRISC-Vのコンパイラ(gcc)とシミュレータ(spike)をインストールしhello worldが表示されることを確認した。 環境: MacOS(10.14.2) 1. 以下でURL…