-- -- File Name: VendorCovApiPkg.vhd -- Design Unit Name: VendorCovApiPkg -- Revision: STANDARD VERSION -- -- Maintainer: Jim Lewis email: jim@synthworks.com -- -- Based on work done in package VendorCovApiPkg_Aldec.vhd by: -- ... -- -- -- Package Defines -- A set of foreign procedures that link OSVVM's CoveragePkg -- coverage model creation and coverage capture with the -- built-in capability of a simulator. -- -- -- Revision History: For more details, see CoveragePkg_release_notes.pdf -- Date Version Description -- 11/2016: 2016.11 Initial revision -- -- -- Copyright (c) 2016 by SynthWorks Design Inc. All rights reserved. -- -- Verbatim copies of this source file may be used and -- distributed without restriction. -- -- Modified copies of this source file may be distributed -- under the terms of the ARTISTIC License as published by -- The Perl Foundation; either version 2.0 of the License, -- or (at your option) any later version. -- -- This source is distributed in the hope that it will be -- useful, but WITHOUT ANY WARRANTY; without even the implied -- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -- PURPOSE. See the Artistic License for details. -- -- You should have received a copy of the license with this source. -- If not download it from, -- http://www.perlfoundation.org/artistic_license_2_0 -- -- -------------------------------------------------------------------------- package VendorCovApiPkg is subtype VendorCovHandleType is integer; -- Types for how coverage bins are represented. Matches OSVVM types. type VendorCovRangeType is record min: integer; max: integer; end record; type VendorCovRangeArrayType is array ( integer range <> ) of VendorCovRangeType; -- Create Initial Data Structure for Point/Item Functional Coverage Model -- Sets initial name of the coverage model if available impure function VendorCovPointCreate( name: string ) return VendorCovHandleType; -- Create Initial Data Structure for Cross Functional Coverage Model -- Sets initial name of the coverage model if available impure function VendorCovCrossCreate( name: string ) return VendorCovHandleType; -- Sets/Updates the name of the Coverage Model. -- Should not be called until the data structure is created by VendorCovPointCreate or VendorCovCrossCreate. -- Replaces name that was set by VendorCovPointCreate or VendorCovCrossCreate. procedure VendorCovSetName( obj: VendorCovHandleType; name: string ); -- Add a bin or set of bins to either a Point/Item or Cross Functional Coverage Model -- Checking for sizing that is different from original sizing already done in OSVVM CoveragePkg -- It is important to maintain an index that corresponds to the order the bins were entered as -- that is used when coverage is recorded. procedure VendorCovBinAdd( obj: VendorCovHandleType; bins: VendorCovRangeArrayType; Action: integer; atleast: integer; name: string ); -- Increment the coverage of bin identified by index number. -- Index ranges from 1 to Number of Bins. -- Index corresponds to the order the bins were entered (starting from 1) procedure VendorCovBinInc( obj: VendorCovHandleType; index: integer ); end package; package body VendorCovApiPkg is -- Create Initial Data Structure for Point/Item Functional Coverage Model -- Sets initial name of the coverage model if available impure function VendorCovPointCreate( name: string ) return VendorCovHandleType is begin return 0 ; end function VendorCovPointCreate ; -- Create Initial Data Structure for Cross Functional Coverage Model -- Sets initial name of the coverage model if available impure function VendorCovCrossCreate( name: string ) return VendorCovHandleType is begin return 0 ; end function VendorCovCrossCreate ; -- Sets/Updates the name of the Coverage Model. -- Should not be called until the data structure is created by VendorCovPointCreate or VendorCovCrossCreate. -- Replaces name that was set by VendorCovPointCreate or VendorCovCrossCreate. procedure VendorCovSetName( obj: VendorCovHandleType; name: string ) is begin end procedure VendorCovSetName ; -- Add a bin or set of bins to either a Point/Item or Cross Functional Coverage Model -- Checking for sizing that is different from original sizing already done in OSVVM CoveragePkg -- It is important to maintain an index that corresponds to the order the bins were entered as -- that is used when coverage is recorded. procedure VendorCovBinAdd( obj: VendorCovHandleType; bins: VendorCovRangeArrayType; Action: integer; atleast: integer; name: string )is begin end procedure VendorCovBinAdd ; -- Increment the coverage of bin identified by index number. -- Index ranges from 1 to Number of Bins. -- Index corresponds to the order the bins were entered (starting from 1) procedure VendorCovBinInc( obj: VendorCovHandleType; index: integer )is begin end procedure VendorCovBinInc ; end package body VendorCovApiPkg ;