SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Analogue Behavioural Modelling:
An Inconvenient Truth
Dave Wiltshire, Texas Instruments




12/7/2010                           1
Introduction
• SERDES IP Background
• Verilog behavioural modelling
• VerilogA behavioural modelling
• Behavioural model validation




12/7/2010                          2
SERDES IP Background
• High speed serial interfaces containing a PLL,
  along with multiple transmit lanes (TX) and
  receive lanes (RX)
• Each TX and RX lane consists of analogue and
  digital sections                                 RXA   RXD

• The complexity of the analogue sections has
  increased from a single sampler to multiple
  samplers that require real values to work in     PLL
  combination with the digital logic
• TX can be simulated using xtor and RTL
                                                   TXA   TXD
  cosimulation environment at sufficient speed
• RX requires much longer simulation times
  compared to TX due to the long adaption loops




12/7/2010                                                      3
SERDES RX Architecture




12/7/2010                4
Verilog Behavioural models
• Several years ago, SERDES architectures could be modelled using
  standard verilog
      – Analogue behaviour could be isolated within individual models
      – The data path could be implemented as a simple sampler




                                    Digital Logic



               Interp


                PLL


12/7/2010                                                               5
Verilog Behavioural models
• Complexity of SERDES architectures is increasing
      – Digitally controlled analogue circuits are now required
            • Now require adaptive equalisation and level control
      – This drives the need to pass analogue signals around the design
      – Verilog historically has not supported using real values for ports




                    EQ                                     Digital Logic



                                   Interp


                                    PLL

12/7/2010                                                                    6
Hierarchical Connections
• Use upwards name references to identify a real value in another
  module
• Standard verilog code that does not require any special capabilities
• Can be difficult to maintain when the design changes




12/7/2010                                                                7
Hierarchical Connection Example
module test;

fred ifred   (.fred_input (fred_input),
              .fred_output (fred_output));
jimmy ijimmy (.jimmy_input (fred_output),
              .jimmy_output (jimmy_output));
                                               module jimmy (jimmy_input,jimmy_output);
endmodule
                                               input    jimmy_input;
module fred (fred_input,fred_output);          output   jimmy_output;

input fred_input;                              real     jimmy_real_input;
output fred_output;                            real     jimmy_real_internal;

real        fred_real_output;                  assign   jimmy_output = jimmy_input;

assign fred_output = fred_input;               always
                                                 begin
always @(fred_output)                            jimmy_real_input    = fred.fred_real_output;
  begin                                          jimmy_real_internal = 0.5*jimmy_real_input;
  fred_real_output = 1.0*fred_output;            @(fred.fred_real_output);
  end                                            end

endmodule                                      endmodule



12/7/2010                                                                                 8
Connection using Verilog PLI
• PLI can be used to trace a normal signal back to it’s source driver
• A local real variable is used to pass the required data between the two
  end points




                    fred_output                     jimmy_input



 fred_output_real                                          jimmy_input_real




12/7/2010                                                                     9
PLI Connection Example
module test;

fred ifred   (.fred_input (fred_input),
              .fred_output (fred_output));     module jimmy (jimmy_input,jimmy_output);
jimmy ijimmy (.jimmy_input (fred_output),
              .jimmy_output (jimmy_output));   input    jimmy_input;
                                               output   jimmy_output;
endmodule
                                               real     jimmy_input_real;
module fred (fred_input,fred_output);          real     jimmy_real_internal;

input fred_input;                              assign      jimmy_output = jimmy_input;
output fred_output;
                                               initial
real        fred_output_real;                    begin
                                                 $connect_real(jimmy_input);
buf (fred_output,fred_input);                    end

always @(fred_output)                          always @(jimmy_input_real)
  begin                                          begin
  fred_output_real = 1.0*fred_output;            jimmy_real_internal = 0.5*jimmy_input_real;
  end                                            end

endmodule                                      endmodule




12/7/2010                                                                                 10
VerilogA Behavioural Models
• These define the behaviour in terms of electrical (current,voltage) that
  can be simulated in an analogue simulation
• Easy for analogue designers to understand
• No support for event driven behaviour
• Simulation of large designs will be slow compared to using traditional
  verilog event driven models




12/7/2010                                                                    11
VerilogA example
module example (clk, signal_in, offset, q, vdd, vss);
input clk;
input signal_in;
input offset;
input vdd,vss;
output q;

electrical clk, signal_in, offset, vdd, vss, q;

real vth, state;

analog
  begin
  vth = 0.5 * V(vdd,vss);
  @(cross(V(clk)-vth,+1))
    begin
    if (V(signal_in,vss) > V(offset,vss)) state = V(vdd,vss);
    else                                  state = V(vss);
    end
  V(q,vss) <+ transition(state,30p,10p);
  end

endmodule




12/7/2010                                                       12
VerilogAMS Extensions
• Combines VerilogA analogue descriptions with event driven behaviour
  from digital verilog
• Allows the models to use the best parts of each language to improve
  simulation speed
      – Data paths can be implemented using electricals
      – Event based terms can be used where signal levels are not critical, eg. For
        clock edges

• Since we are still using electricals for the data path, the simulation
  speed will still not match that achieved by digital verilog behavioural
  models




12/7/2010                                                                             13
VerilogAMS Example
module example (clk, signal_in, offset, q, vdd, vss);
input clk;
input signal_in;
input offset;
input vdd,vss;
output q;

electrical signal_in, offset, vdd, vss;

reg state;

always @(posedge clk)
  begin
  if (V(signal_in,vss) > V(offset,vss)) state = 1’b1;
  else                                  state = 1’b0;
  end

assign q = state;

endmodule




12/7/2010                                               14
VerilogAMS with wreal
• Provides the ability to pass real values across module boundaries
      – Must decide if the real represents a current or voltage

• Slow speed behaviour can be maintained in VerilogA and used within
  the event based calculations
• VerilogAMS LRM limits support for multiple drivers
      – Some simulator vendors have added this feature
      – Resolution functions are used to set the value on a node

• wreals allow similar simulation time to that achieved by traditional
  verilog behavioural models




12/7/2010                                                                15
VerilogAMS with wreal Example
module example (clk, signal_in, offset, q, vdd, vss);
input clk;
input signal_in;
input offset;
input vdd,vss;
output q;

wreal      signal_in;
electrical offset, vdd, vss;

reg state;

always @(posedge clk)
  begin
  if (signal_in > V(offset,vss))   state = 1’b1;
  else                             state = 1’b0;
  end

assign q = state;

endmodule




12/7/2010                                               16
VerilogA Speed Comparisons
• The previous examples have been used to perform a speed comparison
• Converting to AMS event driven where possible provides significant speed up
• wreal can provide speed up
• There is an overhead in going between the analog and digital simulators
• Improvements will depend on a particular design and requirements

Simulation                   Speed (us/CPU s)         Speed Up

VerilogA                     0.37

VerilogAMS                   1.18                     3.2

wreal (signal_in)            1.15                     3.1

wreal (signal_in + offset)   1.3                      3.5
12/7/2010                                                                       17
Behavioural Model Validation
• Behavioural models need to be checked against their transistor
  implementations
• A testplan should be generated to document and track required tests
      – Target correct functionality for the behavioural models against the

• The tests identified in the testplan should be run on a regular basis to
  identify any divergence between the model and the implementation




12/7/2010                                                                     18
Summary
• VerilogA provides a very good behavioural modelling environment for
  mixed signal designs
• Modelling requirements should be considered early in the design cycle
      – Help to drive the architecture to one that makes modelling easier
      – Consider how individual signals will be modelled for best performance
            • Use event based constructs wherever possible
      – Solutions will be dependant on the specific design requirements
            • Simulation speed can go down as well as up!

• Testplans and model verification environments should be implemented
  and maintained to ensure the models match the design




12/7/2010                                                                       19

Weitere ähnliche Inhalte

Was ist angesagt?

[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC [DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
DefconRussia
 
ScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAs
ScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAsScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAs
ScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAs
Shinya Takamaeda-Y
 
Automated static deobfuscation in the context of Reverse Engineering
Automated static deobfuscation in the context of Reverse EngineeringAutomated static deobfuscation in the context of Reverse Engineering
Automated static deobfuscation in the context of Reverse Engineering
zynamics GmbH
 
HyperStudy 10 Training Manual
HyperStudy 10 Training ManualHyperStudy 10 Training Manual
HyperStudy 10 Training Manual
AltairKorea
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
vinay arora
 

Was ist angesagt? (16)

Gareth edwards xilinx
Gareth edwards xilinxGareth edwards xilinx
Gareth edwards xilinx
 
Re usable continuous-time analog sva assertions
Re usable continuous-time analog sva assertionsRe usable continuous-time analog sva assertions
Re usable continuous-time analog sva assertions
 
Integrating Proof and Testing in Verification Strategies for Safety Critical ...
Integrating Proof and Testing in Verification Strategies for Safety Critical ...Integrating Proof and Testing in Verification Strategies for Safety Critical ...
Integrating Proof and Testing in Verification Strategies for Safety Critical ...
 
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC [DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
 
ScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAs
ScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAsScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAs
ScalableCore System: A Scalable Many-core Simulator by Employing Over 100 FPGAs
 
Automated static deobfuscation in the context of Reverse Engineering
Automated static deobfuscation in the context of Reverse EngineeringAutomated static deobfuscation in the context of Reverse Engineering
Automated static deobfuscation in the context of Reverse Engineering
 
ICE Presentation: Integrated Component Characterization Environment
ICE Presentation: Integrated Component Characterization EnvironmentICE Presentation: Integrated Component Characterization Environment
ICE Presentation: Integrated Component Characterization Environment
 
Tierney bq207
Tierney bq207Tierney bq207
Tierney bq207
 
Tester compare
Tester compareTester compare
Tester compare
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
 
Selective fitting strategy based real time placement algorithm for dynamicall...
Selective fitting strategy based real time placement algorithm for dynamicall...Selective fitting strategy based real time placement algorithm for dynamicall...
Selective fitting strategy based real time placement algorithm for dynamicall...
 
Agilent flash programming agilent utility card versus deep serial memory-ca...
Agilent flash programming   agilent utility card versus deep serial memory-ca...Agilent flash programming   agilent utility card versus deep serial memory-ca...
Agilent flash programming agilent utility card versus deep serial memory-ca...
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic Sequences
 
HyperStudy 10 Training Manual
HyperStudy 10 Training ManualHyperStudy 10 Training Manual
HyperStudy 10 Training Manual
 
Behavioral modeling
Behavioral modelingBehavioral modeling
Behavioral modeling
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
 

Ähnlich wie Analogue Behavioral Modelling: An Inconvenient Truth

Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
DVClub
 

Ähnlich wie Analogue Behavioral Modelling: An Inconvenient Truth (20)

VIT_Workshop.ppt
VIT_Workshop.pptVIT_Workshop.ppt
VIT_Workshop.ppt
 
Reproducible Emulation of Analog Behavioral Models
Reproducible Emulation of Analog Behavioral ModelsReproducible Emulation of Analog Behavioral Models
Reproducible Emulation of Analog Behavioral Models
 
Coding style for good synthesis
Coding style for good synthesisCoding style for good synthesis
Coding style for good synthesis
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
 
21E-WhatsTheFuss_UsingProceduresAndServicePrograms.pdf
21E-WhatsTheFuss_UsingProceduresAndServicePrograms.pdf21E-WhatsTheFuss_UsingProceduresAndServicePrograms.pdf
21E-WhatsTheFuss_UsingProceduresAndServicePrograms.pdf
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
 
SKEL 4273 CAD with HDL Topic 2
SKEL 4273 CAD with HDL Topic 2SKEL 4273 CAD with HDL Topic 2
SKEL 4273 CAD with HDL Topic 2
 
Overview of RTaW SysML-Companion
Overview of RTaW SysML-Companion Overview of RTaW SysML-Companion
Overview of RTaW SysML-Companion
 
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
 
VLSI
VLSIVLSI
VLSI
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
 
VLSI
VLSIVLSI
VLSI
 
Vhdl new
Vhdl newVhdl new
Vhdl new
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
1.ppt
1.ppt1.ppt
1.ppt
 
Verilog
VerilogVerilog
Verilog
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
 
Bringing Engineering Analysis Codes Into Real-Time Full-Scope Simulators
Bringing Engineering Analysis Codes Into Real-Time Full-Scope SimulatorsBringing Engineering Analysis Codes Into Real-Time Full-Scope Simulators
Bringing Engineering Analysis Codes Into Real-Time Full-Scope Simulators
 

Mehr von 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 Enterprise
DVClub
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
DVClub
 
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
DVClub
 
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 Methodology
DVClub
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
DVClub
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
DVClub
 
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
DVClub
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
DVClub
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
DVClub
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
DVClub
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
DVClub
 
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
DVClub
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
DVClub
 
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
DVClub
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
DVClub
 
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
DVClub
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
DVClub
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
DVClub
 

Mehr von 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
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
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
 
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
 
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
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Analogue Behavioral Modelling: An Inconvenient Truth

  • 1. Analogue Behavioural Modelling: An Inconvenient Truth Dave Wiltshire, Texas Instruments 12/7/2010 1
  • 2. Introduction • SERDES IP Background • Verilog behavioural modelling • VerilogA behavioural modelling • Behavioural model validation 12/7/2010 2
  • 3. SERDES IP Background • High speed serial interfaces containing a PLL, along with multiple transmit lanes (TX) and receive lanes (RX) • Each TX and RX lane consists of analogue and digital sections RXA RXD • The complexity of the analogue sections has increased from a single sampler to multiple samplers that require real values to work in PLL combination with the digital logic • TX can be simulated using xtor and RTL TXA TXD cosimulation environment at sufficient speed • RX requires much longer simulation times compared to TX due to the long adaption loops 12/7/2010 3
  • 5. Verilog Behavioural models • Several years ago, SERDES architectures could be modelled using standard verilog – Analogue behaviour could be isolated within individual models – The data path could be implemented as a simple sampler Digital Logic Interp PLL 12/7/2010 5
  • 6. Verilog Behavioural models • Complexity of SERDES architectures is increasing – Digitally controlled analogue circuits are now required • Now require adaptive equalisation and level control – This drives the need to pass analogue signals around the design – Verilog historically has not supported using real values for ports EQ Digital Logic Interp PLL 12/7/2010 6
  • 7. Hierarchical Connections • Use upwards name references to identify a real value in another module • Standard verilog code that does not require any special capabilities • Can be difficult to maintain when the design changes 12/7/2010 7
  • 8. Hierarchical Connection Example module test; fred ifred (.fred_input (fred_input), .fred_output (fred_output)); jimmy ijimmy (.jimmy_input (fred_output), .jimmy_output (jimmy_output)); module jimmy (jimmy_input,jimmy_output); endmodule input jimmy_input; module fred (fred_input,fred_output); output jimmy_output; input fred_input; real jimmy_real_input; output fred_output; real jimmy_real_internal; real fred_real_output; assign jimmy_output = jimmy_input; assign fred_output = fred_input; always begin always @(fred_output) jimmy_real_input = fred.fred_real_output; begin jimmy_real_internal = 0.5*jimmy_real_input; fred_real_output = 1.0*fred_output; @(fred.fred_real_output); end end endmodule endmodule 12/7/2010 8
  • 9. Connection using Verilog PLI • PLI can be used to trace a normal signal back to it’s source driver • A local real variable is used to pass the required data between the two end points fred_output jimmy_input fred_output_real jimmy_input_real 12/7/2010 9
  • 10. PLI Connection Example module test; fred ifred (.fred_input (fred_input), .fred_output (fred_output)); module jimmy (jimmy_input,jimmy_output); jimmy ijimmy (.jimmy_input (fred_output), .jimmy_output (jimmy_output)); input jimmy_input; output jimmy_output; endmodule real jimmy_input_real; module fred (fred_input,fred_output); real jimmy_real_internal; input fred_input; assign jimmy_output = jimmy_input; output fred_output; initial real fred_output_real; begin $connect_real(jimmy_input); buf (fred_output,fred_input); end always @(fred_output) always @(jimmy_input_real) begin begin fred_output_real = 1.0*fred_output; jimmy_real_internal = 0.5*jimmy_input_real; end end endmodule endmodule 12/7/2010 10
  • 11. VerilogA Behavioural Models • These define the behaviour in terms of electrical (current,voltage) that can be simulated in an analogue simulation • Easy for analogue designers to understand • No support for event driven behaviour • Simulation of large designs will be slow compared to using traditional verilog event driven models 12/7/2010 11
  • 12. VerilogA example module example (clk, signal_in, offset, q, vdd, vss); input clk; input signal_in; input offset; input vdd,vss; output q; electrical clk, signal_in, offset, vdd, vss, q; real vth, state; analog begin vth = 0.5 * V(vdd,vss); @(cross(V(clk)-vth,+1)) begin if (V(signal_in,vss) > V(offset,vss)) state = V(vdd,vss); else state = V(vss); end V(q,vss) <+ transition(state,30p,10p); end endmodule 12/7/2010 12
  • 13. VerilogAMS Extensions • Combines VerilogA analogue descriptions with event driven behaviour from digital verilog • Allows the models to use the best parts of each language to improve simulation speed – Data paths can be implemented using electricals – Event based terms can be used where signal levels are not critical, eg. For clock edges • Since we are still using electricals for the data path, the simulation speed will still not match that achieved by digital verilog behavioural models 12/7/2010 13
  • 14. VerilogAMS Example module example (clk, signal_in, offset, q, vdd, vss); input clk; input signal_in; input offset; input vdd,vss; output q; electrical signal_in, offset, vdd, vss; reg state; always @(posedge clk) begin if (V(signal_in,vss) > V(offset,vss)) state = 1’b1; else state = 1’b0; end assign q = state; endmodule 12/7/2010 14
  • 15. VerilogAMS with wreal • Provides the ability to pass real values across module boundaries – Must decide if the real represents a current or voltage • Slow speed behaviour can be maintained in VerilogA and used within the event based calculations • VerilogAMS LRM limits support for multiple drivers – Some simulator vendors have added this feature – Resolution functions are used to set the value on a node • wreals allow similar simulation time to that achieved by traditional verilog behavioural models 12/7/2010 15
  • 16. VerilogAMS with wreal Example module example (clk, signal_in, offset, q, vdd, vss); input clk; input signal_in; input offset; input vdd,vss; output q; wreal signal_in; electrical offset, vdd, vss; reg state; always @(posedge clk) begin if (signal_in > V(offset,vss)) state = 1’b1; else state = 1’b0; end assign q = state; endmodule 12/7/2010 16
  • 17. VerilogA Speed Comparisons • The previous examples have been used to perform a speed comparison • Converting to AMS event driven where possible provides significant speed up • wreal can provide speed up • There is an overhead in going between the analog and digital simulators • Improvements will depend on a particular design and requirements Simulation Speed (us/CPU s) Speed Up VerilogA 0.37 VerilogAMS 1.18 3.2 wreal (signal_in) 1.15 3.1 wreal (signal_in + offset) 1.3 3.5 12/7/2010 17
  • 18. Behavioural Model Validation • Behavioural models need to be checked against their transistor implementations • A testplan should be generated to document and track required tests – Target correct functionality for the behavioural models against the • The tests identified in the testplan should be run on a regular basis to identify any divergence between the model and the implementation 12/7/2010 18
  • 19. Summary • VerilogA provides a very good behavioural modelling environment for mixed signal designs • Modelling requirements should be considered early in the design cycle – Help to drive the architecture to one that makes modelling easier – Consider how individual signals will be modelled for best performance • Use event based constructs wherever possible – Solutions will be dependant on the specific design requirements • Simulation speed can go down as well as up! • Testplans and model verification environments should be implemented and maintained to ensure the models match the design 12/7/2010 19