Cub Led Code Vhdl

Embed Size (px)

Citation preview

  • 8/16/2019 Cub Led Code Vhdl

    1/49

    Remote programmable

     -

    With eDiViDe

  • 8/16/2019 Cub Led Code Vhdl

    2/49

    About me

    • Sam Thys

    • Student at Thomas More Kempen

     –  

    • Electronics-ICT

     –  Professional bachelor Electronics

     – 

    3th

    year

    2

  • 8/16/2019 Cub Led Code Vhdl

    3/49

    Internship

    • Internship at Thomas More Kempen

     –  Campus Geel

    • Electronics Lab

    3

  • 8/16/2019 Cub Led Code Vhdl

    4/49

    Problem

    4

  • 8/16/2019 Cub Led Code Vhdl

    5/49

    Problem - Background

    • Programmable systems

     –  FPGA ( Field Programmable Gate Array )

     –  VHDL ( VHSIC Hardware Description

    Language )

    • No material to exercise at home

    • To expensive

    • Lend material

     –  Material can break

    5

  • 8/16/2019 Cub Led Code Vhdl

    6/49

    Problem - Goal

    • A remote programmable FPGA

     –  LED cube

     –  Materiaal stays at school

     –  Student only needs a computer

    6

  • 8/16/2019 Cub Led Code Vhdl

    7/49

    Solutione e

    7

  • 8/16/2019 Cub Led Code Vhdl

    8/49

    eDiViDe

    • European Digital Virtual Design Lab –  www.edivide.eu

    • Website –  Program

     –  Control

     – 

    Monitor

    • Developed at KHLim, Belgium –  Nele Mertens

     –  Jochen Vandorpe

    • Erasmus – 

    Lifelong Learning Programme (LLP)

    8

    http://www.edivide.eu/http://www.edivide.eu/

  • 8/16/2019 Cub Led Code Vhdl

    9/49

    eDiViDe

    • Different setups

     –  Multiple colleges and universities

     –  Europa

    • Belgium

    • Germany

    • Norway

    • Slovakia

    9

  • 8/16/2019 Cub Led Code Vhdl

    10/49

    eDiViDe - Usage

    library I EEE;

    use I EEE.STD_LOGI C_1164. ALL;

    use I EEE.STD_LOGI C_ARI TH. ALL;

    use I EEE.STD_LOGI C_UNSI GNED. ALL;

    library WORK ;

    use WORK .all;

     

    • VHDL Template

    10

    ent ty e u e_ xer c se_ s Port

    Cl k :   in STD_LOGI C; - - 50 MHz syst em Cl ock

    enabl e :   in STD_LOGI C; - - Swi tch I nput

    reset :   in STD_LOGI C; - - Butt on I nput, Hi gh Acti ve -> ' 1' when pressed

    col orSel :   in STD_LOGI C_VECTOR   (1   downto 0); - - Swi tch vector I nput

    col orOut :   out STD_LOGI C_VECTOR   ( 1   downto 0);

    x :   out STD_LOGI C_VECTOR   ( 2   downto 0); - - X Coord inate , val ue 0 - 7

    y :   out STD_LOGI C_VECTOR   ( 2   downto 0); - - Y Coordi nate , val ue 0 - 7

    z :   out STD_LOGI C_VECTOR   ( 2   downto 0); - - Z Coord inate , val ue 0 - 7

    FreeI n :   in STD_LOGI C_VECTOR   ( 8   downto 0); - - Free to use I nput

    Fr eeOut :   out STD_LOGI C_VECTOR   ( 8   downto 0)); - - Free to use Output

    end  LedCube_Exerci se_01;

    architecture Str uctural of LedCube_Exerc i se_01 is begin

    end  St ructural ;

  • 8/16/2019 Cub Led Code Vhdl

    11/49

    eDiViDe - Usage

    • Webinterface

    11

  • 8/16/2019 Cub Led Code Vhdl

    12/49

    eDiViDe - Operation

    • Central server

     –  KHLIM

     –  Webserver

    • Interface

    • database

     –  Scripts

    • Communication with local sever

    12

  • 8/16/2019 Cub Led Code Vhdl

    13/49

    eDiViDe - Operation

    • Local Setup

     –  FPGA development board

     –  Webcam

    13

     –  USB – RS232

    • Control and monitoring

     –  USB – JTAG

    Programming

     –  LED Cube

  • 8/16/2019 Cub Led Code Vhdl

    14/49

    eDiViDe - Operation

    • Communication

     –  Virtual Private

    Network

    KHLIM

    14

    Thomas More Geel

  • 8/16/2019 Cub Led Code Vhdl

    15/49

    Local Setu

    15

  • 8/16/2019 Cub Led Code Vhdl

    16/49

    Local setup

    • LED cube ( RGB 8 x 8 x 8 )

     –  Greduation project 2010

     –  Original control

    • Microcontroller

    • Digilent Spartan 3

     –  Xilinx Spartan x3s200

     –  eDiViDe Compatible

    16

  • 8/16/2019 Cub Led Code Vhdl

    17/49

    Lokale Setup

    • LED Cube

     –  32 Inputs

    • 24 Horizontal selection

    • 8 Vertical selection

      –  or s on

    17

  • 8/16/2019 Cub Led Code Vhdl

    18/49

    Lokale opstelling

    • Digilent Spartan 3 ontwikkelbord

     –  32 Connections

    • Looked up in datasheet

     –  Shared with onboard components

    •  

     –  Works on 3,3V

    18

  • 8/16/2019 Cub Led Code Vhdl

    19/49

    Lokale Local setup

    • Connection FGPA to LED cube

     –  Voltage translation 3,3V -> 5V

     –  Current buffer

     –  Isolation

     –  4 x 74LVX4245

    19

  • 8/16/2019 Cub Led Code Vhdl

    20/49

    VHDL

    es gn

    20

  • 8/16/2019 Cub Led Code Vhdl

    21/49

    VHDL Design

    • Exercises

     –  Start simple

     –  Systematically get harder

     –  Xilinx ISE Design Suite 14

    • Xilinx Spartan3 – XC3S200

    • Compilation

     –  Modelsim PE

    Simulatiion

    21

  • 8/16/2019 Cub Led Code Vhdl

    22/49

    VHDL Design

    • Control of the LED cube

     –  Original system is complex and not very logical

    • Not educational

    22

  • 8/16/2019 Cub Led Code Vhdl

    23/49

    VHDL Design

    • Conversion table

     –  Inputs

    • Coordinates

     –  X,Y,Z

     –  

    • color

     –  Blue, Green, Red, Nothing

     –  0 to 3

     –  Outputs

    Data for the LED cube

    23

  • 8/16/2019 Cub Led Code Vhdl

    24/49

    VHDL Design

    • 6 Exercises

     –  Running Light

     –  Running plane

     –  Running Plane in 3 directions with color change

     –  Dimmable Cube

     –  Ambiant cube

     –  3D Symbol

    24

  • 8/16/2019 Cub Led Code Vhdl

    25/49

    VHDL Design

    • Conversion to eDiViDe VHDL structure

    25

  • 8/16/2019 Cub Led Code Vhdl

    26/49

    VHDL ontwerp

    • Conversion to eDiViDe VHDL structure

     –  LedCube Exercise X

    • Exercise of the student

     –  LedCube Student Enviroment

    • Filtering of inputs and outputs

     • Exercise dependant modules

     –  LedCube Top

    • Setup dependant modules

     –  Conversion table

     –  Edivide Top

    • Inputs and outputs to serial communication

    • Inputs and outputs to physical connection

    26

  • 8/16/2019 Cub Led Code Vhdl

    27/49

  • 8/16/2019 Cub Led Code Vhdl

    28/49

    Webinterface

    28

  • 8/16/2019 Cub Led Code Vhdl

    29/49

    Webinterface

    • Webinterface

     –  Control elements

    • Switches

    • Pushbuttons

     • g a po en ome er

     –  Display elementen

    • Video

    • Leds

    29

  • 8/16/2019 Cub Led Code Vhdl

    30/49

    Webinterface

    • Control

     –  Javascript-Function

    • Adjusts data in variables

    • Collects all variables variabelen

      –  asses on to a -scr pt• Write data to a file on the centrale server

    30

  • 8/16/2019 Cub Led Code Vhdl

    31/49

    Webinterface

    • Dislay of status

     –  Refresh every 500ms

     –  PHP-script

    • Reads data from a file on the centrale server

      –  Javascript function

    • Writes data to the corresponding variables

    • Adjusts the display elements

    31

  • 8/16/2019 Cub Led Code Vhdl

    32/49

    Webinterface

    • Video display

     –  Javascript

    • JWPlayer

     –  RTMP Stream

     • Real Time Messaging Protocol

    • Audio, Video

    • Flash Player

    • TCP

    32

  • 8/16/2019 Cub Led Code Vhdl

    33/49

    Webinterface

    • Local test of the interface

     –  Host with Wamp Server

    • Apache

    • PHP

      – 

     • MySQL

    33

  • 8/16/2019 Cub Led Code Vhdl

    34/49

    Webinterface

    • Local testing of the interface

     –  Mozilla Firefox

    • FireBug Plugin

     –  Check of functions get called

     – 

     

    34

  • 8/16/2019 Cub Led Code Vhdl

    35/49

    Webinterface

    • Local testing of the interface

     –  Realterm

    • Serial terminal

    • Write file to serial port

    35

  • 8/16/2019 Cub Led Code Vhdl

    36/49

    Local server

    36

  • 8/16/2019 Cub Led Code Vhdl

    37/49

    Local Server

    • Hardware

     –  Chosen because of reliable operation

    • Server

     –  Dell PowerEdge T110 II

     –  Logitech C310

    • USB-Serial cable

     –  FTDI

    37

  • 8/16/2019 Cub Led Code Vhdl

    38/49

    Local Server

    • Software

     –  Linux operating system

    • Debian 6.0.5 amd64

     –  Xilinx Tools

     • Xilinx ISE embedded

     –  Compilation of VHDL code

    • IMPACT

     –  Programming Xilinx FPGA

     –  Adept

    • Programmeren with the Digilent JTAG programmer

    38

  • 8/16/2019 Cub Led Code Vhdl

    39/49

    Local Server

    • Folder structure

     –  User : eDiViDe-khlim

    • Home folder

    39

  • 8/16/2019 Cub Led Code Vhdl

    40/49

    Local Server

    • Configuration

     –  USB rules for device management ( UDEV )

    • USB-JTAG programmer

    • FTDI USB-Serial cable

      –  on gurat on es• contain serialnumbers of the devices

     –  USB-JTAG

     –  Webcam

     –  FTDI

    40

  • 8/16/2019 Cub Led Code Vhdl

    41/49

    Local Server

    • VPN connection

     –  OpenVPN

     –  Server on Wireless Lan

    41

  • 8/16/2019 Cub Led Code Vhdl

    42/49

    Local Server

    • Additional software

     –  Installed by KHlim

    • VideoStream

     –  Webcam

     –  Serial communication

    42

  • 8/16/2019 Cub Led Code Vhdl

    43/49

    Final Testing

    • setting up the webinterface

     –  Video

    • Starting the video software

    • Live videostream

     –  ontro• Sending data ( mozilla firefox, firebug plugin)

    • Manual control from local server

    • Starting the ComPort server

    43

  • 8/16/2019 Cub Led Code Vhdl

    44/49

  • 8/16/2019 Cub Led Code Vhdl

    45/49

    Website

    45

  • 8/16/2019 Cub Led Code Vhdl

    46/49

    Website

    46

  • 8/16/2019 Cub Led Code Vhdl

    47/49

    Summary

    • Goal :

     –  A remote programmable FPGA-LedCube

    • Solution :

     –  Collaboration with eDiViDe 

    47

  • 8/16/2019 Cub Led Code Vhdl

    48/49

    Summary

     –  Research eDiViDe operation and functioning

     –  Reseach LedCube

     –  Connecting the LedCube and FPGA

     –  Writing VHDL code

      –  Developing a Webinterface

     –  Configure the Local server

     –  Final Testing

    48

  • 8/16/2019 Cub Led Code Vhdl

    49/49

    Thank you

    for our

    Attention

    49