SlideShare a Scribd company logo
Abha Jain
Agenda
• Mixed-level System Design using PSpice
• Modeling of different types of devices using PSpice
– C/C++ Digital Models
– MATLAB Algorithmic Models
– SystemC Models
– Compact Device Models using VerilogA-ADMS
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
PSpice
accelerated
mixed-signal
system model
for large IC on
PCB with
mixed-signal
accuracy at
interface
Physical device compact model
SystemC model supporting embedded
S/W and different abstraction levels
Analog behavioral
Digital C/C++ with embedded SW
block
Temporal Data Accuracy
Functionality Structural
Simulation Acceleration with
System-Level Abstractions
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Digital controllers enabled Power
Supplies
Advanced control algorithm (non-
linear control, improved transient)
Enable easy management of
multiple control loops
Better precision tolerance to
aging, temperature effects, etc.
Example – S/w algorithm Controlled Power Supply
PWM
Microcontroller with
algorithm control
Power Stage Filter Stage
IN
A/D
OUT
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Top-level schematic
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
1. C/C++ Digital Model in PSpice
• Specification of logic using
C/C++
• Timing model, I/O and
constraints specification may
be coded as part of the C-
model or applied on the
block level from datasheet
• Interfaces are accurate for
mixed-signal implementation
• Evaluation is accelerated with
C/C++/SystemC model for large
digital blocks
• Device Logic is independent of
PSpice syntax
• Model is debuggable in Visual
IDE’s
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
1. C/C++ Digital Model in PSpice…
• Next: Implementing PWM Block as a Digital behavioral block
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Install Model
void __cdecl installpspPWMControl(void* pRef)
{
fp_descSetVersion(pRef, "1.2");
fp_descSetName(pRef, "PSPPWMCONTROL");
fp_descSetCreateDevice(
pRef,&pspPWMControl_CreateDevice);
fp_descSetDeleteDevice(
pRef,&pspPWMControl_DeleteDevice);
fp_descSetEvaluateDevice(
pRef,&pspPWMControl_EvaluateDevice); }
• Links functions between
device and simulator
– Sets function pointers from
model dll to PSpice
• Sets version and Model Name
• Allows multiple devices to be
installed from the same dll
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Create Instance
pspPWMControl::pspPWMControl
(const char* pInstName,
void*pRef) {
mRef = pRef;
mInstName = pInstName;
mPortCount = 18;
mInputPortCount = 17; }
• Creates a new device
instance
• Instance Name and
Reference set by PSpice
• Port counts set by Device
Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Set Parameter Values
mDigSimFreq =
fp_GetParamValueDbl("DIGFREQ");
mDigSimTimeStep = 1.0 / mDigSimFreq;
//Device Specific Initialization
mPER = (int)fp_GetParamValueDbl("PER");
mDutyCycle = fp_GetParamValueDbl("D");
• Get Parameter values from
PSpice by name
o Simulator options
o Global parameters set up in
design
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Evaluate
bool pspPWMControl::evaluate
(double pTicks, PSpiceState* pVectorStates, int pSize) {
double lCurrentTime = mDigSimTimeStep*pTicks;
double lDelta = pTicks - mPrevTicks;
//Get input Signal Levels
CLK = pVectorStates[0].getLevel();
//if CLK changed from LO to another value
if ((int)prevCLK == pspBit::LO && (int)CLK != pspBit::LO)
{
lCLKRisingEdge = true; }}
• Evaluate device at any
change in inputs
o Get Current time
o Get input signal levels
o Detect clock edge
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Evaluate…
for (int i = 0; i < 8; i++) {
FB[i] = pVectorStates[8 - i].getLevel(); }
pspBits2Int(FB, FBInt, 8);
//evaluate logic
for (int i = 0; i < 8; i++) {
PW[i] = FB[i] & REF[i]; }
if (mPWStatus==true && (int)PW != 1){
PW = pspBit::HI; }
//update output State
for (int i = 0; i < 8; i++) {
if (oldPW[i] == PW[i]) continue;
lState = PW[i];
fp_SetState(mRef, 7-i, &lState, NULL); }
• Read levels (LO|HI) for input
signal bits
• Convert Signal Bits to C++
integer levels
• Execute Algorithm
• Convert C++ data back to
signal bits
• Update output states
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Set Delays
PSpiceState lState = (pVectorStates)[0];
PSpiceDelay lDelay;
lDelay.mMaxDelay = 1e-6;
lDelay.mMinDelay = 1e-6;
lDelay.mTypDelay = 1e-6;
lState = PW;
fp_SetState(mRef, 0, &lState, &lDelay);
• Set Timing Delays
• Min/Typ/Max Delays
• Simulator can be setup to run
with any 1 value
• Worst-case analysis can be
run with min and max delays
• Alternate way is to setup
using PSpice Timing Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Set Constraints
PSpiceConstraint lConstraint;
PSpiceSetupHoldConstraint& lSH =lConstraint.mSetupHold;
lSH.setuptime_hi = 3e-6;
lSH.holdtime_hi = 3e-6;
strcpy(lSH.mClockName, "CLK");
strcpy(lSH.mNetsList->mNetName, "FB1");
PSpiceWidthConstraint& lWidth = lConstraint.mWidth;
strcpy(lWidth.mInputNode, "FB1");
lWidth.min_low = 30e-6;
lWidth.min_high = 50e-6;
fp_setConstraint(mRef, &lConstraint);
• Set Digital constraints
• Setup-Hold
• Pulse Width
• Frequency
• Alternate way is to use
Digital CONSTRAINT device in
PSpice
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
C/C++ Digital Model – from C++ to PSpice
• Code is built into a dll
• PSpice lib and Capture
symbol created for the model
• LOGICEXP device with
keyword C_MODEL used for
specifying C-models
• Model loaded from dll by
PSpice at run-time
U1 LOGICEXP( 17, 1 ) DPWR DGND
+ CLK
+ FB7 FB6 FB5 FB4 FB3 FB2 FB1 FB0
+ REF7 REF6 REF5 REF4 REF3 REF2
REF1 REF0
+ PW
+ PWMCONTROL_TIMING IO_STD
+ C_MODEL: PSPPWMCONTROL.dll
PSPPWMCONTROL
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
2. MATLAB Algorithmic Model in PSpice
• Implementing Averaging Filter Block as a MATLAB Algorithmic
Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Algorithmic Block
Simulation in
Matlab-Simulink
MATLAB Model Block
Implementation &
Simulation in
PSpice
Mixed-level Co-
simulation in Matlab-
Simulink & PSpice
Mixed-level
Simulation in PSpice
Using Device modeling API with
MathWorks Algorithms
Algorithmic Abstraction Implementation
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
MATLAB
Algorithmic module
Use MATLAB Coder Generate C Code
Use Microsoft
Visual Studio
Add PSpice Adapter
and embed code
inside PSpice
behavioral block
Compile code to
generate PSpice-
DMI compatible dll
Use OrCAD Capture
Instantiate device
as a macro-model
Run PSpice
simulation and
verify results
High-level Flow for
using MATLAB blocks
using PSpice Device
Modeling API
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
MATLAB Filter algorithm and generated C code using MATLAB Coder
• Example of Averaging Filter
– http://www.mathworks.com/help/coder
/examples/averaging-
filter.html#zmw57dd0e162
• Generated C Code from
MATLAB Coder
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Embed MATLAB C Code in PSpice
Behavioral Device
• VCVS (Voltage Controlled
Voltage Source)
• Independent Voltage Source
• More suitable for discontinuous
derivatives
y=f(x)
Matlab
Function
N1
N2
N3
N4
f(x)*V(N3-N4)
Nodes and Branches
•Node N1
•Node N2
•Node N3
•Node N4
•Branch B1
N1 N2 N3 N4 B1 RHS
N1 1
N2 -1
B1 1 -1 -f’(x) f’(x)Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
MATLAB Model State Variables
static double buffer[16];
double averaging_filter(const double x,
double* buffer) {
double y;
double dv0[15];
/* Scroll the buffer */
memcpy(&dv0[0], &buffer[0], 15U *
sizeof(double));
memcpy(&buffer[1], &dv0[0], 15U *
sizeof(double));
• Persistent Matlab Variable
(State variables) moved to
PSpice Model State
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
PSpice Model State Management
•Inner Iteration on current State
Incr0
•Increment to next state as the
previous time point has converged
Incr1
•Decrement to previous State as last
time point convergence failed
decr1
•Decrement to 2nd previous State as
last time point convergence failed
Decr2
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Setup for PSpice Evaluation States
case ININIT:
averaging_filter_init(sv.x);
nonConv = true;
break;
case INPRDCT: {
double xDiff = sv.x[0] - sv.x[1];
double yDiff = sv.y[0] - sv.y[1];
if (abs(xDiff) > 0.0) {
mGain = yDiff / xDiff;
yValue = mGain * (xValue - sv.x[0]); }
break; }
case INNORM: {
sv.y[0] = yValue = averaging_filter(xValue, sv.x);
mGain = yValue / xValue;
break; }
• Initialization of device
structures
• Predictor
• Normal Evaluation
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Time Step Control
double pspAveragingFilterDevice::Trunc() {
double freq = fp_getParameterValue(“FREQ”);
double delta = fp_getDelta();
if (delta > 1.0/freq) {
double lValDelta = fabs((sv.x[0] - sv.x[1])) /
(fabs(sv.x[0]));
if (lValDelta > 0.1){
lReturnValue = delta / (1+lValDelta);
} }
return lReturnValue; }
• Device-Level
– Adaptive
– Fixed
• Global
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
MATLAB Algorithmic Model – from C++ to PSpice
• Code is built into a dll
• PSpice lib and Capture
symbol created for the model
• Y device with keyword CMI
used for specifying C-models
• Model loaded from dll by
PSpice at run-time
Y_AVGFILTER OUTPUT 0
NOISY_INPUT 0 CMI
pspMatlabDemoModels.dll
AvgFilter
.model AvgFilter CMI
PSPAVERAGINGFILTER
+ pw=.5
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
MATLAB PSpice
Algorithm Transfer
to PSpice Circuit
Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Complete System Simulation
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Time
0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms 2.2ms 2.4ms 2.6ms 2.8ms 3.0ms 3.2ms 3.4ms
V(VOUT)
0V
5V
10V
0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms 2.2ms 2.4ms 2.6ms 2.8ms 3.0ms 3.2ms 3.4ms
CLK
.REF2
Simulation Results – output voltage
(variation with duty cycle)
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
3. SystemC Behavioral Model in PSpice
• Implementing PWM Block as a SystemC block
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Design Flow
Digital Logic implemented
only as a C++ functional
block – no timing
information
Timing information added
as PSpice/C++ delays
Digital Logic implemented
as a SystemC functional
block, with built-in timing
SystemC logic replaced
with CPU having
embedded software
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
SystemC Flow – How it works?
Communicating with
PSpice
Running on SystemC
Simulator
Digital-C++
wrapper
Module
Analog
Behavioral
Devices
LOGICEXP
Device
Physical
Devices
SystemC
Block
PSpice Simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
SystemC Module Definition
#include <systemc.h>
SC_MODULE(pspSysCFIR) {
sc_in<bool> clk;
sc_in<sc_logic> reset;
sc_in<sc_int<16>> input;
sc_out<sc_int<16>> output;
SC_CTOR(pspSysCFIR) {
SC_CTHREAD(entry, clk.pos());
void entry(); };
• Define Module name
• Define Interface Signals
• Define constructor and
entry method
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Reading inputs from PSpice
reset = pVectorStates[1].getLevel();
for (int i = 0; i < 16; i++) {
inputBits[i] =
pVectorStates[i+2].getLevel(); }
sc_int<16> lValue;
pspBits2Array(inputBits, lValue,
16);
siginput.write(lValue);
• Read input signals
• Create SystemC variables
for input signals
• Write to SystemC Block
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Evaluate SystemC Block
if (sc_pending_activity()) {
if (pTicks > mPrevTicks) {
sc_start(pTicks - mPrevTicks,
SC_PS); }
else {
sc_start(0, SC_PS); }
• sc_start to execute the
module till specified time
• pTicks is received from
PSpice Simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Send output to PSpice
lValue = m_pspSysCFIR-
>output.read();
Int2pspBits(lValue, outputBits,
16);
lState = outputBits[i];
fp_SetState(mRef, i, &lState,
&lDelay);
• Read values from SystemC
block output
• Write to output Signal bits
• Send updated State to
PSpice Simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
System Models Timing
• System Models may be at
any level of abstraction
• Accuracy is maintained by
PSpice at the interface
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
4. VerilogA-ADMS Compact Device Model in
PSpice
• Implementing a VerilogA-ADMS VBIC Model as a PSpice
Compact Device
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Verilog-A definition for VBIC Model
module vbic(c,b,e,s)
inout c,b; // external nodes
inout e,s; // external nodes
branch (b ,e ) b_be; // base-emit
branch (b ,c ) b_bc; // base-coll
parameter real tnom = 27.0 `P(info="nominal parameter
measurement temperature " unit="C");
parameter real rcx = 0.0 from[0.0:inf]
`P(info="extrinsic collector resistance " unit="Ohm");
analog begin
Tini = `TABS+tnom;
` Vrth = V(b_rth);
Tdev = $temperature+dtemp+Vrth;
Tdev = Tdev-`TABS;
if (Tdev<tmin)
Tdev = tmin;
• Module name and external
node names
• Node definitions
• Branch definitions
• Parameter definitions
• Device Behavior
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
VerilogA-ADMS translation to PSpice
• admsXml used to translate Verilog-A
files to PSpice CMI models
• Script for automatic translation and
build of CMI dll
– <SPB
hierarchy>toolspspiceapibinbuildAD
MSProject.bat <path to Verilog-A file>
– Runs admsXml, using PSpice xml filters,
and generates the code files
– Also generates a Makefile to build a
PSpice-CMI compatible dll
– Runs nmake to build the code into a dll
• VBICSELFT.va translated to:
– vbicload.cpp
– vbicdefs.h
– vbicsetup.cpp
– vbictemp.cpp
– PSpiceAdapter.cpp
…
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
VerilogA-ADMS Simulation in PSpice
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Summary
• PSpice® system model extensions enable modeling of large
mixed-signal ICs in PCB simulation enabling simulation of
entire PCB
• PSpice analog C/C++ extensions with VerilogA-ADMS
configurations enable modeling of new technology device
compact models into PSpice simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.

More Related Content

What's hot

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
Houcheng Lin
 
Network Convergence of Mobile, Broadband and Wi-Fi
Network Convergence of Mobile, Broadband and Wi-FiNetwork Convergence of Mobile, Broadband and Wi-Fi
Network Convergence of Mobile, Broadband and Wi-Fi
3G4G
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
Tushar B Kute
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
Stephan Cadene
 
COSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem portingCOSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem porting
Eric Lin
 
Platform Drivers
Platform DriversPlatform Drivers
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
Kirill Tsym
 
Page Cache in Linux 2.6.pdf
Page Cache in Linux 2.6.pdfPage Cache in Linux 2.6.pdf
Page Cache in Linux 2.6.pdf
ycelgemici1
 
Building a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerBuilding a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and Docker
Wellington Marinho
 
Linux device drivers
Linux device drivers Linux device drivers
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yocto
Alex Gonzalez
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
Anil Kumar Pugalia
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
Saadi Rahman
 
Ch20
Ch20Ch20
Lesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemLesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File System
Sadia Bashir
 
HSM Basic Training
HSM Basic TrainingHSM Basic Training
HSM Basic Training
Md. Budrul Hasan Bhuiyan
 
Bootloaders
BootloadersBootloaders
Bootloaders
Anil Kumar Pugalia
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologies
Anne Nicolas
 
Chapter09 Implementing And Using Group Policy
Chapter09      Implementing And  Using  Group  PolicyChapter09      Implementing And  Using  Group  Policy
Chapter09 Implementing And Using Group Policy
Raja Waseem Akhtar
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
Brendan Gregg
 

What's hot (20)

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Network Convergence of Mobile, Broadband and Wi-Fi
Network Convergence of Mobile, Broadband and Wi-FiNetwork Convergence of Mobile, Broadband and Wi-Fi
Network Convergence of Mobile, Broadband and Wi-Fi
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 
COSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem portingCOSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem porting
 
Platform Drivers
Platform DriversPlatform Drivers
Platform Drivers
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 
Page Cache in Linux 2.6.pdf
Page Cache in Linux 2.6.pdfPage Cache in Linux 2.6.pdf
Page Cache in Linux 2.6.pdf
 
Building a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerBuilding a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and Docker
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yocto
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
Ch20
Ch20Ch20
Ch20
 
Lesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemLesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File System
 
HSM Basic Training
HSM Basic TrainingHSM Basic Training
HSM Basic Training
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologies
 
Chapter09 Implementing And Using Group Policy
Chapter09      Implementing And  Using  Group  PolicyChapter09      Implementing And  Using  Group  Policy
Chapter09 Implementing And Using Group Policy
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 

Similar to Modeling an Embedded Device for PSpice Simulation

PCB Virtual Prototyping with PSpice
PCB Virtual Prototyping with PSpicePCB Virtual Prototyping with PSpice
PCB Virtual Prototyping with PSpice
EMA Design Automation
 
Tierney bq207
Tierney bq207Tierney bq207
Tierney bq207
Obsidian Software
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
DVClub
 
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
敬倫 林
 
PhD Slides
PhD SlidesPhD Slides
PhD Slides
Màrius Montón
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
Qualcomm Developer Network
 
AXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical supportAXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical support
Vitaliy Bozhkov ✔
 
Resume
ResumeResume
Resume
jaydippatel
 
Sudheer vaddi Resume
Sudheer vaddi ResumeSudheer vaddi Resume
Sudheer vaddi Resume
Sudheer Vaddi
 
Software Variability Management
Software Variability ManagementSoftware Variability Management
Software Variability Management
XavierDevroey
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
PersiPersi1
 
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)
byteLAKE
 
Resume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyResume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - Copy
Venkata Rakesh Gudipalli
 
Html5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhraHtml5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhra
Shubhra Kar
 
JBoss Brings More Power to your Business Processes (PTJUG)
JBoss Brings More Power to your Business Processes (PTJUG)JBoss Brings More Power to your Business Processes (PTJUG)
JBoss Brings More Power to your Business Processes (PTJUG)
Eric D. Schabell
 
Onnc intro
Onnc introOnnc intro
Onnc intro
Luba Tang
 
Mirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryMirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP Library
Deepak Shankar
 
Rohan Narula_Resume
Rohan Narula_ResumeRohan Narula_Resume
Rohan Narula_Resume
Rohan Narula
 
Introduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSPIntroduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSP
Pantech ProLabs India Pvt Ltd
 
Resume
ResumeResume

Similar to Modeling an Embedded Device for PSpice Simulation (20)

PCB Virtual Prototyping with PSpice
PCB Virtual Prototyping with PSpicePCB Virtual Prototyping with PSpice
PCB Virtual Prototyping with PSpice
 
Tierney bq207
Tierney bq207Tierney bq207
Tierney bq207
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
 
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
 
PhD Slides
PhD SlidesPhD Slides
PhD Slides
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
 
AXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical supportAXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical support
 
Resume
ResumeResume
Resume
 
Sudheer vaddi Resume
Sudheer vaddi ResumeSudheer vaddi Resume
Sudheer vaddi Resume
 
Software Variability Management
Software Variability ManagementSoftware Variability Management
Software Variability Management
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
 
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)
 
Resume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyResume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - Copy
 
Html5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhraHtml5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhra
 
JBoss Brings More Power to your Business Processes (PTJUG)
JBoss Brings More Power to your Business Processes (PTJUG)JBoss Brings More Power to your Business Processes (PTJUG)
JBoss Brings More Power to your Business Processes (PTJUG)
 
Onnc intro
Onnc introOnnc intro
Onnc intro
 
Mirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryMirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP Library
 
Rohan Narula_Resume
Rohan Narula_ResumeRohan Narula_Resume
Rohan Narula_Resume
 
Introduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSPIntroduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSP
 
Resume
ResumeResume
Resume
 

More from EMA Design Automation

Serial Link Design - Meeting the Need for Speed
Serial Link Design - Meeting the Need for SpeedSerial Link Design - Meeting the Need for Speed
Serial Link Design - Meeting the Need for Speed
EMA Design Automation
 
Power Supply Webinar
Power Supply WebinarPower Supply Webinar
Power Supply Webinar
EMA Design Automation
 
How does your Stack-up, stack up?
How does your Stack-up, stack up?How does your Stack-up, stack up?
How does your Stack-up, stack up?
EMA Design Automation
 
Your Route to Design Success - PCB Routing Tips from the Pros
Your Route to Design Success - PCB Routing Tips from the ProsYour Route to Design Success - PCB Routing Tips from the Pros
Your Route to Design Success - PCB Routing Tips from the Pros
EMA Design Automation
 
Common High-Speed PCB Design Issues and How to Solve Them
Common High-Speed PCB Design Issues and How to Solve ThemCommon High-Speed PCB Design Issues and How to Solve Them
Common High-Speed PCB Design Issues and How to Solve Them
EMA Design Automation
 
Designing for RF - Tips and Tricks from the PCB Design Pros
Designing for RF - Tips and Tricks from the PCB Design ProsDesigning for RF - Tips and Tricks from the PCB Design Pros
Designing for RF - Tips and Tricks from the PCB Design Pros
EMA Design Automation
 
Design for Manufacturing (DFM) and Why it Matters
Design for Manufacturing (DFM) and Why it MattersDesign for Manufacturing (DFM) and Why it Matters
Design for Manufacturing (DFM) and Why it Matters
EMA Design Automation
 
Let's Get Flexible: Expert Tips for Designing Flex PCBs
Let's Get Flexible: Expert Tips for Designing Flex PCBsLet's Get Flexible: Expert Tips for Designing Flex PCBs
Let's Get Flexible: Expert Tips for Designing Flex PCBs
EMA Design Automation
 
Your PCB Power Delivery Network (PDN) Gives Your Board Life
Your PCB Power Delivery Network (PDN) Gives Your Board LifeYour PCB Power Delivery Network (PDN) Gives Your Board Life
Your PCB Power Delivery Network (PDN) Gives Your Board Life
EMA Design Automation
 
What's New - OrCAD 17.2 QIR 6
What's New - OrCAD 17.2 QIR 6What's New - OrCAD 17.2 QIR 6
What's New - OrCAD 17.2 QIR 6
EMA Design Automation
 
PCB Data Management Webinar
PCB Data Management WebinarPCB Data Management Webinar
PCB Data Management Webinar
EMA Design Automation
 
PTC Live: Integrating PTC Windchill with Cadence PCB Design
PTC Live: Integrating PTC Windchill with Cadence PCB DesignPTC Live: Integrating PTC Windchill with Cadence PCB Design
PTC Live: Integrating PTC Windchill with Cadence PCB Design
EMA Design Automation
 
OrCAD Panel Editor
OrCAD Panel EditorOrCAD Panel Editor
OrCAD Panel Editor
EMA Design Automation
 
Implementing a Flexible Design Reuse Methodology
Implementing a Flexible Design Reuse MethodologyImplementing a Flexible Design Reuse Methodology
Implementing a Flexible Design Reuse Methodology
EMA Design Automation
 
OrCAD Constraint Driven Design Flow
OrCAD Constraint Driven Design FlowOrCAD Constraint Driven Design Flow
OrCAD Constraint Driven Design Flow
EMA Design Automation
 
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCBECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
EMA Design Automation
 
OrCAD Library Builder Overview Presentation
OrCAD Library Builder Overview PresentationOrCAD Library Builder Overview Presentation
OrCAD Library Builder Overview Presentation
EMA Design Automation
 
OrCAD Documentation Editor PCB Documentation Environment
OrCAD Documentation Editor PCB Documentation EnvironmentOrCAD Documentation Editor PCB Documentation Environment
OrCAD Documentation Editor PCB Documentation Environment
EMA Design Automation
 
PCB Design and Data Management
PCB Design and Data ManagementPCB Design and Data Management
PCB Design and Data Management
EMA Design Automation
 
Advanced Layout & Routing Techniques
Advanced Layout & Routing TechniquesAdvanced Layout & Routing Techniques
Advanced Layout & Routing Techniques
EMA Design Automation
 

More from EMA Design Automation (20)

Serial Link Design - Meeting the Need for Speed
Serial Link Design - Meeting the Need for SpeedSerial Link Design - Meeting the Need for Speed
Serial Link Design - Meeting the Need for Speed
 
Power Supply Webinar
Power Supply WebinarPower Supply Webinar
Power Supply Webinar
 
How does your Stack-up, stack up?
How does your Stack-up, stack up?How does your Stack-up, stack up?
How does your Stack-up, stack up?
 
Your Route to Design Success - PCB Routing Tips from the Pros
Your Route to Design Success - PCB Routing Tips from the ProsYour Route to Design Success - PCB Routing Tips from the Pros
Your Route to Design Success - PCB Routing Tips from the Pros
 
Common High-Speed PCB Design Issues and How to Solve Them
Common High-Speed PCB Design Issues and How to Solve ThemCommon High-Speed PCB Design Issues and How to Solve Them
Common High-Speed PCB Design Issues and How to Solve Them
 
Designing for RF - Tips and Tricks from the PCB Design Pros
Designing for RF - Tips and Tricks from the PCB Design ProsDesigning for RF - Tips and Tricks from the PCB Design Pros
Designing for RF - Tips and Tricks from the PCB Design Pros
 
Design for Manufacturing (DFM) and Why it Matters
Design for Manufacturing (DFM) and Why it MattersDesign for Manufacturing (DFM) and Why it Matters
Design for Manufacturing (DFM) and Why it Matters
 
Let's Get Flexible: Expert Tips for Designing Flex PCBs
Let's Get Flexible: Expert Tips for Designing Flex PCBsLet's Get Flexible: Expert Tips for Designing Flex PCBs
Let's Get Flexible: Expert Tips for Designing Flex PCBs
 
Your PCB Power Delivery Network (PDN) Gives Your Board Life
Your PCB Power Delivery Network (PDN) Gives Your Board LifeYour PCB Power Delivery Network (PDN) Gives Your Board Life
Your PCB Power Delivery Network (PDN) Gives Your Board Life
 
What's New - OrCAD 17.2 QIR 6
What's New - OrCAD 17.2 QIR 6What's New - OrCAD 17.2 QIR 6
What's New - OrCAD 17.2 QIR 6
 
PCB Data Management Webinar
PCB Data Management WebinarPCB Data Management Webinar
PCB Data Management Webinar
 
PTC Live: Integrating PTC Windchill with Cadence PCB Design
PTC Live: Integrating PTC Windchill with Cadence PCB DesignPTC Live: Integrating PTC Windchill with Cadence PCB Design
PTC Live: Integrating PTC Windchill with Cadence PCB Design
 
OrCAD Panel Editor
OrCAD Panel EditorOrCAD Panel Editor
OrCAD Panel Editor
 
Implementing a Flexible Design Reuse Methodology
Implementing a Flexible Design Reuse MethodologyImplementing a Flexible Design Reuse Methodology
Implementing a Flexible Design Reuse Methodology
 
OrCAD Constraint Driven Design Flow
OrCAD Constraint Driven Design FlowOrCAD Constraint Driven Design Flow
OrCAD Constraint Driven Design Flow
 
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCBECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCB
 
OrCAD Library Builder Overview Presentation
OrCAD Library Builder Overview PresentationOrCAD Library Builder Overview Presentation
OrCAD Library Builder Overview Presentation
 
OrCAD Documentation Editor PCB Documentation Environment
OrCAD Documentation Editor PCB Documentation EnvironmentOrCAD Documentation Editor PCB Documentation Environment
OrCAD Documentation Editor PCB Documentation Environment
 
PCB Design and Data Management
PCB Design and Data ManagementPCB Design and Data Management
PCB Design and Data Management
 
Advanced Layout & Routing Techniques
Advanced Layout & Routing TechniquesAdvanced Layout & Routing Techniques
Advanced Layout & Routing Techniques
 

Recently uploaded

BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
zubairahmad848137
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
sachin chaurasia
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
NidhalKahouli2
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
NazakatAliKhoso2
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 

Recently uploaded (20)

BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 

Modeling an Embedded Device for PSpice Simulation

  • 1.
  • 3. Agenda • Mixed-level System Design using PSpice • Modeling of different types of devices using PSpice – C/C++ Digital Models – MATLAB Algorithmic Models – SystemC Models – Compact Device Models using VerilogA-ADMS Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 4. PSpice accelerated mixed-signal system model for large IC on PCB with mixed-signal accuracy at interface Physical device compact model SystemC model supporting embedded S/W and different abstraction levels Analog behavioral Digital C/C++ with embedded SW block Temporal Data Accuracy Functionality Structural Simulation Acceleration with System-Level Abstractions Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 5. Digital controllers enabled Power Supplies Advanced control algorithm (non- linear control, improved transient) Enable easy management of multiple control loops Better precision tolerance to aging, temperature effects, etc. Example – S/w algorithm Controlled Power Supply PWM Microcontroller with algorithm control Power Stage Filter Stage IN A/D OUT Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 6. Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners. Top-level schematic
  • 7. Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 8. 1. C/C++ Digital Model in PSpice • Specification of logic using C/C++ • Timing model, I/O and constraints specification may be coded as part of the C- model or applied on the block level from datasheet • Interfaces are accurate for mixed-signal implementation • Evaluation is accelerated with C/C++/SystemC model for large digital blocks • Device Logic is independent of PSpice syntax • Model is debuggable in Visual IDE’s Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 9. 1. C/C++ Digital Model in PSpice… • Next: Implementing PWM Block as a Digital behavioral block Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 10. Install Model void __cdecl installpspPWMControl(void* pRef) { fp_descSetVersion(pRef, "1.2"); fp_descSetName(pRef, "PSPPWMCONTROL"); fp_descSetCreateDevice( pRef,&pspPWMControl_CreateDevice); fp_descSetDeleteDevice( pRef,&pspPWMControl_DeleteDevice); fp_descSetEvaluateDevice( pRef,&pspPWMControl_EvaluateDevice); } • Links functions between device and simulator – Sets function pointers from model dll to PSpice • Sets version and Model Name • Allows multiple devices to be installed from the same dll Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 11. Create Instance pspPWMControl::pspPWMControl (const char* pInstName, void*pRef) { mRef = pRef; mInstName = pInstName; mPortCount = 18; mInputPortCount = 17; } • Creates a new device instance • Instance Name and Reference set by PSpice • Port counts set by Device Model Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 12. Set Parameter Values mDigSimFreq = fp_GetParamValueDbl("DIGFREQ"); mDigSimTimeStep = 1.0 / mDigSimFreq; //Device Specific Initialization mPER = (int)fp_GetParamValueDbl("PER"); mDutyCycle = fp_GetParamValueDbl("D"); • Get Parameter values from PSpice by name o Simulator options o Global parameters set up in design Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 13. Evaluate bool pspPWMControl::evaluate (double pTicks, PSpiceState* pVectorStates, int pSize) { double lCurrentTime = mDigSimTimeStep*pTicks; double lDelta = pTicks - mPrevTicks; //Get input Signal Levels CLK = pVectorStates[0].getLevel(); //if CLK changed from LO to another value if ((int)prevCLK == pspBit::LO && (int)CLK != pspBit::LO) { lCLKRisingEdge = true; }} • Evaluate device at any change in inputs o Get Current time o Get input signal levels o Detect clock edge Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 14. Evaluate… for (int i = 0; i < 8; i++) { FB[i] = pVectorStates[8 - i].getLevel(); } pspBits2Int(FB, FBInt, 8); //evaluate logic for (int i = 0; i < 8; i++) { PW[i] = FB[i] & REF[i]; } if (mPWStatus==true && (int)PW != 1){ PW = pspBit::HI; } //update output State for (int i = 0; i < 8; i++) { if (oldPW[i] == PW[i]) continue; lState = PW[i]; fp_SetState(mRef, 7-i, &lState, NULL); } • Read levels (LO|HI) for input signal bits • Convert Signal Bits to C++ integer levels • Execute Algorithm • Convert C++ data back to signal bits • Update output states Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 15. Set Delays PSpiceState lState = (pVectorStates)[0]; PSpiceDelay lDelay; lDelay.mMaxDelay = 1e-6; lDelay.mMinDelay = 1e-6; lDelay.mTypDelay = 1e-6; lState = PW; fp_SetState(mRef, 0, &lState, &lDelay); • Set Timing Delays • Min/Typ/Max Delays • Simulator can be setup to run with any 1 value • Worst-case analysis can be run with min and max delays • Alternate way is to setup using PSpice Timing Model Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 16. Set Constraints PSpiceConstraint lConstraint; PSpiceSetupHoldConstraint& lSH =lConstraint.mSetupHold; lSH.setuptime_hi = 3e-6; lSH.holdtime_hi = 3e-6; strcpy(lSH.mClockName, "CLK"); strcpy(lSH.mNetsList->mNetName, "FB1"); PSpiceWidthConstraint& lWidth = lConstraint.mWidth; strcpy(lWidth.mInputNode, "FB1"); lWidth.min_low = 30e-6; lWidth.min_high = 50e-6; fp_setConstraint(mRef, &lConstraint); • Set Digital constraints • Setup-Hold • Pulse Width • Frequency • Alternate way is to use Digital CONSTRAINT device in PSpice Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 17. C/C++ Digital Model – from C++ to PSpice • Code is built into a dll • PSpice lib and Capture symbol created for the model • LOGICEXP device with keyword C_MODEL used for specifying C-models • Model loaded from dll by PSpice at run-time U1 LOGICEXP( 17, 1 ) DPWR DGND + CLK + FB7 FB6 FB5 FB4 FB3 FB2 FB1 FB0 + REF7 REF6 REF5 REF4 REF3 REF2 REF1 REF0 + PW + PWMCONTROL_TIMING IO_STD + C_MODEL: PSPPWMCONTROL.dll PSPPWMCONTROL Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 18. 2. MATLAB Algorithmic Model in PSpice • Implementing Averaging Filter Block as a MATLAB Algorithmic Model Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 19. Algorithmic Block Simulation in Matlab-Simulink MATLAB Model Block Implementation & Simulation in PSpice Mixed-level Co- simulation in Matlab- Simulink & PSpice Mixed-level Simulation in PSpice Using Device modeling API with MathWorks Algorithms Algorithmic Abstraction Implementation Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 20. MATLAB Algorithmic module Use MATLAB Coder Generate C Code Use Microsoft Visual Studio Add PSpice Adapter and embed code inside PSpice behavioral block Compile code to generate PSpice- DMI compatible dll Use OrCAD Capture Instantiate device as a macro-model Run PSpice simulation and verify results High-level Flow for using MATLAB blocks using PSpice Device Modeling API Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 21. MATLAB Filter algorithm and generated C code using MATLAB Coder • Example of Averaging Filter – http://www.mathworks.com/help/coder /examples/averaging- filter.html#zmw57dd0e162 • Generated C Code from MATLAB Coder Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 22. Embed MATLAB C Code in PSpice Behavioral Device • VCVS (Voltage Controlled Voltage Source) • Independent Voltage Source • More suitable for discontinuous derivatives y=f(x) Matlab Function N1 N2 N3 N4 f(x)*V(N3-N4) Nodes and Branches •Node N1 •Node N2 •Node N3 •Node N4 •Branch B1 N1 N2 N3 N4 B1 RHS N1 1 N2 -1 B1 1 -1 -f’(x) f’(x)Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 23. MATLAB Model State Variables static double buffer[16]; double averaging_filter(const double x, double* buffer) { double y; double dv0[15]; /* Scroll the buffer */ memcpy(&dv0[0], &buffer[0], 15U * sizeof(double)); memcpy(&buffer[1], &dv0[0], 15U * sizeof(double)); • Persistent Matlab Variable (State variables) moved to PSpice Model State Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 24. PSpice Model State Management •Inner Iteration on current State Incr0 •Increment to next state as the previous time point has converged Incr1 •Decrement to previous State as last time point convergence failed decr1 •Decrement to 2nd previous State as last time point convergence failed Decr2 Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 25. Setup for PSpice Evaluation States case ININIT: averaging_filter_init(sv.x); nonConv = true; break; case INPRDCT: { double xDiff = sv.x[0] - sv.x[1]; double yDiff = sv.y[0] - sv.y[1]; if (abs(xDiff) > 0.0) { mGain = yDiff / xDiff; yValue = mGain * (xValue - sv.x[0]); } break; } case INNORM: { sv.y[0] = yValue = averaging_filter(xValue, sv.x); mGain = yValue / xValue; break; } • Initialization of device structures • Predictor • Normal Evaluation Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 26. Time Step Control double pspAveragingFilterDevice::Trunc() { double freq = fp_getParameterValue(“FREQ”); double delta = fp_getDelta(); if (delta > 1.0/freq) { double lValDelta = fabs((sv.x[0] - sv.x[1])) / (fabs(sv.x[0])); if (lValDelta > 0.1){ lReturnValue = delta / (1+lValDelta); } } return lReturnValue; } • Device-Level – Adaptive – Fixed • Global Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 27. MATLAB Algorithmic Model – from C++ to PSpice • Code is built into a dll • PSpice lib and Capture symbol created for the model • Y device with keyword CMI used for specifying C-models • Model loaded from dll by PSpice at run-time Y_AVGFILTER OUTPUT 0 NOISY_INPUT 0 CMI pspMatlabDemoModels.dll AvgFilter .model AvgFilter CMI PSPAVERAGINGFILTER + pw=.5 Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 28. MATLAB PSpice Algorithm Transfer to PSpice Circuit Model Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 29. Complete System Simulation Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 30. Time 0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms 2.2ms 2.4ms 2.6ms 2.8ms 3.0ms 3.2ms 3.4ms V(VOUT) 0V 5V 10V 0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms 2.2ms 2.4ms 2.6ms 2.8ms 3.0ms 3.2ms 3.4ms CLK .REF2 Simulation Results – output voltage (variation with duty cycle) Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 31. 3. SystemC Behavioral Model in PSpice • Implementing PWM Block as a SystemC block Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 32. Design Flow Digital Logic implemented only as a C++ functional block – no timing information Timing information added as PSpice/C++ delays Digital Logic implemented as a SystemC functional block, with built-in timing SystemC logic replaced with CPU having embedded software Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 33. SystemC Flow – How it works? Communicating with PSpice Running on SystemC Simulator Digital-C++ wrapper Module Analog Behavioral Devices LOGICEXP Device Physical Devices SystemC Block PSpice Simulator Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 34. SystemC Module Definition #include <systemc.h> SC_MODULE(pspSysCFIR) { sc_in<bool> clk; sc_in<sc_logic> reset; sc_in<sc_int<16>> input; sc_out<sc_int<16>> output; SC_CTOR(pspSysCFIR) { SC_CTHREAD(entry, clk.pos()); void entry(); }; • Define Module name • Define Interface Signals • Define constructor and entry method Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 35. Reading inputs from PSpice reset = pVectorStates[1].getLevel(); for (int i = 0; i < 16; i++) { inputBits[i] = pVectorStates[i+2].getLevel(); } sc_int<16> lValue; pspBits2Array(inputBits, lValue, 16); siginput.write(lValue); • Read input signals • Create SystemC variables for input signals • Write to SystemC Block Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 36. Evaluate SystemC Block if (sc_pending_activity()) { if (pTicks > mPrevTicks) { sc_start(pTicks - mPrevTicks, SC_PS); } else { sc_start(0, SC_PS); } • sc_start to execute the module till specified time • pTicks is received from PSpice Simulator Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 37. Send output to PSpice lValue = m_pspSysCFIR- >output.read(); Int2pspBits(lValue, outputBits, 16); lState = outputBits[i]; fp_SetState(mRef, i, &lState, &lDelay); • Read values from SystemC block output • Write to output Signal bits • Send updated State to PSpice Simulator Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 38. System Models Timing • System Models may be at any level of abstraction • Accuracy is maintained by PSpice at the interface Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 39. 4. VerilogA-ADMS Compact Device Model in PSpice • Implementing a VerilogA-ADMS VBIC Model as a PSpice Compact Device Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 40. Verilog-A definition for VBIC Model module vbic(c,b,e,s) inout c,b; // external nodes inout e,s; // external nodes branch (b ,e ) b_be; // base-emit branch (b ,c ) b_bc; // base-coll parameter real tnom = 27.0 `P(info="nominal parameter measurement temperature " unit="C"); parameter real rcx = 0.0 from[0.0:inf] `P(info="extrinsic collector resistance " unit="Ohm"); analog begin Tini = `TABS+tnom; ` Vrth = V(b_rth); Tdev = $temperature+dtemp+Vrth; Tdev = Tdev-`TABS; if (Tdev<tmin) Tdev = tmin; • Module name and external node names • Node definitions • Branch definitions • Parameter definitions • Device Behavior Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 41. VerilogA-ADMS translation to PSpice • admsXml used to translate Verilog-A files to PSpice CMI models • Script for automatic translation and build of CMI dll – <SPB hierarchy>toolspspiceapibinbuildAD MSProject.bat <path to Verilog-A file> – Runs admsXml, using PSpice xml filters, and generates the code files – Also generates a Makefile to build a PSpice-CMI compatible dll – Runs nmake to build the code into a dll • VBICSELFT.va translated to: – vbicload.cpp – vbicdefs.h – vbicsetup.cpp – vbictemp.cpp – PSpiceAdapter.cpp … Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 42. VerilogA-ADMS Simulation in PSpice Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.
  • 43. Summary • PSpice® system model extensions enable modeling of large mixed-signal ICs in PCB simulation enabling simulation of entire PCB • PSpice analog C/C++ extensions with VerilogA-ADMS configurations enable modeling of new technology device compact models into PSpice simulator Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All other trademarks are the property of their respective owners.