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.

Commid and Push

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.

Codespace

Submission / End-of-class

Discuss your work/findings with TAs/instructors.