ECE 448 Lab 3 FPGA Design Flow Based on Xilinx ISE and ISim. Using Seven-Segment Displays, Buttons, and Switches.

Slides:



Advertisements
Similar presentations
Lab 9: Matrix Keypad : ”No Key Press” Analysis Slide #2 Slide #3 ”Press and Hold Key 5” Analysis.
Advertisements

Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Lab 09 :D Flip Flop, Shift Registers and Switch Bounce: Slide 2 Slide 3 The D Flip Flop. 4-Bit Shift Register. Slide 4 Shift Register De-bounce System:
Switches, Pushbuttons, and LEDs Digilent Spartan 3 Board Lecture L2.1.
Lab 3 & 4 Discussion EE414/514 VHDL Design September 25.
EE/CS 120A Lab 4 LAB 3 report due on this Friday 2:00pm.
DIGITAL DESIGN WITH VHDL Exercise 1 1Muhammad Amir Yousaf.
ECE 448: Spring 12 Lab 4 – Part 2 Finite State Machines Basys2 FPGA Board.
Capacitance Sensor Project
Figure 1.1 The Altera UP 3 FPGA Development board
Time Division Multiplexing School of Physics and Astronomy Department of Particle Physics Elissavet Papadima 29/5/2014.
CPE 169 Digital Design Laboratory Digilent Inc. Nexys Development Board.
Introduction to Counter in VHDL
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
ENG241/ Lab #41 ENG2410 Digital Design LAB #4 Design of Combinational Logic “The Trip Genie”
The miniDragon+ Board and CodeWarrior Lecture L2.1.
ECE 448: Lab 6 VGA Display (mini chess game). Video Graphic Array (VGA) Resolution: 640x480 Display: 16 colors (4 bits), 256 colors (8 bits) Refresh Rate:
1 Keyboard Controller Design By Tamas Kasza Digital System Design 2 (ECE 5572) Summer 2003 A Project Proposal for.
Spring Introduction  Today’s tutorial focuses on introducing you to Xilinx ISE and Modelsim.  These tools are used for Verilog Coding Simulation.
Advanced Digital Circuits ECET 146 Week 5 Professor Iskandar Hack ET 221G, Me as I typed this slides.
LAB #2 Xilinix ISE Foundation Tools Schematic Capture “A Tutorial”
ECE 448: Lab 5 Serial Communications. Part 1: Serial Communications Part 2: Clock Management Part 3: Clock Domains Part 4: User Constraint File (UCF)
FPGA Design Flow Based on Using Seven-Segment Displays,
ECE 448: Spring 11 Lab 3 Part 1 Sequential Logic for Synthesis.
ENG2410 Digital Design LAB #5 Modular Design and Hierarchy using VHDL.
Lecture #3 Page 1 ECE 4110–5110 Digital System Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.HW#2 assigned Due.
Getting Started with Lab 1 ECE 4401 Digital Design Lab 1.
© 2003 Xilinx, Inc. All Rights Reserved Global Timing Constraints FPGA Design Flow Workshop.
displayCtrlr Specification
CascadedBCDCntr&Display Aim : Capture, simulate and implement a 2-digit, loadable BCD up/down counter, with chip enable I/P (CE) and chip enable O/P (CEO).
ECE 448: Spring 11 Lab 3 Part 2 Finite State Machines.
ECE 448: Lab 5 DSP and FPGA Embedded Resources (Signal Filtering and Display)
Reaction Timer Project
ECE 448: Lab 4 VGA Display Mini-Pacman. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
ECE 448: Lab 4 VGA Display. Bouncing Ball.. Organization and Grading.
Introduction to FPGA Tools
ECE 448: Lab 7 Design and Testing of an FIR Filter.
ECE 448: Lab 5 VGA Display. Breaking-Bricks..
ECE 448: Lab 4 VGA Display The Frogger. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
Microelectronic Systems--University of Tennessee 1 1 Mancala Ben McCue Nithiya Gajanetharan Nora D. Bull ECE 551.
ENG2410 Digital Design LAB #7 LAB #7 Sequential Logic Design “Sequence Recognizer” Using both Schematic Capture and VHDL.
ECE 448: Spring 2013 Lab 5 FPGA Design Flow Based on Aldec Active-HDL Fast Reflex Game.
Teaching Digital Logic courses with Altera Technology
Flip Flops 4.1 Latches and Flip-Flops 4 ©Paul Godin Created September 2007 Last edit Sept 2009.
ECE 3450 M. A. Jupina, VU, 2016 Capacitance Sensor Project Goal: Creation of a digital capacitance sensor circuit where a variation in capacitance changes.
ECE 448: Lab 4 VGA Display Snake Game. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
ECE 448 Lab 3 FPGA Design Flow Based on Xilinx ISE and Isim. Using Seven-Segment Displays, Buttons, and Switches.
Implementation of Pong over VGA on the Nexys 4 FPGA
LAB #5 Modular Design and Hierarchy using VHDL
Introduction to the FPGA and Labs
DE2-115 Control Panel - Part I
LAB #3 Design of Combinational Logic “The Trip Genie”
LAB #4 Xilinix ISE Foundation Tools VHDL Design Entry “A Tutorial”
Revision2 for CENG34340 (Self study exercise no need to submit)
COMP211 Computer Logic Design Introduction to the DE2 Board
Implementing Combinational and Sequential Logic in VHDL
FPGA Project I: Up/Down Counter w/ Async Reset
Developing More Advanced Testbenches
Block Diagrams 1.
ECE 448: Spring 2015 Lab 3 FPGA Design Flow Based on Aldec Active-HDL.
ECE 448: Spring 2018 Lab 3 – Part 2 FPGA Design Flow Based on
LAB #2 Xilinix ISE Foundation Tools Schematic Capture “A Tutorial”
Week 10, Finite State Machine
Sequential Logic for Synthesis Simulation using ModelSim
Based on Xilinx ISE & ModelSim
Lab 1. Introduction to the DE2 Board
Lecture 4. Introduction to the DE2 Board
ECE 448 Lab 3 – Part 1 FPGA Design Flow Based on
ECE 448 Lab 3 – Part 1 FPGA Design Flow Based on
ECE 448: Spring 2018 Lab 3 – Part 2 Design of Controllers
Presentation transcript:

ECE 448 Lab 3 FPGA Design Flow Based on Xilinx ISE and ISim. Using Seven-Segment Displays, Buttons, and Switches.

Part 1: Distribution and testing of FPGA boards Part 2: Seven Segment Displays Part 3: User Constraints File Part 4: Buttons and Switches Part 5: Introduction to FPGA Design Flow based on Xilinx ISE Part 6: Introduction to Lab 3 Part 7: Class Exercise Part 8: Demo Lab Assignment 2 Agenda for today

Part 1 Distribution and Testing of FPGA Boards

Part 2 Seven Segment Displays

4-Digit Seven Segment Display

Patterns for Decimal Digits

Patterns for Hexadecimal Digits

Connection to FPGA Pins

Multiplexing Digits

Time-Multiplexed Seven Segment Display

Counter UP COUNTER UP Counter UP q(k-1..k-2) AN Counter UP SEG(6..0) Cou nter UP rst clk OC SSD_DRIVER OC – One’s Complement

Size of the counter 1 ms ≤ 2 k * T CLK ≤ 16 ms f CLK = 100 MHz k = ?

Part 3 User Constraint File (UCF)

File contains various constraints for Xilinx – Clock Period – Circuit Locations – Pin Locations Every pin in the top-level unit needs to have a pin in the UCF

Nexys 3

Nexys 3 User Constraint File (UCF) - SSD # Seven Segment Displays NET " SEG " LOC = "T17" | IOSTANDARD = "LVCMOS33"; NET " SEG " LOC = "T18" | IOSTANDARD = "LVCMOS33"; NET " SEG " LOC = "U17" | IOSTANDARD = "LVCMOS33 " ; NET " SEG " LOC = "U18" | IOSTANDARD = "LVCMOS33"; NET " SEG " LOC = "M14" | IOSTANDARD = "LVCMOS33"; NET " SEG " LOC = "N14" | IOSTANDARD = "LVCMOS33"; NET " SEG " LOC = "L14" | IOSTANDARD = "LVCMOS33 " ; NET " AN " LOC = "N16" | IOSTANDARD = "LVCMOS33"; NET " AN " LOC = "N15" | IOSTANDARD = "LVCMOS33 " ; NET " AN " LOC = "P18" | IOSTANDARD = "LVCMOS33 " ; NET " AN " LOC = "P17" | IOSTANDARD = "LVCMOS33 " ;

Nexys 3 User Constraint File (UCF) - LEDs # LEDs NET "LED " LOC = "U16" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "V16" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "U15" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "V15" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "M11" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "N11" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "R11" | IOSTANDARD = "LVCMOS33"; NET "LED " LOC = "T11" | IOSTANDARD = "LVCMOS33";

# Clock NET "CLOCK" LOC = "V10" | IOSTANDARD = "LVCMOS33"; Nexys 3 User Constraint File (UCF) CLOCK

Nexys 4 DDR

Nexys 4 User Constraint File (UCF) – SSD ### 7 segment display NET "seg " LOC = "T10" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "R10" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "K16" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "K13" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "P15" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "T11" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "L18" | IOSTANDARD = "LVCMOS33"; NET "seg " LOC = "H15" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "J17" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "J18" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "T9" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "J14" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "P14" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "T14" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "K2" | IOSTANDARD = "LVCMOS33"; NET "an " LOC = "U13" | IOSTANDARD = "LVCMOS33";

Nexys 4 User Constraint File (UCF) - LEDs ## LEDs #NET "led " LOC = “H17"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “K15"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “J13"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “N14"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “R18"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “V17"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “U17"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = "U16"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = "V16"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “T15"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “U14"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “T16"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “V15"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “V14"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “V12"| IOSTANDARD = "LVCMOS33"; #NET "led " LOC = “V11"| IOSTANDARD = "LVCMOS33";

# Clock #NET "clk" LOC = "E3"| IOSTANDARD = "LVCMOS33"; Nexys 4 User Constraint File (UCF) CLOCK

Part 4 Switches and Buttons

Nexys 3

Nexys 3-User Constraint File (UCF) Switches # Switches NET " SW " LOC = "T10 " | IOSTANDARD = "LVCMOS33 " ; NET " SW " LOC = "T9" | IOSTANDARD = "LVCMOS33"; NET " SW " LOC = "V9" | IOSTANDARD = "LVCMOS33 " ; NET " SW " LOC = "M8 " | IOSTANDARD = "LVCMOS33 " ; NET " SW " LOC = "N8" | IOSTANDARD = "LVCMOS33 " ; NET " SW " LOC = "U8" | IOSTANDARD = "LVCMOS33 " ; NET " SW " LOC = "V8" | IOSTANDARD = "LVCMOS33 " ; NET " SW " LOC = "T5" | IOSTANDARD = "LVCMOS33 " ;

Nexys 4- User Constraint File (UCF) Switches ## Switches #NET "sw " LOC = “J15"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “L16"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “M13"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “R15"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = "R17"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “T18"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “U18"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “R13"| IOSTANDARD = "LVCMOS33";

Nexys 4-User Constraint File (UCF) Switches(2) #NET "sw " LOC = “T8"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “U8"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “R16"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = "T13"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “H6"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “U12"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “U11"| IOSTANDARD = "LVCMOS33"; #NET "sw " LOC = “V10"| IOSTANDARD = "LVCMOS33";

Buttons

Connection of Buttons to FPGA Pins

Debouncing Buttons Bouncing period typically smaller than 10 ms key bounce, t BOUNCE

Using DEBOUNCE_RED to Generate Short Pulses (1) RED – Rising Edge Detector

Using DEBOUNCE_RED to Generate Short Pulses (2)

Debouncer reset input clk output

Debouncer

k and DD Generics k - width of the counter used to measure the debouncing period DD - debouncing period in clock cycles Values of generics given on the next slide assume that the clock frequency = 100 MHz and thus clock period = 10 ns.

k and DD Generics Option 1 (value used for simulation only): DD = 100 assuming bouncing period < 1 μs = 1000 ns condition: DD*10ns = 1000 ns => DD = 100 k=7 because 2^7 > 100 Option 2 (values used for synthesis, implementation, and experimental testing): DD = assuming bouncing period = 10 ms condition: DD*10ns = 10ms => DD = 1,000,000 k=21 because 2^21 > 1,000,000

Rising Edge Detector - RED Turn a step function into an impulse Allows a step to run a circuit for only one clock cycle Rising Edge Detector

clk input output input clk output rising edge detector reset

Connection of Buttons to FPGA Pins

# Buttons NET "BTNS" LOC = "B8" | IOSTANDARD = "LVCMOS33"; BTNS NET "BTNU" LOC = "A8" | IOSTANDARD = "LVCMOS33"; BTNU NET "BTNL" LOC = "C4" | IOSTANDARD = "LVCMOS33"; BTNL NET "BTND" LOC = "C9" | IOSTANDARD = "LVCMOS33"; BTND NET "BTNR" LOC = "D9" | IOSTANDARD = "LVCMOS33"; BTNR Nexys 3 User Constraint File (UCF) Buttons

## Buttons #NET "btnCpuReset" LOC = "C12"| IOSTANDARD = "LVCMOS33"; #NET "btnC" LOC = “N17“ | IOSTANDARD = "LVCMOS33"; #NET "btnU" LOC = “M18"| IOSTANDARD = "LVCMOS33"; #NET "btnL" LOC = “P17" | IOSTANDARD = "LVCMOS33"; #NET "btnR" LOC = “M17"| IOSTANDARD = "LVCMOS33"; #NET "btnD" LOC = “P18" | IOSTANDARD = "LVCMOS33"; Nexys 4-User Constraint File (UCF) Buttons

Part 5 Hands-on Session on FPGA Design Flow based on Xilinx ISE and Xilinx ISim

Part 6 Introduction to Lab 3 Movie Ticket Dispensing Machine

Step 1: Choose a Movie BTNU (UP) BTND DOWN BTNR (RIGHT) BTNL LEFT BTNS (Enter) Default

BTNS (Enter) Step 2: Choose Ticket Quantity Use UP and Down buttons to change the quantity = 49.50

Step 3: Entering Bills $1 UP $5 DOWN $20 RIGHT $10 LEFT Blink for 5 sec Total Amount Change

Step 4: Displaying Ad FREE POP CORN Fri 6-9

Part 7 Lab Exercise

16-bit Binary Up-Down Counter

Counter UP COUNTER UP Counter UP q(k-1..k-2) AN Counter UP SEG(6..0) Cou nter UP rst clk OC SSD_DRIVER OC – One’s Complement

Lab Assignment 2: Demo Part 8