Specman Basics
Specman Basics
Specman Basics
transaction generator: gen and gen keeping, don't gen & physica fields, events ,methods & tcm.
Inheritence:like inheritence & when inheritence:for struct subtypes: like is normal inheritence & when is
which is based on the value of a random variable. This is best suited for the generation of packets of
different information protocols.
Below example is for defining clock when RTL is not present and one needs to build a standalone e code
extend sys {
num_of_buckets =specifies how many bucket items to be created for coverage item
Radix=or items of type int or uint, specifies the radix used in coverage reports for implicit buckets.each
value hit is a new bucket created for that item
cross coverage:ross items are combinations of items from the same coverage group. The cross coverage
construct is used to define cross items.
when=bool-exp= The item is sampled only when bool-exp is TRUE. The bool-exp is evaluated in the
context of the parent struct.
TLM ports: The way the driver gets transactions from the sequencer, its the same way the
scoreboard gets them from the monitors: through TLM.
Normal ports:
Analysis ports:these ports will act as proxies for the monitors to be connect to an external
scoreboard through the agents ports.
we will have to create two analysis exports in the scoreboard that are going to be used to retrieve
transactions from both monitors.
Uvm API: end the transactions from sequencer and driver automatically.
All of:
Execute multiple action blocks concurrently, as separate branches of a fork. The action
following the all of action will be reached only when all branches of the all of have been fully
executed. All branches of the fork are automatically joined at the termination of the all of
action block.
First of:
Execute multiple action blocks concurrently, as separate branches of a fork. The action
following the first of action will be reached when any of the branches in the first of has been
fully executed. All branches of the fork are automatically joined at the termination of the
first of action block.
Is also: "is also" is used for extending existing method/TCM. When we use "is also" it adds new
lines of code/functionality after the existing code as shown in below example.
Is first: is first" is used for extending existing method/TCM. When we use "is first" it adds new
lines of code/functionality before existing code shown in below example.
is only" is used for over riding existing method/TCM. When we use "is only" it over rides the
existing code/functionality before existing code and replaces with new code as shown in
below example.
Pre-run generation:specman elite solves the contraints of each filed during pre run phase
On the fly: