Laboratory Exercise 1

Similar documents
ECE241 - Digital Systems. University of Toronto. Lab #2 - Fall Introduction Computer-Aided Design Software, the DE2 Board and Simple Logic

Laboratory Exercise 7

ECE241 - Digital Systems

Laboratory Exercise 1

MPLEMENTATION. Part 1: Implementation of the TOC on the DE2 Board using Verilog - Performed in Lab #1

Introduction to VHDL Design on Quartus II and DE2 Board

SignalTap II with Verilog Designs. 1 Introduction. For Quartus II 13.1

Laboratory Exercise 3

University of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA

Laboratory Exercise 8

Laboratory Exercise 9

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:

Lab 2 EECE473 Computer Organization & Architecture University of Maine

Tutorial on Quartus II Introduction Using Verilog Code

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 10: Implementing Binary Adders. Name: Date:

Engineering 303 Digital Logic Design Fall 2018

Lab 3: Standard Combinational Components

Tutorial on Quartus II Introduction Using Schematic Designs

ECE 3610 Microprocessing Systems Lab #1 Verilog Design of the TOC Using Quartus II

Laboratory Exercise 2

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 7: VHDL and DE2 Board. Name: Date:

2 nd Year Laboratory. Experiment: FPGA Design with Verilog. Department of Electrical & Electronic Engineering. Imperial College London.

NIOS CPU Based Embedded Computer System on Programmable Chip

PRELAB! Read the entire lab, and complete the prelab questions (Q1- Q3) on the answer sheet before coming to the laboratory.

CPEN 230L: Introduction to Digital Logic Laboratory Lab 7: Multiplexers, Decoders, and Seven Segment Displays

NIOS CPU Based Embedded Computer System on Programmable Chip

Laboratory 4 Design a Muti-bit Counter

LAB 4: Seven Seg, Full Adder, Ripple Adder, Heirarchical Design

ENEE245 Digital Circuits and Systems Lab Manual

Building hierarchical designs in Verilog

Quartus II Introduction Using Verilog Designs. 1 Introduction. For Quartus II 12.0

ENEE245 Digital Circuits and Systems Lab Manual

Quartus II Introduction Using Verilog Design

Using Library Modules in Verilog Designs

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 09 MULTIPLEXERS

1 Introduction 2. 2 Background 3. 3 Getting Started 4. 4 Starting a New Project 6. 5 Design Entry Using VHDL Code 13

Using Library Modules in Verilog Designs. 1 Introduction. For Quartus II 13.0

Digital Systems Laboratory

Quartus II Introduction Using Schematic Design

Advanced Electronics Lab.

SFWR ENG 2DA4 Lab 1. Announcements: Marking Scheme: Lab Safety Manual:

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2)

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8

ECE 152A LABORATORY 2

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

NIOS CPU Based Embedded Computer System on Programmable Chip

EECS 270 Midterm Exam

Laboratory Exercise 5

Experiment 18 Full Adder and Parallel Binary Adder

CSC / EE Digital Systems Design. Summer Sample Project Proposal 01

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE

PRELAB! Read the entire lab, and complete the prelab questions (Q1-Q3) on the answer sheet before coming to the laboratory.

CSCB58 - Lab 0. Intro to The Lab & The DE2 Board. Prelab /4 Part I (in-lab) /1 Part II (in-lab) /1

CSE370 TUTORIAL 3 - INTRODUCTION TO USING VERILOG IN ACTIVE-HDL

Using the SDRAM on Altera s DE1 Board with Verilog Designs. 1 Introduction. For Quartus II 13.0

Laboratory Exercise 2

FPGA Introductory Tutorial: Part 1

Laboratory Exercise 6

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Combinational Logic Circuits

Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus Prime 15.1

Quick Tutorial for Quartus II & ModelSim Altera

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Introduction to the Altera SOPC Builder Using Verilog Design

The development board used in this class is ALTERA s DE The board provides the following hardware:

Experiment 8 Introduction to VHDL

Week 4 Tutorial: Verilog Primer Part 2. By Steve Engels

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA

EE 231 Fall EE 231 Lab 2

Laboratory Exercise 6

QUARTUS II Altera Corporation

Lab 6: Integrated the Decoder with Muti-bit Counter and Programming a FPGA

Physics 536 Spring Illustrating the FPGA design process using Quartus II design software and the Cyclone II FPGA Starter Board.

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

IMPLEMENTING COUNTERS

Programmable Logic Design Techniques I

INTRODUCTION TO DE2 SYSTEM INTERFACES

Chapter 2: Hardware Design Flow Using Verilog in Quartus II

ECE2029: Introduction to Digital Circuit Design Lab 3 Implementing a 4-bit Four Function ALU

Chapter 6 Combinational-Circuit Building Blocks

Standard Logic Chips and National Instruments ELVIS Breadboarding for Combinational Logic Circuits

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

Digital Design with FPGAs. By Neeraj Kulkarni

EXPERIMENT 1. INTRODUCTION TO ALTERA

Boolean Logic CS.352.F12

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

ECE-6170 Embedded Systems Laboratory Exercise 3

Experiment VERI: FPGA Design with Verilog (Part 1)

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

Introduction to Verilog. Mitch Trope EECS 240 Spring 2004

Lab #12: ArithmeticLogic Unit

PART 1. Simplification Using Boolean Algebra

Workshop on Digital Circuit Design in FPGA

Software Engineering 2DA4. Slides 2: Introduction to Logic Circuits

EET 1131 Lab #7 Arithmetic Circuits

Quartus II Tutorial. September 10, 2014 Quartus II Version 14.0

CET4805 Component and Subsystem Design II. EXPERIMENT # 5: Adders. Name: Date:

Quartus II Version 14.0 Tutorial Created September 10, 2014; Last Updated January 9, 2017

Transcription:

Laboratory Exercise 1 Switches, Lights, and Multiplexers The purpose of this exercise is to learn how to connect simple input and output devices to an FPGA chip and implement a circuit that uses these devices. We will use the switches SW17 0 on the DE2-115 board as inputs to the circuit. We will use light emitting diodes (LEDs) and 7-segment displays as output devices. Part I SW The DE2-115 board provides 18 toggle switches, called 17 0, that can be used as inputs to a circuit, and 18 red lights, called LEDR17 0, that can be used to display output values. Figure 1 shows a simple Verilog module that uses these switches and shows their states on the LEDs. Since there are 18 switches and lights it is convenient to represent them as vectors in the Verilog code, as shown. We have used a single assignment statement for all 18 LEDR outputs, which is equivalent to the individual assignments assign LEDR[17] = SW[17]; assign LEDR[16] = SW[16];... assign LEDR[0] = SW[0]; The DE2-115 board has hardwired connections between its FPGA chip and the switches and lights. To use SW17 0 and LEDR17 0 it is necessary to include in your Quartus II project the correct pin assignments, which are given in the DE2-115 User Manual. For example, the manual specifies that SW0 is connected to the FPGA pin AB28 and LEDR 0 is connected to pin G19. A good way to make the required pin assignments is to import into the Quartus II software the file called DE2-115_ pin_assignments.csv, which is provided on the DE2-115 System CD and in the University Program section of Altera s web site. The procedure for making pin assignments is described in the tutorial Quartus II Introduction using Verilog Design, which is also available from Altera. It is important to realize that the pin assignments in the DE2-115 pin assignments.csv file are useful only if the pin names given in the file are exactly the same as the port names used in your Verilog module. The file uses the names SW[0]... SW[17] and LEDR[0]... LEDR[17] for the switches and lights, which is the reason we used these names in Figure 1. 1

// Simple module that connects the SW switches to the LEDR lights module part1 (SW, LEDR); input [17:0] SW; // toggle switches output [17:0] LEDR; // red LEDs assign LEDR = SW; endmodule Figure 1.Verilog code that uses the DE2-115 board switches and lights. Perform the following steps to implement a circuit corresponding to the code in Figure 1 on the DE2-115 board. 1. Create a new Quartus II project for your circuit. Select Cyclone IV EP4CE115F29C8 as the target chip, which is the FPGA chip on the Altera DE2-115 board. 2. Create a Verilog module for the code in Figure 1 and include it in your project. 3. Include in your project the required pin assignments for the DE2 board, as discussed above. Compile the project. 4. Download the compiled circuit into the FPGA chip. Test the functionality of the circuit by toggling the switches and observing the LEDs. Part II Figure 2a shows a sum-of-products circuit that implements a 2-to-1 multiplexer with a select input s. If s = 0 the multiplexer s output m is equal to the input x, and if s = 1 the output is equal to y. Part b of the figure gives a truth table for this multiplexer, and part c shows its circuit symbol. Figure 2.A 2-to-1 multiplexer. 2

The multiplexer can be described by the following Verilog statement: assign m = ( s & x) (s & y); You are to write a Verilog module that includes eight assignment statements like the one shown above to describe the circuit given in Figure 3a. This circuit has two eight-bit inputs, X and Y, and produces the eight-bit output M. If s = 0 then M = X, while if s = 1 then M = Y. We refer to this circuit as an eight-bit wide 2-to-1 multiplexer. It has the circuit symbol shown in Figure 3b, in which X, Y, and M are depicted as eight-bit wires. Perform the steps shown below. Figure 3.An eight-bit wide 2-to-1 multiplexer. 1. Create a new Quartus II project for your circuit. 2. Include your Verilog file for the eight-bit wide 2-to-1 multiplexer in your project. Use switch SW 17 on the DE2-115 board as the s input switches SW 7 0 as the X input and SW15 8 as the Y input. Connect the SW switches to the red lights LEDR and connect the output M to LEDG. the green lights 7 0 3. Include in your project the required pin assignments for the DE2-115 board. As discussed in Part I, these assignments ensure that the input ports of your Verilog code will use the pins on the Cyclone IV FPGA that are connected to the SW switches, and the output ports of your Verilog code will use the FPGA pins connected to the LEDR and LEDG lights. 4. Compile the project. 5. Download the compiled circuit into the FPGA chip. Test the functionality of the eight-bit wide 2-to-1 multiplexer by toggling the switches and observing the LEDs. 3

Part III In Figure 2 we showed a 2-to-1 multiplexer that selects between the two inputs x and y. For this part consider a circuit in which the output m has to be selected from five inputs u, v, w, x, and y. Part a of Figure 4 shows how we can build the required 5-to-1 multiplexer by using s s s and implements the truth four 2-to-1 multiplexers. The circuit uses a 3-bit select input 2 1 0 table shown in Figure 4b. A circuit symbol for this multiplexer is given in part c of the figure. Recall from Figure 3 that an eight-bit wide 2-to-1 multiplexer can be built by using eight instances of a 2-to-1 multiplexer. Figure 5 applies this concept to define a three-bit wide 5-to-1 multiplexer. It contains three instances of the circuit in Figure 4a. Figure 4.A 5-to-1 multiplexer. 4

Figure 5.A three-bit wide 5-to-1 multiplexer. Perform the following steps to implement the three-bit wide 5-to-1 multiplexer. 1. Create a new Quartus II project for your circuit. 2. Create a Verilog module for the three-bit wide 5-to-1 multiplexer. Connect its select inputs to switches SW17 15, and use the remaining 15 switches SW14 0 to provide the five 3-bit inputs U to Y. Connect the SW switches to the red lights LEDR and connect the output M LEDG. to the green lights 2 0 3. Include in your project the required pin assignments for the DE2-115 board. Compile the project. 4. Download the compiled circuit into the FPGA chip. Test the functionality of the three-bit wide 5-to-1 multiplexer by toggling the switches and observing the LEDs. Ensure that each of the inputs U to Y can be properly selected as the output M. Part IV Figure 6 shows a 7-segment decoder module that has the three-bit input c2c1c 0. This decoder produces seven outputs that are used to display a character on a 7-segment display. c c c. To keep the Table 1 lists the characters that should be displayed for each valuation of 2 1 0 design simple, only four characters are included in the table (plus the blank character, which is selected for codes 100 111).The seven segments in the display are identified by the indices 0 to 6 shown in the figure. 5

Each segment is illuminated by driving it to the logic value 0. You are to write a Verilog module that implements logic functions that represent circuits needed to activate each of the seven segments. Use only simple Verilog assign statements in your code to specify each logic function using a Boolean expression. Figure 6.A 7-segment decoder. Perform the following steps: 1. Create a new Quartus II project for your circuit. c c c inputs to switches 2. Create a Verilog module for the 7-segment decoder. Connect the 2 1 0, and connect the outputs of the decoder to the HEX0 display on the DE2-115 SW 2 0 board. 3. The segments in this display are called 0 Figure 6. You should declare the 7-bit port output [0:6] HEX0_D; HEX 0, HEX 01,..., HEX 06, corresponding to in your Verilog code so that the names of these outputs match the corresponding names in the DE2-115 User Manual and the DE2-115 pin assignments.csv file. 4. After making the required DE2-115 board pin assignments, compile the project. 6

5. Download the compiled circuit into the FPGA chip. Test the functionality of the circuit by toggling the SW2 0 switches and observing the 7-segment display. Part V Consider the circuit shown in Figure 7. It uses a three-bit wide 5-to-1 multiplexer to enable the selection of five characters that are displayed on a 7-segment display. Using the 7-segment decoder from Part IV this circuit can display any of the characters H, E, L, O, and SW blank. The character codes are set according to Table 1 by using the switches 14 0, and a SW. specific character is selected for display by setting the switches 17 15 An outline of the Verilog code that represents this circuit is provided in Figure 8. Note that we have used the circuits from Parts III and IV as subcircuits in this code. You are to extend the code in Figure 8 so that it uses five 7-segment displays rather than just one. You will need to use five instances of each of the sub circuits. The purpose of your circuit is to display any word on the five displays that is composed of the characters in Table 1, and be able to rotate this word in a circular fashion across the displays when the switches SW17 15 are toggled. As an example, if the displayed word is HELLO, then your circuit should produce the output patterns illustrated in Table 2. Figure 7.A circuit that can select and display one of five characters. 7

module part5 (SW, HEX0); input [17:0] SW; // toggle switches output [0:6] HEX0_D; // 7-seg displays wire [2:0] M; mux 3bit 5to1 M0 (SW[17:15], SW[14:12], SW[11:9], SW[8:6], SW[5:3], SW[2:0], M); char 7seg H0 (M, HEX0_D); endmodule // implements a 3-bit wide 5-to-1 multiplexer module mux 3bit 5to1 (S, U, V, W, X, Y, M); input [2:0] S, U, V, W, X, Y; output [2:0] M;... code not shown endmodule // implements a 7-segment decoder for H, E, L, O, and blank module char 7seg (C, Display); input [2:0] C; // input code output [0:6] Display; // output 7-seg code... code not shown endmodule Figure 8.Verilog code for the circuit in Figure 7. Table 2.Rotating the word HELLO on five displays. 8

Perform the following steps. 1. Create a new Quartus II project for your circuit. 2. Include your Verilog module in the Quartus II project. Connect the switches SW17 15 to the select inputs of each of the five instances of the three-bit wide 5-to-1 multiplexers. Also SW connect 14 0 to each instance of the multiplexers as required to produce the patterns of characters shown in Table 2. Connect the outputs of the five multiplexers to the 7-segment displays HEX4_D, HEX3_D, HEX2_D, HEX1_D, and HEX0_D. 3. Include the required pin assignments for the DE2-115 board for all switches, LEDs, and 7-segment displays. Compile the project. 4. Download the compiled circuit into the FPGA chip. Test the functionality of the circuit by setting the proper character codes on the switches SW14 0 and then toggling SW17 15 to observe the rotation of the characters. Part VI Extend your design from Part V so that is uses all eight 7-segment displays on the DE2-115 board. Your circuit should be able to display words with five (or fewer) characters on the eight displays, and rotate the displayed word when the switches SW17 15 are toggled. If the displayed word is HELLO, then your circuit should produce the patterns shown in Table 3. Table 3.Rotating the word HELLO on eight displays. Perform the following steps: 1. Create a new Quartus II project for your circuit and select as the target chip the Cyclone IV EP4CE115F29C8. 2. Include your Verilog module in the Quartus II project. Connect the switches SW17 15 to the select inputs of each instance of the multiplexers in your circuit. 9

Also connect SW14 0 to each instance of the multiplexers as required to produce the patterns of characters shown in Table 3. (Hint: for some inputs of the multiplexers you will want to select the blank character.) Connect the outputs of your multiplexers to the 7-segment displays HEX7_D,..., HEX0_D. 3. Include the required pin assignments for the DE2-115 board for all switches, LEDs, and 7-segment displays. Compile the project. 4. Download the compiled circuit into the FPGA chip. Test the functionality of the circuit by setting the proper character codes on the switches SW14 0 and then toggling SW17 15 to observe the rotation of the characters. Copyright c 2010 Altera Corporation. 10