SlideShare una empresa de Scribd logo
w w w . e m b e d d e d o n l i n e c o n f e r e n c e . c o m
Firmware Co-Design &
Development for IP Cores
Dr Seyed Amir Alavi
in C++/SystemC using Verilator
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
AGENDA
1 Co-design of firmware and
FPGA IP cores
2 Introduction to SystemC
and simulation of logic
blocks in C++
3 How to use Verilator for
simulation of IP cores
written in Verilog HDL
4 Advanced use- cases: Protecting
verilated models and real-time
simulation
5 Tutorial: Showcasing usage of
Verilator, SystemC, CMake build
system, and GTKWave
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
THE SPEAKER
Embedded Software Engineer
Focus: Design of embedded software for
control systems of quantum computers
As an embedded systems engineer, I have designed
different types of products in several areas such as the
Internet of Things (IoT), industrial control systems, and
communication networks. I try to employ the latest
technologies for software and hardware development,
from embedded Linux to different real-time operating
systems, and agile software development processes.
Model-based embedded system design and
implementation is my main expertise, which I have done
during the last several years. I have published several
papers in high impact engineering journals and presented
my research in top rank conferences around the world.
Currently, I am working at Riverlane on the design
of control systems for quantum computers.
Dr Seyed Amir Alavi
https://samiralavi.github.io
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
The Operating
System for Error
Corrected
Quantum
Computers
https://www.riverlane.com/vacancies/
Co-design & development of
firmware and FPGA IP cores
What is co-design? Co-designBest Practices.
1
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Co-Design Process
A common approach for building the prototype (with SW & HW)
Requirements
Analysis
Product
Definition
HW/SW
Functional
Decomposition
HW
Design
SW
Design
Development
Fabrication
Integration
and Testing
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Co-Design Key Concepts
Classic design:
• HW/SW trade-offs are limited
• Less communicationneeded between HW/SW teams
• System integration is time consuming
• Costly modificationsduring development
Co-Design:
• Concurrent development of HW/SW
• Integration happens more frequently with simulators
• Modification are cheaper
• Simulation requires skillset
The meeting of system-level objectives by exploiting the trade-offs between
hardware and software in a system through their concurrent design.
Classic
Design
Co-
Design
SW HW SW HW
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Motivations for Co-Design
• Meeting short time to market
• Verification starts earlier Catching issues earlier Higher quality
• Benefits the design of embedded systems and SoCs, which need HW/SW
tailored for a particular application:
• Faster integration: reduced design time and cost
• Better integration:lower cost and better performance
• Verified integration:fewer errors and number of iterations
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Co-Design Approach for IP Cores
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Agile Co-Design Process with IP Simulation
Requirements
Analysis
Product
Definition
HW/SW
Functional
Decomposition
HW
Design
SW
Design
Development
Fabrication
Integration
and Testing
Simulation
(verilator)
Simulation
(SystemC)
Verification Production Release
Introduction to SystemC and
simulation of logic blocks in C++
2
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
What is SystemC?
• SystemC is a modelling language built as a C++ library
• Models software and hardware components
• System-level modeling
• Abstract analog/mixed-signalmodeling
• Architectural exploration
• Used for:
• Performance modeling
• Functional verification
• High-level simulation (cycle-accurate)
• Open source (Apache License)
• Developed by the Accellera Systems Initiative
• IEEE Std. 1666-2011
• https://github.com/accellera-official/systemc
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Component Definitions in SystemC
Main classes (features, components) of SystemC
• Module
• Port
• Process
• Channel
• Event
Reference: https://learnsystemc.com/
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Modules and Channels
A SystemC module is:
• The smallest container of functionality with state, behavior, and structure for
hierarchical connectivity.
• A C++ class, which inherits a SystemC basic class: sc_module.
• The principle structural building block of SystemC.
• Represents a componentof a real system.
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
SystemC Framework Architecture
• Requires a C++ development environment
• SystemC basic components:
• Core Language
• Data Types
• Elementary Channels
• Transaction Level Modelling (TLM)
• Abstracts bus transactions such as AXI bus
• The most commonly used level of abstraction
• SystemC Verification (SCV)
• Used for verification of FPGA IPs
• Aims to replace HDL test benches
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Virtual Platform Modelling (cont.)
How to use Verilator for simulation
of IP cores written in Verilog HDL
3
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Verilator
Verilator is a tool that compiles Verilog and SystemVerilog sources to
highly optimized cycle-accurate C++ or SystemC code.
• Time evolution is cycle-based
• No circuit timing (analog propagation time is 0)
• Extremely fast simulation
• Simulates what SW expects from the HW
• Only synthesizable Verilog/SystemVerilog code (few exceptions)
• Verilator is open-source and free both as in free beer and free speech
https://verilator.org/
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
SystemC Hello World
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
SystemC Module
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Top Package with Test Bench
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Compilation,
Linking, and
Simulation
Advanced use cases
• Sharing Protected IPs with Verilator
• Co-Simulation of System with QEMU
4
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Sharing Protected IPs with Verilator
Vendordependent approach
Example:Xilinx
Verilatorapproach
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
Co-Simulation of System with QEMU
Example reference with Xilinx tools
Source: Xilinx Quick
Emulator:User Guide
(UG1169)
Tutorial
Showcasing usage of Verilator, SystemC, CMake build
system, and GTKWave
Source code available here:
https://github.com/samiralavi/fw-codesign-eoc-2022
5
© E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com
References
I have used the following references in making the slides:
• System On Chip Design Introduction, Hao Zheng, 2010
• Hardware-Software Codesign,Pao-Ann Hsiung, 2005
• DPI Protected Verilog Instead of Encryption, Todd Strader, ORConf 2019
• https://veripool.org/verilator/documentation/
• https://www.xilinx.com/
• https://accellera.org/
• https://learnsystemc.com/
• https://www.itsembedded.com/dhd/
w w w . e m b e d d e d o n l i n e c o n f e r e n c e . c o m
w w w . e m b e d d e d o n l i n e c o n f e r e n c e . c o m
THANK YOU

Más contenido relacionado

La actualidad más candente

How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
Sameh El-Ashry
 
Basics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesBasics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow Devices
Arrow Devices
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology Tutorial
Arrow Devices
 
I2C
I2CI2C
Introduction to stm32-part1
Introduction to stm32-part1Introduction to stm32-part1
System verilog assertions
System verilog assertionsSystem verilog assertions
System verilog assertions
HARINATH REDDY
 
Advances in Verification - Workshop at BMS College of Engineering
Advances in Verification - Workshop at BMS College of EngineeringAdvances in Verification - Workshop at BMS College of Engineering
Advances in Verification - Workshop at BMS College of Engineering
Ramdas Mozhikunnath
 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Mostafa Khamis
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
Amr Rashed
 
Verilog Tasks and functions
Verilog Tasks and functionsVerilog Tasks and functions
Verilog Tasks and functions
Vinchipsytm Vlsitraining
 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
Anurag Tomar
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
Nirav Desai
 
Spyglass dft
Spyglass dftSpyglass dft
Spyglass dft
kumar gavanurmath
 
Functions and tasks in verilog
Functions and tasks in verilogFunctions and tasks in verilog
Functions and tasks in verilog
Nallapati Anindra
 
System verilog important
System verilog importantSystem verilog important
System verilog important
elumalai7
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
Ramdas Mozhikunnath
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
Maryala Srinivas
 
Digital System Design and FPGA
Digital System Design and FPGADigital System Design and FPGA
Digital System Design and FPGA
Amairullah Khan Lodhi
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
sean chen
 
ATPG Methods and Algorithms
ATPG Methods and AlgorithmsATPG Methods and Algorithms
ATPG Methods and Algorithms
Deiptii Das
 

La actualidad más candente (20)

How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
 
Basics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesBasics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow Devices
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology Tutorial
 
I2C
I2CI2C
I2C
 
Introduction to stm32-part1
Introduction to stm32-part1Introduction to stm32-part1
Introduction to stm32-part1
 
System verilog assertions
System verilog assertionsSystem verilog assertions
System verilog assertions
 
Advances in Verification - Workshop at BMS College of Engineering
Advances in Verification - Workshop at BMS College of EngineeringAdvances in Verification - Workshop at BMS College of Engineering
Advances in Verification - Workshop at BMS College of Engineering
 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
 
Verilog Tasks and functions
Verilog Tasks and functionsVerilog Tasks and functions
Verilog Tasks and functions
 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
Spyglass dft
Spyglass dftSpyglass dft
Spyglass dft
 
Functions and tasks in verilog
Functions and tasks in verilogFunctions and tasks in verilog
Functions and tasks in verilog
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
 
Digital System Design and FPGA
Digital System Design and FPGADigital System Design and FPGA
Digital System Design and FPGA
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
 
ATPG Methods and Algorithms
ATPG Methods and AlgorithmsATPG Methods and Algorithms
ATPG Methods and Algorithms
 

Similar a Firmware Co-Design & Development for IP Cores in C++/SystemC using Verilator

Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
ShapeBlue
 
Introduction to architecture exploration
Introduction to architecture explorationIntroduction to architecture exploration
Introduction to architecture exploration
Deepak Shankar
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
NECST Lab @ Politecnico di Milano
 
Clean architecture
Clean architectureClean architecture
Clean architecture
Travis Frisinger
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI career
Sameh El-Ashry
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution Toolkit
Dimitry Snezhkov
 
Boris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStackBoris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStack
ShapeBlue
 
Resume
ResumeResume
Resume
Vinay Patil
 
2014 12-10 aimee
2014 12-10 aimee2014 12-10 aimee
2014 12-10 aimee
Design World
 
Solving the System-Level Design Riddle
Solving the System-Level Design RiddleSolving the System-Level Design Riddle
Solving the System-Level Design Riddle
Design World
 
Mentoring Session with Innovesia: Advance Robotics
Mentoring Session with Innovesia: Advance RoboticsMentoring Session with Innovesia: Advance Robotics
Mentoring Session with Innovesia: Advance Robotics
Dony Riyanto
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
Amazon Web Services
 
Hemanth_Krishnan_resume
Hemanth_Krishnan_resumeHemanth_Krishnan_resume
Hemanth_Krishnan_resume
Hemanth Krishnan
 
High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
The UberCloud
 
High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
Wolfgang Gentzsch
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up Budget
DevOps.com
 
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit EbnerThe NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
NRB
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
Christopher Diamantopoulos
 
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET CoreITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp
 
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesTechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
Dag Sonstebo
 

Similar a Firmware Co-Design & Development for IP Cores in C++/SystemC using Verilator (20)

Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
 
Introduction to architecture exploration
Introduction to architecture explorationIntroduction to architecture exploration
Introduction to architecture exploration
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI career
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution Toolkit
 
Boris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStackBoris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStack
 
Resume
ResumeResume
Resume
 
2014 12-10 aimee
2014 12-10 aimee2014 12-10 aimee
2014 12-10 aimee
 
Solving the System-Level Design Riddle
Solving the System-Level Design RiddleSolving the System-Level Design Riddle
Solving the System-Level Design Riddle
 
Mentoring Session with Innovesia: Advance Robotics
Mentoring Session with Innovesia: Advance RoboticsMentoring Session with Innovesia: Advance Robotics
Mentoring Session with Innovesia: Advance Robotics
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Hemanth_Krishnan_resume
Hemanth_Krishnan_resumeHemanth_Krishnan_resume
Hemanth_Krishnan_resume
 
High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
 
High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up Budget
 
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit EbnerThe NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
 
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET CoreITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
 
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesTechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
 

Último

Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
devvsandy
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 

Último (20)

Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 

Firmware Co-Design & Development for IP Cores in C++/SystemC using Verilator

  • 1. w w w . e m b e d d e d o n l i n e c o n f e r e n c e . c o m Firmware Co-Design & Development for IP Cores Dr Seyed Amir Alavi in C++/SystemC using Verilator
  • 2. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com AGENDA 1 Co-design of firmware and FPGA IP cores 2 Introduction to SystemC and simulation of logic blocks in C++ 3 How to use Verilator for simulation of IP cores written in Verilog HDL 4 Advanced use- cases: Protecting verilated models and real-time simulation 5 Tutorial: Showcasing usage of Verilator, SystemC, CMake build system, and GTKWave
  • 3. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com THE SPEAKER Embedded Software Engineer Focus: Design of embedded software for control systems of quantum computers As an embedded systems engineer, I have designed different types of products in several areas such as the Internet of Things (IoT), industrial control systems, and communication networks. I try to employ the latest technologies for software and hardware development, from embedded Linux to different real-time operating systems, and agile software development processes. Model-based embedded system design and implementation is my main expertise, which I have done during the last several years. I have published several papers in high impact engineering journals and presented my research in top rank conferences around the world. Currently, I am working at Riverlane on the design of control systems for quantum computers. Dr Seyed Amir Alavi https://samiralavi.github.io
  • 4. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com The Operating System for Error Corrected Quantum Computers https://www.riverlane.com/vacancies/
  • 5. Co-design & development of firmware and FPGA IP cores What is co-design? Co-designBest Practices. 1
  • 6. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Co-Design Process A common approach for building the prototype (with SW & HW) Requirements Analysis Product Definition HW/SW Functional Decomposition HW Design SW Design Development Fabrication Integration and Testing
  • 7. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Co-Design Key Concepts Classic design: • HW/SW trade-offs are limited • Less communicationneeded between HW/SW teams • System integration is time consuming • Costly modificationsduring development Co-Design: • Concurrent development of HW/SW • Integration happens more frequently with simulators • Modification are cheaper • Simulation requires skillset The meeting of system-level objectives by exploiting the trade-offs between hardware and software in a system through their concurrent design. Classic Design Co- Design SW HW SW HW
  • 8. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Motivations for Co-Design • Meeting short time to market • Verification starts earlier Catching issues earlier Higher quality • Benefits the design of embedded systems and SoCs, which need HW/SW tailored for a particular application: • Faster integration: reduced design time and cost • Better integration:lower cost and better performance • Verified integration:fewer errors and number of iterations
  • 9. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Co-Design Approach for IP Cores
  • 10. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Agile Co-Design Process with IP Simulation Requirements Analysis Product Definition HW/SW Functional Decomposition HW Design SW Design Development Fabrication Integration and Testing Simulation (verilator) Simulation (SystemC) Verification Production Release
  • 11. Introduction to SystemC and simulation of logic blocks in C++ 2
  • 12. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com What is SystemC? • SystemC is a modelling language built as a C++ library • Models software and hardware components • System-level modeling • Abstract analog/mixed-signalmodeling • Architectural exploration • Used for: • Performance modeling • Functional verification • High-level simulation (cycle-accurate) • Open source (Apache License) • Developed by the Accellera Systems Initiative • IEEE Std. 1666-2011 • https://github.com/accellera-official/systemc
  • 13. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Component Definitions in SystemC Main classes (features, components) of SystemC • Module • Port • Process • Channel • Event Reference: https://learnsystemc.com/
  • 14. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Modules and Channels A SystemC module is: • The smallest container of functionality with state, behavior, and structure for hierarchical connectivity. • A C++ class, which inherits a SystemC basic class: sc_module. • The principle structural building block of SystemC. • Represents a componentof a real system.
  • 15. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com SystemC Framework Architecture • Requires a C++ development environment • SystemC basic components: • Core Language • Data Types • Elementary Channels • Transaction Level Modelling (TLM) • Abstracts bus transactions such as AXI bus • The most commonly used level of abstraction • SystemC Verification (SCV) • Used for verification of FPGA IPs • Aims to replace HDL test benches
  • 16. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Virtual Platform Modelling (cont.)
  • 17. How to use Verilator for simulation of IP cores written in Verilog HDL 3
  • 18. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Verilator Verilator is a tool that compiles Verilog and SystemVerilog sources to highly optimized cycle-accurate C++ or SystemC code. • Time evolution is cycle-based • No circuit timing (analog propagation time is 0) • Extremely fast simulation • Simulates what SW expects from the HW • Only synthesizable Verilog/SystemVerilog code (few exceptions) • Verilator is open-source and free both as in free beer and free speech https://verilator.org/
  • 19. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com SystemC Hello World
  • 20. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com SystemC Module
  • 21. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Top Package with Test Bench
  • 22. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Compilation, Linking, and Simulation
  • 23. Advanced use cases • Sharing Protected IPs with Verilator • Co-Simulation of System with QEMU 4
  • 24. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Sharing Protected IPs with Verilator Vendordependent approach Example:Xilinx Verilatorapproach
  • 25. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com Co-Simulation of System with QEMU Example reference with Xilinx tools Source: Xilinx Quick Emulator:User Guide (UG1169)
  • 26. Tutorial Showcasing usage of Verilator, SystemC, CMake build system, and GTKWave Source code available here: https://github.com/samiralavi/fw-codesign-eoc-2022 5
  • 27. © E m b e d d e d O n l i n e C o n f e r e n c e . c o m A l l r i g h t s r e s e r v e d EmbeddedOnlineConference.com References I have used the following references in making the slides: • System On Chip Design Introduction, Hao Zheng, 2010 • Hardware-Software Codesign,Pao-Ann Hsiung, 2005 • DPI Protected Verilog Instead of Encryption, Todd Strader, ORConf 2019 • https://veripool.org/verilator/documentation/ • https://www.xilinx.com/ • https://accellera.org/ • https://learnsystemc.com/ • https://www.itsembedded.com/dhd/
  • 28. w w w . e m b e d d e d o n l i n e c o n f e r e n c e . c o m
  • 29. w w w . e m b e d d e d o n l i n e c o n f e r e n c e . c o m THANK YOU