SoC Final Presentation

Similar documents
S2C K7 Prodigy Logic Module Series

Full Linux on FPGA. Sven Gregori

System-on-Chip Architectures and Modelling

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Introducing the Spartan-6 & Virtex-6 FPGA Embedded Kits

Advanced Embedded Systems

AT-501 Cortex-A5 System On Module Product Brief

Designing with ALTERA SoC Hardware

Intel Galileo gen 2 Board

INVITATION FOR QUOTATION. TEQIP-II/2013/KL1G15/Shopping/73

Copyright 2014 Xilinx

Introduction to Sitara AM437x Processors

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

RZ Embedded Microprocessors

Xilinx Vivado/SDK Tutorial

Product Technical Brief S3C2416 May 2008

Spartan-6 & Virtex-6 FPGA Connectivity Kit FAQ

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006

AVR XMEGA Product Line Introduction AVR XMEGA TM. Product Introduction.

Graduate Institute of Electronics Engineering, NTU Advanced VLSI SOPC design flow

Cannon Mountain Dr Longmont, CO LS6410 Hardware Design Perspective

Avnet Zynq Mini Module Plus Embedded Design

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

MYD-C7Z010/20 Development Board

MYC-C7Z010/20 CPU Module

Hugo Cunha. Senior Firmware Developer Globaltronics

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20

Compute Node Design for DAQ and Trigger Subsystem in Giessen. Justus Liebig University in Giessen

Spartan -3A / Spartan -3AN Out of the box, now what? Eric Crabill Xilinx, Incorporated 04/01/2007

TQ2440 Development Platform Manual

FPQ6 - MPC8313E implementation

SoC Platforms and CPU Cores

Avnet, Xilinx ATCA PICMG Design Kit Hardware Manual

Course Introduction. Purpose: Objectives: Content: Learning Time:

Spartan-6 and Virtex-6 FPGA Embedded Kit FAQ

ML505 ML506 ML501. Description. Description. Description. Features. Features. Features

Copyright 2016 Xilinx

MYC-C437X CPU Module

CPC506. Best solutions to fit your demands! cpci 3U 8HP CPU Module.

pcduino V3B XC4350 User Manual

LinkSprite Technologies,.Inc. pcduino V2

Zynq Architecture, PS (ARM) and PL

RiceNIC. Prototyping Network Interfaces. Jeffrey Shafer Scott Rixner

Introduction to Embedded System Design using Zynq

OK335x Products Guide. Contents

Carambola2 (-I) Data sheet. Carambola2 is a tiny surface mountable 2.4 GHz Wi-Fi module running OpenWRT linux software

High-Performance, Highly Secure Networking for Industrial and IoT Applications

EyeCheck Smart Cameras

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003

SoC FPGAs. Your User-Customizable System on Chip Altera Corporation Public

DEVBOARD3 DATASHEET. 10Mbits Ethernet & SD card Development Board PIC18F67J60 MICROCHIP

MYD-C437X-PRU Development Board

Designing Embedded Processors in FPGAs

Hardware Design Guidelines for POWERLINK SLAVE on FPGA

Lesson 6 Intel Galileo and Edison Prototype Development Platforms. Chapter-8 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Overview of Board Revisions

Figure 1: The logicraft-cc Platform - Free USB firmware

D Demonstration of disturbance recording functions for PQ monitoring

SAM A5 ARM Cortex - A5 MPUs

Unwired One. Main Features. Wireless embedded computer

Designing with ALTERA SoC

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

System-on-Chip Architectures and Modelling

CORRIGENDUM ISSUED FOR NATIONAL COMPETITIVE BIDDING UNDER TEQIP PHASE-II

BlazePPS (Blaze Packet Processing System) CSEE W4840 Project Design

Enabling success from the center of technology. A Practical Guide to Configuring the Spartan-3A Family

FPQ9 - MPC8360E implementation

ChipScope Inserter flow. To see the Chipscope added from XPS flow, please skip to page 21. For ChipScope within Planahead, please skip to page 23.

ESPino - Specifications

STM32F429 Overview. Steve Miller STMicroelectronics, MMS Applications Team October 26 th 2015

Centipede. Datasheet. Centipede is QCA AR9331 SoC based DIP platform with an integrated 2.4 GHz N (1x1) radio

Introduction To Computer Hardware. Hafijur Rahman

EMX Module Specifications

نﺎﻬﻔﺻا ﻲﺘﻌﻨﺻ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ و قﺮﺑ هﺪﻜﺸﻧاد

ARDUINO YÚN MINI Code: A000108

Environmental Data Acquisition Using (ENC28J60)

USB for Embedded Devices. Mohit Maheshwari Prashant Garg

Overview The Microcontroller The Flex Board Expansion boards Multibus board Demo board How to: Compile demo Flash & Run Demos

Keyboards. The PS/2 Protocol

New System Solutions for Laser Printer Applications by Oreste Emanuele Zagano STMicroelectronics

T1042-based Single Board Computer

Realize the Genius of Your Design

EMBEDDED HARDWARE. Core Board. ARM7 Development board. ARM7 Evaluation Board. Page 1 of 5

Communication of graphics devices with PC. Bohdal, PhD.

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

W I S S E N T E C H N I K L E I D E N S C H A F T

Atlys (Xilinx Spartan-6 LX45)

Design Choices for FPGA-based SoCs When Adding a SATA Storage }

Whitepaper. What s new at COM Express Revision 2.0. What changes with Revision 2.0? Compact Form Factor

Embedded Systems Laboratory Manual ARM 9 TDMI

LPC4357-EVB User Manual

VertexCom. VC83X0 Product Brief. Version: 0.4 Release Date: June 28, Specifications are subject to change without notice.

Microblaze for Linux Howto

SPI on RTU (plus other fun features & peripherals)

Xynergy It really makes the difference!

FA3 - i.mx51 Implementation + LTIB

Five Ways to Build Flexibility into Industrial Applications with FPGAs

Building and Programming complete MPSoCs in reconfigurable systems. Kees Vissers MPsoC 2007

Transcription:

SoC Final Presentation Spartanist - THE Gaming Console Philipp Dunst, Birgit Haas, Michael Höfler, Michael Hraschan, Philipp Miedl, Oliver Söll, Thomas Unterluggauer, Mario Werner, Paul Wolfger, Adnan Kuleta, Markus Schuß, and Michael Hutter Institute for Applied Information Processing and Communications (IAIK) Graz University of Technology Inffeldgasse 16a, A-8010 Graz, Austria 1

System on Chip 2012 The course Blocked course (from Oct. till Dec.) 5 ECTS credits (3VU) Content Embedded system design Hardware IP design HW/SW interaction Linux, drivers, networks, peripherals,... Soft skills (english, presentations, discussions,...) 11 participants 2

The Project 2012 Design of an embedded game console Game-console prototype on FPGA Embedded processor/linux as OS DVI Video out/monitor Audio out/sound Network support (multiplayer) Controllers/joysticks Encrypted games (security) on SDcard HDD support Goals Fast time to market, IP reuse, low cost 3

1 Overview System on Chip 2012 2 Hardware Team System Video Controller Audio SATA Ethernet/SD card 3 Crypto Team 4 Linux Team Objectives Processor Boot Process GUI 4

The System Platform Spartan 6 LX150T board 128MB DDR3-SDRAM 32MB NOR Flash 32MB + 8MB platform configuration Flash 10/100/1000 Ethernet interface SD card interface 5

Overview 6

DVI Basics (1) Digital Video Interface Lowest supported resolution: 640x480@60 Hz DDC (Display Data Channel) Support Extended display identification data Hot Pluggable Several different power states 7

DVI Basics (2) T.M.D.S. Transition Minimized Differential Signaling Advanced Encoding Algorithm Converts 8 bits into 10-bit transition minimized, DC balanced character Up to two TMDS links per DVI system On boot up just one is active 8

Design Choices DVI output 640x480@60 Hz resolution RGB color format Each color 8 bit Read data from framebuffer 9

Design Overview Figure : Video Design Overview 10

Overview 11

Playstation DualShock Controller Features: Digital button values Analog joysticks Analog button-pressure values (DualShock2 only) Rumble motors Serial peripheral interface (200 khz clock frequency) 5 to 21 byte data packets Configuration Polling of button states Polling command: 12

Hardware and Implementation Xilinx AXI-SPI core Slightly modified Xilinx SPI Linux driver Input device driver Configuration and polling of the controller Keyboard input events Sound events for motor control 13

Overview 14

Audio Processing LogiCORE IP AXI Timer Timer core with PWM Mode Generates sinus like signal External low pass filter and speaker amplifier Output via RST pin of ALI (Avnet LCD Interface) and GND 15

Audio Integration Linux module (driver) providing interface to games Driver writes values to core registers Core generates pulses for given frequency Duration of sound implemented with sleep-and-stop thread 16

Overview 17

SATA Host Controller Core (1) Hard disk to store games Old IDE standard SATA I (1.5 Gbps), SATA II (3 Gbps), SATA III (6 Gbps) Plan: implement SATA I Free SATA cores are rare, commercial ones are expensive Adapting free core from opencores to fit in our system Include into Linux using block device driver Many mistakes to be made Erroneous or missing documentation Bug within the Gigabit Transceiver Wizard for Spartan 6 Many problems solved 18

SATA Host Controller Core (2) 19

Overview 20

Ethernet 10/100/1000GBit Data transfer via DMA IPCore + external PHY 21

Overview 22

SD Card SPI legacy interface SD/SDHC compatible CS, MISO, MOSI, CLK@ 20MHz Copyright http://elasticsheep.com 23

Overview 24

The Crypto Team Objective: Integrate a crypto core for game de-/encryption. Implementation: Avalon AES core from OpenCores AXI4-lite bus interface Master key within the coprocessor Derivation and normal mode possible Linux drivers ufcrypt (CBC mode) 25

Crypto-Coprocessor Integration 26

Usage Example $ echo Plaintext0123456789 > p l a i n. t x t $ s t r i n g s 3 p l a i n. t x t Plaintext0123456789 $ cat p l a i n. t x t u f c r y p t e > c r y p t. bin $ s t r i n g s 3 c r y p t. bin Y! n ( f x $ cat c r y p t. bin u f c r y p t > p l a i n r e c o v e r e d. t x t $ sha1sum p l a i n. t x t c r y p t. bin p l a i n r e c o v e r e d. t x t e8663f1a35656a426c6da9e866e0aee4e630557d p l a i n. t x t 6e68728ef8233ac7b2a39a4a198d9870d3f32a3c c r y p t. bin e8663f1a35656a426c6da9e866e0aee4e630557d p l a i n r e c o v e r e d. t x t 27

Overview 28

Linux-Team Objectives Select an appropriate processor Run Linux on this processor Start Linux at power up Deploy a root FS Ethernet support Support other teams in Linux issues Basic start-up environment 29

Our Processor Microblaze processor 32 bit RISC Little endian MMU support 90MHz Barrel shifter Pipeline depth of 5 Linux kernel 3.5.0 from Xilinx 30

Linux - Userland Buildroot: package manager Bash: debug shell, scripts SDL: game library ncurses: user interface copyright http://buildroot.uclibc.org/ copyright http://www.libsdl.org/ 31

Boot Process 2 stage boot process First stage SRec Configuration Flash Second stage UBoot Denx Size Name Addresses 256KB UBoot 0x42000000 256KB UBoot env 0x42040000 5MB Kernel 0x42080000 2M SRec UBoot 0x42580000 - root FS 0x42780000 32

33

Video Driver Initialize the three cores for DVI video output Adapted the existing virtual framebuffer 34

GUI ncurses Spawns automatically on framebuffer Used as basic environment Automatically lists all installed games Functionality Install an encrypted game from an SD card Uninstall all games Start an installed game 35

Install and Launch Process Stored on the SD card game.crypt Encrypted tar.gz des.txt Decrypt and extract to a predefined location via Shell script Executed via Shell script 36

GUI 37

Singleplayer Game https://bitbucket.org/grouzen/snake-sdl Snake Patching from source It s built on SDL library SDL initialization without doublebuffering Resolution 640x480 //snake update world(...) 38

Multiplayer Game OpenPong v0.4.2 It s built on top of the SDL Remove background Resize canvas Change the redraw http://code.google.com/p/openpong/ 39

Demo 40