Lab 2:
In Lab 2, you must create a JK flip-flop from primitive gates only (nands, nors, xors, nots, etc.). You should do so by creating a D flip-flop, then adding combinational logic to convert it to a JK flip-flop. Furthermore, an input switch must be able to select between it being positive edge triggered and negative edge triggered.
- Demonstrate a JK flip-flop working as either positive or negative edge triggered (1 point)
- Demonstrate a D flip-flop working as either positive or negative edge triggered (1 point, automatically awarded if the JK flip-flop works)
- Demonstrate your flip-flop able to select between positive and negative edge triggering (1 point)
Lab 3:
There are three circuits in this lab, (i) the shifter counter, (ii) the Gray code counter, and (iii) A 7493 ripple counter. These demos may be done in any order. You will also need to use a state detector in several demonstrations.
- Demonstrate the gray code counter (ii). May be hand clocked. (1 point)
- Demonstrate the shifter-counter (i) counting. You will need to demonstrate this circuit twice, counting with two different moduli. You will use a state detector to detect the modulus and reset the circuit when that state is reached. May be hand-clocked (1 point)
- Demonstrate the shifter-counter (ii) shifting. The shifter must shift the _opposite_ direction that it counts. (E.g. if the right bit is the LSB of the counter, the shifter should shift from left to right). You will need to demonstrate this circuit three times, once with logical shift (shift in comes from a switch), once with circular shift (shift in = shift out), and once with arithmetic shift (shift in = MSB). May be hand clocked (1 point)
- Demonstrate circuit (iii). It must be clocked by the function generator at at least 1 kHz. You should use the state detector to detect a particular state. (You should choose a state which will be seen multiple times due to glitches). You must show the output of the state detector on the oscilloscope twice, once with the state detector NOT resetting the counter, and once with the state detector resetting the counter. (1 point)
- Wire the output of (iii) to the state detector, and do NOT use it to reset (iii). Use the output of the state detector as the CLOCK of (i) when set to counting mode. (iii) will be hand clocked to count from 0 to 15, then back to 0. (i) should only increment by 1 since the state should only be detected once. You should choose a state for the state detector which will make (i) advance multiple times during this time period due to the state detector detecting glitches in the output of (iii). (1 point)
Lab 4:
There are two separate circuits in this lab, (i) The shift register based 4-word 2-bit memory and (ii) the 7489 based RAM. Note that for (i), at most only one of the three control switches (FETCH, STORE, LDSBR) will ever be high at any given time.
- Demonstrate with (i) that you can load the SBR with data from the switches by using the LDSBR switch. (.5 points)
- Demonstrate with (i) that you can store data from the SBR into the shift register memory at the location specified by the SAR switches using the STORE switch (.5 points)
- Demonstrate with (i)that you can copy the word at the memory location specified by the SAR into the SBR by using the FETCH switch. (Can be demonstrated simultaneously with demonstrating STORE) (1.5 points)
- In the 7489 based RAM (ii), demonstrate that you can read and write memory locations in the RAM, that you are generating parity correctly, and that you detect parity errors when you READ from the RAM. (2.5 points)
Lab 5:
- Demonstrate that the design is self starting (i.e. always starts in the halt state) when turned on with LRS = 000. (1 point)
- Demonstrate that the circuit meets the specification in the lab manual. We are particularly looking for two features. (1) The circuit should be able to correctly output "turn left" and "turn right" according to the specification in the lab manual. (2) If LRS = 111, the circuit should output error. If S is then set to 0, the circuit should continue to output error since it cannot determine whether it should be turning left or right. If neither of these two features work you will receive 0 points for this part of the demo.(4 points)
Lab 6: Everything should be clocked fast (1kHz+) except for the last demo point.
- Show correct loading of the A and B registers. (1 point)
- Show that the computation cycle is the right length. We will hit execute and hold it high. The shift registers should shift a total of 4 times. No more, no less. (1 point).
- Demonstrate the four routing operations. (1 point)
- Demonstrate the 8 functional operations. (1 point)
- Show that the computation cycle completes even if execute returns to 0 mid-computation. This will be clocked slowly (1 Hz), and execute will be switched high. As soon as it starts shifting, execute will be switched low. The circuit must complete its computation cycle as normal. (1 point)
Lab 7:
- Design synthesizes without errors. (1 point).
- Functional simulation completed successfully (2 points). We will provide you a waveform you can use to test.
- Correct operation on the DE2 board. The 4 routing options and 8 functions will be tested as in lab 6. (2 points)
Lab 8:
- Functional simulation completes (1 point)
- ClearA_LoadB works on the board (1 point)
- Multiplication works. We will test +*+, +*-, -*+, and -*-. (2 points)
- Execution cycle behaves correctly. It should multiply once per button press and be able to execute multiple times without resetting. You may use ClearA_LoadB, but it should not reset the state machine. (1 point)
Lab 9:
- Make code of last key pressed show on 7 segment display with an LED showing the correct direction. (1 point)
- Ball can move and bounce in both vertical and horizontal directions. If the ball can go through a wall the point will not be awarded. (1 point)
- Ball responds to keyboard commands. (1 point)
- Keyboard input is read on the keypress, not the release. The key should not continue to be read after the release. While the key is depressed, the ball may either continually react to the key or ignore it. (1 point)
- Ball may not move diagonally. This will be tested by pressing a key at the same time the ball bounces off a wall. (1 point)