Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/riscv-mcu/nuclei_vp
Nuclei Virtual Platform
https://github.com/riscv-mcu/nuclei_vp
qbox riscv systemc tlm2 virtual-platform
Last synced: about 1 month ago
JSON representation
Nuclei Virtual Platform
- Host: GitHub
- URL: https://github.com/riscv-mcu/nuclei_vp
- Owner: riscv-mcu
- License: other
- Created: 2023-07-31T09:17:58.000Z (over 1 year ago)
- Default Branch: wip
- Last Pushed: 2023-08-15T03:51:18.000Z (over 1 year ago)
- Last Synced: 2023-08-15T05:01:45.089Z (over 1 year ago)
- Topics: qbox, riscv, systemc, tlm2, virtual-platform
- Language: C++
- Homepage:
- Size: 252 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Nuclei Open Source Virtual Platform
Nuclei Open Source Virtual Platform is modified based on https://github.com/nvdla/vp repo.
It integrated nuclei qemu into systemc environment to provide a virtual platform based on systemc tlm.
It use technology such as greensoc's qbox and greenlib to support systemc modeling.
## Download Source Code
Git clone the repository and update the submodules.
After cloning the repository, run the following command to update the submodule:```sh
# NOTE: for internal developer, please use internal git repo url
git clone https://github.com/riscv-mcu/nuclei_vp
cd nuclei_vp
# checkout wip branch or other branch you need
# this is still under development, so branch is named wip
git checkout wip
# make sure this step below executed successfully
git submodule update --init --recursive
# check repo status and git submodule status
git status
git submodule
```## Build steps
> **Caution**: Not all scripts located in `scripts/` and `docker/` works.
We are using docker ubuntu 20.04 to build and test this repo.
### Download and run docker
> Make sure docker is installed in your system, and you have executation right.
~~~shell
# in host now
# The docker is a prebuilt one, uploaded to docker hub, see https://hub.docker.com/r/nucleisoftware/ubuntu/tags
bash scripts/run_docker.sh
# now in docker
~~~### Build repo in docker
We have made a script to build this project using cmake, see `scripts/build.sh`,
if you want to know the details, please check script content.~~~shell
# in docker now
cd /work
# build nuclei vp project in vp.build folder
# it will automatically build and install this project
# if you want to build it in a new folder, change vp.build to another name
bash scripts/build.sh vp.build
~~~## Test in docker
~~~shell
# in docker now
## build freeloader and qemu disk images using nuclei linux sdk or use a prebuilt image
## see https://github.com/Nuclei-Software/nuclei-linux-sdk/tree/dev_nuclei_6.1_v2#booting-linux-on-nuclei-qemu
## simple steps in nuclei-linux-sdk repo is as below
## $ make SOC=evalsoc CORE=ux900fd freeloader gendisk
## then you can copy /work/evalsoc/freeloader.elf and /work/evalsoc/disk.img to /images/
## or you can download a prebuilt version from https://drive.weixin.qq.com/s?k=ABcAKgdSAFcZkIVSxF
## extract it to /images folder
# run this virtual platform located in vp.build
bash scripts/run.sh vp.build
~~~Sample output can be found in [runlog.txt](scripts/runlog.txt)
If you want to test baremetal case, please use command below:
~~~shell
# in docker now
## build baremetal case for nx900fd using nuclei sdk
## see https://doc.nucleisys.com/nuclei_sdk/design/app.html
## using SOC=evalsoc CORE=nx900fd
## extract it to /images folder
# run this virtual platform located in vp.build
# default elf is images/baremetal.elf
bash scripts/run.sh vp.build conf/riscv64_bare.lua
~~~Sample output can be found in [runlog_baremetal.txt](scripts/runlog_baremetal.txt)
## Licence
See [License](License).