Coder Social home page Coder Social logo

thalesgroup / tmr Goto Github PK

View Code? Open in Web Editor NEW
21.0 9.0 7.0 1.29 MB

Triple Modular Redundancy

Home Page: https://github.com/ThalesGroup/TMR/blob/master/RISC-V-demonstrator--docs.pdf

License: BSD 3-Clause "New" or "Revised" License

Shell 0.06% Tcl 3.32% Makefile 0.01% C 0.11% Verilog 95.53% VHDL 0.93% Assembly 0.03% Coq 0.01%

tmr's Introduction

Triple Module Redundancy

Licensing

The source and RTL files coming from thales-risc-v-registers-router, thales-risc-v-jtag-router, thales-risc-v-chisel-project and thales-risc-v-fault-detector are released under the BSD 3 clauses. The modifications of the Rocket-chip generator in the thales-risc-v-chisel-project are released under the BSD 3 clauses. The rocket-chip generator is located at https://github.com/freechipsproject/rocket-chip. The solution parts of the thales-risc-v-vivado and the bistream it generates are released under the BSD 3 clauses. Modifications in the ultrascale linux, u-boot, zephyrOS and openOCD are released under GNU GPL v2 License.

Thanks

We would like to thank Antmicro for the successful collaboration on this project.

Running the demo straight away

This README file helps you regenerate the full project. For that you will need

  • chisel tools
  • Vivado licence for the Ultrascale+
  • riscv-tools
  • zephyr-sdk

Source retrieval

Four IP cores have been written in chisel for this project.

  • chisel-project
  • registers-router
  • jtag-router
  • fault-detector

They are git submodules that need to be retrieved with the following script.

./git.sh

Bitstream generation

To regenerate the chisel projects, use this script

./chisel.sh

It will generate verilog files that need to be copied in the thales-risc-v-vivado project. To launch synthesis and implementation run the vivado.sh script. You will need to have vivado sourced here. It has been tested with vivado 2017.4.

./vivado.sh

The resulting bitstream should be located in thales-risc-v-vivado/project_1/project_1.runs/impl_1/

US+ Processing system software

If you want to regenerate the bootloader, the kernel and the Risc-V control software you can follow the instructions in RISC-V-demonstrator--docs.pdf 5.1 US+ Processing system software

Riscv-V software

The Risc-V software consists of a ZephyrOS sample named im_alive. To re-generate it you will need to install the zephy-sdk at https://docs.zephyrproject.org/latest/getting_started/installation_linux.html After that, the ./make_im_alive.sh script should correctly generate the Risc-V executable. It will be located at riscv-zephyr/samples/im_alive/build/am_ft_devkit/zephyr/zephyr.elf.

SD card generation

To flash the SD card for the US+ target, you can use the instructions at RISC-V-demonstrator--docs.pdf 6.1 Preparing the SD card

tmr's People

Contributors

eyssartk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tmr's Issues

[Error] java.lang.Object in compiler mirror

java -Xmx2G -Xss8M -XX:MaxPermSize=256M -jar~/TMR/thales-risc-v-fault-detector/rocket-chip/sbt-launch.jar "assembly"
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
error: error while loading package, Missing dependency 'object java.lang.Object in compiler mirror', required by ~/.sbt/boot/scala-2.10.6/lib/scala-library.jar(scala/package.class)
error: error while loading package, Missing dependency 'object java.lang.Object in compiler mirror', required by ~/.sbt/boot/scala-2.10.6/lib/scala-library.jar(scala/runtime/package.class)
scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.

I assume this is an issue with my java, but I can't find a solution. What Java version did you use?

git.sh failed

git.sh is referencing nonexistent commits of submodules.

./git.sh

Init submodules

Submodule 'riscv-openocd' (https://github.com/Thales-RISC-V/riscv-openocd) registered for path 'riscv-openocd'
Submodule 'riscv-zephyr' (https://github.com/Thales-RISC-V/riscv-zephyr) registered for path 'riscv-zephyr'
Submodule 'thales-risc-v-chisel-project' (https://github.com/Thales-RISC-V/thales-risc-v-registers-router) registered for path 'thales-risc-v-chisel-project'
Submodule 'thales-risc-v-fault-detector' (https://github.com/Thales-RISC-V/thales-risc-v-fault-detector/) registered for path 'thales-risc-v-fault-detector'
Submodule 'thales-risc-v-jtag-router' (https://github.com/Thales-RISC-V/thales-risc-v-jtag-router/) registered for path 'thales-risc-v-jtag-router'
Submodule 'thales-risc-v-registers-router' (https://github.com/Thales-RISC-V/thales-risc-v-registers-router/) registered for path 'thales-risc-v-registers-router'
Submodule 'ultrascale-linux' (https://github.com/Thales-RISC-V/ultrascale-linux) registered for path 'ultrascale-linux'
Submodule 'ultrascale-u-boot' (https://github.com/Thales-RISC-V/ultrascale-u-boot) registered for path 'ultrascale-u-boot'
Cloning into '/home/sand/TMR/riscv-openocd'...
Cloning into '/home/sand/TMR/riscv-zephyr'...
Cloning into '/home/sand/TMR/thales-risc-v-chisel-project'...
Cloning into '/home/sand/TMR/thales-risc-v-fault-detector'...
Cloning into '/home/sand/TMR/thales-risc-v-jtag-router'...
Cloning into '/home/sand/TMR/thales-risc-v-registers-router'...
Cloning into '/home/sand/TMR/ultrascale-linux'...
Cloning into '/home/sand/TMR/ultrascale-u-boot'...
Submodule path 'riscv-openocd': checked out 'f7bd149fa85f6b3611ca54bb7021ea01d069b1e3'
Submodule path 'riscv-zephyr': checked out 'd236be82374687372da3f60899dfd10a4ff741ef'
error: Server does not allow request for unadvertised object a3f293b7c44a7e3749d63f0f1b29c16b3aa12c28
Fetched in submodule path 'thales-risc-v-chisel-project', but it did not contain a3f293b7c44a7e3749d63f0f1b29c16b3aa12c28. Direct fetching of that commit failed.

submodules thales-risc-v-fault-detector

error: pathspec 'rocket-chip' did not match any file(s) known to git.
./git.sh: line 9: cd: rocket-chip: No such file or directory
error: pathspec 'firrtl' did not match any file(s) known to git.
error: pathspec 'chisel3' did not match any file(s) known to git.
error: pathspec 'torture' did not match any file(s) known to git.
error: pathspec 'hardfloat' did not match any file(s) known to git.

submodules thales-risc-v-jtag-router

error: pathspec 'rocket-chip' did not match any file(s) known to git.
./git.sh: line 15: cd: rocket-chip: No such file or directory
error: pathspec 'firrtl' did not match any file(s) known to git.
error: pathspec 'chisel3' did not match any file(s) known to git.
error: pathspec 'torture' did not match any file(s) known to git.
error: pathspec 'hardfloat' did not match any file(s) known to git.

submodules thales-risc-v-registers-router

error: pathspec 'rocket-chip' did not match any file(s) known to git.
./git.sh: line 21: cd: rocket-chip: No such file or directory
error: pathspec 'firrtl' did not match any file(s) known to git.
error: pathspec 'chisel3' did not match any file(s) known to git.
error: pathspec 'torture' did not match any file(s) known to git.
error: pathspec 'hardfloat' did not match any file(s) known to git.

submodules thales-risc-v-chisel-project

error: pathspec 'testchipip' did not match any file(s) known to git.
error: pathspec 'rocket-chip/firrtl' did not match any file(s) known to git.
error: pathspec 'rocket-chip/chisel3' did not match any file(s) known to git.
error: pathspec 'rocket-chip/torture' did not match any file(s) known to git.
error: pathspec 'rocket-chip/hardfloat' did not match any file(s) known to git.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.