12
1 www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential Things to know about Randomization in VIPs

Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 1www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential

Things to know aboutRandomization in VIPs

Page 2: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 2www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential

Mahesh KEngineerChip Design [email protected] 85860

Things to know aboutVerilogSystem VerilogRandomization in Verification IPs (VIP)

Page 3: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 3

❏ Randomization is a kind of “automation”

❏ Stimulus generation; Directed, Random and Constrained-Random

❏ “constraints” provide more controllability and hence specifications are so closer

❏ Much care should be given when randomizing signed numbers

Introduction

Page 4: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 4www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential

Less Directed Stimulus

assert() constraints

randomize

signed unsigned

implication logical exp.

Page 5: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 5

plenty of opportunities . . . 8 9 10

constraint c1 { length<=10; length>7 ; }

constraint c2{ length inside { [8:10] } ; }

int aa = 8 + { $random } % 3

“verification engineers choose the best

thing that fits into the VIP”

Page 6: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 6

simplifying the code...

if ( obj . randomize )

SUCCESSFUL, value=%d

else

UNSUCCESSFUL

if ( ! obj . randomize() )

$error ();

SUCCESSFUL, value=%d

“less number of codes provides

more accessibility to VIP users”

Page 7: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 7

assert( ) . . . simplifying the code

“number of times we use assert,

makes the code more compact”

assert ( obj . randomize() ) ;

if ( obj . randomize() )

PASS, a=%d;

else

FAIL;

if ( obj . randomize() )

PASS, a=%d;

else

$error;

Page 8: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 8

function return type . . . simplifying the code

“engineers must use valid syntax,

debug becomes easier”

obj.randomize ()

inserts warning (*w),

each time during a call

void ‘ ( obj.randomize () )

log file is clean,

no warnings

Page 9: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 9

rand vs randc . . . YES/NO ?

“variables declared with rand keyword

distribute values uniformly”

rand bit [2:0] a;

2 3 2 5 5 7 0 0

unequal distribution

randc bit [2:0] a;

5 7 3 0 2 1 6 4

equal distribution

Page 10: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 10

signed vs unsigned

int a1;a1 = $urandom;+N1 -N2 +Nn...

“signed variables

handle with care !”

int unsigned a2;a2 = $urandom;+N1 +N2 +Nn...

int unsigned a3;a3 = $random;+N1 +N2 +Nn...

int b1;b1 = $urandom_range(200,0);+N1 +N2 +Nn...

Page 11: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 11

implication and negation operator together . . .

“constraints are logical expressions,

helps to evaluate more number of seq. statements”

rand bit [8:0] datalength;

rand bit speed;

constraint c2 {(!speed) -> datalength<=64;}

constraint c1 {if (!speed)

datalength<=64;else

datalength<=512;}

Page 12: Things to know about Randomization in VIPs · | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12 | Copyright: Sasken Technologies Ltd. | Sasken Confidential. Author

www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential 12www.sasken.com | Copyright: Sasken Technologies Ltd. | Sasken Confidential

Thank You :)