facilitating cross-fpga platform designs using “virtual...

21
Facilitating Cross-FPGA Platform Designs Using “Virtual” Platforms Angshuman Parashar Michael Adler Joel Emer VSSAD, Intel {angshuman.parashar, michael.adler, joel.emer} @intel.com

Upload: others

Post on 27-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

Facilitating Cross-FPGA Platform Designs Using “Virtual” Platforms

Angshuman ParasharMichael Adler

Joel Emer

VSSAD, Intel

{angshuman.parashar, michael.adler, joel.emer}@intel.com

Page 2: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

2

Outline

• History and Motivation• Virtual Platforms• Hybrid Hardware/Software Modules• Demo

Page 3: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

3

History and Motivation

Model

XUP BoardLEDs and Switches

(image source: xilinx.com)

Top Level Wires

BDPI

Software SimulatorProcesses

(image source: intel.com)

Page 4: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

4

History and Motivation

XUP Model “Sim” ModelTop Level Wires BDPI

XUP BoardLEDs and Switches

(image source: xilinx.com)

Software SimulatorProcesses

(image source: intel.com)

Page 5: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

5

History and Motivation

Platform Independent Model

XUP Front PanelTop Level Wires

“Sim” Front PanelBDPI

front_panel.writeLED()

Plug N Play

Virtual Platform

XUP BoardLEDs and Switches

(image source: xilinx.com)

Software SimulatorProcesses

(image source: intel.com)

Page 6: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

6

Virtual Platform

• Set of Abstractions– Provide common set of functionalities across multiple

physical-platforms• Intel FSB• Bluesim/Vsim• PCI-express• XUP

– Leverage Asim Plug N Play• Minimize module replacements/recoding while moving across

platforms

– Functionality + Efficiency

Page 7: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

7

Virtual Platform

Channel IO

Exe

Decode

Device 1

Virtual Devices

Fetch

Mem

Timing + Functional Modules

Virtual PlatformPlatform Interface

Physical Platform

Device 2Device 0

Soft Connections

Page 8: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

8

Virtual Platform on XUP

Exe

Decode

VGA

Virtual Devices

Fetch

Mem

Timing + Functional Modules

Virtual PlatformPlatform Interface

LEDsSwitches

MemoryFront Panel

Soft Connections

VGA On-BoardMemory

Page 9: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

9

Virtual Platform on Simulator

Channel IO

Exe

Decode

VGA

Virtual Devices

Fetch

Mem

Timing + Functional Modules

Virtual PlatformPlatform Interface

Bluesim

MemoryFront Panel

Soft Connections

Std. I/O

Page 10: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

10

Virtual Platform on Intel FSB

Channel IO

Exe

Decode

VGA

Virtual Devices

Fetch

Mem

Timing + Functional Modules

Virtual PlatformPlatform Interface

FSB

MemoryFront Panel

Soft Connections

SoftwareSupport

Page 11: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

11

Hybrid Hardware/Software Modules

• Split module functionality between FPGA and software

• Leverage Virtual Platform Infrastructure

Page 12: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

12

Hybrid Modules

Channel IO

HRRR Client + Server

FPGA Modules

Virtual Platform

Platform Interface

Channel IO

HRRR Client + Server

Hardware Software

Software Modules

MemoryFront Panel

ExeDecodeFetch

FuncModelControl Decode

Front Panel Memory

HAsim Remote Request/Response (HRRR)HAsim Remote Request/Response (HRRR)

Page 13: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

13

HRRR: Intel FSB

Channel IO

HRRR Client + Server

FPGA Modules

Virtual Platform

Platform Interface

Channel IO

HRRR Client + Server

Hardware Software

Software Modules

MemoryFront Panel

FSB Driver

ExeDecodeFetch

FuncModelControl Decode

Front Panel Memory

Page 14: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

14

HRRR: Simulator

Channel IO

HRRR Client + Server

FPGA Modules

Virtual Platform

Platform Interface

Channel IO

HRRR Client + Server

Hardware Software

Software Modules

MemoryFront Panel

UNIX pipe

ExeDecodeFetch

FuncModelControl Decode

Front Panel Memory

Page 15: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

15

Hybrid Modules• Server module

– Publishes the following:• init() method name (e.g. fetch_server_init())• RRR service string (e.g. “FETCH”)

– Build process collects these and generates global services table– Server main reads services table (during pre-processing) and

registers all service modules by calling init()• Client module

– Reads global services table– serviceID = serviceTable.search(“FETCH”);– reqID = RRRClient.sendReq(serviceID, params…)– result = RRRClient.getResp(reqID);

Page 16: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

16

Hybrid Modules (cont.)• Module definition

– hybrid_fetch_unit.awb• %sources –t BSV –v PUBLIC hardware_fetch_unit.bsv• %sources –t CPP –v PUBLIC software_fetch_unit.h• %sources –t CPP –v PRIVATE software_fetch_unit.cpp

• Build process– Collects BSVs and generates “hardware” bitfile or

simulation binary– Collects CPPs and generates “software” binary

• Runtime– Software binary loads bitfile onto FPGA, or forks off

simulation “hardware” binary– Software sends “start” HRRR request to Hardware

Page 17: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

Demo

Page 18: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

Backup Slides

Page 19: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

19

“Sim” Front Panel

Page 20: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

20

Hybrid Front Panel

Page 21: Facilitating Cross-FPGA Platform Designs Using “Virtual ...csg.csail.mit.edu/bluespec/talks/11-Parashar... · • Set of Abstractions – Provide common set of functionalities across

21

Running on Bluesim…