| Phase |
VMM |
OVM |
Purpose |
|---|
| Configuration Generation |
vmm_env::gen_cfg() |
Function |
new()/build() |
Function |
Hierarchical configuration could influence instantiation;In OVM, configuration is really controlled by the test object, which instantiates the env during build() |
| Component Instantiation |
vmm_env::build() |
Function |
build() |
Function |
|
| Component Configuration |
vmm_env::build() |
Function |
build() |
Function |
Configuration could influence connections |
| Component Connection |
vmm_env::build() |
Function |
connect() |
Function |
All connections must be in place by run time; Connections are made after all components are (hierarchically) instantiated |
| Component Elaboration |
vmm_env::build() |
Function |
end_of_elaboration (this is really a callback that can be used as needed) |
Function |
Use to check integrity of elaborated design; For mixed-language, use this to ensure all cross-connections are sound |
| Pre-run activities |
vmm_env::notify.wait_for(vmm_env::BUILT);Not a phase |
N/A |
start_of_simulation (callback) |
Function |
| Power-on Reset |
vmm_env::rst_dut() |
Task |
run |
Task |
Domain reset must be deasserted before PCIE can sync, etc. |
| DUT setup |
vmm_env::rst_dut() |
Task |
run |
Task |
PLLs must lock, PCIE must sync before configuration writes can occur |
| DUT configuration |
vmm_env::cfg_dut() |
Task |
run |
Task |
DUT configuration must be in place before stimulus is applied |
| Start of Stimulus |
vmm_env::start() |
Task |
run |
Task |
Start stimulus generators |
| Body of Test |
vmm_env::wait_for_end() |
Task |
run |
Task |
Background stimulus should last as long as specified stimulus |
| End of Stimulus |
vmm_env::stop() |
Task |
stop() callback [task called while run() still executing] |
Task |
After stimulus "runs out", simulation should continue until checkers are satisfied or timeout |
| Post-test Clean-up |
vmm_env::clean_up() |
Task |
extract |
Function |
After checkers are satisfied, may need to read some registers |
| Post-test Clean-up |
vmm_env::clean_up() |
Task |
check |
Function |
| Final Report |
vmm_env::report() |
Task |
report |
Function |
Create pass/fail and print statistics |
--
JlGray - 25 Jul 2008
Updated table to correct the OVM phases.
--
MarkStrickland - 28 Jul 2008 Updated table to add Purpose column