Studio 6A
Overview / Reminder
- Studios are a time to explore the material and refine your understanding.
- You should NOT “divide and conquer” to complete all of the studio. The time is meant for improving your understanding.
- You should ensure that everyone in your group contributes to and benefits from the work.
Artifacts for this studio
Complete the code and add answers to questions in the “Questions.md” file in the repository.
Studio Setup
The repo link Studio 6
Storage
ROM
Review the behavior of the rom
(storage/rom.sv
). Simulate the ROM and make it output 0x00200000 (in simulation — without changing the code for it).
Explain how you were able to accomplish this in Question 2 of the Markdown.
Register File
Register 0
Review the code given for the register file. Simulate it and get it to send the content of register 0 to both outputs. Describe what you needed to do.
Other registers
Now retrieve the contents of other registers. What values do you get and why?
Register 4
Describe (and test) a sequence of actions needed to retrieve the number 12 from register 4. (The instructions should be sufficient for someone else using the simulator to go through all actions needed to see 12
on an output).
Synthesis
Your kits contain an iCE40 UP5k FPGA. Review the Data sheet for the iCE40 UP5K. In particular look at Figure 3.2, whcih describes the “PLBs” in the UP5K.
Simple Logic
Explain how a PLB can do a simple logic equation, like A*B*C
(where *
represents AND). (How is the PLB configured?)
Adding Correctly
Review the adders/fulladder.sv
. Is the fulladder
correct? If not, fix it.
Synthesizing Addition
The Codespace contains a task named fulladder: ice40 jpg
that will generate an image of how the synthsis process “maps” the behavior described in the fulladder
to the iCE40’s PLBs. Explain the diagram and how/why it is appropriate. Explain the meaning any “LUTs” that appear and their precise configuration.
Multibit Adders
Two Bits
The multibitadder
is currently configured as a two bit adder. Describe how what you think the synthesized iCE40 logic will look like BEFORE looking at it.
THEN look — explain what you see and if you misunderstood anything.
Three Bits
Update the two bit adder to support three bits and predice what you’ll see. Again, explain what you see and if you misunderstood anything.
Wonder Washer: Reloaded
Using the statemachine
directory, create a new, updated budget version of the Wonder Washer described:
Commit and Push Work
When done, you need to “Commit and Push” work to share it back to the GitHub repository from the Codespace.
End of Studio: Stop the Codespace
Caution!
Be sure to “stop” your Codespace. You have approximately 60 hours of Codespace time per month. Codespaces often run for ~15 minutes extra if tabs are just closed.
Submission / End-of-class
Discuss your work/findings with TAs/instructors.