Allows a specific delay across a module.
specify
specparam declaration ;
path declaration ;
system timing check ;
endspecify
The Specify block was designed to define a delay across a module. It starts with specify and ends with the endspecify keyword. Inside the block the user can specify: specparam declaration, path declaration or system timing check.
The syntax of specparam declaration is the same as that of the parameter declaration. After the specparam keyword the user can specify any number of parameters but only constant expressions are allowed on the right-hand sides of parameter assignments. A comma can separate the assignments, and the last statement ends with a semicolon. A previously declared specparameter can be used to declare the new specparameters. Unlike parameters, specparams cannot be overwritten, nor can they be used outside of a specify block.
Example 1
module
...
...
specify
(In => Out) = (10);
endspecify
...
endmodule
A specify block with only a path declaration. Delay between input In and output Out is 10 time units.
Example 2
module
...
...
specify
specparam TRise
= 10,
TFall = 15;
(In => Out) = (TRise, TFall) ;
endspecify
...
endmodule
Specparam declaration with two parameters TRise and TFall to specify delays on rising transition and falling transition.
Example 3
module
...
...
specify
specparam TRise
= 10,
TFall = 15;
(In => Out) = (TRise, TFall) ;
$setup(Data_in,
posedge Clock, TRise) ;
endspecify
...
endmodule
The full specify block with specparam declaration, path declaration and system timing check task.
Specify blocks have to be inside the module declaration location.
Specparams are not visible outside of the Specify blocks.
The defparam keyword cannot be used to override a specparam value.
Powered by IXwebhosting |