SlideShare a Scribd company logo
1 of 1
Download to read offline
A Heterogeneous Framework for Co-emulation
Using ALDEC FPGA and QEMU-SystemC
=
Fig. 3. Effective bandwidth of the DRAM module
Fig. 1. Block diagram of the heterogeneous simulation framework
The architecture of the heterogeneous simulation
framework is plotted in Fig. 1., including a fast and
powerful instruction set simulator, QEMU, the ALDEC
FPGA and a set of software modules for communication.
Here we describe those modules in detail.
QEMU (short for "Quick EMUlator") is an
open-source hosted hypervisor that performs hardware
virtualization. QEMU is a hosted virtual machine monitor.
It emulates the behaviors of the CPU through dynamic
binary translation and provides a set of device models so
it can run a variety of unmodified guest operating
systems.
QEMU-SystemC is an open source
hardware/software emulation framework for the SoC
development provided by GreenSoC Corporation. It allows
devices to be inserted into specific addresses of QEMU
and communicates through the PCI/AMBA bus or the
MMIO interface.
ALDEC’s FPGA and its HES-DVM (hardware
emulation system development tools) enables Hardware
and Software Co-Verification utilizing a SCE-MI
infrastructure which connects TLM modules to the DUT
residing in hardware via high-speed AXI and AHB bus
transactors. TLM modules can include virtual platforms
utilizing the latest embedded processors, peripherals, and
complete OS platforms for a complete SoC environment
within HES-DVM.
A typical system design flow is often separated into
several stages, such as the hardware/software partition
and the co-verification. The bottleneck of a design flow
usually occurs in the communication between the
hardware and the software. Therefore, the ability to
co-simulate the hardware/software interface fast and
accurate is important in system-level design.
In this work, we achieve efficient HW/SW
co-verification through replacing the DRAM model of an
instruction set simulator (ISS), QEMU, with the hardware
DRAM modules provided by ALDEC’s FPGA.
To test the framework, we compare the read/write
bandwidth of the DRAM system using several synthetic
benchmarks with read/write operations only. The results
are show in Fig. 3.
Through Fig. 3, we find that the bandwidth between
random access and sequential access has no difference,
corresponding to the characteristic of DRAM, and the
bandwidth of byte access is much less than the others,
because the access unit of the DRAM in FPGA is word, so
we need to do further manipulations.
Introduction
Simulation Framework
Simulation Flow
學生:B99902025 吳佳倫
指導教授:楊佳玲
Experiment Results
Fig. 2. Simulation flow of the FPGA implemented as SystemC module
The DRAM modules provided by the FPGA are
implemented as an I/O device in QEMU. In QEMU,
treatment to the memory access instructions is
determined by the address. If the address is for I/O
operations, corresponding I/O interfaces (implemented as
callback functions) and interrupt handlers are invoked so
the CPU can communicate with the I/O device.
The simulation flow is plotted in Fig. 1 and 2. The
SystemC module is registered as a MMIO device in QEMU,
as well as the callback function, sc_write and sc_read. If
the guest OS accesses the MMIO memory region, sc_read
or sc_write is called and the corresponding transaction is
then passed to the GreenRouter through the TLM2 Socket.
The GreenRouter access the SystemC Device based on the
memory address (more than on SystemC devices are
possible).
We add the API calls of the ALDEC FPGA in the SystemC
function which is sensitive to read/write operations to
send the read/write requests to FPGA. The results are
then sent back from FPGA through the transactor.

More Related Content

Viewers also liked

Viewers also liked (11)

Kernel Recipes 2016 -
Kernel Recipes 2016 - Kernel Recipes 2016 -
Kernel Recipes 2016 -
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
 
QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
 
Persistent Storage in Openshift using GlusterFS
Persistent Storage in Openshift using GlusterFSPersistent Storage in Openshift using GlusterFS
Persistent Storage in Openshift using GlusterFS
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
 
TechDay - April - Customizing VM Images
TechDay - April - Customizing VM ImagesTechDay - April - Customizing VM Images
TechDay - April - Customizing VM Images
 
Dave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMUDave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMU
 
Mastering kvm virtualization- A complete guide of KVM virtualization
Mastering kvm virtualization- A complete guide of KVM virtualizationMastering kvm virtualization- A complete guide of KVM virtualization
Mastering kvm virtualization- A complete guide of KVM virtualization
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 

Similar to poster

AMulti-coreSoftwareHardwareCo-DebugPlatform_Final
AMulti-coreSoftwareHardwareCo-DebugPlatform_FinalAMulti-coreSoftwareHardwareCo-DebugPlatform_Final
AMulti-coreSoftwareHardwareCo-DebugPlatform_Final
Alan Su
 
MPSoC Platform Design and Simulation for Power %0A Performance Estimation
MPSoC Platform Design and  Simulation for Power %0A Performance EstimationMPSoC Platform Design and  Simulation for Power %0A Performance Estimation
MPSoC Platform Design and Simulation for Power %0A Performance Estimation
Zhengjie Lu
 
Performance evaluation of ecc in single and multi( eliptic curve)
Performance evaluation of ecc in single and multi( eliptic curve)Performance evaluation of ecc in single and multi( eliptic curve)
Performance evaluation of ecc in single and multi( eliptic curve)
Danilo Calle
 

Similar to poster (20)

AMulti-coreSoftwareHardwareCo-DebugPlatform_Final
AMulti-coreSoftwareHardwareCo-DebugPlatform_FinalAMulti-coreSoftwareHardwareCo-DebugPlatform_Final
AMulti-coreSoftwareHardwareCo-DebugPlatform_Final
 
ate_full_paper
ate_full_paperate_full_paper
ate_full_paper
 
ICT III - MPMC - Answer Key.pdf
ICT III - MPMC - Answer Key.pdfICT III - MPMC - Answer Key.pdf
ICT III - MPMC - Answer Key.pdf
 
Convolution
ConvolutionConvolution
Convolution
 
Spie2006 Paperpdf
Spie2006 PaperpdfSpie2006 Paperpdf
Spie2006 Paperpdf
 
Avionics Paperdoc
Avionics PaperdocAvionics Paperdoc
Avionics Paperdoc
 
MGC_DVCon_13_Easy_Steps_Towards_Virtual_Prototyping_Using_the_SystemVerilog_D...
MGC_DVCon_13_Easy_Steps_Towards_Virtual_Prototyping_Using_the_SystemVerilog_D...MGC_DVCon_13_Easy_Steps_Towards_Virtual_Prototyping_Using_the_SystemVerilog_D...
MGC_DVCon_13_Easy_Steps_Towards_Virtual_Prototyping_Using_the_SystemVerilog_D...
 
Microcontroller Based Testing of Digital IP-Core
Microcontroller Based Testing of Digital IP-CoreMicrocontroller Based Testing of Digital IP-Core
Microcontroller Based Testing of Digital IP-Core
 
Design and performance analysis of efficient hybrid mode multi-ported memory...
Design and performance analysis of efficient hybrid mode  multi-ported memory...Design and performance analysis of efficient hybrid mode  multi-ported memory...
Design and performance analysis of efficient hybrid mode multi-ported memory...
 
Co emulation of scan-chain based designs
Co emulation of scan-chain based designsCo emulation of scan-chain based designs
Co emulation of scan-chain based designs
 
IRJET- A Review- FPGA based Architectures for Image Capturing Consequently Pr...
IRJET- A Review- FPGA based Architectures for Image Capturing Consequently Pr...IRJET- A Review- FPGA based Architectures for Image Capturing Consequently Pr...
IRJET- A Review- FPGA based Architectures for Image Capturing Consequently Pr...
 
HSAemu a Full System Emulator for HSA
HSAemu a Full System Emulator for HSA HSAemu a Full System Emulator for HSA
HSAemu a Full System Emulator for HSA
 
FPGAs memory synchronization and performance evaluation using the open compu...
FPGAs memory synchronization and performance evaluation  using the open compu...FPGAs memory synchronization and performance evaluation  using the open compu...
FPGAs memory synchronization and performance evaluation using the open compu...
 
AFFECT OF PARALLEL COMPUTING ON MULTICORE PROCESSORS
AFFECT OF PARALLEL COMPUTING ON MULTICORE PROCESSORSAFFECT OF PARALLEL COMPUTING ON MULTICORE PROCESSORS
AFFECT OF PARALLEL COMPUTING ON MULTICORE PROCESSORS
 
Affect of parallel computing on multicore processors
Affect of parallel computing on multicore processorsAffect of parallel computing on multicore processors
Affect of parallel computing on multicore processors
 
Server Emulator and Virtualizer for Next-Generation Rack Servers
Server Emulator and Virtualizer for Next-Generation Rack ServersServer Emulator and Virtualizer for Next-Generation Rack Servers
Server Emulator and Virtualizer for Next-Generation Rack Servers
 
Bc0040
Bc0040Bc0040
Bc0040
 
UNIT 1 SONCA.pptx
UNIT 1 SONCA.pptxUNIT 1 SONCA.pptx
UNIT 1 SONCA.pptx
 
MPSoC Platform Design and Simulation for Power %0A Performance Estimation
MPSoC Platform Design and  Simulation for Power %0A Performance EstimationMPSoC Platform Design and  Simulation for Power %0A Performance Estimation
MPSoC Platform Design and Simulation for Power %0A Performance Estimation
 
Performance evaluation of ecc in single and multi( eliptic curve)
Performance evaluation of ecc in single and multi( eliptic curve)Performance evaluation of ecc in single and multi( eliptic curve)
Performance evaluation of ecc in single and multi( eliptic curve)
 

poster

  • 1. A Heterogeneous Framework for Co-emulation Using ALDEC FPGA and QEMU-SystemC = Fig. 3. Effective bandwidth of the DRAM module Fig. 1. Block diagram of the heterogeneous simulation framework The architecture of the heterogeneous simulation framework is plotted in Fig. 1., including a fast and powerful instruction set simulator, QEMU, the ALDEC FPGA and a set of software modules for communication. Here we describe those modules in detail. QEMU (short for "Quick EMUlator") is an open-source hosted hypervisor that performs hardware virtualization. QEMU is a hosted virtual machine monitor. It emulates the behaviors of the CPU through dynamic binary translation and provides a set of device models so it can run a variety of unmodified guest operating systems. QEMU-SystemC is an open source hardware/software emulation framework for the SoC development provided by GreenSoC Corporation. It allows devices to be inserted into specific addresses of QEMU and communicates through the PCI/AMBA bus or the MMIO interface. ALDEC’s FPGA and its HES-DVM (hardware emulation system development tools) enables Hardware and Software Co-Verification utilizing a SCE-MI infrastructure which connects TLM modules to the DUT residing in hardware via high-speed AXI and AHB bus transactors. TLM modules can include virtual platforms utilizing the latest embedded processors, peripherals, and complete OS platforms for a complete SoC environment within HES-DVM. A typical system design flow is often separated into several stages, such as the hardware/software partition and the co-verification. The bottleneck of a design flow usually occurs in the communication between the hardware and the software. Therefore, the ability to co-simulate the hardware/software interface fast and accurate is important in system-level design. In this work, we achieve efficient HW/SW co-verification through replacing the DRAM model of an instruction set simulator (ISS), QEMU, with the hardware DRAM modules provided by ALDEC’s FPGA. To test the framework, we compare the read/write bandwidth of the DRAM system using several synthetic benchmarks with read/write operations only. The results are show in Fig. 3. Through Fig. 3, we find that the bandwidth between random access and sequential access has no difference, corresponding to the characteristic of DRAM, and the bandwidth of byte access is much less than the others, because the access unit of the DRAM in FPGA is word, so we need to do further manipulations. Introduction Simulation Framework Simulation Flow 學生:B99902025 吳佳倫 指導教授:楊佳玲 Experiment Results Fig. 2. Simulation flow of the FPGA implemented as SystemC module The DRAM modules provided by the FPGA are implemented as an I/O device in QEMU. In QEMU, treatment to the memory access instructions is determined by the address. If the address is for I/O operations, corresponding I/O interfaces (implemented as callback functions) and interrupt handlers are invoked so the CPU can communicate with the I/O device. The simulation flow is plotted in Fig. 1 and 2. The SystemC module is registered as a MMIO device in QEMU, as well as the callback function, sc_write and sc_read. If the guest OS accesses the MMIO memory region, sc_read or sc_write is called and the corresponding transaction is then passed to the GreenRouter through the TLM2 Socket. The GreenRouter access the SystemC Device based on the memory address (more than on SystemC devices are possible). We add the API calls of the ALDEC FPGA in the SystemC function which is sensitive to read/write operations to send the read/write requests to FPGA. The results are then sent back from FPGA through the transactor.