A simple computer has several main blocks, e.g.,
- Arithmetic logic unit (ALU): performs arithmetic operations on
numbers.
- Memory: where the program is stored.
- Multiplexers: select which piece of information to be passed
on.
- Decoders: to determine, based on the input, whether to read
from memory or input/output lines.
- Computer control unit: outputs the control signals that direct
the operation of the rest of the computer.
Even though we are not building a computer, this information gives you
some prospective on the different components that you will be building
and what they may be used for.
In this labs lab we will focus on the multiplexer that
chooses either a program address (PROG_ADDR), program counter (PC),
memory address register (MAR) or index register X (X). These
signals are used to determine the information required to enter the
arithmetic logic unit component of the computer.
- Design a multiplexer with MEM_SEL as the select
signal, PROG_ADDR, PC, MAR and X
as 8-bit input signals.
- Design a Verilog program to implement this multiplexer.