https://s3.us-west-2.amazonaws.com/secure.notion-static.com/383b25c7-0e9f-4df6-b477-9456d63e0700/lab22-4.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220204%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220204T230738Z&X-Amz-Expires=86400&X-Amz-Signature=b1c9fefa96f702584dece8a116d938d7edc90ebfc6be6ee33d04330a9f1f1ab2&X-Amz-SignedHeaders=host&response-content-disposition=filename %3D"lab22-4.pdf"&x-id=GetObject
<aside> ❗ Before the Lab:
</aside>
<aside> ✅ Task 1. Run the waveform simulator (top button) in Issie to simulate the top-level eep0 sheet of the design you are given. In the Edit window tick to display waveforms: PCQ, I, TR0, TR1, TR2, TR3. Note that these signals will highlight in blue on the schematic. Then click View to see the waveforms. You can enlarge this by dragging the grey bar to the left. You should see the Program Counter output PCQ counting up from 0 and the corresponding instructions I(15:0) all 0, because the downloaded design has AROM1 with all locations 0. You can change the waveform display radix, usually hex is best. To exit the waveform simulator click Edit, and then Close.
</aside>
FIG 1.1
After simulating clock ticks, I have observed that PCQ increments along with each tick (FIG 1.1) , essentially becoming a counter that keeps track of the clock tick.
PCQ is merely an output for diagnostic purposes in this schematic (see it connected to PC), and isn’t really part of the EE0 design.
No other registers change.
<aside>
✅ Task 2. Connect MUX1.sel
to logic 1, and enter the program from Figure 2 into AROM1
(from the button on the Properties page). Run the program in the waveform simulator and observe the results.
Explain why execution oscillates between instructions 0 and 2? Make sure that you reconnect
MUX1.sel
to J after this Task.
</aside>
FIG 2.1
Just to check, I start off with FORCEJUMP
to 0. MUX1 chooses the increment method and so PCQ counts up as normal, similar to FIG 1.1.
Setting FORCEJUMP
to 1, PCQ no longer increments along with the cycle, while J remains at zero the entire time. (FIG 2.1)
When jumping, MUX1 selects choice 1, a custom location to jump to based on the instructions in the program. Since this part hasn’t been implemented and the values are defaulted to zero, the PC jumps to 0 with each cycle.
Now we input the program into AROM and view its waveform.
AROM program.
We notice that PCQ is oscillating between 1 and 2. What is going on?
Since FORCEJUMP is 1, so every instruction is made into a jump.