18.03.2015 Views

PSL – Property Specification Language - OCP-IP

PSL – Property Specification Language - OCP-IP

PSL – Property Specification Language - OCP-IP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>OCP</strong> <strong>PSL</strong> Package<br />

Copyright © 2002-2006 Nokia Corporation. This file is subject to the<br />

terms and conditions included in the license.txt file [located at the<br />

root level of this directory/included in set of files to which this file<br />

belongs] (the "License Terms"); You may not use this file except in<br />

compliance with the License Terms."<br />

1 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Content<br />

ABV – Assertion-Based Verification<br />

<strong>PSL</strong> – <strong>Property</strong> <strong>Specification</strong> <strong>Language</strong><br />

Motivation, Requirements & Content<br />

Verification Flow<br />

Installation & Integration<br />

Known Problems and Limitations<br />

Present & Future<br />

Conclusions<br />

2 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


ABV – Assertion-Based Verification<br />

• The purpose is to convert functional features of a specification into explicit<br />

hardware properties<br />

• An assertion can be considered as an implementation of a property<br />

• Several languages are available for implementation (e.g. <strong>PSL</strong>, SystemVerilog,<br />

the e language, OpenVera, …)<br />

• Assertions describe the behaviour of logic over time<br />

• Assertions can be compiled and simulated as HDL descriptions<br />

• Fully automatic verification method<br />

• Increased visibility & simplified debugging<br />

• The target is to improve both verification quality and efficiency!<br />

3 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


ABV – Assertion-Based Verification<br />

ALU ALU ALU<br />

Test Bench<br />

<strong>OCP</strong><br />

Register IF<br />

Register IF<br />

ALU ALU ALU<br />

It is very difficult to backpropagate<br />

bugs of internal<br />

components!<br />

Bugs of an interconnection<br />

might lead to a complete<br />

verification nightmare!<br />

ALU ALU ALU<br />

FSM<br />

Assertions trigger<br />

immediately and bring<br />

bugs closer to their source!<br />

4 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


<strong>PSL</strong> – <strong>Property</strong> <strong>Specification</strong> <strong>Language</strong><br />

• Hardware property (not verification) language!<br />

• Utilized to implement assertions (not test benches)!<br />

• The purpose is to complement the traditional methodologies<br />

• Consistent, simple, and powerful language<br />

• Declarative and structural syntax<br />

• Very low learning threshold<br />

• Four (4) different layers enable sustainable verification environments<br />

• VHDL and Verilog flavors are provided<br />

• Widely accepted standard from Accellera and IEEE<br />

5 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


<strong>PSL</strong> – <strong>Property</strong> <strong>Specification</strong> <strong>Language</strong><br />

Boolean expressions i.e. a state of the DUV<br />

property EXAMPLE is<br />

never {a = ‘1’ and b = ‘1’};<br />

Sequential expressions i.e. a sequence of states of the DUV<br />

property EXAMPLE is<br />

always {a = ‘0’ and b = ‘0’} |-> -- Precondition<br />

{c = ‘0’ and d = ‘0’; -- Consequence<br />

c = ‘1’ and d = ‘1’ [*2];<br />

c = ‘0’ and d = ‘0’};<br />

Both legal and illegal states or sequences of states can be determined!<br />

6 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


<strong>PSL</strong> – <strong>Property</strong> <strong>Specification</strong> <strong>Language</strong><br />

“No ‘X’ or ‘Z’ on the master addr (MAddr) during the request phase”<br />

property <strong>OCP</strong><strong>PSL</strong>_MADDR_ISUNKNOWN is<br />

never {MCmd /= <strong>OCP</strong>_IDLE and isunknown(MAddr)};<br />

“The master address (MAddr) must remain stable during the request phase”<br />

property <strong>OCP</strong><strong>PSL</strong>_MADDR_STABLE is<br />

always {MCmd /= <strong>OCP</strong>_IDLE} |-><br />

{{SCmdAccept = ‘1’} |<br />

{[*1];SCmdAccept = ‘0’ and stable(MAddr) [*];<br />

SCmdAccept = ‘1’ and stable(MAddr)}}!<br />

abort(MReset_n = RESET_ACTIVE);<br />

7 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Motivation<br />

• Since the number of intellectual property (<strong>IP</strong>) cores tends to increase, it has<br />

become vital to verify interconnections<br />

• VHDL or Verilog monitors are not cost-effective<br />

• Verification languages (e.g. the e language and OpenVera) have been available,<br />

but no widely accepted standards<br />

• Tool dependent monitors are out of the question<br />

• Ad-hoc methods have been utilized<br />

• Verification quality has been found more or less inadequate.<br />

• Sustainability has been found insufficient<br />

• There is a clear demand for new kind of verification packages!<br />

8 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Requirements<br />

• Verifies the compatibility of the interconnection with the <strong>OCP</strong> 2.1<br />

• Implementation based on open standards<br />

• Compatible with the existing design and verification flow<br />

• Can be configured according to the DUV<br />

• Can be installed with minimal efforts without access to the source<br />

• No previous knowledge is required<br />

• Only a VHDL simulator is required<br />

• Cost-effective in terms of maintenance and support<br />

• Completely reusable<br />

9 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Content<br />

• 242 assertions divided to six (6) groups<br />

• Basic signals 55<br />

• Simple extensions 24<br />

• Burst extensions 109<br />

• Tag extensions 15<br />

• Thread extensions 16<br />

• Sideband signals 23<br />

• 92 coverage points divided to three (3) groups<br />

• Basic signals 19<br />

• Simple extensions 9<br />

• Burst extensions 64<br />

10 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Verification Flow<br />

Design<br />

RTL<br />

Test cases<br />

YES<br />

NO<br />

Violations?<br />

Simulate<br />

RTL<br />

NO<br />

Coverage<br />

YES<br />

READY<br />

Complete?<br />

11 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Simulation Performance<br />

• Exhaustive testing in a verification environment<br />

• 6,340 independent requests<br />

• 75 burst sequences containing 19,020 requests<br />

• The CPU time when assertions disabled 132.83s<br />

• The CPU time when assertions enabled 143.42s<br />

• The performance penalty equals to 8.0%<br />

• Very moderate, because the worst-case scenario was applied<br />

• Note that results might vary between different simulators<br />

12 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Installation<br />

• The package consists of templates and must be modified according to the DUV<br />

• The user must …<br />

• set the parameters of the interconnection<br />

• set the entity and architecture pair of verification units<br />

• replace the names of the signals<br />

• Remove assertions and sequences that contain unconnected signals<br />

• Note! The following signals must be determined:<br />

• Clk, MReset_n<br />

• MCmd, MAddr, MData<br />

• SCmdAccept, SResp, SData<br />

• Otherwise auxiliary signals tied to default value must be implemented.<br />

13 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Integration<br />

<strong>OCP</strong><br />

Master<br />

<strong>OCP</strong><br />

Slave<br />

<strong>OCP</strong><br />

Slave<br />

<strong>OCP</strong> 2.1 Interconnection<br />

Violations?<br />

Error msg<br />

<strong>PSL</strong><br />

Assertions<br />

14 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Known Problems and Limitations<br />

• The support for the memory locks and reservation tags of the lazy<br />

synchronization is missing<br />

• The support of the tag and thread extensions is very limited<br />

• The current release does not operate correctly if there are pending transactions<br />

from multiple tags or threads<br />

15 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M


Conclusions<br />

• The package increases both verification quality and efficiency<br />

• Straightforward installation and integration<br />

• Fully automatic verification method<br />

• Increased visibility & simplified debugging<br />

• Very moderate performance penalty (max 8.0%)<br />

16 © 2005 Nokia <strong>OCP</strong> <strong>PSL</strong> Package Introduction.ppt / 2006-05-12 / S.M

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!