Git Product home page Git Product logo

occamy's People

Contributors

colluca avatar cyrilkoe avatar fischeti avatar giannap avatar huettern avatar lucabertaccini avatar niwis avatar paulsc96 avatar samuelriedel avatar stmach avatar suehtamacv avatar thommythomaso avatar zarubaf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

occamy's Issues

Occamy: Generate different RTL for RTL/FPGA

We probably need to think about generating a couple of different systems in occamygen.py.
I can at least think about two in that context:

  1. RTL Sim
  2. FPGA
  3. (ASIC in the private wrapper repo)

I think we have all the necessary ingredients for this. What is missing is:

  • Create a second(/third) configuration file. Using jsonref we could also share the cluster configuration between the system configuration.
  • Generate the RTL into dedicated directories
  • (Manually) adapt the Bender.yml to include the appropriate files.

sw: standalone configuration

Make sure that the params.json can be changed directly in Occamy, rather than taking the configuration of the snitch_cluster dependency

Hierarchical verilator model

The verilator testbench is faster for cycle-accurate software benchmarks than VCS/VSIM simulators. Occamy is not yet fully verilator compatible. Verilating this many cores will require a lot of RAM and will likely not work.

This was the motivation to enable hierachical mode inside the Snitch cluster. Current effort can be seen in the verilator-hierachical branch.

Problems

  • hierachical designs don't support parameter type parameters. This was mitigated by adding a wrapper around snitch_cc and passing the structs by their bit with and re-generating the structs before instantiating snitch_cc

Current progress

The model compiles but the first instructions to the FPU subsystem are not retired

fcvt.d.w ft0, zero             #; ac1  = 0
fcvt.d.w ft1, zero             #; ac1  = 0

The VSIM testbench works with the modifications enabled (adding ``define VERILATORand runmake bin/snitch_cluster.vsim`). Instructions offloaded to outside `snitch_cc` work too (`div/mul`). The `fcvt` instruction is offloaded to the FPU-SS that resides inside `snitch_cc` which due to the hierarchical mode cannot be inspected in the generated VCD.

This issue should serve as an entry-point for someone interested in picking this up again.

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.