Verification Methodology Manual
version 1.1.1


                                RELEASE NOTES


(C) Copyright 2004-2009 Synopsys, Inc.
All Rights Reserved Worldwide


The following release notes describe the important differences between
this VMM release and the 1.1 Open Source release of the VMM.


** Standard Library

  - Support for Accellera VIP Interop Best Practice (requires that
    `VMM_OVM_INTEROP be defined)
  - Can specify explicit constructor with short-handed macros
  - New short-hand macros for vmm_scenarios
  - Added vmm_channel::try_peek()
  - Added vmm_log_callbacks::pre_finish()
  - vmm_ms_scenario_gen::get_ms_scenario() returns a copy


** Register Abstraction Layer

  - Support for pipelined busses


** Scoreboard



** Performance Analyzer



** Hardware Abstraction Layer

