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.
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:
- Workshop info
- riscv.org blogs about 13-year-old Nicholas Sharkey and 12-year-old Niel Josiah
- Linkedin posts
- riscv.org's list of RISC-V cores, including MYTH cores
You should have been invited to a Slack workspace for collaborative discussions.
- This workspace has been used for all MYTH Workshops, so you can benefit from the questions and answers of past participants using the search box at the top.
- Channels for your workshop will have a prefix such as "m6" for the MYTH Workshop on March, 24, 2021. 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.
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, here's the recording. Issues can be reported in the Slack "iat-platform-issues' channel, or check with Kunal Ghosh.
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, but, in case you missed it, here's the recording from MYTH 4.
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 correspondingcalculator_solutions.tlv
orrisc-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").)
As you listen to videos and do the lab assignments, follow along in the slides. Comments have been added to address points of confusion.
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.
No special starting point is required.
Use makerchip.com or:
- If your birthday is an odd-numbered day, use myth3.makerchip.com. (Ctrl-click)
- If your birthday is an even-numbered day, also use myth3.makerchip.com. (Ctrl-click)
Begin with the following starter code.
- Odd birthday: Calculator Starter Code (Ctrl-click)
- Even birthday: Calculator Starter Code (Ctrl-click)
Begin with the following starter code.
- Odd birthday: RISC-V Starter Code (Ctrl-click)
- Even birthday: RISC-V 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.
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:
-
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.
-
Check the slide PDFs for any corrections, and check below for "Common Issues and Solutions".
-
Review previous lectures.
-
Follow conversation in Slack (https://risc-vmythworkshop.slack.com/home) to see if someone else encountered similar issues.
-
Discuss the issue with your "Team" in Slack (if assigned).
-
Explore these reference solutions:
- Odd birthday: Reference Solutions (Ctrl-click)
- Even birthday: 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.
-
Share your sandbox URL with a mentor via Direct Message in Slack. (Be sure it is saved/cloned, and clone again before editing.)
-
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
In some cases the viz logic will make error/warning messages a bit more obscure. If you have enabled visualization, try disabling it.
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.
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.
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:
- Go to repository ('risc-v-myth-workshop--') on Github.
- Click on the 'Settings' in top ribbon (below repo name).
- Scroll down to the bottom, in 'Danger Zone', click 'Change visibility'.
- In the window that opens, select "Make public", type the given text, and click "I understand ....".
- 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.
- 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.