SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
DV Club, Boston
Experiences with SystemC
Design Verification Using
SystemC
Greg Tierney
Presented to
DV Club, Boston
March 5, 2007
DV Club, Boston
Experiences with SystemC
About Avid
Invented digital video editing
Headquartered in Tewksbury
– http://www.avid.com/company/
Products
– Film/Video Editing and
Finishing
– Audio
– Broadcast
– Animation
– Storage & Workgroups
– Digital Asset and Production
Management
Services
– Support
– Training
– Consulting
DV Club, Boston
Experiences with SystemC
Agenda
What is SystemC?
Why did Avid choose to use SystemC?
DV problems solved by SystemC.
Summary
DV Club, Boston
Experiences with SystemC
What is SystemC?
Provides hardware constructs and a simulation kernel
for C++
It is a class library
– And it is a language standard (IEEE 1666TM 2005)
It has utilities and constructs
– Data types, ports, channels, processes
Adopted by different disciplines
– Architectural Modeling (SoC, performance)
– DV (RTL simulation, HW/SW co-verification)
– Synthesis
It is open source (OSCI)
– http://www.systemc.org
DV Club, Boston
Experiences with SystemC
Why Avid Chose SystemC
Enhanced existing C++ DV code
– Replaced an unreliable in-house framework
• Signal encapsulation
• Thread management
• Random seed management
– Smooth transition from C++ to SystemC
Tool availability
– Single kernel multi-language simulator
Industry acceptance
Low cost
Came with built-in verification capabilities
DV Club, Boston
Experiences with SystemC
Agenda
What is SystemC?
Why did Avid choose to use SystemC?
DV problems solved by SystemC.
Summary
DV Club, Boston
Experiences with SystemC
Crossing Language Boundaries
Connect an entire HDL module to the
testbench.
– Wrap the module with a SystemC class
(sc_foreign_module).
– Provide a string mapping for each port.
Connect a foreign signal anywhere in the
hierarchy.
– Bind a sc_signal (observe_foreign_signal).
– Provide a string of hierarchical path to wire or reg.
DV Club, Boston
Experiences with SystemC
Code Examples
SC_MODULE(MyVTB)
{
public:
SC_CTOR(MyVTB) :
MyDUTInst(“MyDUTInst”, “MyDUT”),
MyMonitorInst(“MyMonitorInst”,
“MyVTB.MyDUTInst.FooInst”)
{
MyDUTInst.reset(tb_reset);
MyDUTInst.clock(tb_clock);
MyDUTInst.AD(tb_AD);
}
private:
MyDUT MyDUTInst;
MyMonitor MyMonitorInst;
sc_signal<sc_logic> tb_reset;
sc_signal<sc_logic> tb_clock;
sc_signal<sc_lv<16> > tb_AD;
};
class MyDUT : public sc_foreign_module {
public:
sc_in<sc_logic> reset;
sc_in<sc_logic> clock;
sc_out<sc_lv<16> > AD;
MyDUT(sc_module_nam nm, const char* hdl_name)
: sc_foreign_module(nm, hdl_name),
reset(“reset”),
clock(“clock”),
AD(“AD”){}
};
class MyMonitor : public sc_module {
public:
MyMonitor(sc_module_name,
const string& path2DUT){
string path2sig = path2DUT + “.snoop”;
snoopSig_.observe_foreign_signal(path2sig);
SC_THREAD(threadT);
sensitive <<
snoopSig_.value_changed_event();
}
private:
sc_signal<sc_logic> snoopSig_;
void threadT();
};
DV Club, Boston
Experiences with SystemC
Issues with Binding
No clear standard for language boundary
resolution.
– Each vendor has its own implementation.
– Implementation we use doesn’t map arrays or
records (yet).
Supporting foreign interface requires two
pass compilation.
– First pass creates object files.
– Second pass builds a symbol library used in
design elaboration.
DV Club, Boston
Experiences with SystemC
SystemC Connections
Call a public method
via pointer to object
Connect sc_port to a
sc_export
Connect sc_port to a
channel
start()start()
outp inp
p
p
write() read()
DV Club, Boston
Experiences with SystemC
Code Examples
struct start_stop_if : public sc_interface
{
virtual void start()=0;
virtual void stop()=0;
};
class MyBFM :
public sc_module,
public virtual start_stop_if
{
public:
sc_in<sc_logic> Clock;
sc_out<sc_logic> Request;
sc_in<sc_lv<16> > AD;
tlm::tlm_put_port<MyX> MyXReceivePort;
sc_export<start_stop_if> StartStopExport;
void start();
void stop();
SC_CTOR(MyBFM){
StartStopExport(*this);
}
};
SC_MODULE(MyTest){
public:
sc_port<start_stop_if> bfm_port;
};
SC_MODULE(vtb){
public:
SC_CTOR(vtb);
private:
sc_signal<sc_logic> Clock;
sc_signal<sc_logic> Request;
sc_signal<sc_lv<16> > AD;
tlm::tlm_fifo<MyX> MyXReceiveChan;
MyTest MyTestInst;
MyBFM MyBFMInst;
};
vtb:vtb(sc_module_name) :
MyBFMInst(“MyBFMInst”), MyTestInst(“MyTestInst”)
{
MyBFMInst.Clock(Clock);
MyBFMInst.Request(Request);
MyBFMInst.AD(AD);
MyBFMInst.MyXReceivePort(MyXReceiveChan);
MyTestInst.bfm_port(MyBFMInst.StartStopExport);
}
DV Club, Boston
Experiences with SystemC
Issues with Connections
Construction and binding are separate steps.
– Ports must be public.
– Ports bound after modules and channels are constructed.
Binding uses “strict type checking”.
– Compilation will fail if type mismatch in the connection.
– Splitting a vector across multiple ports is complicated.
Binding errors detected at elaboration.
– Simulation should abort at runtime if a port is not bound.
– Need to assign attributes to port (e.g. # of connections).
DV Club, Boston
Experiences with SystemC
Randomization
Separate library dedicated to verification
constructs (SCV).
Robust, rich feature set for
randomization.
– Simple constraints (ranges and lists).
– Complex constraint solver.
– Thread-safe seeding.
– Extendible to custom object types.
DV Club, Boston
Experiences with SystemC
Randomization at Avid
SCV more than we needed.
– So, we use a subset of the features.
Provide a Tcl interface to apply constraints.
– Wrap scv_smart_ptr.
– Define string representations for simple
constraints.
– Recompilation not required to change constraints.
– Reapply constraints over course of simulation.
DV Club, Boston
Experiences with SystemC
Processes
Hardware is inherently parallel.
DV must be multi-threaded.
SystemC solves this with processes.
– Macros: SC_THREAD and SC_METHOD.
– Events, mutexes, semaphores.
– Dynamic processes (sc_spawn).
DV Club, Boston
Experiences with SystemC
Hierarchy
SystemC defines an object hierarchy.
– Relates objects (parent/child).
– Familiar to HDL design.
Avid DV defines a layer hierarchy.
– Relates connections.
– Familiar to communication stacks.
Issue: SystemC is not a methodology.
DV Club, Boston
Experiences with SystemC
Example Hierarchy
VTOP
VTEST
VTB
DUT
Snooper_BFM
Monitor Monitor
Commander_BFM
Driver Monitor
TX_BFM
Driver
RX_BFM
Monitor
TLM Agent
STIMGEN
Translator Reference Model
Analysis Agent
Scoreboard
Analysis Agent
Test
DV Club, Boston
Experiences with SystemC
Agenda
What is SystemC?
Why did Avid choose to use SystemC?
DV problems solved by SystemC.
Summary
DV Club, Boston
Experiences with SystemC
Additional Issues
Compile and link performance is disappointing.
– Overuse of C++ templates in library.
– Partially attributed to vendor implementation.
Libraries are huge.
Being a language standard has tool implications.
C++ learning curve.
– C++ code debug very different than HDL.
• Segmentation faults, stack traces, code stepping
Think like a HW engineer, code like a SW engineer.
DV Club, Boston
Experiences with SystemC
Avid’s Experience
Used reliably for nearly 3 years.
Runtime performance very satisfactory.
Provides opportunity to assist product
development beyond DV.
– Evaluate architectures and predict
performance.
– Create programmer’s view models for
emulation and HW/SW co-verification.

Contenu connexe

Tendances

Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
Basic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSIBasic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSISurya Raj
 
Complete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEComplete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEVLSIUNIVERSE
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationDVClub
 
Timing Analysis
Timing AnalysisTiming Analysis
Timing Analysisrchovatiya
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareLinaro
 
io and pad ring.pdf
io and pad ring.pdfio and pad ring.pdf
io and pad ring.pdfquandao25
 
Vlsi physical design automation on partitioning
Vlsi physical design automation on partitioningVlsi physical design automation on partitioning
Vlsi physical design automation on partitioningSushil Kundu
 
Logic synthesis,flootplan&placement
Logic synthesis,flootplan&placementLogic synthesis,flootplan&placement
Logic synthesis,flootplan&placementshaik sharief
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukIntel
 

Tendances (20)

Lect01 flow
Lect01 flowLect01 flow
Lect01 flow
 
FPGA Configuration
FPGA ConfigurationFPGA Configuration
FPGA Configuration
 
Introduction to stm32-part2
Introduction to stm32-part2Introduction to stm32-part2
Introduction to stm32-part2
 
Crosstalk.pdf
Crosstalk.pdfCrosstalk.pdf
Crosstalk.pdf
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
Emertxe Certified Embedded Professional (ECEP) : Induction
Emertxe Certified Embedded Professional (ECEP) : InductionEmertxe Certified Embedded Professional (ECEP) : Induction
Emertxe Certified Embedded Professional (ECEP) : Induction
 
Basic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSIBasic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSI
 
Hard ip based SoC design
Hard ip based SoC designHard ip based SoC design
Hard ip based SoC design
 
Complete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSEComplete ASIC design flow - VLSI UNIVERSE
Complete ASIC design flow - VLSI UNIVERSE
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
 
Build your career in physical ASIC design
Build your career in physical ASIC designBuild your career in physical ASIC design
Build your career in physical ASIC design
 
Timing Analysis
Timing AnalysisTiming Analysis
Timing Analysis
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
io and pad ring.pdf
io and pad ring.pdfio and pad ring.pdf
io and pad ring.pdf
 
ASIC Design Flow
ASIC Design FlowASIC Design Flow
ASIC Design Flow
 
Vlsi physical design automation on partitioning
Vlsi physical design automation on partitioningVlsi physical design automation on partitioning
Vlsi physical design automation on partitioning
 
5. DFT.pptx
5. DFT.pptx5. DFT.pptx
5. DFT.pptx
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 
Logic synthesis,flootplan&placement
Logic synthesis,flootplan&placementLogic synthesis,flootplan&placement
Logic synthesis,flootplan&placement
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii Tkachuk
 

Similaire à Design Verification Using SystemC

Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationEMA Design Automation
 
Introduction to SeqAn, an Open-source C++ Template Library
Introduction to SeqAn, an Open-source C++ Template LibraryIntroduction to SeqAn, an Open-source C++ Template Library
Introduction to SeqAn, an Open-source C++ Template LibraryCan Ozdoruk
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationAmir Zmora
 
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
 
Sudheer vaddi Resume
Sudheer vaddi ResumeSudheer vaddi Resume
Sudheer vaddi ResumeSudheer Vaddi
 
Resume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyResume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyVenkata Rakesh Gudipalli
 
Megamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS SystemsMegamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS SystemsEugenio Villar
 
Ramesh.resume_iiith
Ramesh.resume_iiithRamesh.resume_iiith
Ramesh.resume_iiitha ramesh
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin敬倫 林
 
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...Edge AI and Vision Alliance
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
Fosdem10
Fosdem10Fosdem10
Fosdem10wremes
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -evechiportal
 
Better Network Management Through Network Programmability
Better Network Management Through Network ProgrammabilityBetter Network Management Through Network Programmability
Better Network Management Through Network ProgrammabilityCisco Canada
 
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)DECK36
 

Similaire à Design Verification Using SystemC (20)

Tierney bq207
Tierney bq207Tierney bq207
Tierney bq207
 
Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice Simulation
 
NvFX GTC 2013
NvFX GTC 2013NvFX GTC 2013
NvFX GTC 2013
 
Introduction to SeqAn, an Open-source C++ Template Library
Introduction to SeqAn, an Open-source C++ Template LibraryIntroduction to SeqAn, an Open-source C++ Template Library
Introduction to SeqAn, an Open-source C++ Template Library
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 
3DD 1e SyCers
3DD 1e SyCers3DD 1e SyCers
3DD 1e SyCers
 
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...
 
Sudheer vaddi Resume
Sudheer vaddi ResumeSudheer vaddi Resume
Sudheer vaddi Resume
 
Resume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyResume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - Copy
 
Megamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS SystemsMegamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS Systems
 
Ramesh.resume_iiith
Ramesh.resume_iiithRamesh.resume_iiith
Ramesh.resume_iiith
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin
 
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Fosdem10
Fosdem10Fosdem10
Fosdem10
 
Resume
ResumeResume
Resume
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eve
 
Better Network Management Through Network Programmability
Better Network Management Through Network ProgrammabilityBetter Network Management Through Network Programmability
Better Network Management Through Network Programmability
 
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
 

Plus de DVClub

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseDVClub
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment OverviewDVClub
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesDVClub
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)DVClub
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)DVClub
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyDVClub
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUsDVClub
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACTDVClub
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentDVClub
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal ValidationDVClub
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design CommunityDVClub
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessDVClub
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through MethodologyDVClub
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 ProcessorDVClub
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceDVClub
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS VerificationDVClub
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register PackageDVClub
 
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...DVClub
 
Verification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark AgesVerification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark AgesDVClub
 

Plus de DVClub (20)

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team Environment
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification Experience
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register Package
 
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
 
Verification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark AgesVerification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark Ages
 

Dernier

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Dernier (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Design Verification Using SystemC

  • 1. DV Club, Boston Experiences with SystemC Design Verification Using SystemC Greg Tierney Presented to DV Club, Boston March 5, 2007
  • 2. DV Club, Boston Experiences with SystemC About Avid Invented digital video editing Headquartered in Tewksbury – http://www.avid.com/company/ Products – Film/Video Editing and Finishing – Audio – Broadcast – Animation – Storage & Workgroups – Digital Asset and Production Management Services – Support – Training – Consulting
  • 3. DV Club, Boston Experiences with SystemC Agenda What is SystemC? Why did Avid choose to use SystemC? DV problems solved by SystemC. Summary
  • 4. DV Club, Boston Experiences with SystemC What is SystemC? Provides hardware constructs and a simulation kernel for C++ It is a class library – And it is a language standard (IEEE 1666TM 2005) It has utilities and constructs – Data types, ports, channels, processes Adopted by different disciplines – Architectural Modeling (SoC, performance) – DV (RTL simulation, HW/SW co-verification) – Synthesis It is open source (OSCI) – http://www.systemc.org
  • 5. DV Club, Boston Experiences with SystemC Why Avid Chose SystemC Enhanced existing C++ DV code – Replaced an unreliable in-house framework • Signal encapsulation • Thread management • Random seed management – Smooth transition from C++ to SystemC Tool availability – Single kernel multi-language simulator Industry acceptance Low cost Came with built-in verification capabilities
  • 6. DV Club, Boston Experiences with SystemC Agenda What is SystemC? Why did Avid choose to use SystemC? DV problems solved by SystemC. Summary
  • 7. DV Club, Boston Experiences with SystemC Crossing Language Boundaries Connect an entire HDL module to the testbench. – Wrap the module with a SystemC class (sc_foreign_module). – Provide a string mapping for each port. Connect a foreign signal anywhere in the hierarchy. – Bind a sc_signal (observe_foreign_signal). – Provide a string of hierarchical path to wire or reg.
  • 8. DV Club, Boston Experiences with SystemC Code Examples SC_MODULE(MyVTB) { public: SC_CTOR(MyVTB) : MyDUTInst(“MyDUTInst”, “MyDUT”), MyMonitorInst(“MyMonitorInst”, “MyVTB.MyDUTInst.FooInst”) { MyDUTInst.reset(tb_reset); MyDUTInst.clock(tb_clock); MyDUTInst.AD(tb_AD); } private: MyDUT MyDUTInst; MyMonitor MyMonitorInst; sc_signal<sc_logic> tb_reset; sc_signal<sc_logic> tb_clock; sc_signal<sc_lv<16> > tb_AD; }; class MyDUT : public sc_foreign_module { public: sc_in<sc_logic> reset; sc_in<sc_logic> clock; sc_out<sc_lv<16> > AD; MyDUT(sc_module_nam nm, const char* hdl_name) : sc_foreign_module(nm, hdl_name), reset(“reset”), clock(“clock”), AD(“AD”){} }; class MyMonitor : public sc_module { public: MyMonitor(sc_module_name, const string& path2DUT){ string path2sig = path2DUT + “.snoop”; snoopSig_.observe_foreign_signal(path2sig); SC_THREAD(threadT); sensitive << snoopSig_.value_changed_event(); } private: sc_signal<sc_logic> snoopSig_; void threadT(); };
  • 9. DV Club, Boston Experiences with SystemC Issues with Binding No clear standard for language boundary resolution. – Each vendor has its own implementation. – Implementation we use doesn’t map arrays or records (yet). Supporting foreign interface requires two pass compilation. – First pass creates object files. – Second pass builds a symbol library used in design elaboration.
  • 10. DV Club, Boston Experiences with SystemC SystemC Connections Call a public method via pointer to object Connect sc_port to a sc_export Connect sc_port to a channel start()start() outp inp p p write() read()
  • 11. DV Club, Boston Experiences with SystemC Code Examples struct start_stop_if : public sc_interface { virtual void start()=0; virtual void stop()=0; }; class MyBFM : public sc_module, public virtual start_stop_if { public: sc_in<sc_logic> Clock; sc_out<sc_logic> Request; sc_in<sc_lv<16> > AD; tlm::tlm_put_port<MyX> MyXReceivePort; sc_export<start_stop_if> StartStopExport; void start(); void stop(); SC_CTOR(MyBFM){ StartStopExport(*this); } }; SC_MODULE(MyTest){ public: sc_port<start_stop_if> bfm_port; }; SC_MODULE(vtb){ public: SC_CTOR(vtb); private: sc_signal<sc_logic> Clock; sc_signal<sc_logic> Request; sc_signal<sc_lv<16> > AD; tlm::tlm_fifo<MyX> MyXReceiveChan; MyTest MyTestInst; MyBFM MyBFMInst; }; vtb:vtb(sc_module_name) : MyBFMInst(“MyBFMInst”), MyTestInst(“MyTestInst”) { MyBFMInst.Clock(Clock); MyBFMInst.Request(Request); MyBFMInst.AD(AD); MyBFMInst.MyXReceivePort(MyXReceiveChan); MyTestInst.bfm_port(MyBFMInst.StartStopExport); }
  • 12. DV Club, Boston Experiences with SystemC Issues with Connections Construction and binding are separate steps. – Ports must be public. – Ports bound after modules and channels are constructed. Binding uses “strict type checking”. – Compilation will fail if type mismatch in the connection. – Splitting a vector across multiple ports is complicated. Binding errors detected at elaboration. – Simulation should abort at runtime if a port is not bound. – Need to assign attributes to port (e.g. # of connections).
  • 13. DV Club, Boston Experiences with SystemC Randomization Separate library dedicated to verification constructs (SCV). Robust, rich feature set for randomization. – Simple constraints (ranges and lists). – Complex constraint solver. – Thread-safe seeding. – Extendible to custom object types.
  • 14. DV Club, Boston Experiences with SystemC Randomization at Avid SCV more than we needed. – So, we use a subset of the features. Provide a Tcl interface to apply constraints. – Wrap scv_smart_ptr. – Define string representations for simple constraints. – Recompilation not required to change constraints. – Reapply constraints over course of simulation.
  • 15. DV Club, Boston Experiences with SystemC Processes Hardware is inherently parallel. DV must be multi-threaded. SystemC solves this with processes. – Macros: SC_THREAD and SC_METHOD. – Events, mutexes, semaphores. – Dynamic processes (sc_spawn).
  • 16. DV Club, Boston Experiences with SystemC Hierarchy SystemC defines an object hierarchy. – Relates objects (parent/child). – Familiar to HDL design. Avid DV defines a layer hierarchy. – Relates connections. – Familiar to communication stacks. Issue: SystemC is not a methodology.
  • 17. DV Club, Boston Experiences with SystemC Example Hierarchy VTOP VTEST VTB DUT Snooper_BFM Monitor Monitor Commander_BFM Driver Monitor TX_BFM Driver RX_BFM Monitor TLM Agent STIMGEN Translator Reference Model Analysis Agent Scoreboard Analysis Agent Test
  • 18. DV Club, Boston Experiences with SystemC Agenda What is SystemC? Why did Avid choose to use SystemC? DV problems solved by SystemC. Summary
  • 19. DV Club, Boston Experiences with SystemC Additional Issues Compile and link performance is disappointing. – Overuse of C++ templates in library. – Partially attributed to vendor implementation. Libraries are huge. Being a language standard has tool implications. C++ learning curve. – C++ code debug very different than HDL. • Segmentation faults, stack traces, code stepping Think like a HW engineer, code like a SW engineer.
  • 20. DV Club, Boston Experiences with SystemC Avid’s Experience Used reliably for nearly 3 years. Runtime performance very satisfactory. Provides opportunity to assist product development beyond DV. – Evaluate architectures and predict performance. – Create programmer’s view models for emulation and HW/SW co-verification.