HW / SW Implementation Overview (0A) Young Won Lim 7/16/16

Similar documents
Accessibility (1A) Young Won Lim 8/22/13

FPGA RAM (C1) Young Won Lim 5/13/16

Latch Based Design (1A) Young Won Lim 2/18/15

RAM (1A) Young Won Lim 11/12/13

FPGA Configuration (1C) Young Won Lim 12/1/13

Algorithms Bubble Sort (1B) Young Won Lim 4/5/18

Class (1A) Young Won Lim 9/8/14

Functions (4A) Young Won Lim 5/8/17

Functions (4A) Young Won Lim 3/16/18

Field Programmable Gate Array (FPGA)

SP3Q.3. What makes it a good idea to put CRC computation and error-correcting code computation into custom hardware?

Overview (1A) Young Won Lim 9/14/17

Overview (1A) Young Won Lim 9/9/17

Lecture 41: Introduction to Reconfigurable Computing

Pointers (1A) Young Won Lim 11/1/17

Control & Status Registers. Young Won Lim 4/22/16

Structure (1A) Component

Overview (1A) Young Won Lim 9/25/17

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Eulerian Cycle (2A) Young Won Lim 4/26/18

Applications of Pointers (1A) Young Won Lim 12/26/17

INTRODUCTION TO FPGA ARCHITECTURE

Hardware-Software Codesign. 1. Introduction

Binary Search Tree (3A) Young Won Lim 6/2/18

FPGA: What? Why? Marco D. Santambrogio

Pointers (1A) Young Won Lim 1/5/18

Pointers (1A) Young Won Lim 1/9/18

Memory Arrays (4H) Gate Level Design. Young Won Lim 3/15/16

Binary Search Tree (2A) Young Won Lim 5/17/18

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

FPGA Based Digital Design Using Verilog HDL

Spiral 2-8. Cell Layout

Cache Memory. Young Won Lim 5/31/16

Content Addressable Memory (1A) Young Won Lim 6/1/16

Function Overview (1A) Young Won Lim 10/23/17

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

FPGAs: : Quality through Model Based Design and Implementation

COE 561 Digital System Design & Synthesis Introduction

Tiny CPU Data Path (2B) Young Won Lim 5/2/16

Memory (1A) Young Won Lim 9/7/17

Adders (A) Young Won Lim 10/7/13

ECE 459/559 Secure & Trustworthy Computer Hardware Design

The Use Of Virtual Platforms In MP-SoC Design. Eshel Haritan, VP Engineering CoWare Inc. MPSoC 2006

ECE 353 Lab 4. MIDI Receiver in Verilog. Professor Daniel Holcomb UMass Amherst Fall 2016

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Monad Background (3A) Young Won Lim 11/20/17

Binary Search Tree (3A) Young Won Lim 6/4/18

Planar Graph (7A) Young Won Lim 5/21/18

Binary Search Tree (3A) Young Won Lim 6/6/18

ELF (1A) Young Won Lim 10/22/14

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

Methods (2A) Young Won Lim 10/14/14

Day08 A. Young W. Lim Mon. Young W. Lim Day08 A Mon 1 / 27

What is Xilinx Design Language?

LSN 1 Digital Design Flow for PLDs

FPGAs: High Assurance through Model Based Design

Programmable Logic Design Techniques I

Pthread (9A) Pthread

Processors. Young W. Lim. May 12, 2016

A Sudoku Solver (1A) Richard Bird Implementation. Young Won Lim 11/15/16

Applications of Arrays (1A) Young Won Lim 2/11/17

Planar Graph (7A) Young Won Lim 6/20/18

Variables (2D) Young Won Lim 3/28/18

CORDIC Fixed Point Simulation. Young Won Lim 2/28/12

Introduction to VHDL Design on Quartus II and DE2 Board

Topics. Midterm Finish Chapter 7

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Chapter 13 Programmable Logic Device Architectures

Algorithms (7A) Young Won Lim 4/10/17

ECE 545 Lecture 12. FPGA Resources. George Mason University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Topics. FPGA Design EECE 277. Interconnect and Logic Elements Part 2. Laboratory Assignment #1 Save Everything!!! Guest Lecture

Algorithms (7A) Young Won Lim 4/18/17

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien

Pointers (1A) Young Won Lim 1/14/18

Methods (2A) Young Won Lim 12/10/14

RTL Coding General Concepts

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

The Complexity of Algorithms (3A) Young Won Lim 4/3/18

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

Programming Multicore Systems

FABRICATION TECHNOLOGIES

Advanced FPGA Design Methodologies with Xilinx Vivado

Programmable Logic Devices HDL-Based Design Flows CMPE 415

Digital Systems Laboratory

Digital Systems Design. System on a Programmable Chip

GHCi: Getting started (1A) Young Won Lim 5/26/17

Example 3 : using a structure array. Young Won Lim 11/25/17

Processors. Young W. Lim. May 9, 2016

Pointers (1A) Young Won Lim 3/5/18

Embedded Controller Design. CompE 270 Digital Systems - 5. Objective. Application Specific Chips. User Programmable Logic. Copyright 1998 Ken Arnold 1

Hardware-Software Codesign. 1. Introduction

The Xilinx XC6200 chip, the software tools and the board development tools

! Program logic functions, interconnect using SRAM. ! Advantages: ! Re-programmable; ! dynamically reconfigurable; ! uses standard processes.

Don t expect to be able to write and debug your code during the lab session.

Polymorphism Overview (1A) Young Won Lim 2/20/18

Haskell Overview IV (4A) Young Won Lim 10/13/16

ICS 252 Introduction to Computer Design

Applications of Structures (1A) Young Won Lim 12/8/17

Transcription:

HW / SW Implementation

Copyright (c) 213-216 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Please send corrections (or suggestions) to youngwlim@hotmail.com. This document was produced by using OpenOffice and Octave.

HW Implementation ASIC (Application Specific Integrated Circuit) RTL design always @(posedge clk) if (load) q = d; Logic Synthesis Gate netlist Physical Synthesis i s i1 U U 2 s b U 1 a a 1 U 3 z clk D Q mask GDS 3

NAND Gate A Transistor Level A Layout A Gate Level A Wafer processed 4

SW Implementation C++ / Java Code int i, s=; for(i=; i<1; ++i) s+= i; Compile Assembly Code addi $s1, $, add $s, $, $ addi $t, $, 1... Link with libraries ELF 5

OS Kernel Process Management Multitasking Interrupts Modes Memory Management Virtual Memory Disk access File System Device Drivers 6

Interrupt Asynchronous INT ISR2 ISR2 Hardware Interrupt User Mode Non-user Mode Synchronous Software Interrupt Instruction SWI ISR4 ISR4 INT x8... Software Interrupt User Mode Non-user Mode 7

Interrupt and Parallelism Asynchronous INT ISR2 ISR2 Hardware Interrupt User Mode Non-user Mode Two parallel threads of execution Simulate parallelism Time sharing 8

Timer & Interrupt Timer TRG_IncTick() INT TMR_Init() ISR CheckCallbacks() Hardware Interrupt void main(void) { TMR_Init(); TRG_Init(); EnableInterrupt(); callback(data) } TRG_SetTrigger( ); for ( ; ; ); Setting callback function & data 9

Multi-tasking Time Slice Time Sharing Round Robin Scheduling Context Switching Task A Thread Task B Thread Task C Thread timer tick interrupt A B C A B C 1

GPIO read from port address write to port address D Q write to port direction register D Q 11

HW (ASIC) & SW Implementations HW (ASIC) RTL design SW C++ / Java Code Logic Synthesis Compile Gate netlist Assembly Code GDS Physical Synthesis Parallelism is ensured by spatial allotment in a chip ELF Link with libraries Parallelism is ensured by temporal processing on a processor 12

FPGA Architecture A Logic Block FPGA (Field Programmable Gate Array) A Configurable Interconnection 13

Implementing Boolean Functions Memory Size : 2 3 x 1 x y z F 1 2 3 1 1 1 1 1 1 1 1 A Logic Block 4 5 6 7 1 1 1 1 1 1 1 1 1 address 3bits 1 index inputs output Data 1 bit A Truth Table LUT (Look up table) Combinational Logic 14

Configuring Logic Blocks A Logic Block LUT SRAM cells An 2-bit SRAM cell select 15

Configuring Interconnections An 1-bit SRAM cell An 1-bit SRAM cell 16

HW (FPGA) Implementations HW (FPGA) RTL design Logic Synthesis An 1-bit SRAM cell An 1-bit SRAM cell Gate netlist * LUTs, FF, etc Physical Synthesis Programming File FPGA configuration information An 2-bit SRAM cell select LUT SRAM cells 17

HW (FPGA) & SW Implementations HW (FPGA) RTL design Gate netlist Logic Synthesis SW C++ / Java Code Compile Assembly Code Physical Synthesis Link with libraries Programming File FPGA configuration information ELF 111111... FPGA configuration information 111... Machine Instructions of a processor 18

References [1] http://en.wikipedia.org/ [2] D.M. Harris, S. L. Harris, Digital Design and Computer Architecture