Introduction To Specman and The: e Programming Language
Introduction To Specman and The: e Programming Language
e programming language
‘ ’
$ %& * + "
$, , -& ! * +#
) &$ + / '
.,/ 0 # ' - '
0 1,! , # .
/ 4 . 4
45
2 % /! 3 ! 143 ,/ #
2 ! 40&$ 3 ! 1,$$ (# >> 2 ! 40&$ 3 ! ! &0? 56 7 6 8 6 9 6 : : 7 (;
2 ! 40&$ 3 ! 1,$$ ,&0 < / 3 ! #
>> 2 ! 40&$ 3 ! ! &0? 56 7 6 8 6 9 6 : : 7 ( 6 = 7(;
2 ! 40&$ 3 ! 1$ 3 / 2 0. &$ )#
>> 2 ! 40&$ 3 ! ! &0? 56 7 6 8 6 : : 7 ( 6 = 7(;
! /-4 <, 5
/ , # -& ! 2
/ /& # ! 2
'
;
- *
! /-4 D-,/ 3E <, 5
F '
!$ &@ < -&
;
; . <
FA
) &$ D-,/ 5
/ , # -& ! 0&3 /0 ' “ ”
5
/ -/& ! $ &@ < G ! $ &@ <#
;
/ / & # ! 0&3
5
0- H D-,/ ? < , ! $ 3 &@ < 0% H ! $ &@ <#
;
;
/ / & # ! 0&3
5
0- H / ,&@3 ? < , ,! 0% H ,! &@ < H ,&$ , < @< 0% H
< @< #
;
CA
+ J ' ' K
! /-4 <, 5
E &$ + 8 3 < 4 ’ '
/ , # -& ! 2
/ /& # ! 2 ' .
?< & J ' <, 5
!$ &@ < - &
;
CA
) &$ <,
5
?< & J ' CE &$ <,
5
/ , # -& ! 0&3
5
/ !-3 !$ &@ < G ! $ &@ <
;
/ / & # ! 0&3
5
0- H D-,/ ? < , ! $ 3 &@ < 0% H ! $ &@ <#
;
;
/ / & # ! 0&3
5
0- H / ,&@3 ? < , ,! 0% H ,! &@ < H ,&$ , < @< 0% H
< @< #
;
;
;
CA
BC
2 0/ !<, !
) &$ ! !
5
!<, 3! 3 ! 0% <,
/-& # ! ,3!0 5
/ & !<, 3!
;
;
CA
Using ‘when’:
0 .2“ ”,
‘ ’ 2 $’ $,
0 3 . 2 “3 ”,
- - ) %' @ - .
‘3 ’ 2 $’ ) , 0 43 $ '
A, 3$ 4 '3 %
' 3% J
/ ' - ', - 3 #
' -
7 3 0 @
K3 >2 3 0 ,
A, M9’ ‘ ’
7 ' @ '
K > 222 $; $ , -
A,
L * < 0 #,
D . 0 , O= $
D 0 ,
. 70 L # * # #,
'0 . L . 0 #,
'0 L 0 #,
' #O L . 0 #,
O 0 N #,
A,
I I I I I I I II I & < ! 1 % 3 I I I I I I I I I II I I
) &$ ! !
5
4 0-& / ! &! ,&4
;
! /-4 V 5
,6 L
,7 L
,: L
, / - ,6 $ 40 @&0/
, / - ,7 $ 40 / % / &4
, / - ,: $ 402 , ,/ / % / &4
;
<
<
M3 & < .$
M4 3 & 3 ! 0% - & ! #
;
) &$ ! !
5
! ,4E /-4
/-& # ! ,3!0 5
.,/ !6 3 ! 0% ,4E ,4E &@130? !#
.,/ !7 - & ! 7 # ,4E ,4E &@1< @< !#
.,/ & ,4E /-4
-& ,4E ,4E &@130? !6 &#
.,/ !: - & ! : (# ,4E ,4E &@130? !#
.,/ !8 - & ! 6 (# ,4E ,4E &@130? !#
;
;
©Amir Nahir(2007) 236605 – Simulation Based Functional Verification
Packing example 1 - results
! /-4 ,4E /-4 5
M, (6 (6 6 (((
M (
M3 & ((((((6 (
M4 3 & 3 ! 0% - & ! # ((6 ((
(6 6 (6
;
!6 7= !6 (
!8 ((6 (( (6 6 (6
) &$ ! !
5
! ,4E /-4
/-& # ! ,3!0 5
.,/ !6 3 ! 0% ,4E ,4E &@130? !#
.,/ !7 ,4E /-4
-& ,4E ,4E &@130? !6 !7#
;
;
!6 (6 6 (6 ((6 (( ( (6 (6 6 (((
!7
, (6 (6 6 (((
(
3& -& (
D 43& 3 ! 0% - & ! # 2 3! #
) &$ ! !
5
! ,4E /-4
/-& # ! ,3!0 5
.,/ !6 3 ! 0% ,4E ,4E &@130? !#
.,/ !7 ,4E /-4
-& ,4E ,4E &@130? !6 !7#
;
;
!6 (6 6 (6 ((6 (( ( (6 (6 6 (((
!7
, (6 (6 6 (((
(
8 . # 3& -& (
4 3 ! 0% - & ! # ((6 ((
(6 6 (6
KQ
/
/* .
/*.
* .
*.
* .
/* .
500
400
300
200
100
0
SMA LL M EDIUM BIG
! /-4 ,4E 7 5
) -&
,4E 6
S -&
? -&
350
340
320
}; 310
300
1 2 3
------------------------------
keep soft size == 1; 1200
1000
600
400
200
0
: 1 2 3
1000
600
400
200
------------------------------ 1 2 3
1200
1000
600
200
0
1 2 3
500
400
300
------------------------------
200
100
0
1 2 3
500
400
300
200
100
0
1 2 3
3 L < 0 @
3 L 0 ,
3 ' 0 ,
A,
# L < 0 @
# L 0 ,
# ' 0 ,
A,
' # L < 0 @
3 ' # $1) ,
' # ' 0 , M # C '
A,
S -
0 ' 2. # ,
3 ('+ N # ,
-& K7 5 M
0&6 - K6 ! &! ,&4
< @
< E ' - . * C 22 )
' W 4 W4
E ' - . * C 4W ' .- . W,
A,
7 . -
- ' .#
©Amir Nahir(2007) 236605 – Simulation Based Functional Verification
Temporal Checks
Declaration of behavioral rules, and
verifying actual behavior complies with
them
Typical rule structure:
TE a must be followed by TE b
If-then pattern
TE x never occurs
An equivalent checker:
E X < ' L X 0 2Q @ 0 #
L < 0 AL < 0 ' W/
< '. ' X ' 'W ,
Still not good enough…
Problems:
Specman’s coverage report will have this
item grayed out
We don’t really care about EVERY address
©Amir Nahir(2007) 236605 – Simulation Based Functional Verification
Covering expressions
Fixed requirement: every address within a page is
being used
3 = 7 = ;< ' M ' @
0 ' 0 . 0 @
'' 1 2 '' ?
/: 7 8Z 7 ,
A,
A,
Problems:
For large pages, the bucketing problem is still not
solved
not all addresses within a page are equally interesting
&
. E 2 WU = W4
3 . 2 $) 4
. 2
0 22 ; ) )$) ' 22 ; )) $)
0 22 ; )$) ) ' 22 ; ) $) )
0 22 ; $)) ) ' 22 ; $) ) )
0 22 ; ) )$) ' 22 ; )) ) $
0 22 ; ) )$) ' 22 ; $) ) )
0 22 ; $)) ) ' 22 ; ) ) $) ,
A,
There are still some problems…
©Amir Nahir(2007) 236605 – Simulation Based Functional Verification
Coverage - notes
You can’t define two coverage groups
based on the same event
But you can extend a group using ‘is also’
Extensions are concatenated
See eLRM for more
Coverage groups should not be defined
under ‘when’ subtypes, only extended there