$29.99
DIGITAL LOGIC SYSTEMS
PROJECT 2: PRIORITY ENCODER
Specifications
A priority encoder with input length 2n
is defined as follows.
Input: y[2n − 1 : 0] ∈ {0, 1}
2
n
Output: x[n − 1 : 0] ∈ {0, 1}
n
, valid ∈ {0, 1}
Functionality:
valid = 1 ⇐⇒ y 6= 02
n
.
Let i denote the largest index i such that y[i] = 1. If valid = 1, then
~x should satisfy h~xi = i.
Formally:
~y 6= 02
n
=⇒ y
2
n − 1 : h~xi
= 02
n−1−h~xi
◦ 1
Your Assignment
(1) Complete the circuit penc(4) from the template template penc.circ
to implement a priority encoder with an input length of 16.
(2) You may not use the priority encoder provided by Logisim.
(3) Your design must be recursive. (Hint: apply divide-and-conquer and
use the valid output as a selector to choose which of the sub-encoders
should be considered.)
Submission Instructions
(1) Submit a single Logisim (“.circ”) file. No prints/screenshots. This
file must be named ID1 ID2 penc.circ with ID1 and ID2 replaced
by each partner’s 9 digit ID number.
(2) Use the provided template penc.circ file as a template, and implement your designs in the circuit named penc. Do not move or modify
the input/output ports, the “blackbox” layout, and the names of the
circuits!
(3) Only one of the students in a pair needs to upload the submission.
Do not upload the same work twice!
(4) You may not use gates with fan-in larger than 2.
1