minerva: A 32-bit RISC-V soft processor

栏目: IT技术 · 发布时间: 5年前

内容简介:Minerva is a CPU core that currently implements theMinerva currently requires Python 3.6+ andTo use Minerva in its minimal configuration, you need to wire the following ports to

Minerva

A 32-bit RISC-V soft processor

Minerva is a CPU core that currently implements the RISC-V RV32IM instruction set. Its microarchitecture is described in plain Python code using the nMigen toolbox.

Quick start

Minerva currently requires Python 3.6+ and nMigen on its master branch.

python setup.py install
python cli.py generate > minerva.v

To use Minerva in its minimal configuration, you need to wire the following ports to minerva_cpu :

clk
rst
ibus__*
dbus__*
external_interrupt
timer_interrupt
software_interrupt

Features

The microarchitecture of Minerva is largely inspired by the LatticeMico32 processor.

Minerva is pipelined on 6 stages:

  1. Address The address of the next instruction is calculated and sent to the instruction cache.
  2. Fetch The instruction is read from memory.
  3. Decode The instruction is decoded, and operands are either fetched from the register file or bypassed from the pipeline. Branches are predicted by the static branch predictor.
  4. Execute Simple instructions such as arithmetic and logical operations are completed at this stage.
  5. Memory More complicated instructions such as loads, stores and shifts require a second execution stage.
  6. Writeback Results produced by the instructions are written back to the register file.

minerva: A 32-bit RISC-V soft processor

The L1 data cache is coupled to a write buffer. Store transactions are in this case done to the write buffer instead of the data bus. This enables stores to proceed in one clock cycle if the buffer isn't full, without having to wait for the bus transaction to complete. Store transactions are then completed in the background as the write buffer gets emptied to the data bus.

Configuration

The following parameters can be used to configure the Minerva core.

Parameter Default value Description
reset_address 0x00000000 Reset vector address
with_icache False Enable the instruction cache
icache_nways 1 Number of ways in the instruction cache
icache_nlines 128 Number of lines in the instruction cache
icache_nwords 4 Number of words in a line of the instruction cache
icache_base 0x00000000 Base of the instruction cache address space
icache_limit 0x80000000 Limit of the instruction cache address space
with_dcache False Enable the data cache
dcache_nways 1 Number of ways in the data cache
dcache_nlines 128 Number of lines in the data cache
dcache_nwords 4 Number of words in a line of the data cache
dcache_base 0x00000000 Base of the data cache address space
dcache_limit 0x80000000 Limit of the data cache address space
with_muldiv False Enable RV32M support
with_debug False Enable the Debug Module
with_trigger False Enable the Trigger Module
nb_triggers 8 Number of triggers
with_rvfi False Enable the riscv-formal interface

Possible improvements

In no particular order:

  • RV64I
  • Floating Point Unit
  • Stateful branch prediction
  • MMU
  • ...

If you are interested in sponsoring new features or improvements, get in touch at contact [at] lambdaconcept.com .

License

Minerva is released under the permissive two-clause BSD license. See LICENSE file for full copyright and license information.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精通正则表达式

精通正则表达式

[美] Jeffrey E.F.Friedl / 余晟 / 电子工业出版社 / 2012-7 / 89.00元

《精通正则表达式(第3版)》内容简介:随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。《精通正则表达式(第3版)》自第1版开......一起来看看 《精通正则表达式》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具