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

Post on 27-Sep-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Facilitating Cross-FPGA Platform Designs Using “Virtual” Platforms

Angshuman ParasharMichael Adler

Joel Emer

VSSAD, Intel

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

2

Outline

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

3

History and Motivation

Model

XUP BoardLEDs and Switches

(image source: xilinx.com)

Top Level Wires

BDPI

Software SimulatorProcesses

(image source: intel.com)

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)

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)

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

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

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

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

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

11

Hybrid Hardware/Software Modules

• Split module functionality between FPGA and software

• Leverage Virtual Platform Infrastructure

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)

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

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

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);

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

Demo

Backup Slides

19

“Sim” Front Panel

20

Hybrid Front Panel

21

Running on Bluesim…

top related