ECE2029: Introduction to Digital Circuit Design Lab 4 Building a Sequential Logic Circuit A Four Digit 7-Segment Display Driver

Size: px
Start display at page:

Download "ECE2029: Introduction to Digital Circuit Design Lab 4 Building a Sequential Logic Circuit A Four Digit 7-Segment Display Driver"

Transcription

1 ECE2029: Introduction to Digital Circuit Design Lab 4 Building a Sequential Logic Circuit A Four Digit 7-Segment Display Driver Objective: In this lab you will implement a driver circuit for the 4-digit 7-segment display on the Basys 3 boards. The individual segments (a-g) of the 4 digits share a common cathode which means that the segment values are actually sent to all 4 digits at once. It is only through activating the anodes AN0 AN3 individually that you can control what is displayed on each digit. To display a different digit on each of the 4 different displays will require you to implement a sequential circuit which will rapidly cycle through inputs of a 4 to 1 MUX and the anodes AN0-AN3 to activate one digit at a time yet the refresh rate will be fast enough that the user will not notice any flicker. You will again implement this lab completely in Verilog. However, you will need to use some new sequential Verilog constructs. Pre-lab Assignment: This pre-lab assignment is to be completed before your lab session and must be signed-off by the TA during your lab session. Pre-labs help you to become oriented to the problem before you enter lab, help complete your design in advance and prevent wasting time in lab. 1) READ the whole lab assignment! 2) READ Section 8.1 of the Basys 3 Reference Manual. 3) This lab requires a 4-to-1 (by 4-bit) multiplexer. Write out the truth table for this multiplexer. Using the information from Lab 3 and class notes write a Verilog module using a conditional assignment statement to implement a 4 to 1 (by 4 bit) multiplexer. Your module should have four 4-bit inputs called D0, D1, D2 and D3 plus the 2-bit selector input S. It should also have a single 4-bit output called Out. 4) This lab also requires a 2 to 4 decoder but because we are implementing the active low anode signals AN0 AN3 the decoder outputs will need to be inverted relative to a generic decoder, e.g. EN=1 and A 1 A 0 = 00 then Y = Write out the full truth table for this anode decoder with Enable. Now write a Verilog module using conditional statements with 3 single bit inputs En, A0, A1 and 4-bit output Y. Lab Assignment: The first task in this lab is to modify the single digit hex to 7-segment decoder from Lab 3 to implement the decimal point and the minus sign. Later we'll also need to separate the anode control from the segment settings because we will want a separate, sequential anode driver circuit (Figure 1).

2 decpt 0 decpt 1 decpt 2 decpt 3 sgn 0 sgn 1 sgn 2 sgn 3 4:1 Mux (1 bit) 4:1 Mux (1 bit) sgn decpt W X Y Z HEX DP 100 MHz Combinational Design: 1. Create a new project in Vivado and add your hex2seg.v module from Lab 3 to it. Edit the module declaration to add two new single bit inputs called sgn and decpt, and a new single bit output called DP. (Be careful, do not use sign or signed as they are treated as reserved words by Xilinx). REMEMBER TO COMPLETE COMMENT BLOCK WITH NAME AND MODULE DESCRIPTION FOR EACH VERILOG MODULE IN YOUR PROJECT!!! 2. Now modify the body of the module to implement the following logic. Whenever the sgn input is 1 the output segments segs should display only a minus sign (segment g only is active) regardless of what was applied on D or decpt. If decpt = 1 then you should display whatever is on D plus the decimal point DP. Remember that DP like the other segments is active low. You must apply logic 0 to light it. For now, leave anodes = Save this new and improved version of hex2seg.v. 3. Add a constraint file to your project with SW3-SW0 connected to D and decpt and sgn connected to BTNL and BTNR. Outputs segs and DP should be connected to the 7-segment display cathodes CA thru CG and DP and anodes connected to AN0 to AN3. Remember segment a is segs[6] and segment g is segs[0]. 4. Now generate the bit file, download your design and test by setting the value to be displayed on SW3-SW0. Buttons BTNL and BTNR should appropriately light the decimal point and minus sign. Save your project. Show the TA for sign-off.

3 6. In order to make the hex2seg decoder more general, we need to remove the output anodes (which hard codes the values for AN0-AN3) from hex2seg.v. Modify your module to remove this output and its assignment statement. Save the module. 7. Add a new Verilog module to your project called mux4to1.v and set it as Top Module. Implement the 4-to-1 (by 4 bit) multiplexer that you designed for pre-lab. Your module should have four 4-bit inputs called D0, D1, D2 and D3 plus the 2-bit selector input S. It should also have a single 4-bit output called Out. You may want to refer back to the class notes on Verilog and Lab 3 for examples of conditional statements. 8. Add a Verilog test bench for your MUX to your project under Sources for Simulation and set it as Top Module. Within the test bench assign D0 D3 to fixed values like 0001, 0010, 0100 and Assert all possible combinations the 2-bit selector input S. Run the Behavioral Simulation of your mux. Save your project. Be sure to include a screen capture of your mux test bench results in your report. 9. Add a new Verilog module to your project called decodeanode.v and set it as Top Module. Implement the active low 2-to-4 decoder that your designed for pre-lab. Your module should have 1 single bit inputs En, a two-bit input A, and a 4-bit output Y. 10. Add a Verilog test bench for your anode decoder to your project under Sources for Simulation and set it as Top Module. Assert all possible input combinations and run the Behavioral Simulation of your decoder. Save your project. Be sure to include a screen capture of your decoder test bench results in your report. Sequential Design: As we've discussed in class, a sequential circuit deps on a clock signal to sychronize updating the state of sequential elements like flip flops. The Basys 3 board, itself being a large sequential circuit, has a clock but its the clock speed (100 MHz) is too high for our design. We will need to divide the system clock down to generate a clock better suited for the 7-segment diplay driver. 11. Download the module clkdiv10k.v from the class website and add it to your project. This module divides the input clock frequency by 10,000 (i.e. If the input clock is 1000MHZ the output of the clock divider is a 10KHz clock signal). 12. Conceptually, we want to quickly cycle through the 4 digits activating each one's segments and anode in turn. You have a decoder that given the binary code of the digits 0-3 will generate the proper anode signals. What we need now is a circuit that will generate a repeating sequence of digit codes 00, 01, 10, 11, 00, 01, 10, 11,... which can be applied as the selector input to the digits multiplexer and as the input to the anode decoder. A class of circuit that generates a repeating binary sequence of values on its output is called a "Binary Counter". We need a 2-bit binary counter to generate the sequence of digit codes, Add a new Verilog module to your project called bin_cnt2.v with 2 single bit inputs clk and Reset and a 2-bit output called Q. Copy the code below into the module and save. 13. Add a Verilog test fixture to your project and associate it with bin_cnt2.v. Simulate 12 clock periods by alternately setting clk = 0 and clk = 1 for 1000 ns. Reset

4 should equal 1 for at least 4 rising clock edges then be set to 0 for 8 clock periods. Save your project. Run the simulation of your 2-bit counter. When does your counter reset? As soon as Reset is applied or with the next rising edge? Be sure to include a screen capture of your counter test bench results and anwer the Reset question in your report. module bin_cnt2( input clk, input Reset, output [1:0] Q ); reg [1:0] cnt; // This module implements a 2-bit binary counter with a // synchronous reset module (posedge clk) if (Reset == 1) cnt = 2'b00; else if (cnt == 2'b00) cnt = 2'b01; else if (cnt == 2'b01) cnt = 2'b10; else if (cnt == 2'b10) cnt = 2'b11; else if (cnt == 2'b11) cnt = 2'b00; assign Q = cnt; 14. You are now ready to test the anode driver part of the circuit. To do this you will use a single input digit and display its value on the 4 displays sequentially. However, you will need a slow clock to actually see the displays sequence. Add a new Verilog module under Design to your project called anodedriver.v. It should have two single bit inputs CLK and Reset and 7-bit output segs, single bit output DP and 4-bit output anodes. Set it as Top Module and complete the following instantiations to implement the anode driver test circuit.

5 wire clk_10k, clk_1hz; wire [1:0] Q; // Divide the 100MHz system clock to 10KHz clkdiv10k U1(CLK,clk_10K); // Divide the 10KHz clock to 1Hz clkdiv10k U2(clk_10K,clk_1Hz); // Generate the 7-seg for hex A (i.e. 4'b1010) // without sign or decimal hex2seg U3(4'b1010,0,0,segs,DP); // --- Actual anode driving part --- // 2-bit binary counter driving the 2-to-4 anode decoder bin_cnt2 U4(clk_1Hz,Reset,Q); // For now set En = 1, decodeanode U5(1,Q,anodes) 15. Remove (but don't delete) the old constraint file for hex2seg and add a constrain file for anodedriver that connects CLK to the 100 MHz system clock (W5), Reset to BTNR and anodes to AN3-AN0 and segs and DP to CA thru CG and DP. When you press and release Reset the your board should display the digit "A" sequentially on each of the 4 seven-segment displays from right to left. In the Basys 3 Manual it says that AN3 controls the left-most digit and AN0 the right-most. However, on my board AN0 controlled the left-most digit and AN3 the right-most. If you find the anodes are reversed on your board you can "correct" it by associating anodes[3] with AN0, anodes[2] with AN1, etc., in your constraints file. Generate a bit file and demonstrate your anode driver to the TA for sign-off. 16. Save you project. Add a new Verilog module under Design called fourdigitdisplay.v and make it the Top Module. This module will implement Figure 1. The module will need four 4-bit data inputs, W, X, Y, and Z, and 8 single bit inputs decpt3 - decpt0 and sgn3 - sgn0 and a single bit clock input, CLK. Alternatively, you could make the decimal points and signs each 4-bit buses. The module should have 7-bit output segs, single bit output DP and 4-bit output anodes. Using anodedriver.v as a guide implement the instatiations necessary to implement the input multiplexers for the data inputs as well as the sign and decimal point inputs. Save your project again! W X Y Four segs Z Digit DP Display decpts anodes sgns CLK Figure 2: Block diagram of four digit 7-segment display circuit.

6 // Implement other "wire" declarations that you need wire clk_10khz;... // Instantiate a clkdiv10k module to implement the clock // divider from the 100MHz system clock input on CLK to a // 10KHz clock... // Implement input multiplexing necessary to generate inputs // to hex2seg, namely D, decpt, sgn from module inputs // W,X,Y,Z and all the sign and decimal points (You will need // a 4 to 1, by 1-bit MUX for the signs and another for the // decimal points). BE CAREFUL about the order of inputs in // mapping W,X,Y and Z D3 to D0. The 2-bit selector input for // all these MUXes is the output Q from bin_cnt2. // The module's outputs segs and DP should be the outputs of // hex2seg just as they were in anodedriver... // --- Actual anode driving part --- // 2-bit binary counter driving the 2-to-4 anode decoder // Assign Reset = 0 bin_cnt2 U4(clk_10KHz,0,Q); // Set En = 1 anodedecode U5(1,Q,anodes) 17. Ideally, we would like to add a constraint file directly to our fourdigitdisplay but because our board does not have enough buttons to implement all 8 sign and decimal points input we need to add a simple wrapper module around fourdigitdisplay that will allow us to hardcode some of the inputs to 0. Add a new Verilog source to you project called displaytester.v and set it as the Top Module. Your module should have two 4-bit inputs X and Z and four single bit inputs sgnw, sgny, dpx and dpz plus 7 bit output segs, single bit output DP and 4 bit output anodes. Instantiate your fourdigitdisplay module within displaytester setting inputs W and Y plus the signs for digits 0 and 2 as well as the decimal points for digits 1 and 3 all to Remove (but don't delete) the old constraint file. Add a.xdc file for displaytester that connects 4-bit inputs X and Z to SW7-SW4 and SW3-SW0 respectively. The decimal points for those digits, dpx and dpz, should be connected to BTNL and BTNR respectively. Sign inputs for digits 3 and 1 (i.e. sgnw and sgny) should be connected to BTNU and BTND respectively. The output segs, DP and anodes should be connected as in the anodedriver.xdc file. Save your project.

7 19. Generate a bit file and down load your 4 digit display driver test circuit. The switches should control the values displayed on digits 2 and 0 and decimal points for those digits should be lit anytime BTNL and BTNR are pressed. When BTNU or BTND is pressed, a minus sign should appear on digit 3 or digit 1 respectively. Show your circuit to the TA for sign-off.

8 ECE2029 Lab 4 Sign-Off Sheet Make sure lab instructor/ta initials and dates each part. Attach this sheet and the Report Grading Rubric to your team's lab report! Both partners MUST be present at sign-off! Your Name: ECE BOX #: Lab Partner: Date Performed: Demonstrated correctly: Pre-lab Complete (1) (2) (10 pts) Hex to 7-seg Decoder with sign and decimal (15 pts) Anode Driver circuit (20 pts) Full 4 digit Hex Display with signs and decimals (20 pts) TA Questions: (1) (2) (5 pts ) Report (one per team) (30 pts) (including Verilog source code, test benches, constraint files& ISim screen shots)

9 Lab 4 Four Digit 7-Segment Display Driver Review Item Comments Points (max) 1) Prelabs from each student complete (5) and thoughtful 2) Introduction effectively presents the (5) objectives and purpose of the lab. Methodology gives enough details to allow for replication of procedure. 3) Discussion opens with an effective (5) statement on the goals of the lab, backs up statement with reference to appropriate findings, provides sufficient and logical explanation for the statement, addresses other issues pertinent to lab. 4) Results opens with effective statement of (5) overall findings, presents visuals clearly and accurately, presents findings clearly and with sufficient support. You MUST include screen shots of the test bench results for each part of the lab. Conclusion convincingly describes what has been learned in the lab. 5) Other: (10) References are included. Tables and figures are formatted. All Verilog code is properly commented. Grammar and spelling are correct Report is written clearly and to the point. Overall, the team... has successfully demonstrated what the lab was designed to teach demonstrates clear and thoughtful scientific inquiry has accurately measured and analyzed data for lab findings Total: (30)

ECE2029: Introduction to Digital Circuit Design Lab 5 Using Sequential Logic Circuits A Digital Stop Watch

ECE2029: Introduction to Digital Circuit Design Lab 5 Using Sequential Logic Circuits A Digital Stop Watch ECE2029: Introduction to Digital Circuit Design Lab 5 Using Sequential Logic Circuits A Digital Stop Watch Objective: In this lab you will create a digital stop watch capable of counting and displaying

More information

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

ECE2029: Introduction to Digital Circuit Design Lab 3 Implementing a 4-bit Four Function ALU ECE2029: Introduction to Digital Circuit Design Lab 3 Implementing a 4-bit Four Function ALU Objective: Inside a computer's central processing unit (CPU) there is a sub-block called the arithmetic logic

More information

ECE2029: Introduction to Digital Circuit Design. Lab 2 Implementing Combinational Functional Blocks

ECE2029: Introduction to Digital Circuit Design. Lab 2 Implementing Combinational Functional Blocks ECE2029: Introduction to Digital Circuit Design Lab 2 Implementing Combinational Functional Blocks Objective: In this lab exercise you will simulate, test, and download various digital circuits which implement

More information

1. Synopsis: 2. Merging Algorithm:

1. Synopsis: 2. Merging Algorithm: Microprogram Control Unit Design: Merging Two Arrays 1. Synopsis: The purpose of this lab is to implement a state machine by using a microprogram control unit design. Microprograming allows flexibility

More information

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr.

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr. EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board (FPGA Interfacing) Teacher: Dr. Liang Liu v.1.0.0 1 Abstract This document describes the basic behavior

More information

An easy to read reference is:

An easy to read reference is: 1. Synopsis: Timing Analysis and Timing Constraints The objective of this lab is to make you familiar with two critical reports produced by the Xilinx ISE during your design synthesis and implementation.

More information

Introduction. Overview. Top-level module. EE108a Lab 3: Bike light

Introduction. Overview. Top-level module. EE108a Lab 3: Bike light Version 2.0 David Black-Schaffer Version 2.2 David Black-Schaffer Introduction In lab 3 you are going to get your first taste of sequential logic by building a system of finite state machines, timers,

More information

EE209 Lab Change We Can Believe In

EE209 Lab Change We Can Believe In EE209 Lab Change We Can Believe In Introduction In this lab you will complete the control unit and datapath for a vending machine change collector and dispenser. This lab will build on the vending machine

More information

Homework deadline extended to next friday

Homework deadline extended to next friday Norm Midterm Grading Finished Stats on course homepage Pickup after this lab lec. Regrade requests within 1wk of posted solution Homework deadline extended to next friday Description Design Conception

More information

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

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8 CSCB58 - Lab 3 Latches, Flip-flops, and Registers Learning Objectives The purpose of this exercise is to investigate the fundamental synchronous logic elements: latches, flip-flops, and registers. Prelab

More information

ARM 64-bit Register File

ARM 64-bit Register File ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4

More information

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Comp 541 Digital Logic and Computer Design Fall 2014 Lab #4: Sequential Design: Counters Issued Wed 9/10/14; Due Wed 9/17/14 (11:59pm) This lab assignment

More information

A B A+B

A B A+B ECE 25 Lab 2 One-bit adder Design Introduction The goal of this lab is to design a one-bit adder using programmable logic on the BASYS board. Due to the limitations of the chips we have in stock, we need

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

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

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one

More information

Digital Integrated Circuits

Digital Integrated Circuits Digital Integrated Circuits Lecture 4 Jaeyong Chung System-on-Chips (SoC) Laboratory Incheon National University BCD TO EXCESS-3 CODE CONVERTER 0100 0101 +0011 +0011 0111 1000 LSB received first Chung

More information

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4

More information

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

CPEN 230L: Introduction to Digital Logic Laboratory Lab 7: Multiplexers, Decoders, and Seven Segment Displays CPEN 230L: Introduction to Digital Logic Laboratory Lab 7: Multiplexers, Decoders, and Seven Segment Displays Purpose Learn about multiplexers (MUXs), decoders and seven segment displays. Learn about hierarchical

More information

EE 231 Fall Lab 2: Decoders and Multiplexers. Introduction

EE 231 Fall Lab 2: Decoders and Multiplexers. Introduction Lab 2: Decoders and Multiplexers Introduction Decoders and multiplexers are important combinational circuits in many logic designs. Decoders convert n inputs to a maximum of unique 2 n outputs. A special

More information

ECE 2300 Digital Logic & Computer Organization. More Finite State Machines

ECE 2300 Digital Logic & Computer Organization. More Finite State Machines ECE 2300 Digital Logic & Computer Organization Spring 2018 More Finite State Machines Lecture 9: 1 Announcements Prelab 3(B) due tomorrow Lab 4 to be released tonight You re not required to change partner(s)

More information

Exp#8: Designing a Programmable Sequence Detector

Exp#8: Designing a Programmable Sequence Detector Exp#8: Designing a Programmable Sequence Detector Objectives Learning how to partition a system into data-path and control unit. Integrating Schematics and Verilog code together Overview In this lab you

More information

Modeling Concepts. Introduction

Modeling Concepts. Introduction Introduction Verilog HDL modeling language supports three kinds of modeling styles: gate-level, dataflow, and behavioral. The gate-level and datafow modeling are used to model combinatorial circuits whereas

More information

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Examination ECE 241F - Digital Systems Examiners: S. Brown,

More information

Behavioral Modeling and Timing Constraints

Behavioral Modeling and Timing Constraints Lab Workbook Introduction Behavioral modeling was introduced in Lab 1 as one of three widely used modeling styles. Additional capabilities with respect to testbenches were further introduced in Lab 4.

More information

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0 Lab 0: Tutorial on Xilinx Project Navigator & ALDEC s Active-HDL Simulator CSE 591: Advanced Hardware Design and Verification Assigned: 01/05/2011 Due: 01/19/2011 Table of Contents 1 Overview... 2 1.1

More information

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 Print Here Student ID Signature This is a closed book exam. The exam is to be completed in one-hundred ten (110) minutes. Don t use scratch

More information

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AN:p ENGINEERING. ECE241F - Digital Syst~ms Final Examination

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AN:p ENGINEERING. ECE241F - Digital Syst~ms Final Examination ~.. UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AN:p ENGINEERING ECE241F - Digital Syst~ms Final Examination December 19, 2017, 2:00pm-4:30pm Duration: 2.5 hours Examiners: P. Anderson, P. Chow and

More information

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More information

Introduction to Nexys 2 board - Detour Signal Lab

Introduction to Nexys 2 board - Detour Signal Lab 1. Synopsis: Introduction to Nexys 2 board - This lab introduces the use of Field Programmable Gate Arrays (FPGA). This lab introduces the Digilent Nexys 2 board and demonstrate FPGA design flow through

More information

Nikhil Gupta. FPGA Challenge Takneek 2012

Nikhil Gupta. FPGA Challenge Takneek 2012 Nikhil Gupta FPGA Challenge Takneek 2012 RECAP FPGA Field Programmable Gate Array Matrix of logic gates Can be configured in any way by the user Codes for FPGA are executed in parallel Configured using

More information

HW1 Modeling Concepts

HW1 Modeling Concepts HW1 Modeling Concepts Verilog HDL modeling language supports three kinds of modeling styles: gate-level, dataflow, and behavioral. The gate-level and datafow modeling are used to model combinatorial circuits

More information

Introduction to Verilog and XILINX

Introduction to Verilog and XILINX DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Introduction to Verilog and XILINX Lab Session Computer Structure WARNING: A written solution of the preliminary

More information

Finite State Machines

Finite State Machines Lab Workbook Introduction (FSM) are sequential circuit used in many digital systems to control the behavior of systems and dataflow paths. Examples of FSM include control units and sequencers. This lab

More information

Lab 6 Debugging. Objective. Introduction. Prelab

Lab 6 Debugging. Objective. Introduction. Prelab UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 6 Debugging Objective You will explore several techniques for debugging a digital

More information

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

More information

Behavioral Modeling and Timing Constraints

Behavioral Modeling and Timing Constraints Introduction Behavioral modeling was introduced in Lab 1 as one of three widely used modeling styles. Additional capabilities with respect to testbenches were further introduced in Lab 4. However, there

More information

Intro to Digital Logic, Lab 5 Sequential Logic. Lab Objectives. Assigned Task Mapping sequential logic to the FPGA

Intro to Digital Logic, Lab 5 Sequential Logic. Lab Objectives. Assigned Task Mapping sequential logic to the FPGA Intro to Digital Logic, Lab 5 Sequential Logic Lab Objectives Now that we have mastered combinational logic, it is time to figure out sequential circuits. In this lab you will download a premade design

More information

Practical 4: RTC on FPGA

Practical 4: RTC on FPGA Practical 4: RTC on FPGA EEE4084F 2015-04-13 Background This practical is divided into two parts. The first is a tutorial that shows you how to set up a new FPGA project in Xilinx ISE. The second is a

More information

Workshop on Digital Circuit Design in FPGA

Workshop on Digital Circuit Design in FPGA Organized by: Dept. of EEE Workshop on Digital Circuit Design in FPGA Presented By Mohammed Abdul Kader Assistant Professor, Dept. of EEE, IIUC Email:kader05cuet@gmail.com Website: kader05cuet.wordpress.com

More information

EE 231 Fall EE 231 Homework 8 Due October 20, 2010

EE 231 Fall EE 231 Homework 8 Due October 20, 2010 EE 231 Homework 8 Due October 20, 20 1. Consider the circuit below. It has three inputs (x and clock), and one output (z). At reset, the circuit starts with the outputs of all flip-flops at 0. x z J Q

More information

Modeling Sequential Circuits in Verilog

Modeling Sequential Circuits in Verilog Modeling Sequential Circuits in Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals Presentation Outline Modeling Latches and Flip-Flops Blocking versus

More information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Design with FPGAs. By Neeraj Kulkarni Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic

More information

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Comp 541 Digital Logic and Computer Design Prof. Montek Singh Fall 2017 Lab #3A: Sequential Design: Counters Issued Wed 9/6/17; Due Wed 9/13/17 (11:59pm)

More information

ECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines

ECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines ECE 2300 Digital Logic & Computer Organization Spring 2018 More Verilog Finite Machines Lecture 8: 1 Prelim 1, Thursday 3/1, 1:25pm, 75 mins Arrive early by 1:20pm Review sessions Announcements Monday

More information

Finite-State Machine (FSM) Design

Finite-State Machine (FSM) Design 1 Finite-State Machine (FSM) Design FSMs, an important category of sequential circuits, are used frequently in designing digital systems. From the daily used electronic machines to the complex digital

More information

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain

More information

Lab 7 (All Sections) Prelab: Introduction to Verilog

Lab 7 (All Sections) Prelab: Introduction to Verilog Lab 7 (All Sections) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The

More information

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: Problem 1: CLD2 Problems. (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: C 0 = A + BD + C + BD C 1 = A + CD + CD + B C 2 = A + B + C + D C 3 = BD + CD + BCD + BC C 4

More information

ESE 150 Lab 07: Digital Logic

ESE 150 Lab 07: Digital Logic LAB 07 In this lab we will do the following: 1. Investigate basic logic operations (AND, OR, INV, XOR) 2. Implement an ADDER on an FPGA 3. Implement a simple Finite- State Machine on an FPGA Background:

More information

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Note: Closed book no notes or other material allowed, no calculators or other electronic devices. ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Exam Review Note: Closed book no notes or other material allowed, no calculators or other electronic devices. One page

More information

Elec 326: Digital Logic Design

Elec 326: Digital Logic Design Elec 326: Digital Logic Design Project Requirements Fall 2005 For this project you will design and test a three-digit binary-coded-decimal (BCD) adder capable of adding positive and negative BCD numbers.

More information

Lab 7: RPN Calculator

Lab 7: RPN Calculator University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory Lab 7: RPN Calculator The purpose of this lab is: Purpose 1. To get familiar with the use

More information

Experiment # 4 Introduction to FPGAs - Detour Signal Lab

Experiment # 4 Introduction to FPGAs - Detour Signal Lab 1. Synopsis: Experiment # 4 Introduction to FPGAs - Detour Signal Lab This lab introduces the use of Field Programmable Gate Arrays (or FPGAs, for short) for prototyping of digital circuits. Through the

More information

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE

More information

Hardware Description Languages (HDLs) Verilog

Hardware Description Languages (HDLs) Verilog Hardware Description Languages (HDLs) Verilog Material from Mano & Ciletti book By Kurtulus KULLU Ankara University What are HDLs? A Hardware Description Language resembles a programming language specifically

More information

Lab 6 : Introduction to Verilog

Lab 6 : Introduction to Verilog Lab 6 : Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The main objective of

More information

Sequential Logic Implementation. Mealy vs. Moore Machines. Specifying Outputs for a Mealy Machine. Specifying Outputs for a Moore Machine

Sequential Logic Implementation. Mealy vs. Moore Machines. Specifying Outputs for a Mealy Machine. Specifying Outputs for a Moore Machine uential Logic Implementation! Models for representing sequential circuits " bstraction of sequential elements " Finite state machines and their state diagrams " Inputs/ " Mealy, Moore, and synchronous

More information

Control in Digital Systems

Control in Digital Systems CONTROL CIRCUITS Control in Digital Systems Three primary components of digital systems Datapath (does the work) Control (manager, controller) Memory (storage) B. Baas 256 Control in Digital Systems Control

More information

EECS 270 Midterm Exam

EECS 270 Midterm Exam EECS 270 Midterm Exam Fall 2009 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: NOTES: Problem # Points 1 /11 2 /4

More information

EE 109L Final Review

EE 109L Final Review EE 09L Final Review Name: Closed Book / Score:. Short Answer (6 pts.) a. Storing temporary values in (memory / registers) is preferred due to the (increased / decreased) access time. b. True / False: A

More information

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1 University of Hawaii EE 361L Getting Started with Spartan 3E Digilent Basys2 Board Lab 4.1 I. Test Basys2 Board Attach the Basys2 board to the PC or laptop with the USB connector. Make sure the blue jumper

More information

VERILOG 2: LANGUAGE BASICS

VERILOG 2: LANGUAGE BASICS VERILOG 2: LANGUAGE BASICS Verilog module Modules are basic building blocks. These are two example module definitions which you should use: // Safer traditional method module abc (in1, in2, out); input

More information

Laboratory Exercise 7

Laboratory Exercise 7 Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied

More information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3 Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog

More information

C A R L E T O N U N I V E R S I T Y. FINAL EXAMINATION April Duration: 3 Hours No. of Students: 108

C A R L E T O N U N I V E R S I T Y. FINAL EXAMINATION April Duration: 3 Hours No. of Students: 108 C A R L E T O N U N I V E R S I T Y FINAL EXAMINATION April 2011 Duration: 3 Hours No. of Students: 108 Department Name & Course Number: ELEC 3500 Digital Electronics Course Instructor(s): Ralph Mason

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog for Synthesis Ing. Pullini Antonio Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits

More information

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science EECS 150 Spring 2002 Original Lab By: J.Wawrzynek and N. Weaver Later revisions by

More information

EITF35 - Introduction to Structured VLSI Design (Fall ) 7. Assignment 3 - Arithmetic Logic Unit (ALU)

EITF35 - Introduction to Structured VLSI Design (Fall ) 7. Assignment 3 - Arithmetic Logic Unit (ALU) EITF35 - Introduction to Structured VLSI Design (Fall 2018 2016 2015) 7 Assignment 3 - Arithmetic Logic Unit (ALU) v.1.1.0 Introduction In this lab assignment, a simple arithmetic logic unit (ALU) will

More information

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

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND: CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF NEVADA, LAS VEGAS GOALS: Getting familiar with DE2 board installation, properties, usage.

More information

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE One and a half hours Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE Fundamentals of Computer Engineering Date: Thursday 21st January 2016 Time: 14:00-15:30 Answer BOTH Questions

More information

Lecture 32: SystemVerilog

Lecture 32: SystemVerilog Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:

More information

Lab 3: Standard Combinational Components

Lab 3: Standard Combinational Components Lab 3: Standard Combinational Components Purpose In this lab you will implement several combinational circuits on the DE1 development board to test and verify their operations. Introduction Using a high-level

More information

Lab 2 Designing with Verilog

Lab 2 Designing with Verilog UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 2 Designing with Verilog 1.0 Motivation In this lab you will learn how to express

More information

HW D1: Gates & Flops: Spring 2015

HW D1: Gates & Flops: Spring 2015 HW D1: Gates & Flops: Spring 15 1 Contents HW D1: Gates & Flops: Spring 2015 1 Apply a Regulator (6 pts, total) 1 1.1 VariableRegulator(1 pt)......................... 1 1.2 Power Dissipation, efficiency(1

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences Introductory Digital Systems Lab (6.111) uiz - Spring 2004 Prof. Anantha Chandrakasan Student Name: Problem

More information

Microprogram Control Unit Design: Merging Two Arrays

Microprogram Control Unit Design: Merging Two Arrays Microprogram Control Unit Design: Merging Two Arrays 1. Synopsis: The purpose of this lab is to implement a state machine by using a microprogram control unit design. Microprograming allows flexibility

More information

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University Digital Circuit Design and Language Datapath Design Chang, Ik Joon Kyunghee University Typical Synchronous Design + Control Section : Finite State Machine + Data Section: Adder, Multiplier, Shift Register

More information

RealDigital. Problem Set #7 S1 S2 S3 Y Z X Y + Y Z X Z

RealDigital. Problem Set #7 S1 S2 S3 Y Z X Y + Y Z X Z Problem Set #7 RealDigital 1. (10 points) Modify the state diagram branching conditions in the diagrams below as needed to ensure the sum and exclusion rules are obeyed in each case. You can add a holding

More information

ECE331: Hardware Organization and Design

ECE331: Hardware Organization and Design ECE331: Hardware Organization and Design Lecture 19: Verilog and Processor Performance Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Verilog Basics Hardware description language

More information

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited April 2, 2009 John Wawrzynek Spring 2009 EECS150 - Lec20-fsm Page 1 Finite State Machines (FSMs) FSM circuits are a type of sequential

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice

More information

271/471 Verilog Tutorial

271/471 Verilog Tutorial 271/471 Verilog Tutorial Prof. Scott Hauck, last revised 9/15/14 Introduction The following tutorial is inted to get you going quickly in circuit design in Verilog. It isn t a comprehensive guide to System

More information

EE 109L Review. Name: Solutions

EE 109L Review. Name: Solutions EE 9L Review Name: Solutions Closed Book / Score:. Short Answer (6 pts.) a. Storing temporary values in (memory / registers) is preferred due to the (increased / decreased) access time. b. True / False:

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory

More information

Techniques for Digital Systems Lab. Verilog HDL. Tajana Simunic Rosing. Source: Eric Crabill, Xilinx

Techniques for Digital Systems Lab. Verilog HDL. Tajana Simunic Rosing. Source: Eric Crabill, Xilinx CSE140L: Components and Design Techniques for Digital Systems Lab Verilog HDL Tajana Simunic Rosing Source: Eric Crabill, Xilinx 1 More complex behavioral model module life (n0, n1, n2, n3, n4, n5, n6,

More information

DIGITAL SYSTEM DESIGN

DIGITAL SYSTEM DESIGN DIGITAL SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING Digital System Design 1 Name: Registration No: Roll No: Semester:

More information

EE 231 Fall EE 231 Lab 3. Decoders and Multiplexers. Figure 1: 7-Segment Display. Memory: where the program is stored.

EE 231 Fall EE 231 Lab 3. Decoders and Multiplexers. Figure 1: 7-Segment Display. Memory: where the program is stored. EE 231 Lab 3 Decoders and Multiplexers Decoders and multiplexers are important combinational circuits in many logic designs. Decoders convert n inputs to a maximum of unique 2 n outputs. A special case

More information

Lab 3 Finite State Machines Automated Teller Machine

Lab 3 Finite State Machines Automated Teller Machine Lab 3 Finite State Machines Automated Teller Machine Design, implement, verify, and test an Automated Teller Machine based on the following specification: The teller machine should provide the following

More information

Verilog Module 1 Introduction and Combinational Logic

Verilog Module 1 Introduction and Combinational Logic Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog

More information

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

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

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 This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam Last (family) name: First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Instructor: Kewal

More information

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines Lecture 3 Behavioral Modeling Sequential Circuits Registers Counters Finite State Machines Behavioral Modeling Behavioral Modeling Behavioral descriptions use the keyword always, followed by optional event

More information

CSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008

CSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008 CSE 140L Final Exam Prof. Tajana Simunic Rosing Spring 2008 NAME: ID#: Do not start the exam until you are told to. Turn off any cell phones or pagers. Write your name and PID at the top of every page.

More information

General FSM design procedure

General FSM design procedure Sequential logic examples Basic design approach: a 4-step design process Hardware description languages and finite state machines Implementation examples and case studies finite-string pattern recognizer

More information

EECS 373 Practice Midterm / Homework #3 Fall 2014

EECS 373 Practice Midterm / Homework #3 Fall 2014 Exam #: EECS 373 Practice Midterm / Homework #3 Fall 2014 Name: Uniquename: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: Problem #

More information

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information. Registers Readings: 5.8-5.9.3 Storage unit. Can hold an n-bit value Composed of a group of n flip-flops Each flip-flop stores 1 bit of information ff ff ff ff 178 Controlled Register Reset Load Action

More information

Lab # 2. Sequential Statements

Lab # 2. Sequential Statements The Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4111: Digital System Lab Lab # 2 Sequential Statements Eng. Alaa O Shama September, 2015 Introduction In this

More information