I T C E: Ece/cs 252
I T C E: Ece/cs 252
University of Wisconsin-Madison
ECE/CS 252
INTRO TO COMPUTER ENGINEERING
Educational Objectives
The numbers in brackets next to each objective refers to its Bloom’s Taxonomy level.
Week 02: Numeric Bases and Representation, Base Conversion, Signed Representation, Binary Arithmetic
Note: references to “any base” or “a given base” refer to bases between 2 and 16, inclusive; “signed format” refers to 2’s-
complement and signed magnitude; students are not expected to know 1’s-complement.
[2] Define the following terms: datatype, digit, bit, bitwidth, byte, base, radix, signed, unsigned, integer, sign,
magnitude, 2’s-complement, signed-magnitude, sign extension, overflow.
[2] Define “least-significant” and “most-significant” and identify these digit positions within a number.
Unsigned Representation:
[2] Describe the difference between “number” and “value”, and explain how bases are used to interpret
numbers to determine their value.
[1] Define binary, octal, decimal, and hexadecimal (hex) in terms of numeric representation.
[2] Describe why direct conversions between binary and octal or between binary and hexadecimal are much
simpler than conversions between binary and decimal or between hexadecimal and decimal.
[3] Determine the minimum and maximum value for a digit in any base.
[3] Determine the range of unsigned values representable in a stated base for a stated number of digits.
[3] Determine the number of digits required in a stated base in order to represent a particular unsigned value or
a particular quantity of unique values.
[3] Use zero-extension to express an unsigned value using more bits.
[3] Convert an unsigned number in one base to a number in another base. The greatest emphasis will be on
bases 2, 8, 10 and 16, but it could be any base.
Signed Binary Representation
[1] Recall that the signed formats can represent both positive values and negative values.
[2] Describe why 2’s-complement is generally used instead of signed magnitude to represent signed numbers in
computing.
[2] Describe the process for converting positive and negative numbers into a signed binary format.
[3] Convert a number in one (signed or unsigned) format to a number in a different (signed or unsigned) format,
and identify situations in which it this is not possible (e.g., converting a negative value to unsigned format).
[3] Perform negation of a signed binary number.
[3] Determine the range of values representable in a stated signed binary format for a given number of bits.
ECE/CS 252 Intro to Computer Engineering Page 3/9
[3] Determine the number of bits required in a stated signed format to represent a particular signed (positive or
negative) value or a particular quantity of unique values.
[3] Use sign-extension to express a signed number’s value using more bits.
[2] Use hexadecimal to represent any signed or unsigned binary number.
Binary Arithmetic:
[3] Perform addition of unsigned single- or multi-digit values in any specified base.
[3] Determine, for a particular arithmetic operation, if overflow occurs.
[3] Use 2’s-complement representation, negation, and binary arithmetic to perform binary subtraction.
Week 04: Logical Operations, Truth Tables, Logic Gates, Combinational Logic Circuits, Waveforms
[2] Define the following terms: Boolean, bitwise, truth table, logical operation, combinational logic.
Logical Operations:
[2] Contrast a Boolean logic operation with a binary arithmetic operation.
[1] List the three basic logic functions: AND, OR, and NOT.
[2] Identify and write the operator symbol for AND, OR, NOT, and XOR. Also identify and write logic equations
representing NAND, NOR, and XNOR.
[3] For each of the NOT, AND, OR, XOR, NAND, NOR, and XNOR logic functions, write out and identify its truth
table and perform the operation on two provided Boolean values.
[3] Perform the above functions as bitwise operations on two multi-bit binary values.
ECE/CS 252 Intro to Computer Engineering Page 4/9
[3] For a given Boolean logic equation, complete the truth table (and vice versa). When writing a function for a
truth table, it is sufficient to create an AND term for each truth table row where the output is 1 and OR the
terms together. Note: students will not be expected to further simplify these equations.
Transistors and Logic Gates:
[2] Describe (at a high level) the role of transistors in digital logic circuits, and their relationship to logic gates.
Logic Gates:
[2] Identify, write the Boolean logic expression, and draw the symbol for each of the following gate types: NOT,
AND, OR, XOR, NAND, NOR, and XNOR.
[2] Describe the role of the “bubble” when drawing a gate symbol.
[3] Given a gate symbol and input signals and/or values, determine the gate’s output.
Combinational Circuits:
[3] For a given Boolean logic function, draw the corresponding logic gate diagram that implements it.
[3] Given a combinational logic circuit and the values of its inputs, determine the value of its output(s).
[3] Identify, draw, and describe the behavior (including determining the output(s) based on provided input
value(s)) of each of the following circuits: decoder, multiplexer, full adder. Note: students are not expected
to memorize how these are built (their internal design), but students do need to know the block-level symbols
and how they work.
[3] Correctly connect multiple full adder blocks to form a ripple-carry adder of a stated bit-width.
[3] Connect the inputs of a ripple-carry adder structure to the necessary signals in order to perform a requested
addition operation.
Waveforms:
[3] For a given Boolean logic function, plot the output waveform when given the input(s) as waveforms.
Week 05: Sequential Logic, Flip-Flops, and State Machines, Registers, Registers with Enable, Memory
Note: The book refers first to “latches” and later to “flip-flops”. In the context of this class, we will only concern ourselves
with flip-flops. Students are not required to know the difference between latches and flip-flops for this class (which will be,
however, important in follow-on courses). In this class, students should think of registers and memories as being built out
of flip-flops. In actuality, memory design is much more complicated and may use latches or even other structures. But to
keep it simple, and because the behavior is “close enough”, in this class we will consider flip-flops to be the only form of
single-bit storage that students are expected to know.
[2] Define the following terms: sequential logic, clock, flip-flop, state, finite state machine, current state, next
state, state table, register, memory, address, data, address space, data word size, bitwidth, read, write.
Sequential Logic Concepts:
[2] Describe the key difference between a combinational logic circuit and a sequential logic circuit.
[2] Describe the role of the clock signal in a sequential circuit.
[2] Describe the characteristics of a clock signal.
Flip-Flops:
[2] Describe the behavior of a flip-flop.
[2] Describe (at a high level) the purpose of storage in a sequential circuit.
Finite State Machines:
[2] Identify, on a provided (well-drawn and correctly-annotated) finite state machine diagram: the states,
transitions between states, the starting state, and input and output signals.
[3] Determine the minimum number of flip-flops required to implement a state machine with a given number of
states.
ECE/CS 252 Intro to Computer Engineering Page 5/9
[3] Given a finite state machine diagram, the current state, and the current values of the inputs, determine the
output and the next state.
[3] Given a finite state machine diagram, complete the corresponding state table.
[3] Given a state table or a description of the behavior of a simple finite state machine, draw the corresponding
finite state machine diagram.
[3] Identify, on a circuit that implements a finite state machine, the state-holding elements, the next-state logic,
and the output logic. Also identify, in particular, which wires correspond to the current state and which to
the next state.
Register and Memory Structures:
[3] Complete a waveform describing the behavior or a register in terms of its data input value, its enable signal,
and the clock signal.
[2] Describe the behavior of a memory structure in terms of reading and writing information, and the roles of
the address and the data in these operations.
[2] Describe the roles of multiplexers, the decoder, and the write enable signal in memory structures.
[3] Calculate any one of the following given the values of the other two: total memory capacity (in bits), the
number of memory locations, and the data word size.
[3] Given an address and the contents of memory, determine the value output by the memory during a read
operation.
[3] Given the contents of memory before a write operation, determine the contents of memory after a write
operation that uses a given address and data input value.
Note: Students will be given a copy of the relevant part(s) of the LC-3 Programmer’s Reference in any assessment/exam
that tests the remaining objectives. In other words, students are not expected to memorize the LC-3 ISA, but are expected
to be familiar with the information on the reference and know how to use that information!
Students are also not expected to memorize the LC-3 architectural diagrams presented in the book or video.
Week 07: LC-3 Instruction Set Architecture and Processor, LC-3 Operate Instructions
[2] Define the following terms: data type, immediate operand, constant, register operand, addressing mode,
condition code.
LC-3 ISA and Operate instructions:
[2] Describe each of the three categories of instructions: Operate, Data movement, Control flow.
[2] Given an LC-3 instruction mnemonic (the short capital-letter name for the instruction), determine which
category of instructions it belongs to.
[3] For a given instruction, determine if it will update the LC-3 processor’s condition codes and what the
condition code values will be after its execution.
[3] Decode a binary Operate instruction and state what it does in register transfer representation.
[3] Given its register transfer representation, encode an instruction into binary executable by the LC-3.
[3] Based on the size and format (unsigned or 2’s-complement) of a constant field in an instruction, determine
the range of values representable within that field.
[3] Given an Operate instruction and the current contents of the register file, determine the type of operand(s)
it use(s) (register vs. immediate) and the operand value(s).
[3] Given an Operate instruction and the contents of the register file prior to its execution, determine the
contents of the register file and the values of the condition codes after its execution.
[5] Write a short program using operate instructions to meet the requirements of a provided specification.
LC-3 Processor:
[2] Label the regions of an LC-3 processor diagram from the videos with the corresponding parts of the von
Neumann processor model (control unit, processing unit, memory).
[2] Describe at a high level how bits of an instruction can control logic structures in the processor, such as
multiplexer selects, immediate or offset values, register or memory addresses, write enables, etc.
[3] Given an LC-3 instruction and a diagram of the LC-3 Processing Unit, determine the inputs/output(s) of the
ALU (mode signals, data inputs, output), register file (addresses, data, write enable), multiplexer select
signals, etc. Note: students are not expected to memorize the LC-3 hardware architecture, but are expected
to understand a provided diagram and use it as described above.