🔬 Lab
CS 240 Lab 4
Learning Goals & Reflection
CS 240 Lab 4
Learning Goals
Core Goals
Students can:
- Explain the design and operation of an Arithmetic Logic
Unit:
(
)
- Explain how an ALU can perform multiple different operations, and which inputs control which operation it performs.
- Explain how multiplexers are used to control input inversion in an ALU.
- Explain how input inversion and carry-in can be used to implement subtraction, NAND, and NOR using an ALU that only has chips for OR, AND, and addition.
- Build a simulated ALU using basic logic gates, an adder, and multiplexers.
- Fill out the truth table for an ALU.
- Debug a simulated ALU by testing its outputs against a truth table.
- Explain how a multi-bit ALU can be constructed from a series of 1-bit ALUs, including how to connect the control lines.
- Design and implement the sign, overflow, and zero outputs from a multi-bit ALU.
- Explain how Latch and Flip-Flop
circuits work:
(
)
- Define bistable and give an example of a bistable circuit.
- Build an SR latch in a simulator using two NOR gates.
- Explain why the output of an SR latch is not always predictable, including what sequence of events triggers unpredictable behavior and the ways that behavior can resolve itself in practice.
- Build an SR latch on the workbench by wiring together NOR gates in a 7402 chip.
- Add AND gates to an SR latch to create a clocked SR latch, both in simulation and on the workbench.
- Explain the purpose of a “clock” signal within a memory system.
- Explain why a D latch is preferable to an SR latch.
- Implement a D latch in a simulator using AND, NOR, and NOT gates.
- Explain the difference between a D latch and a D flip-flop.
- Implement a D flip-flop in a simulator using two D latches.
- Explain the difference between a rising-edge and a falling-edge trigger.
- Explain the operation of a register:
(
)
- Explain how multiple D flip-flops should be connected to create a register file.
- Give an example of the circuit diagram notation for a multi-wire bus, and explain what it means.
- Explain what happens when a register file is read from and written to at the same time in a single clock cycle.
- Explain the operation of a register file:
(
)
- Explain what the CLR and CLK inputs to a register file do.
- Explain how to write data into or read data from a particular register in a register file.
- Explain how multiple registers are connected to create a register file, including how a decoder and several multiplexers are used within the register file.
Stretch goals
- Explain how Latch and Flip-Flop
circuits work:
(
)
- Explain why the fact that the output of a D flip-flop doesn’t change until the falling edge of the clock is useful in a system where many D flip-flops are used.
- Explain what would happen if D latches were used in place of D flip-flops for a register file if we want to read from that register file and write a result back into it in the same clock cycle.
- Explain the operation of random access memory:
(
)
- Explain what “random” means in the term “random access memory.”
- Explain the difference between address and data inputs for a RAM.
- Explain how the “write enable” input for a RAM works.
- Explain how to calculate the number of address inputs needed for a RAM that holds a certain number of words.
- Explain how to calculate the total size of a ram in bits/bytes based on the word size and the number of address bits.
- Explain the purpose of a decoder within a RAM circuit.
- Explain the purpose of tri-state buffers on the output side of a RAM circuit.
Reflection
Note: Make sure to use the ‘print’ dialog to save this page as a PDF when you’re done.
I’m most confident in (list a few):
I’m least confident in (list a few):
Questions (please take the time to ask at least one, thinking of a question will help you cement what you’ve learned):