Sunday, November 30, 2008

cadence eplanner/emanager

NTF
Nested Text Format (NTF) is a standard format for defining a nested list of containers that hold attribute/value pairs. The following files used by Enterprise Manager conform to this format:
• vplan
• vsif
• vsof
• config
• views
• coverage_attributes
• instance_map

NTF is a meta format, like XML. Specific files are not in NTF format, but in some descendant format.

The BNF description of the NTF format is:
entity_list : entity entity_list entity
entity : container attribute ’;’ ’;’
container : container_type BLANK container_name ’{’ entity_list ’}’
container_type : IDENTIFIER
container_name : IDENTIFIER NON_RESERVED_CHARACTER_TOKEN STRING
attribute : attribute_name ’:’ attribute_value
attribute_name : IDENTIFIER
attribute_value : TEXT STRING data
data : NON_RESERVED_CHARACTER_TOKEN
data BLANK NON_RESERVED_CHARACTER_TOKEN
IDENTIFIER : [_a-zA-Z][0-9_a-zA-Z]*
STRING ’[^’\n]*’ "[^"\n]*"
TEXT .*
BLANK [ \n\t\r]+
NON_RESERVED_CHARACTER_TOKEN [^ \n\;:{}’"]+


The container identifier is dependent on file type. For example:
vsif files session, group or test
vsof files session_output, run, failure, coverage_model, coverage_data
vplan files import, section, perspective, coverage, extend, instantiate or within.


Identifiers are case insensitive.

You can add #include directives anywhere in the NTF file.

The following containers are valid within a vplan file:
import {}: Import an XML plan into an NTF plan
import DMA_Verif_Plan {
vplan_file_name: "/vobs/plans/DMA_Verif_plan.xml"
};
section{}:Define hierarchy in a verification plan model
section Xbus_subsystem {
section Reading_from_Xcore {
coverage: vr_xbus_master_sequence.read_ended;
};
section Writing_to_Xcore {
coverage: vr_xbus_master_sequence.write_ended;
};
};
perspective{}:Defines attributes for a subset of the verification plan sections
Syntax Example
perspective Integration {
top_section: Full_SoC;
};
perspective Prototype {
top_section: Xbus_subsystem;
};
perspective Production {
top_section: Xserial_subsystem;
};
coverage{}:Define a coverage group, while allowing filtering and weighting
coverage valid_small_packets {
items_pattern: packet.gen.cross_all;
buckets_filter : len <>UCM
a coverage model is a hierarchical list of all the checks and coverage points in the DUT that you want to monitor during the run.
Incisive Simulator and Specman generate separate coverage model files.
Incisive Simulator writes the coverage model during the first run on a design. For subsequent runs on the same design, Incisive Simulator does not write the coverage model unless some special occasions
When Specman is run under Enterprise Manager, the coverage model format is set automatically to ucm, the Unicov format that Enterprise Manager requires.

By default, the HDL coverage model is written to:
/model_dir/_.ucm
To specify the location of the HDL model file, use the cov options to irun or ncsim. For example, with the following settings:
-covworkdir $DIR(session)
-covdesign $ENV(MY_DESIGN)
-covtest $BRUN_RUN_ID
The HDL coverage model is written to the following directory:
$BRUN_SESSION_DIR/model_dir/$MY_DESIGN/$BRUN_RUN_ID.ucm

VSIF
A verification session input format (vsif) file specifies one or more tests to be run in a single session.
The individual tests and the session itself have multiple attributes, including the testbench top files, the seed, and the SVE.
you can used any standard CPPdirective, including #define, #ifdef, and #ifndef.
There are three types of top-level containers in a vsif file:
•The session container describes default session attributes that apply globally to all tests.
•The optional group container holds one or more test containers and describes default test attributes that apply to all tests contained within it.
•The test container describes the attributes of a specific test, including, for example, the seed and the number of times the test must be run.
The following is a simple vsif, specifying one test to be run five times (count: 5 is specified) with
random seeds (there is no seed: n specified):
session short_tests {
top_dir : $VM_WORK/vm_xsoc;
pre_session_script: vm_xsoc/scripts/setup_xsoc.sh;
};
group xsoc_tests {
run_script: vm_xsoc/scripts/run_ex_vm_xsoc.sh;
scan_script: "vm_scan.pl ies.flt shell.flt";
timeout : 300;
pre_commands: "set checks ERROR_CONTINUE";
test test_simple {seed: 1;top_files: "vm_xsoc/examples/test_simple.e";};
test input_from_xbus {top_files: "vm_xsoc/examples/input_from_xbus.e";};
};
test simple_test {
run_script: vm_xsoc/scripts/run_ex_vm_xsoc.sh;
scan_script: "vm_scan.pl ius.flt shell.flt";
count: 5;
};

No comments: