Professional Documents
Culture Documents
OPERATORS,
SUBPROGRAMS
Operators
Futurewiz
www.futurewiz.co.in
Example1
Futurewiz
www.futurewiz.co.in
Example2
a->b is same as !a || b
a<-> b is same as (!a || b) && (!b || a)
int a=1, b=2;
initial begin
Result:
if(a->b)
a implies b
$display(“a implies b”);
a is logically equivalent to b
if (a<-> b)
$display(“a is logically equivalent to
b”);
end
Futurewiz
www.futurewiz.co.in
Example3
Futurewiz
www.futurewiz.co.in
Loops
Futurewiz
www.futurewiz.co.in
Loops
inital begin
int i=10;
inital begin
do begin
int a [8] [5];
i -=1; //statements
foreach ( a [i, j] )
end
a[i] [j]=$random;
while (i >5)
end
end
Used to access all Statements executed first an
elements in an then execution depends upon
array condition
Futurewiz
www.futurewiz.co.in
Break and Continue
Futurewiz
www.futurewiz.co.in
package
Futurewiz
www.futurewiz.co.in
Example
“pack1.sv” “pack2.sv”
package mypack1; package mypack2;
int x; int y;
function int add (input int a, b ); function int add (input int a, b, c
add= a + b; );
endfunction add= a + b + c;
endfunction
endpackage
endpackage
Futurewiz
www.futurewiz.co.in
Example
`include “pack1.sv”
`include “pack2.sv”
module test;
import mypack1::*;
import mypack2::*;
initial begin
x=mypack1 :: add(3, 6); //x=9
y=mypack2 :: add(4, 5, 3); //y=12
end
endmodule
Futurewiz
www.futurewiz.co.in
Type Parameter
Futurewiz
www.futurewiz.co.in
Subprograms
Futurewiz
www.futurewiz.co.in
Function and Tasks
Futurewiz
www.futurewiz.co.in
Example1
initial begin
int y;
y=add(3, 5); //3+5+0
#3 y=add(); //0+0+0
#3 y=add(1, 2, 3); //1+2+3
#3 y=add(, 2, 1); //0+2+1
end
Futurewiz
www.futurewiz.co.in
Example2
initial begin
display(3, 5); //a=3 b=5
#3 display(); // a=0 b=0
#3 display(1); // a=1 b=0
#3 display( , 3); // a=0 b=3
end
Futurewiz
www.futurewiz.co.in
Example3
Futurewiz
www.futurewiz.co.in
Example4
Futurewiz
www.futurewiz.co.in
Example5
initial begin
#3 check(5, error); // error=0
#3 check(0, error); // error=1
end
Futurewiz
www.futurewiz.co.in
Example6
task add (int a=0, b=0, output int z); //Variables are static by
//default
#2 z=a + b;
endtask
int x, y; Result
:
initial fork x=6
add(3, 5, x); y=6
#1 add(2, 4, y);
join
Futurewiz
www.futurewiz.co.in
Example6
task add (int a=0, b=0, output int z); //Variables are static by
//default
#2 z=a + b;
endtask
int x, y; Result
:
initial begin x=8
add(3, 5, x); y=6
#1 add(2, 4, y);
end
Futurewiz
www.futurewiz.co.in
Example7
int x, y;
Result
initial fork :
add(3, 5 , x); x=8
#1 y=add(2, 4 , y); y=6
join
Futurewiz
www.futurewiz.co.in