Reading OpenSBI part2
Tuesday, March 16, 2021
前回 はOpenSBIの移植を行った。 今回はOpenSBIの実装を読んでいこうと思う。 アセンブリはあまり読みたくないので、できるかぎり飛ばしていく。 …
Reading OpenSBI part1
Tuesday, March 16, 2021
Reading OpenSBI RISC-VのSBI実装の一つである、OpenSBIを読んでいく。 今開発しているシステムでは、OpenSBIからLinux Kernelをロードし、制御を移しているため、理解しておきたい。 …
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行を超えることはほぼないので、十分である。 …