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

System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocksNirav Desai
 
UVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONUVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONIAEME Publication
 
SystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummarySystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummaryAmal Khailtash
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelDVClub
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_featuresNirav Desai
 
System verilog important
System verilog importantSystem verilog important
System verilog importantelumalai7
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomizationNirav Desai
 
Tutorial ranorex
Tutorial ranorexTutorial ranorex
Tutorial ranorexradikalzen
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)DVClub
 
SystemVerilog based OVM and UVM Verification Methodologies
SystemVerilog based OVM and UVM Verification MethodologiesSystemVerilog based OVM and UVM Verification Methodologies
SystemVerilog based OVM and UVM Verification MethodologiesRamdas Mozhikunnath
 
Tutorial getting started with RISC-V verification
Tutorial getting started with RISC-V verificationTutorial getting started with RISC-V verification
Tutorial getting started with RISC-V verificationRISC-V International
 
System Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLSystem Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLE2MATRIX
 
Formal Verification Techniques
Formal Verification TechniquesFormal Verification Techniques
Formal Verification TechniquesDVClub
 
How to Handle Asynchronous Behaviors Using SVA
How to Handle Asynchronous Behaviors Using SVAHow to Handle Asynchronous Behaviors Using SVA
How to Handle Asynchronous Behaviors Using SVADVClub
 
Mixed signal verification challenges - slides
Mixed signal verification challenges - slidesMixed signal verification challenges - slides
Mixed signal verification challenges - slidesRégis SANTONJA
 
System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )sivasubramanian manickam
 
On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...Sameh El-Ashry
 
Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Venkatesh Prasad Ranganath
 

La actualidad más candente (20)

Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
UVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONUVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATION
 
SystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummarySystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features Summary
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC Level
 
UVM TUTORIAL;
UVM TUTORIAL;UVM TUTORIAL;
UVM TUTORIAL;
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
 
Tutorial ranorex
Tutorial ranorexTutorial ranorex
Tutorial ranorex
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)
 
SystemVerilog based OVM and UVM Verification Methodologies
SystemVerilog based OVM and UVM Verification MethodologiesSystemVerilog based OVM and UVM Verification Methodologies
SystemVerilog based OVM and UVM Verification Methodologies
 
Tutorial getting started with RISC-V verification
Tutorial getting started with RISC-V verificationTutorial getting started with RISC-V verification
Tutorial getting started with RISC-V verification
 
System Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLSystem Verilog Tutorial - VHDL
System Verilog Tutorial - VHDL
 
Formal Verification Techniques
Formal Verification TechniquesFormal Verification Techniques
Formal Verification Techniques
 
How to Handle Asynchronous Behaviors Using SVA
How to Handle Asynchronous Behaviors Using SVAHow to Handle Asynchronous Behaviors Using SVA
How to Handle Asynchronous Behaviors Using SVA
 
Mixed signal verification challenges - slides
Mixed signal verification challenges - slidesMixed signal verification challenges - slides
Mixed signal verification challenges - slides
 
System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )
 
On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...
 
Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)
 

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

Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideStefan Dietze
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Skynet Technologies
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingScyllaDB
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 

Último (20)

Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 

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