priority encoder

medium

This question focuses on designing a modular version of a priority encoder

1.

Build a block with 4 inputs, 2 outputs, and an additional Valid output that indicates whether the input is valid.

2.

Using the block you built in Part A (you may use additional components if needed), design a 16-to-4 priority encoder.

3.

Using the block from Part A, first design an 8-to-3 priority encoder, and then extend the design to implement a 16-to-4 priority encoder. The design should be modular, allowing it to be efficiently scaled to larger input sizes.

4.

Do you know of a better way to implement this?