Risc-V CPU 编写 0x01

首先我们来了解下CPU的架构。

为了直到要设计出什么样的架构,必须先确定CPU的需求。我希望这个CPU能够直接运行 Risc-V 工具链从 C 编译出的可执行程序(elf文件)。那么我们必须支持RV32I的指令集,同时编写一个初始化程序,可以是内置在CPU的一段bootloader。我决定让我的CPU支持官方的riscv-tests(https://github.com/riscv/riscv-tests)。因此我会将它添加到我的github上面的submodule里面。同样,riscv-gnu-toolchain 和 verilator 也会添加到submodule里面。至于能不能下载编译成功,还要看github的访问速度了。

好的,现在我们明确了CPU所要支持的测试。接下来确定下 CPU 需要额外支持的功能。

我希望能够让CPU具有一条总线,来连接类似于 RAM,ROM,GPIO,SPI,UART等等的外设。首先写的是一个单周期的版本(非流水线)。

关于一些更复杂的东西可以参考:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注