eecs270.org

Project 1: Selector

Component Points
Autograder 50
Lab Signoff 25
   
Total 75

Due Date: January 20, 2026 at 11:59 PM

Before Starting

To ensure you have the necessary tools to complete this project, please make sure you have completed the tutorial project.

Additional helpful resources:

Starter Files

Design Specification

The goal of this project is to design a Selector circuit that chooses between two sets of 7-bit inputs. In this project, you will need to use structural Verilog to design the modules.

Project 1 Module Interface

Logic Modules: Selector and SEL1

The Selector module contains the 7-bit selection logic.

Selector interface:

Net Size Direction Description
A 7 bits Input First 7-bit input
B 7 bits Input Second 7-bit input
sel 1 bit Input Select signal
F 7 bits Output Output of the selector

When sel is 0, the output F should equal input A; when sel is 1, the output F should equal input B.

The SEL1 module is a 1-bit 2-to-1 selector circuit.

SEL1 interface:

Net Size Direction Description
a 1 bit Input First 1-bit input
b 1 bit Input Second 1-bit input
sel 1 bit Input Select signal
f 1 bit Output Output of the selector

When sel is 0, the output f should equal input a; when sel is 1, the output f should equal input b.

Implement Selector by instantiating 7 copies of SEL1 using implicit instantiation. You must use structural Verilog to write the logic for both the Selector and SEL1 modules. Refer to Project 0 for structural Verilog examples.

Top-level: Project1 Module

This module’s interface is given in Project1.v. This module interfaces the Selector module with the FPGA pins.

Top-level Project1 interface:

Net Direction Physical Description Correspondence to Selector
SW[6:0] input rightmost switches input B
SW[16:10] input leftmost switches input A
KEY[3] input leftmost button select signal
LEDR[6:0] output red LEDs output F
HEX0[6:0] output 7-segment display output F

The Selector output F should be simultaneously displayed on both LEDR[6:0] and HEX0. When KEY[3] is pressed, F should select A. When KEY[3] is not pressed, F should select B.

Testbench1 Module

You will need to write a testbench to verify the functionality of your Selector module. A starter framework is provided in TestBench1.v. You will need to add test cases to adequately test your design. Your testbench will also be submitted to the Autograder to ensure that your tests have good coverage of the design specification.

In total, the selector module has 15 inputs (7 bits for A, 7 bits for B, and 1 bit for sel), so there are 2^15 = 32768 possible input combinations. It is not feasible to test all possible combinations, so you will need to think carefully about how to select a smaller set of test cases that still provides good coverage of the design specification.

Design Notes and Hints

7-Segment Display Segment Numbering

Deliverables

File Name Task Testing Process Grading Process
Selector.v Implement 7-bit Selector module ModelSim Autograder
SEL1.v Implement 1-bit SEL1 module ModelSim Autograder
TestBench1.v Write test cases for Selector module ModelSim Autograder
Project1.v Connect Selector module to FPGA inputs LabsLand Signoff

To ensure that your design works with the Autograder, do not modify file names, module names, or interfaces for any of the starter files. All files must be submitted to the Autograder for grading and feedback.

The signoff will be conducted in your assigned lab sections the week after the project deadline.