Design of branch instruction issue for RISC-V OoO
Tuesday, February 15, 2022
趣味でRISC-Vのアウト・オブ・オーダープロセッサを実装している。 Tomasulo algorithmに基づいている。 今回は分岐命令の発行部分の検討をしていく。 Commit: df27bdc1b9382573458b5bf571ca32a9fa93325c …
Booting linux kernel on my RISC-V part2
Monday, March 22, 2021
前回 で起きた、riscv-intの初期化中?のハングの原因を見ていく。 …
Booting linux kernel on my RISC-V part1
Tuesday, March 16, 2021
概要 前回 ビルドしたLinuxを用いてシミュレーションを行った。 しかし、例外が発生し、処理が進まない。 今回は、原因を追求してみようと思う。 …
Building Linux kernel for my RISC-V SoC(RV32X SoC)
Tuesday, March 16, 2021
概要 自作のRISC-V SoC向けのLinuxカーネルのビルドフローをメモとして残す。 アーキテクチャはRV32IMAである。 特権モードは(M, S, U)をサポートしており、SV32ページングを実装している。 クロスコンパイラとしてriscv32-unknown-linux-gnu-gcc(version 10.1.0)がインストールされていることとする。 …
Next Synthesis Language
Monday, March 15, 2021
高位合成言語NSL NSLで自作のRISC-Vプロセッサを開発している。 NSLリファレンス NSLチュートリアル 開発には高位合成言語NSLを用いている。 NSLでは、Verilog HDL, VHDL, System-Cに変換でき、ステートマシンやパイプラインなどCPU開発に向いた専用の構文が用意されている。 単相同期を前提に設計されているため、クロックを明示する必要がない(m_clockとp_resetが自動で生成される)。 宗教上の理由よりNSLを使い始めたわけであるが、シンプルで可読性も高く、かなり使いやすいので、Verilog HDLなどで開発する気が起きない。 ライセンスは非商用の教育用途のものを用いており、2000行の制限がある。 商用には使わないし、 分割コンパイルをすれば、2000行を超えることはほぼないので、十分である。 …