library IEEE; use IEEE.STD_LOGIC_1164.ALL;

Similar documents
Flip-flop and Registers

HDL & High Level Synthesize (EEET 2035) Laboratory II Sequential Circuits with VHDL: DFF, Counter, TFF and Timer

Eng. Mohammed Samara. Fall The Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department

Lab 3: VGA Bouncing Ball I

COE758 Xilinx ISE 9.2 Tutorial 2. Integrating ChipScope Pro into a project

ECE 448 Lecture 10. VGA Display Part 1 VGA Synchronization

Class 19 Sequential Logic: Flip-Flop

Class 06 Sequential Logic: Flip-Flop

Ryerson University Department of Electrical and Computer Engineering EES508 Digital Systems

VLSI DESIGN LAB (EE-330-F) VI SEMESTER. Electrical and Electronics Engineering

DIGITAL SYSTEM DESIGN VHDL Coding for FPGAs Unit 7

Figure 1 Block diagram of a 4-bit binary counter

Outline. CPE/EE 422/522 Advanced Logic Design L04. Review: 8421 BCD to Excess3 BCD Code Converter. Review: Mealy Sequential Networks

ACS College of Engineering. Department of Biomedical Engineering. HDL pre lab questions ( ) Cycle-1

ECE 3401 Lecture 11. Sequential Circuits

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

Lab 4: Hex Calculator

Lab 6: Video Game PONG

ECE 448 Lecture 12. VGA Display Part 4 Text Generation

VHDL 4 BUILDING BLOCKS OF A COMPUTER.

Design Problem 4 Solutions

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

download instant at

Using the XSV Board Xchecker Interface

Spartan-II Development System

ECE 3401 Lecture 12. Sequential Circuits (II)

4:1 Mux Symbol 4:1 Mux Circuit

Bachelor of Technology (Electronics and Instrumentation Engg.)

Video. Prof. Stephen A. Edwards Columbia University Spring Video p.

Smooth Ternary Signaling For Deep-Submicron(DSM) Buses

Device 1 Device 2 Device 3 Device 4

Debugging of VHDL Hardware Designs on Altera s DE2 Boards

Chapter 8 Registers & Counters

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7

VHDL test bench for digital image processing systems using a new image format

CS/EE Homework 6

Laboratory Exercise 7

Video. Prof. Stephen A. Edwards Columbia University Spring Video p. 1/2

Level and edge-sensitive behaviour

Registers, Register Transfers and Counters Dr. Fethullah Karabiber

ThedesignsofthemasterandslaveCCBFPGAs

STATIC RANDOM-ACCESS MEMORY

Feedback Sequential Circuits

COMPUTER ENGINEERING PROGRAM

Synchronous Sequential Design

Bachelor Thesis. Augmented Reality using a Virtual Reality. R.J.A. Blokker & L.M. Noordam. Implementation on an FPGA device

VGA Pixel Buffer Stephen Just

Clarke and Inverse ClarkeTransformations Hardware Implementation. User Guide

Laboratory Manual and Supplementary Notes. ECE 495: Computer Engineering Design Laboratory

Outputs Combinational circuit. Next state. Fig. 4-1 Block Diagram of a Sequential Circuit

ECE 448 Lecture 11. VGA Display Part 3 Animation

ECE 448 Lecture 11. VGA Display Part 3 Animation

Asynchronous Circuit Design on Reconfigurable Devices

Asynchronous & Synchronous Reset Design Techniques - Part Deux

ATF15xx Family EPLD. Application Note. Connecting an I 2 S-Compatible Audio DAC to the AT91x40 Series Microcontrollers Using an ATF1508ASVL CPLD

ECE337 Lab 4 Introduction to State Machines in VHDL

hochschule fu r angewandte wissenschaften hamburg Prof. Dr. B. Schwarz FB Elektrotechnik/Informatik

PicoBlaze. for Spartan-3, Virtex-II, Virtex-IIPRO and Virtex-4 devices. JTAG Loader. Quick User Guide. Kris Chaplin and Ken Chapman

ECE 263 Digital Systems, Fall 2015

Laboratory Exercise 7

Digital Systems Laboratory 1 IE5 / WS 2001

CALIFORNIA STATE UNIVERSITY, NORTHRIDGE. Reconfigurable RGB Video Test Pattern Generator

TSIU03: Lab 3 - VGA. Petter Källström, Mario Garrido. September 10, 2018

Lab # 9 VGA Controller

Chapter 6. sequential logic design. This is the beginning of the second part of this course, sequential logic.

Laboratory Exercise 3

Keywords Xilinx ISE, LUT, FIR System, SDR, Spectrum- Sensing, FPGA, Memory- optimization, A-OMS LUT.

Using HERON modules with FPGAs to connect to FPDP

Lecture 2: Linear Feedback Shift Registers and Logic Analysis

FPGA TechNote: Asynchronous signals and Metastability

A Fast Constant Coefficient Multiplier for the XC6200

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

Flip-Flops and Registers

Tolerant Processor in 0.18 µm Commercial UMC Technology

Modeling Latches and Flip-flops

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

ECE 545 Lecture 1. FPGA Devices & FPGA Tools

A Simple VGA Interface for the PowerPC 403GCX Evaluation Board

XC Clocked Input and Output

AN ADVERTICING MODUL, DEVELOPED ON THE BASE OF A CPLD PROGRAMABLE DEVICE

Memory efficient Distributed architecture LUT Design using Unified Architecture

sld_virtual_jtag Megafunction User Guide

Implementation of Viterbi decoder on Xilinx XC4005XL FPGA

FPGA Implementation of Convolutional Encoder And Hard Decision Viterbi Decoder

The Visitor Design Pattern

Revision: 5/7/ E Main Suite D Pullman, WA (509) Voice and Fax GND. 5VDC regulator VDD. 4 7-seg. displays

Integrating Asynchronous Paradigms into a VLSI Design Course

Figure 1: segment of an unprogrammed and programmed PAL.

A Pseudorandom Binary Generator Based on Chaotic Linear Feedback Shift Register

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 9 Field Programmable Gate Arrays (FPGAs)

ECE Design Team 3 Madi Kassymbekov How to use MSP 430 Peripheral Sensors and use of LEDs as sensors

Implementation of Area Efficient Memory-Based FIR Digital Filter Using LUT-Multiplier

Overview. Functional Description. Power Supplies

Designing Fir Filter Using Modified Look up Table Multiplier

EITF35: Introduction to Structured VLSI Design

VLSI IEEE Projects Titles LeMeniz Infotech

IMPLEMENTATION OF A BINARY SELECTION SYSTEM CREATED IN XILINX USING FPGA

Efficient Method for Look-Up-Table Design in Memory Based Fir Filters

2608 Sweetgum Drive Apex NC Toll-free: International: FAX: How to install and use your new XStend Board

Meaning Machines CS 672 Deictic Representations (3) Matthew Stone THE VILLAGE

Transcription:

library IEEE; use IEEE.STD_LOGIC_1164.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx leaf cells in this code. --library UNISIM; --use UNISIM.VComponents.all; entity display is Port ( refreshclock : in STD_LOGIC; clockdig1 : in STD_LOGIC; buttonbus : in STD_LOGIC_VECTOR (3 downto 0); cathode : out STD_LOGIC_VECTOR (7 downto 0); anode : out STD_LOGIC_VECTOR (3 downto 0)); end display; architecture Behavioral of display is signal en, lap, displayer : std_logic:= '0'; signal push_button_sig_start, push_button_sig_save_lap, push_button_sig1, push_button_sig2, push_button_sig_display_lap, push_button_sig3, lap_count, lap_display : integer:=0; signal dig1count, dig2count, dig3count, dig4count, use1, use2, use3, use4 : integer := 0; signal dig1lap, dig2lap, dig3lap, dig4lap, dig1lap2, dig2lap2, dig3lap2, dig4lap2, dig1lap3, dig2lap3, dig3lap3, dig4lap3 : integer := 0; display : process (refreshclock, clockdig1, buttonbus, en, lap) is if (buttonbus(1) = '1' and en = '0') then use1 <= 0; use2 <= 0; use3 <= 0; use4 <= 0; dig1count <= 0; dig2count <= 0; dig3count <= 0; dig4count <= 0; dig1lap <= 0; dig2lap <= 0; dig3lap <= 0; dig4lap <= 0;

dig1lap2 <= 0; dig2lap2 <= 0; dig3lap2 <= 0; dig4lap2 <= 0; dig1lap3 <= 0; dig2lap3 <= 0; dig3lap3 <= 0; dig4lap3 <= 0; if (displayer = '1' and en = '0') then if (lap_display = 1) then use1 <= dig1lap; use2 <= dig2lap; use3 <= dig3lap; use4 <= dig4lap; elsif (lap_display = 2) then use1 <= dig1lap2; use2 <= dig2lap2; use3 <= dig3lap2; use4 <= dig4lap2; elsif (lap_display = 3) then use1 <= dig1lap3; use2 <= dig2lap3; use3 <= dig3lap3; use4 <= dig4lap3; if (rising_edge(clockdig1)) then if (en = '1') then use1 <= dig1count; use2 <= dig2count; use3 <= dig3count; use4 <= dig4count; if (lap = '1') then if (lap_count = 1) then dig1lap <= dig1count; dig2lap <= dig2count; dig3lap <= dig3count; dig4lap <= dig4count; elsif (lap_count = 2) then dig1lap2 <= dig1count; dig2lap2 <= dig2count; dig3lap2 <= dig3count; dig4lap2 <= dig4count; elsif (lap_count = 3) then dig1lap3 <= dig1count;

dig2lap3 <= dig2count; dig3lap3 <= dig3count; dig4lap3 <= dig4count; dig1count <= dig1count + 1; if (dig1count = 9) then dig1count <= 0; dig2count <= dig2count + 1; if (dig2count = 9) then dig2count <= 0; dig3count <= dig3count + 1; if (dig3count = 9) then dig3count <= 0; dig4count <= dig4count + 1; if (dig4count = 9) then dig4count <= 0; end process display; process (refreshclock) variable digit : unsigned (1 downto 0) := "00"; if(rising_edge(refreshclock)) then case digit is when "00" => case (use1) is cathode <= "00000011"; cathode <= "11110011"; cathode <= "00100101"; cathode <= "00001101";

cathode <= "10011001"; cathode <= "01001001"; cathode <= "11000001"; cathode <= "00011111"; cathode <= "00000001"; cathode <= "00011001"; when "01" => case (use2) is cathode <= "00000011"; cathode <= "11110011"; cathode <= "00100101"; cathode <= "00001101"; cathode <= "10011001"; cathode <= "01001001"; cathode <= "11000001"; cathode <= "00011111";

cathode <= "00000001"; cathode <= "00011001"; when "10" => case (use3) is cathode <= "00000010"; cathode <= "11110010"; cathode <= "00100100"; cathode <= "00001100"; cathode <= "10011000"; cathode <= "01001000"; cathode <= "11000000"; cathode <= "00011110"; cathode <= "00011000";

when "11" => case (use4) is cathode <= "00000011"; cathode <= "11110011"; cathode <= "00100101"; cathode <= "00001101"; cathode <= "10011001"; cathode <= "01001001"; cathode <= "11000001"; cathode <= "00011111"; cathode <= "00000001"; cathode <= "00011001"; digit := digit + 1; end process; process(clockdig1) if (rising_edge(clockdig1)) then if (buttonbus(3) = '1') then push_button_sig_display_lap <= 1;

elsif (buttonbus(3) = '0') then push_button_sig_display_lap <= 0; push_button_sig3 <= push_button_sig_display_lap; if (push_button_sig3 = 0 and push_button_sig_display_lap = 1) then displayer <= '1'; lap_display <= lap_display + 1; if (lap_display = 3) then lap_display <= 1; elsif (push_button_sig3 = 1 and push_button_sig_display_lap = 0) then displayer <= '0'; if (buttonbus(2) = '1') then push_button_sig_save_lap <= 1; elsif (buttonbus(2) = '0') then push_button_sig_save_lap <= 0; push_button_sig2 <= push_button_sig_save_lap; if (push_button_sig2 = 0 and push_button_sig_save_lap = 1) then lap <= '1'; lap_count <= lap_count + 1; if (lap_count = 3) then lap_count <= 1; elsif (push_button_sig2 = 1 and push_button_sig_save_lap = 0) then lap <= '0'; if (buttonbus(0) = '1') then push_button_sig_start <= 1; elsif (buttonbus(0) = '0') then push_button_sig_start <= 0; push_button_sig1 <= push_button_sig_start; if (push_button_sig1 = 0 and push_button_sig_start = 1) then en <= not en; lap_display <= 0; if (buttonbus(1) = '1' and en = '0') then lap_count <= 0; lap_display <= 0; end process; end Behavioral;