SlideShare una empresa de Scribd logo
1 de 25
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+,CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
2
1. Introduction
2. PSL versus SystemVerilog assertions
3. SystemVerilog bind statement used to monitor analog blocks
4. Using value fetch mechanism
5. Resolving hierarchical paths
6. Switching between wreal models and transistor-level
7. Continuous-time analog assertions
8. Linear Temporal Logic versus continuous time properties
using $time
9. Conclusion
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
3
• SystemVerilog and PSL are increasingly adopted to verify
the correct integration of analog IPs into Mixed-Signal
SoCs.
• However, several difficulties:
− Vertical re-use: from block-level to SoC-level
− Cross-model re-use: same assertion code for wreal, AMS and
transistor-level
 In digital this would be re-using the same assertions for both RTL and
gate-level
− Monitor continuous-time analog signals
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
4
• At first glance, PSL appears to be well suited for our
needs:
− Vunits stand in the same scope as the design
− Similar to a `include statement
− Direct access to the DUT’s signals
− PSL borrows the Boolean layer of the language it is running on
→ It can access analog operators such as V() and I()
− Vunits can contain assertions, but also auxiliary AMS code
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
5
• However, PSL has some drawbacks:
− Assertions need to be updated as design signal names change
− No straight forward way to execute action blocks to interact with the
testbench
 i.e. TCL interaction required to accumulate the number of failures
− It is yet another language to handle in a verification environment which
is likely to use systemverilog extensively
 i.e. UVM-MS bench
• SystemVerilog assertions:
− Are embedded in their own scope (module, interface, program)
− Do not need to match design signal names
− Can trig action blocks (with no need of TCL interaction)
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
6
• Use systemverilog bind statement
− Instantiates external modules into target module
without editing the latter
− SV monitors can be « projected » into AMS modules !
− Analog schematics are netlisted as verilog-AMS
modules
 Analog blocks can be switched between behavioral or transistor-
level without breaking the assertion code
 Potentials can be asserted via monitor ports, just like logic nets
− Automatic insertion of connect modules (E2R)
 However, currents cannot be connected to the bound SV monitor
− Branch would need to be opened and monitor inserted in series
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
7
Block A
Assertions
A assertions
bind
Block B
Block C
DUT
Assertions
B bind
Assertions
C
Assertions
B
Assertions
Cbind
bind BlockA AssertionsA I_assertionsA (<list of pins>)
bind BlockA AssertionsA I_assertionsA (<list of pins>)
bind BlockA AssertionsA I_assertionsA (<list of pins>)
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
8
• One cannot simply put a probe on a net, as for the voltages
• Connecting a wire “somewhere” in the design to an input of the
monitor will just create another branch (with –hopefully- no
current)
• “Fetch” the current from a block’s port using $cds_get_analog_value()
• Same mechanism applied to voltage measurements (unified approach)
Syntax:
$cds_get_analog_value(hierarchical_name, [optional index, [optional quantity
qualifier]])
Example:
current: $cds_get_analog_value(“top.dut.BlockA.vdda”, “flow”);
voltage: $cds_get_analog_value(“top.dut.BlockA.vdda”, “potential”);
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
9
• Unfortunately, the $cgav() system task requires a complete
hierarchical path as a first argument
− Unless the signal is in the same scope…
− … but our signals are one-level above in the hierarchy…
• We use a DPI genPath(string netName);
− The argument is a net or port name in the module to monitor
− The DPI builds the string of the full hierarchical path to the specified net or
port
• Our monitor would look like that:
module monitor (input logic clk);
import “DPI-C” context function string genPath(string netName);
real voltage;
real current;
string PATH= genPath(“net”);
always @(clk) begin
voltage = $cgav(PATH, “potential”);
current = $cgav(PATH, “flow”);
end
endmodule
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
10
#include <stdio.h> #include <string.h>
#include "svdpi.h“
char* getPath (char *netName) {
char *scope;
static char fullPath[100];
// Get scope of calling function
scope = svGetNameFromScope(svGetScope() );
// Prepare full path prefix, including the last dot
strcpy(fullPath,scope);
if (strrchr(fullPath,'.')!=NULL)
*(strrchr(fullPath,'.')+1)=0; // +1 to include the dot
else printf("t DPI: ERROR : no dot found in path");
// Append the net name to the hierarchical prefix
strcat(fullPath,netName);
printf("t DPI: %s", fullPath);
return fullPath;
}
Retrieve scope of the DPI call
Remove instance name of
the monitor from the
hierarchical path string
Append the net/port name
and return string
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
11
• Unfortunately $cgav() cannot fetch values from the digital solver…
− We’re using yet another DPI to access logic or wreal net values
− The DPI is calling some VPI functions:
#include <stdio.h>
#include <vpi_user.h>
#include <string.h>
#include "svdpi.h"
double getReal (char *netName)
{
vpiHandle net;
s_vpi_value vpi_val;
net = vpi_handle_by_name(getPath(netName), NULL);
vpi_val.format = vpiRealVal;
vpi_get_value(net, &vpi_val);
return vpi_val.value.real;
}
Uses getPath() as an argument
to vpi_handle_by_name()
Calling vpi_get_value() on the
target net
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
12
• We define a verilog macro to determine if $cgav() or get_v() should be called
on a net
• Macro based on Cadence $cds_analog_is_valid()
function automatic logic caiv(string name, string qualifier="potential");
string path=getPath(name);
caiv = $cds_analog_is_valid(path, qualifier);
Endfunction
function automatic real cgav(string name, string qualifier="potential");
string path=getPath(name);
cgav = $cgav(path, qualifier);
Endfunction
`define get_value(VAL, QUAL, SIG) 
real VAL; 
always @(clk) 
if (caiv(SIG,QUAL)) VAL=cgav(SIG, QUAL); 
else VAL=getReal(SIG);
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
13
module monitor (input logic clk);
import "DPI-C" context function string getPath (string netName);
import "DPI-C" context function real getReal (input string path);
`get_value(vrega, "potential", "vrega")
`get_value(ivssa, "flow", "vssa")
// Check monotonicity of VREGA
property vrega_monotonicity;
real x1, x2;
@(clk) (bg_ok, x1 = vrega) |-> ##1 (`TRUE, x2 = vrega) ##0 (x2>=x1);
endproperty
assert_vrega_monotonicity: assert property (vrega_monotonicity)
PRINT_PASS("VREGA is monotonic"); else begin
$warning("%m failed");
PRINT_ERROR("VREGA is not monotonic");
end
endmodule
• Note: not using the current (ivssa) in the assertion here
Importing our DPIs
Use our macros for both
potentials and currents
(unified approach)
Use local variables
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
14
• PSL or SV assertions executed by the digital solver
− Continuous-time signals mapped into the digital discrete time
domain
− Potential analog hazards (glitches) can be overlooked
• How to ensure analog properties continuously match ?
− Voltage/Current level, Phase, Frequency, Amplitude, etc…
• A stable clock frequency to sample the signal can only be
arbitrary.
− A 1Mhz clock (1us period) would likely not detect a 10ns glitch.
− Shall we take a 1Ghz clock instead (1ns period) and consider any
smaller glitch irrelevant, we would slow down the simulation so
much that this solution is impracticable
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
15
• Verilog-AMS does the analog measurements
• Checks against expected are either:
1. Done in AMS and passed over to systemverilog for coverage
recording
2. Analog measurements are passed over to systemverilog (real
numbers) who is doing the actual check.
• Advantages
− Continuous-time signals can “naturally” be monitored continuously
• Drawbacks
− Two modules have to be maintained together (AMS+SV)
 Error-prone
 Not easy to read, understand and maintain
− One AMS module instantiated for each signal to monitor
 adding to the analog simulator load
 impacting the simulation time (@cross/above() create additional time-steps)
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
16
• Systemverilog does the analog measures and checks
• Adaptive clock used to trigger the assertions:
− Based on the analog time-steps
− Time-steps are determined by the analog solver based on
 Kirchoff’s Law
 Newton-Raphson to determine next DC point
 If no DC within a limited number of iterations, choose smaller time-step,
etc…
• Advantages
− All quantities (I, V, Freq,…) to monitor and check are real numbers
− Single language, single monitor, easier maintenance and readability
− No extra load for the analog solver
− No impact on convergence
− No connect module !
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
17
• Use a verilog-AMS module
− The analog process executes at each time step
− An analog clock is generated
− And then digitized to generate the digital clock to be used by the
assertions
 No @cross or @above to prevent addtional time steps
`include "disciplines.vams"
module analog_timestep();
real clk_a;
reg clk = 1'b0;
always @(absdelta(clk_a, 10m, 10p, 1m))
if ((clk_a == 1.0) || (clk_a == 0.0)) clk = ~clk;
analog begin
clk_a = 1.0 - clk_a;
end
endmodule
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
18
• Typically monitors would also use a traditional digital clock
• Signals to monitor are not connected through the monitor ports
(but fetched instead)
bind DigCore dig_monitor digmon (.clkd(clkd));
bind PowerMgt PM_monitor PMmon (.clka(analog.clk), .clkd(clkd));
bind SigChain sc_monitor scmon (.clka(analog.clk), .clkd(clkd));
bind ADC adc_monitor adcmon (.clka(analog.clk), .clkd(clkd));
bind OSC osc_monitor oscmon (.clka(analog.clk), .clkd(clkd));
bind PadRing padring_monitor padmon(.clka(analog.clk), .clkd(clkd));
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
19
• Assertions on the voltage regulator prepared on wreal model
• Then turned into transistor-level with its non-idealities:
− A glitch was captured when transitioning from low-power to low-noise
bandgap
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
20
• Example: regulator’s settle time
// Check settle time of VREGA is within 10us
reg clk_1us = 1'b0;
reg run_clk_1us = 1'b1;
always #500 clk_1us = ~clk_1us & bg_ok & run_clk_1us;
task stop_clk_1us; run_clk_1us = 1'b0; endtask
property vrega_startup(t);
@(posedge clk_1us) bg_ok |-> ##[0:t] (vrega >= 0.9*vthi, stop_clk_1us);
endproperty
assert_vrega_startup_within_10us: assert property (vrega_startup(10) )
PRINT_PASS("VREGA startup time is within 10us"); else begin
$warning("%m failed");
PRINT_ERROR("");
end
Action block
called by the
assertion
Named property with formal arguments
Ad hoc clock generation
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
21
• SV assertions use sequence operators:
− Cycle delay ##
− Consecutive repetition [* ]
− Non-consecutive repetition [= ]
− Goto repetition [-> ]
• These operators are not well-suited for handling continuous-
time
• A lot of research is going on, involving both Accelera and IEEE
standardization Comittees to come up with an enhanced set of
operators dedicated to handling continuous signals
• However, some continuous-time assertions can already be
written using the $time system task
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
22
• Continuously monitor signal range while cond is true, starting after delay:
property prop_delayed (signal, cond, delay, value, tol);
@(clk) cond |-> ($time-t0 < delay)[*0:$] ##1 (signal >= (1-
tol)*value) && (signal <= (1+tol)*value);
endproperty
• The delay is measured with the system task $time, compared to a
time t0 taken on the rising edge of cond by a separate always
process.
− t0 cannot be recorded within the assertion because a $rose(cond)
would be required, but we want the property to be verified at each time-
step when cond is true
• The consequent (post-condition) says "wait for the delay to expire,
then check that the signal is within the tolerance".
− The consecutive repetition [*0:$] allows the delay not to be expired
during as many cycles as required, but then the signal condition must
be true on the next cycle.
− If the delay is already expired, ($time-t0 < delay)[*0:$] remains true
thanks to the min limit being zero, and the signals condition keeps
being asserted (continuously).
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
23
• SystemVerilog bind statement can be used to « project » an SV monitor into
any module, including a transistor-level AMS netlist
• Potentials could be accessed via ports, just like logic (E2R connect modules
inserted)
• But currents can not, hence we use value fetch ($cgav()) instead.
• A DPI is used to generate the hierarchical path string so that the monitor’s
code is re-usable (hierarchy independent)
• Another DPI, symmetrical to $cgav() for wreal nets is used together with a
verilog macro to seamlessly switch between wreal models and AMS or
transistor-level
• Finally, an adaptive clock, based on the analog time-steps is used for
asserting continuous-time properties
• Academic research is active on defining new continuous-time semantics
based on temporal logic operators with time domain ranges, error margins,
tolerances, etc…
• A future systemverilog-AMS standard has long been awaited
− Verilog-AMS + assertions
− SystemVerilog + AMS
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
24
[1] IEEE Std 1800™-2012 (Revision of IEEE Std 1800-2009 - )IEEE Standard for SystemVerilog – Unified Hardware
Design, Specification, and Verification Language, IEEE Computer Society and the IEEE Standards Association
Corporate Advisory Group
[2] SystemVerilog Assertions Design Tricks and SVA Bind Files, Sunburst Design, SNUG 2009
[2] Instrumenting AMS assertion Verification on Commercial Platforms, Radjeep Mukhopadhyay, S. K. Panda, Pallab
Dasgipta, IIT Kharagpur, India and John Gough,National Semiconductor Corp., Greenock, UK
[4] Analog Assertion Based Verification Methodology – reality or a Dream ? Srikanth V Raghavan
(http://www.cadence.com/Community/blogs/cic/archive/2011/02/09/analog-assertion-based-verification-
methodology-reality-or-a-dream-part-2.aspx)
[5] Assertion Writing Guide, Cadence Design Systems, USA 2012.
[6] Virtuoso® AMS Designer User Guide, Cadence Design Systems, USA 2011
[7] Incorporating Local Variables in Mixed-Signal Assertions, Subhankar Mukherjee and Pallab Dasgupta – Indian
Institute of Technology Kharagpur
[8] Asynchronous Behaviors Meet Their Match with SystemVerilog Assertions, Doug Smith, Doulos
[9]Verification of mixed-signal designs using System-Verilog assertions in co-simulation, Somasunder Kattepura
Sreenath, Texas Instruments, SNUG 2010 Best Paper.
[10] PSL and SVA: Two Standard Assertion Languages Addressing Complementary Engineering Needs, John Havlicek,
Freescale Semiconductor, Inc. and Yaron Wolfsthal, IBM Haifa Research Lab, Israel
[11] Assertion-based verification in mixed-signal design, Prabal Bhattacharya ad Don O’Riordan, EEtimes
[12] Assertion for AMS design, Himyanshu Anand, john Havlicek, Scott Little, Freescale Semiconductor
[13] Real-Valued Mixed-Signal Verification: An Abstraction Adjustable Methodology, Arthur Freitas, Freescale
Semiconductor, 2013
TM

Más contenido relacionado

La actualidad más candente

SpiraTeam Overview Presentation (2022)
SpiraTeam Overview Presentation (2022)SpiraTeam Overview Presentation (2022)
SpiraTeam Overview Presentation (2022)Inflectra
 
System verilog assertions
System verilog assertionsSystem verilog assertions
System verilog assertionsHARINATH REDDY
 
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6Robb Boyd
 
Cisco Identity Services Engine (ISE)
Cisco Identity Services Engine (ISE)Cisco Identity Services Engine (ISE)
Cisco Identity Services Engine (ISE)Anwesh Dixit
 
CXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptxCXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptxkirankumarpalakurthi
 
VoiceBootcamp Ccnp collaboration lab guide v1.0 sample
VoiceBootcamp Ccnp collaboration lab guide v1.0 sampleVoiceBootcamp Ccnp collaboration lab guide v1.0 sample
VoiceBootcamp Ccnp collaboration lab guide v1.0 sampleFaisal Khan
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docxssuser1c8ca21
 
VMware Disaster Recovery Solution Presentation EN (1).pptx
VMware Disaster Recovery Solution Presentation EN (1).pptxVMware Disaster Recovery Solution Presentation EN (1).pptx
VMware Disaster Recovery Solution Presentation EN (1).pptxFernando564134
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 
Evaluating UCIe based multi-die SoC to meet timing and power
Evaluating UCIe based multi-die SoC to meet timing and power Evaluating UCIe based multi-die SoC to meet timing and power
Evaluating UCIe based multi-die SoC to meet timing and power Deepak Shankar
 
Intermediate: Security in Mobile Cellular Networks
Intermediate: Security in Mobile Cellular NetworksIntermediate: Security in Mobile Cellular Networks
Intermediate: Security in Mobile Cellular Networks3G4G
 
Verilog HDL Training Course
Verilog HDL Training CourseVerilog HDL Training Course
Verilog HDL Training CoursePaul Laskowski
 
Verilog HDL Verification
Verilog HDL VerificationVerilog HDL Verification
Verilog HDL Verificationdennis gookyi
 
Cisco Catalyst 9000 Switching Family
Cisco Catalyst 9000 Switching FamilyCisco Catalyst 9000 Switching Family
Cisco Catalyst 9000 Switching FamilyMobeen Khan
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_featuresNirav Desai
 
Ravada VDI Eslibre
Ravada VDI EslibreRavada VDI Eslibre
Ravada VDI Eslibrefrankiejol
 

La actualidad más candente (20)

SpiraTeam Overview Presentation (2022)
SpiraTeam Overview Presentation (2022)SpiraTeam Overview Presentation (2022)
SpiraTeam Overview Presentation (2022)
 
System verilog assertions
System verilog assertionsSystem verilog assertions
System verilog assertions
 
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
 
Cisco Identity Services Engine (ISE)
Cisco Identity Services Engine (ISE)Cisco Identity Services Engine (ISE)
Cisco Identity Services Engine (ISE)
 
Gigabit wifi 802.11 ac in depth_peter thornycroft
Gigabit wifi 802.11 ac in depth_peter thornycroftGigabit wifi 802.11 ac in depth_peter thornycroft
Gigabit wifi 802.11 ac in depth_peter thornycroft
 
CXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptxCXL chapter1 and chapter 2 presentation.pptx
CXL chapter1 and chapter 2 presentation.pptx
 
VoiceBootcamp Ccnp collaboration lab guide v1.0 sample
VoiceBootcamp Ccnp collaboration lab guide v1.0 sampleVoiceBootcamp Ccnp collaboration lab guide v1.0 sample
VoiceBootcamp Ccnp collaboration lab guide v1.0 sample
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docx
 
Uvm dac2011 final_color
Uvm dac2011 final_colorUvm dac2011 final_color
Uvm dac2011 final_color
 
VMware Disaster Recovery Solution Presentation EN (1).pptx
VMware Disaster Recovery Solution Presentation EN (1).pptxVMware Disaster Recovery Solution Presentation EN (1).pptx
VMware Disaster Recovery Solution Presentation EN (1).pptx
 
Verification Challenges and Methodologies
Verification Challenges and MethodologiesVerification Challenges and Methodologies
Verification Challenges and Methodologies
 
Sangoma SS7 Gateway Training
Sangoma SS7 Gateway TrainingSangoma SS7 Gateway Training
Sangoma SS7 Gateway Training
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 
Evaluating UCIe based multi-die SoC to meet timing and power
Evaluating UCIe based multi-die SoC to meet timing and power Evaluating UCIe based multi-die SoC to meet timing and power
Evaluating UCIe based multi-die SoC to meet timing and power
 
Intermediate: Security in Mobile Cellular Networks
Intermediate: Security in Mobile Cellular NetworksIntermediate: Security in Mobile Cellular Networks
Intermediate: Security in Mobile Cellular Networks
 
Verilog HDL Training Course
Verilog HDL Training CourseVerilog HDL Training Course
Verilog HDL Training Course
 
Verilog HDL Verification
Verilog HDL VerificationVerilog HDL Verification
Verilog HDL Verification
 
Cisco Catalyst 9000 Switching Family
Cisco Catalyst 9000 Switching FamilyCisco Catalyst 9000 Switching Family
Cisco Catalyst 9000 Switching Family
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
 
Ravada VDI Eslibre
Ravada VDI EslibreRavada VDI Eslibre
Ravada VDI Eslibre
 

Destacado

Verification Of 1 M+ Transistors Mixed Signal Ic
Verification Of 1 M+ Transistors Mixed Signal IcVerification Of 1 M+ Transistors Mixed Signal Ic
Verification Of 1 M+ Transistors Mixed Signal IcRégis SANTONJA
 
Testbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for TestbenchesTestbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for TestbenchesDVClub
 
Mixed signal verification challenges
Mixed signal verification challengesMixed signal verification challenges
Mixed signal verification challengesRégis SANTONJA
 
Multi Supply Digital Layout
Multi Supply Digital LayoutMulti Supply Digital Layout
Multi Supply Digital LayoutRégis SANTONJA
 
Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...
Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...
Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...DVClub
 
Verilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated CircuitsVerilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated CircuitsRégis SANTONJA
 

Destacado (8)

Verification Of 1 M+ Transistors Mixed Signal Ic
Verification Of 1 M+ Transistors Mixed Signal IcVerification Of 1 M+ Transistors Mixed Signal Ic
Verification Of 1 M+ Transistors Mixed Signal Ic
 
Testbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for TestbenchesTestbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for Testbenches
 
Mc13783
Mc13783Mc13783
Mc13783
 
Mixed signal verification challenges
Mixed signal verification challengesMixed signal verification challenges
Mixed signal verification challenges
 
Multi Supply Digital Layout
Multi Supply Digital LayoutMulti Supply Digital Layout
Multi Supply Digital Layout
 
Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...
Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...
Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality...
 
Verilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated CircuitsVerilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
 
Cv June 2009
Cv June 2009Cv June 2009
Cv June 2009
 

Similar a Re usable continuous-time analog sva assertions - slides

What's new in cdt 8.1
What's new in cdt 8.1What's new in cdt 8.1
What's new in cdt 8.1Mircea Givan
 
Novel Approach for Accelerating Mixed Signal Verification
Novel Approach for Accelerating Mixed Signal VerificationNovel Approach for Accelerating Mixed Signal Verification
Novel Approach for Accelerating Mixed Signal VerificationDVClub
 
Hardware accelerated virtio networking for nfv linux con
Hardware accelerated virtio networking for nfv linux conHardware accelerated virtio networking for nfv linux con
Hardware accelerated virtio networking for nfv linux consprdd
 
Emea freescale cup 2014 introduction
Emea freescale cup 2014 introductionEmea freescale cup 2014 introduction
Emea freescale cup 2014 introductionharragesi
 
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...QT-day
 
Migrating from PDE to Tycho builds
Migrating from PDE to Tycho buildsMigrating from PDE to Tycho builds
Migrating from PDE to Tycho buildsTeodor Madan
 
One Version of the Truth, Driving S&OP from detailed planning tools, Freescale
One Version of the Truth, Driving S&OP from detailed planning tools, FreescaleOne Version of the Truth, Driving S&OP from detailed planning tools, Freescale
One Version of the Truth, Driving S&OP from detailed planning tools, FreescaleInnovation Enterprise
 
DPTF - Dataflow Programming Tools Framework
DPTF - Dataflow Programming Tools FrameworkDPTF - Dataflow Programming Tools Framework
DPTF - Dataflow Programming Tools Frameworkfliordache
 
Adrian purcarea, country manager, freescale semiconductor
Adrian purcarea, country manager, freescale semiconductorAdrian purcarea, country manager, freescale semiconductor
Adrian purcarea, country manager, freescale semiconductorRevistaBiz
 
l'internet des objets By Freescale
l'internet des objets By Freescalel'internet des objets By Freescale
l'internet des objets By Freescaleservicesmobiles.fr
 
Virtual cpe framework
Virtual cpe frameworkVirtual cpe framework
Virtual cpe frameworkNithin Babu
 
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...DVClub
 
SoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~EmbeddedSoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~EmbeddedChili.CHIPS
 
Enhancement of ARINC 653 for Multi-core Hardware.pptx
Enhancement of ARINC 653 for Multi-core Hardware.pptxEnhancement of ARINC 653 for Multi-core Hardware.pptx
Enhancement of ARINC 653 for Multi-core Hardware.pptxAbrar Hafiz
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayArik Weinstein
 
Cisco MEM-C6K-CPTFL256M
Cisco MEM-C6K-CPTFL256MCisco MEM-C6K-CPTFL256M
Cisco MEM-C6K-CPTFL256Msavomir
 

Similar a Re usable continuous-time analog sva assertions - slides (20)

What's new in cdt 8.1
What's new in cdt 8.1What's new in cdt 8.1
What's new in cdt 8.1
 
Novel Approach for Accelerating Mixed Signal Verification
Novel Approach for Accelerating Mixed Signal VerificationNovel Approach for Accelerating Mixed Signal Verification
Novel Approach for Accelerating Mixed Signal Verification
 
Hardware accelerated virtio networking for nfv linux con
Hardware accelerated virtio networking for nfv linux conHardware accelerated virtio networking for nfv linux con
Hardware accelerated virtio networking for nfv linux con
 
Emea freescale cup 2014 introduction
Emea freescale cup 2014 introductionEmea freescale cup 2014 introduction
Emea freescale cup 2014 introduction
 
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
 
Migrating from PDE to Tycho builds
Migrating from PDE to Tycho buildsMigrating from PDE to Tycho builds
Migrating from PDE to Tycho builds
 
One Version of the Truth, Driving S&OP from detailed planning tools, Freescale
One Version of the Truth, Driving S&OP from detailed planning tools, FreescaleOne Version of the Truth, Driving S&OP from detailed planning tools, Freescale
One Version of the Truth, Driving S&OP from detailed planning tools, Freescale
 
DPTF - Dataflow Programming Tools Framework
DPTF - Dataflow Programming Tools FrameworkDPTF - Dataflow Programming Tools Framework
DPTF - Dataflow Programming Tools Framework
 
Adrian purcarea, country manager, freescale semiconductor
Adrian purcarea, country manager, freescale semiconductorAdrian purcarea, country manager, freescale semiconductor
Adrian purcarea, country manager, freescale semiconductor
 
l'internet des objets By Freescale
l'internet des objets By Freescalel'internet des objets By Freescale
l'internet des objets By Freescale
 
Sensor fusion
Sensor fusionSensor fusion
Sensor fusion
 
Virtual cpe framework
Virtual cpe frameworkVirtual cpe framework
Virtual cpe framework
 
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
 
iWave Systems Techologies Pvt Ltd- Company Profile Presentation
iWave Systems Techologies Pvt Ltd- Company Profile PresentationiWave Systems Techologies Pvt Ltd- Company Profile Presentation
iWave Systems Techologies Pvt Ltd- Company Profile Presentation
 
SoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~EmbeddedSoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~Embedded
 
Enhancement of ARINC 653 for Multi-core Hardware.pptx
Enhancement of ARINC 653 for Multi-core Hardware.pptxEnhancement of ARINC 653 for Multi-core Hardware.pptx
Enhancement of ARINC 653 for Multi-core Hardware.pptx
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
 
Arumugam petchimuthu pdf
Arumugam petchimuthu pdfArumugam petchimuthu pdf
Arumugam petchimuthu pdf
 
Cisco MEM-C6K-CPTFL256M
Cisco MEM-C6K-CPTFL256MCisco MEM-C6K-CPTFL256M
Cisco MEM-C6K-CPTFL256M
 

Último

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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 2024The Digital Insurer
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
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...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
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 businesspanagenda
 
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 Scriptwesley chun
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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 AutomationSafe Software
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
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
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 

Re usable continuous-time analog sva assertions - slides

  • 1. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t he Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+,CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
  • 2. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 2 1. Introduction 2. PSL versus SystemVerilog assertions 3. SystemVerilog bind statement used to monitor analog blocks 4. Using value fetch mechanism 5. Resolving hierarchical paths 6. Switching between wreal models and transistor-level 7. Continuous-time analog assertions 8. Linear Temporal Logic versus continuous time properties using $time 9. Conclusion
  • 3. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 3 • SystemVerilog and PSL are increasingly adopted to verify the correct integration of analog IPs into Mixed-Signal SoCs. • However, several difficulties: − Vertical re-use: from block-level to SoC-level − Cross-model re-use: same assertion code for wreal, AMS and transistor-level  In digital this would be re-using the same assertions for both RTL and gate-level − Monitor continuous-time analog signals
  • 4. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 4 • At first glance, PSL appears to be well suited for our needs: − Vunits stand in the same scope as the design − Similar to a `include statement − Direct access to the DUT’s signals − PSL borrows the Boolean layer of the language it is running on → It can access analog operators such as V() and I() − Vunits can contain assertions, but also auxiliary AMS code
  • 5. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 5 • However, PSL has some drawbacks: − Assertions need to be updated as design signal names change − No straight forward way to execute action blocks to interact with the testbench  i.e. TCL interaction required to accumulate the number of failures − It is yet another language to handle in a verification environment which is likely to use systemverilog extensively  i.e. UVM-MS bench • SystemVerilog assertions: − Are embedded in their own scope (module, interface, program) − Do not need to match design signal names − Can trig action blocks (with no need of TCL interaction)
  • 6. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 6 • Use systemverilog bind statement − Instantiates external modules into target module without editing the latter − SV monitors can be « projected » into AMS modules ! − Analog schematics are netlisted as verilog-AMS modules  Analog blocks can be switched between behavioral or transistor- level without breaking the assertion code  Potentials can be asserted via monitor ports, just like logic nets − Automatic insertion of connect modules (E2R)  However, currents cannot be connected to the bound SV monitor − Branch would need to be opened and monitor inserted in series
  • 7. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 7 Block A Assertions A assertions bind Block B Block C DUT Assertions B bind Assertions C Assertions B Assertions Cbind bind BlockA AssertionsA I_assertionsA (<list of pins>) bind BlockA AssertionsA I_assertionsA (<list of pins>) bind BlockA AssertionsA I_assertionsA (<list of pins>)
  • 8. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 8 • One cannot simply put a probe on a net, as for the voltages • Connecting a wire “somewhere” in the design to an input of the monitor will just create another branch (with –hopefully- no current) • “Fetch” the current from a block’s port using $cds_get_analog_value() • Same mechanism applied to voltage measurements (unified approach) Syntax: $cds_get_analog_value(hierarchical_name, [optional index, [optional quantity qualifier]]) Example: current: $cds_get_analog_value(“top.dut.BlockA.vdda”, “flow”); voltage: $cds_get_analog_value(“top.dut.BlockA.vdda”, “potential”);
  • 9. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 9 • Unfortunately, the $cgav() system task requires a complete hierarchical path as a first argument − Unless the signal is in the same scope… − … but our signals are one-level above in the hierarchy… • We use a DPI genPath(string netName); − The argument is a net or port name in the module to monitor − The DPI builds the string of the full hierarchical path to the specified net or port • Our monitor would look like that: module monitor (input logic clk); import “DPI-C” context function string genPath(string netName); real voltage; real current; string PATH= genPath(“net”); always @(clk) begin voltage = $cgav(PATH, “potential”); current = $cgav(PATH, “flow”); end endmodule
  • 10. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 10 #include <stdio.h> #include <string.h> #include "svdpi.h“ char* getPath (char *netName) { char *scope; static char fullPath[100]; // Get scope of calling function scope = svGetNameFromScope(svGetScope() ); // Prepare full path prefix, including the last dot strcpy(fullPath,scope); if (strrchr(fullPath,'.')!=NULL) *(strrchr(fullPath,'.')+1)=0; // +1 to include the dot else printf("t DPI: ERROR : no dot found in path"); // Append the net name to the hierarchical prefix strcat(fullPath,netName); printf("t DPI: %s", fullPath); return fullPath; } Retrieve scope of the DPI call Remove instance name of the monitor from the hierarchical path string Append the net/port name and return string
  • 11. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 11 • Unfortunately $cgav() cannot fetch values from the digital solver… − We’re using yet another DPI to access logic or wreal net values − The DPI is calling some VPI functions: #include <stdio.h> #include <vpi_user.h> #include <string.h> #include "svdpi.h" double getReal (char *netName) { vpiHandle net; s_vpi_value vpi_val; net = vpi_handle_by_name(getPath(netName), NULL); vpi_val.format = vpiRealVal; vpi_get_value(net, &vpi_val); return vpi_val.value.real; } Uses getPath() as an argument to vpi_handle_by_name() Calling vpi_get_value() on the target net
  • 12. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 12 • We define a verilog macro to determine if $cgav() or get_v() should be called on a net • Macro based on Cadence $cds_analog_is_valid() function automatic logic caiv(string name, string qualifier="potential"); string path=getPath(name); caiv = $cds_analog_is_valid(path, qualifier); Endfunction function automatic real cgav(string name, string qualifier="potential"); string path=getPath(name); cgav = $cgav(path, qualifier); Endfunction `define get_value(VAL, QUAL, SIG) real VAL; always @(clk) if (caiv(SIG,QUAL)) VAL=cgav(SIG, QUAL); else VAL=getReal(SIG);
  • 13. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 13 module monitor (input logic clk); import "DPI-C" context function string getPath (string netName); import "DPI-C" context function real getReal (input string path); `get_value(vrega, "potential", "vrega") `get_value(ivssa, "flow", "vssa") // Check monotonicity of VREGA property vrega_monotonicity; real x1, x2; @(clk) (bg_ok, x1 = vrega) |-> ##1 (`TRUE, x2 = vrega) ##0 (x2>=x1); endproperty assert_vrega_monotonicity: assert property (vrega_monotonicity) PRINT_PASS("VREGA is monotonic"); else begin $warning("%m failed"); PRINT_ERROR("VREGA is not monotonic"); end endmodule • Note: not using the current (ivssa) in the assertion here Importing our DPIs Use our macros for both potentials and currents (unified approach) Use local variables
  • 14. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 14 • PSL or SV assertions executed by the digital solver − Continuous-time signals mapped into the digital discrete time domain − Potential analog hazards (glitches) can be overlooked • How to ensure analog properties continuously match ? − Voltage/Current level, Phase, Frequency, Amplitude, etc… • A stable clock frequency to sample the signal can only be arbitrary. − A 1Mhz clock (1us period) would likely not detect a 10ns glitch. − Shall we take a 1Ghz clock instead (1ns period) and consider any smaller glitch irrelevant, we would slow down the simulation so much that this solution is impracticable
  • 15. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 15 • Verilog-AMS does the analog measurements • Checks against expected are either: 1. Done in AMS and passed over to systemverilog for coverage recording 2. Analog measurements are passed over to systemverilog (real numbers) who is doing the actual check. • Advantages − Continuous-time signals can “naturally” be monitored continuously • Drawbacks − Two modules have to be maintained together (AMS+SV)  Error-prone  Not easy to read, understand and maintain − One AMS module instantiated for each signal to monitor  adding to the analog simulator load  impacting the simulation time (@cross/above() create additional time-steps)
  • 16. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 16 • Systemverilog does the analog measures and checks • Adaptive clock used to trigger the assertions: − Based on the analog time-steps − Time-steps are determined by the analog solver based on  Kirchoff’s Law  Newton-Raphson to determine next DC point  If no DC within a limited number of iterations, choose smaller time-step, etc… • Advantages − All quantities (I, V, Freq,…) to monitor and check are real numbers − Single language, single monitor, easier maintenance and readability − No extra load for the analog solver − No impact on convergence − No connect module !
  • 17. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 17 • Use a verilog-AMS module − The analog process executes at each time step − An analog clock is generated − And then digitized to generate the digital clock to be used by the assertions  No @cross or @above to prevent addtional time steps `include "disciplines.vams" module analog_timestep(); real clk_a; reg clk = 1'b0; always @(absdelta(clk_a, 10m, 10p, 1m)) if ((clk_a == 1.0) || (clk_a == 0.0)) clk = ~clk; analog begin clk_a = 1.0 - clk_a; end endmodule
  • 18. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 18 • Typically monitors would also use a traditional digital clock • Signals to monitor are not connected through the monitor ports (but fetched instead) bind DigCore dig_monitor digmon (.clkd(clkd)); bind PowerMgt PM_monitor PMmon (.clka(analog.clk), .clkd(clkd)); bind SigChain sc_monitor scmon (.clka(analog.clk), .clkd(clkd)); bind ADC adc_monitor adcmon (.clka(analog.clk), .clkd(clkd)); bind OSC osc_monitor oscmon (.clka(analog.clk), .clkd(clkd)); bind PadRing padring_monitor padmon(.clka(analog.clk), .clkd(clkd));
  • 19. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 19 • Assertions on the voltage regulator prepared on wreal model • Then turned into transistor-level with its non-idealities: − A glitch was captured when transitioning from low-power to low-noise bandgap
  • 20. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 20 • Example: regulator’s settle time // Check settle time of VREGA is within 10us reg clk_1us = 1'b0; reg run_clk_1us = 1'b1; always #500 clk_1us = ~clk_1us & bg_ok & run_clk_1us; task stop_clk_1us; run_clk_1us = 1'b0; endtask property vrega_startup(t); @(posedge clk_1us) bg_ok |-> ##[0:t] (vrega >= 0.9*vthi, stop_clk_1us); endproperty assert_vrega_startup_within_10us: assert property (vrega_startup(10) ) PRINT_PASS("VREGA startup time is within 10us"); else begin $warning("%m failed"); PRINT_ERROR(""); end Action block called by the assertion Named property with formal arguments Ad hoc clock generation
  • 21. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 21 • SV assertions use sequence operators: − Cycle delay ## − Consecutive repetition [* ] − Non-consecutive repetition [= ] − Goto repetition [-> ] • These operators are not well-suited for handling continuous- time • A lot of research is going on, involving both Accelera and IEEE standardization Comittees to come up with an enhanced set of operators dedicated to handling continuous signals • However, some continuous-time assertions can already be written using the $time system task
  • 22. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 22 • Continuously monitor signal range while cond is true, starting after delay: property prop_delayed (signal, cond, delay, value, tol); @(clk) cond |-> ($time-t0 < delay)[*0:$] ##1 (signal >= (1- tol)*value) && (signal <= (1+tol)*value); endproperty • The delay is measured with the system task $time, compared to a time t0 taken on the rising edge of cond by a separate always process. − t0 cannot be recorded within the assertion because a $rose(cond) would be required, but we want the property to be verified at each time- step when cond is true • The consequent (post-condition) says "wait for the delay to expire, then check that the signal is within the tolerance". − The consecutive repetition [*0:$] allows the delay not to be expired during as many cycles as required, but then the signal condition must be true on the next cycle. − If the delay is already expired, ($time-t0 < delay)[*0:$] remains true thanks to the min limit being zero, and the signals condition keeps being asserted (continuously).
  • 23. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 23 • SystemVerilog bind statement can be used to « project » an SV monitor into any module, including a transistor-level AMS netlist • Potentials could be accessed via ports, just like logic (E2R connect modules inserted) • But currents can not, hence we use value fetch ($cgav()) instead. • A DPI is used to generate the hierarchical path string so that the monitor’s code is re-usable (hierarchy independent) • Another DPI, symmetrical to $cgav() for wreal nets is used together with a verilog macro to seamlessly switch between wreal models and AMS or transistor-level • Finally, an adaptive clock, based on the analog time-steps is used for asserting continuous-time properties • Academic research is active on defining new continuous-time semantics based on temporal logic operators with time domain ranges, error margins, tolerances, etc… • A future systemverilog-AMS standard has long been awaited − Verilog-AMS + assertions − SystemVerilog + AMS
  • 24. TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy EfficientSolutionslogo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphonyare trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platformin a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc. 24 [1] IEEE Std 1800™-2012 (Revision of IEEE Std 1800-2009 - )IEEE Standard for SystemVerilog – Unified Hardware Design, Specification, and Verification Language, IEEE Computer Society and the IEEE Standards Association Corporate Advisory Group [2] SystemVerilog Assertions Design Tricks and SVA Bind Files, Sunburst Design, SNUG 2009 [2] Instrumenting AMS assertion Verification on Commercial Platforms, Radjeep Mukhopadhyay, S. K. Panda, Pallab Dasgipta, IIT Kharagpur, India and John Gough,National Semiconductor Corp., Greenock, UK [4] Analog Assertion Based Verification Methodology – reality or a Dream ? Srikanth V Raghavan (http://www.cadence.com/Community/blogs/cic/archive/2011/02/09/analog-assertion-based-verification- methodology-reality-or-a-dream-part-2.aspx) [5] Assertion Writing Guide, Cadence Design Systems, USA 2012. [6] Virtuoso® AMS Designer User Guide, Cadence Design Systems, USA 2011 [7] Incorporating Local Variables in Mixed-Signal Assertions, Subhankar Mukherjee and Pallab Dasgupta – Indian Institute of Technology Kharagpur [8] Asynchronous Behaviors Meet Their Match with SystemVerilog Assertions, Doug Smith, Doulos [9]Verification of mixed-signal designs using System-Verilog assertions in co-simulation, Somasunder Kattepura Sreenath, Texas Instruments, SNUG 2010 Best Paper. [10] PSL and SVA: Two Standard Assertion Languages Addressing Complementary Engineering Needs, John Havlicek, Freescale Semiconductor, Inc. and Yaron Wolfsthal, IBM Haifa Research Lab, Israel [11] Assertion-based verification in mixed-signal design, Prabal Bhattacharya ad Don O’Riordan, EEtimes [12] Assertion for AMS design, Himyanshu Anand, john Havlicek, Scott Little, Freescale Semiconductor [13] Real-Valued Mixed-Signal Verification: An Abstraction Adjustable Methodology, Arthur Freitas, Freescale Semiconductor, 2013
  • 25. TM