Giter VIP home page Giter VIP logo

risc-v_myth_workshop's Introduction

RISC-V_MYTH_Workshop

For students of "Microprocessor for You in Thirty Hours" Workshop, offered by for VLSI System Design (VSD) and Redwood EDA, find here accompanying live info and links for Day 3 - 5.

About the Workshop

This workshop has recieved a great deal of attention in the RISC-V community for enabling students to learn at a pace never before possible through the use of TL-Verilog and Makerchip. Some links:

Slack

You should have been invited to a Slack workspace for collaborative discussions.

  • Channels for your workshop will have a prefix such as "m10" for the MYTH Workshop in Nov. 2022. If you have not already been added to these channels, do so using the + next to "Channels", and "Browse Channels".
  • Please introduce yourself in the "m#-introductions" channel.
  • Use channels appropriately to ask questions throughout the workshop. Mentors monitor Slack nearly 24 hours/day throughout the workshop.
  • The search box at the top is your friend. Others may have encountered similar issues.

VSD-IAT

You should already be up and running with the VLSI Design Systems - Intelligent Assessment Technology platform. If you missed the live tutorial in the first call, the recording should have been posted in Slack, and you can search for it.

GitHub Classroom Setup and Lab Submissions

Lab submissions begin on Day 2 and are done via GitHub Classroom. You should receive a link to join prior to Day 2. For this course, all interactions with your GitHub repository can be done from your browser. You can add files using the "Add File" dropdown menu. You can edit a text file by navigating to it and clicking the pencil icon. Live training is provided, and the recording should have been posted in Slack.

Submission process:

  • Day 2: We just want to see that you have done the work. Capture a few screenshots and save them in the Day2 folder of your repository.
  • Day 3-5: Labs involving the calculator or RISC-V CPU should be submitted. If you miss a few, don't sweat it, but we want to see your progress. For each calculator or RISC-V lab:
    • Open your github classroom repository in your web browser.
    • Navigate into the Day3_5 folder and the corresponding calculator_solutions.tlv or risc-v_solutions.tlv.
    • Click edit (pencil).
    • Paste your updated solution, replacing the existing code. (Within Makerchip editor select all (Ctrl-A) and copy (Ctrl-C), then select all in github editor (Ctrl-A) and paste with (Ctrl-V).)
    • Add commit message specifying the slide number or name of the lab, and commit changes.
    • (Do not append your changes, replace them entirely. you prior work is captured in the "History" (or "Commits").)

Day 3-5 Slides

As you listen to videos and do the lab assignments, follow along in the slides. Comments have been added to address points of confusion.

Temporary Makerchip Servers

We are running two Makerchip servers specially for this workshop. Please help us distribute the load by using the appropriate links below based on the day-of-month of your birthday. For all links, open in a new tab using ctrl-click. (Github Markdown links always replace the page when clicked.) On the off-chance there is an issue with one server, feel free to use the other.

Labs Starting-Point Code

Intro Labs (all that are not calculator or RISC-V)

No special starting point is required.

Use makerchip.com.

Calculator Labs

Begin with the following starter code (Ctrl-click).

RISC-V Labs

Begin with the following starter code (Ctrl-click).

Note : As the complexity of your design increases, it might take long time (~3 mins) to generate the diagrams or they might fail to generate altogether. This does not indicate a problem in your code.

HELP!!!

It's important to take your time with each concept and with each lab. Rushing ahead will slow you down in the end.

When you get stuck:

  1. Always check the LOG! Keep your log clean of errors (both SandPiper errors (blue) and Verilator errors (black)). In some cases we expect warnings (LOGIC_ERRORs) for signals that are "used but never assigned" where we want Makerchip to provide random input values. Common "Issues and Solutions" can be found below.

  2. Check the slide PDFs for any corrections, and check below for "Common Issues and Solutions".

  3. Review previous lectures.

  4. Follow conversation in Slack (https://risc-vmythworkshop.slack.com/home) to see if someone else encountered similar issues.

  5. Discuss the issue with your "Team" in Slack (if assigned).

  6. Explore these reference solutions (Ctrl-click).

    No, we're not giving away the answers! This link will open in Makerchip the diagram, waveform, and visualization for the solution, but will not show source code. Explore these to figure out the issue that's plaguing you, and then go back to doing the lab on your own. If you are stuck on syntax, hover over a signal assignment in the diagram to see an expression.

    Note : Last time we conducted this workshop, students relied to heavily on reference solutions. This slowed them down . Furthermore, there are intentional bugs in the reference solutions, and we can easily tell if you are simply copying them.

    Note that you have to comment the line with m4_define(['M4_CALCULATOR'], 1) to see solutions for RISC-V Labs.

    Also, we've pre-generated a Diagram of the final RISC-V reference solution at the bottom of this README.

  7. Share your sandbox URL with a mentor via Direct Message in Slack. (Be sure it is saved/cloned, and clone again before editing.)

  8. We have a Zoom plugin in Slack. Feel free to request a meeting with the instructors, or meet with others. Start a meeting with:

    /zoom meeting My topic

Common Issues and Solutions

In some cases the viz logic will make error/warning messages a bit more obscure. If you have enabled visualization, try disabling it.

SandPiper(TM) (blue log output)

Verilator (black log output)

Verilated model didn't DC converge

Combinational logic loops back on itself so the combinational logic does not stabilize. Perhaps you missed a >>1.

Errors related to [***NULL***:***NULL***]: Disable viz macro and this error will most likely go away. Debug other SandPiper errors and re-enable viz.

Pre-generated Diagram

Your generated CPU would look like this after implementing all labs.

Note : As noted above in "HELP!!!" section, refer to this diagram only when stuck. Reverse-engineering this diagram will not help you finish faster, and we can tell whether you simply reverse-engineer it.

Ctrl-click to use your browser's zooming and to hover over assignment statements.

Complete CPU

After the Workshop

Show off your work!

GitHub is the new resume. Show off your work to the world. Many former students have developed impressive READMEs for their repositories, and even developed additional features for their cores to showcase what they learned, to further explore the technology, and to contribute the the community. If you have something unique to share about your experience in the workshop and the core you have built, we would be happy to showcase it from RISC-V International's list of RISC-V Cores by adding it to this list. Just let us know.

If you choose to make your workshop repository public, follow these steps:

  1. Go to repository ('risc-v-myth-workshop--') on Github.
  2. Click on the 'Settings' in top ribbon (below repo name).
  3. Scroll down to the bottom, in 'Danger Zone', click 'Change visibility'.
  4. In the window that opens, select "Make public", type the given text, and click "I understand ....".
  5. Done! You can use private mode (in firefox) or incognito (in chrome) to visit the repo and see how it would look like to the world.
  6. Optionally, you can change the repository name. If you have any clones of your repository, you'll want to push changes and delete them first.

risc-v_myth_workshop's People

Contributors

stevehoover avatar shivampotdar avatar vineetjain07 avatar baladhinesh avatar

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.