Insertion Sort using FPGA’s Aaron Tiedje CSE 670 Winter 2004 March 1, 2004 Professor R. Haskell Embedded Systems using FPGA's.

Slides:



Advertisements
Similar presentations
CPE 201 Digital Design Lecture 25: Register Transfer Level Design (2)
Advertisements

Central Processing Unit
The 8051 Microcontroller and Embedded Systems
Control path Recall that the control path is the physical entity in a processor which: fetches instructions, fetches operands, decodes instructions, schedules.
COMP25212 Further Pipeline Issues. Cray 1 COMP25212 Designed in 1976 Cost $8,800,000 8MB Main Memory Max performance 160 MFLOPS Weight 5.5 Tons Power.
Arithmetic Logic Unit (ALU)
Chapter 2: Memory Management, Early Systems
Chapter 2: Memory Management, Early Systems
Memory Management, Early Systems
PLC Timer Instructions
Microprocessor and Microcontroller
The CPU. Parts of the CPU Control Unit Arithmetic & Logic Unit Registers.
Integer Square Root CSE 670 Exam 1 Robert Hodge March 1, 2004.
Intoduction First we’ll talk in general about Visual X-Toy Then we’ll input and run a program using switches Then we’ll look at the more advanced editor.
LMC Little Moron Computer
Midterm Wednesday Chapter 1-3: Number /character representation and conversion Number arithmetic Combinational logic elements and design (DeMorgan’s Law)
S. RossEECS 40 Spring 2003 Lecture 28 Today… Analyzing digital computation at a very low level! The Latch Pipelined Datapath Control Signals Concept of.
LAB 9 Simulator Chap 14 REED. Datapath Simulator accompanying the text is a datapath simulator a.k.a. the Knob & Switch Computer developed by Grant Braught.
CPU Registers PC Arith Logic Unit Bus Interface I/O Bridge System bus Memory bus Main Memory USB Controller Graphics Adapter Disk Controller I/O Bus Mouse.
CSE 1301 J Lecture 13 Sorting Richard Gesick. CSE 1301 J 2 of 30 Sorting an Array When an array's elements are in random order, our Sequential Search.
SAP1 (Simple-As-Possible) Computer
Dr. Rabie A. Ramadan Al-Azhar University Lecture 6
Computer Science 210 Computer Organization The von Neumann Architecture.
Introduction to Computing Systems from bits & gates to C & beyond Chapter 4 The Von Neumann Model Basic components Instruction processing.
Vintage Computer Hardware 101 Featuring the MITS Altair 680b Bill Degnan.
TDC 311 The Microarchitecture. Introduction As mentioned earlier in the class, one Java statement generates multiple machine code statements Then one.
Computer Architecture and the Fetch-Execute Cycle
Microcode Source: Digital Computer Electronics (Malvino and Brown)
Fall 2012 Chapter 2: x86 Processor Architecture. Irvine, Kip R. Assembly Language for x86 Processors 6/e, Chapter Overview General Concepts IA-32.
2/8/02CSE MultiCycle From One Cycle to Many Note: Some of the material in this lecture are COPYRIGHT 1998 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGHTS.
CPU Design. Introduction – The CPU must perform three main tasks: Communication with memory – Fetching Instructions – Fetching and storing data Interpretation.
Computer Architecture Lecture 09 Fasih ur Rehman.
The von Neumann Model – Chapter 4
Introduction to Experiment 7 Sorting Using PicoBlaze ECE 448 Spring 2010.
ECS642U Embedded Systems Cyclic Execution and Polling William Marsh.
PHY 201 (Blum)1 Microcode Source: Digital Computer Electronics (Malvino and Brown)
Microprocessor. Interrupts The processor has 5 interrupts. CALL instruction (3 byte instruction). The processor calls the subroutine, address of which.
© Mike Stacey 2008 Single Chip Microcontrollers 7765J Mount Druitt College of TAFE Lesson 3 Arrays in ASM, Bubble Sort algorithm.
1/8/ Data Path Design & Control Copyright Joanne DeGroat, ECE, OSU1 Processor Data Paths - ALU and Registers Incorporating the ALU into a.
Computer Systems - Registers. Starter… Discuss in pairs the definition of the following Control Unit Arithmetic and Logic Unit Registers Internal clock.
Module 11 Adapted By and Prepared James Tan © 2001.
ALU (Continued) Computer Architecture (Fall 2006).
Instructor: Oluwayomi Adamo Digital Systems Design.
More on Pipelining 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington.
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
CEC 220 Digital Circuit Design Dice Game Wed, April 06 CEC 220 Digital Circuit Design Slide 1 of 15.
More on Pipelining 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington.
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
How does the CPU work? CPU’s program counter (PC) register has address i of the first instruction Control circuits “fetch” the contents of the location.
ECE Fall G. Byrd1 Register A register stores a multi-bit value. We use a collection of D-latches, all controlled by a common WE. When WE=1,
Architecture of 8085 Nitin Mishra. Registers Microprocessor Instruction Cache Arithmetic & Logic Unit Control Unit Bus Interface Unit Data Cache Instruction.
Computer Science 210 Computer Organization
Basics of digital systems
Overview Instruction Codes Computer Registers Computer Instructions
Simple Processor Control Unit
Latches and Flip-flops
Lecture 28: Virtual Memory-Address Translation
Pico Pico LAB#1 Starting & Stopping Motors.
Computer Science 210 Computer Organization
The Multicycle Implementation
Processor Data Paths -ALU and Registers
CSE 370 – Winter Sequential Logic - 1
The Multicycle Implementation
Joseph Ravichandran, Srijan Chakraborty, Kanad Sarkar
Systems Architecture I
DAT2343 LMC Simulator Usage © Alan T. Pinck / Algonquin College; 2003.
How does the CPU work? CPU’s program counter (PC) register has address i of the first instruction Control circuits “fetch” the contents of the location.
Instruction execution and ALU
Computer Architecture
Presentation transcript:

Insertion Sort using FPGA’s Aaron Tiedje CSE 670 Winter 2004 March 1, 2004 Professor R. Haskell Embedded Systems using FPGA's

Input MUX Input Register Switches Clock Input Load Temp Clear Memory Block Clock Memory Clear Mem Load < Switch Flag Temporary Register Temp Load Clock Waste ClearWaste Counter Waste Inc Clock Total ClearTotal Counter Total Inc Clock Index ClearIndex Counter Index Inc < Next Location < Sort Done Size < Display Done Sort Data Path

Sort Control Path s0 Reset and clear everything s1 Read first input s2 When button released: Insert into first memory location Increment total input counter s3 Read next input Increment total input counter s4 Waiting for button release s5 Is current input < current memory location? Yes Save current memory value into temporary register s41 Extra state S42 Copy temp register value into input register s40 Store input into current memory location

Sort Control Path cont. Yes - s7 Save current input value to memory Yes - s9 Clear the memory address for displaying the first number s6 At the end of the entered list yet? No - Go back to s4 s8 All 10 values entered yet? No - Go back to s3 s10 Clear the time waste counter s11 Waste one clock cycle while displaying number s12 Have we wasted enough time yet? Yes - s13 Have we displayed all the numbers yet? Yes – Reset memory index No – Increment memory address index

Instructions & Notes BN resets the state machine BTN4 latches an input Enter 10 numbers via the DIP switches in random order During data entry, the display will show the largest value already entered Pressing BTN3 will display the number of inputs (minus 1) entered thus far After data entry, the display will cycle the 10 inputs in numerical order