MatchLib
MatchLib Documentation

What is MatchLib?

MatchLib is a library of reusable modules & functions for common HW structures, somewhat analogous to STL in programming world or DesignWare in ASIC world. Key motivations are:
  • Encapsulate verified functionality
  • Encapsulate QoR-optimized implementation
  • Heavy use of templates and other C++ features for parameterization
Components for common HW structures can be in one of the three forms:
In addition, there is a collection of auxiliary non-synthesizable components useful for building testbench and debug infrastructure of developed HW.

Directory organization

  • cmod
    C model code
    • MemModel
    Memory model code, can be used for quick estimation of area and timing of various configurations of memory array. This is the location of C code implementation and corresponding hls scripts can be found under hls directory.
    • examples
    Simple examples of synthesizable code. Include counter and various more advanced examples demonstrating connections (inter unit communication channels).
    • include
    Majority of component implementations are located here.
    • axi
    Contains all axi-related components
    • testbench
    Auxiliary non-synthesizable components to be used in testbenches.
    • unittests
    Collection of testbenches for MatchLib components, each testbench is in dedicated sub-directory.
  • hls
    High-Level-Synthesis (hls) - includes examples of hls setup scripts for synthesizing using Mentor Graphics Catapult. Each example is in dedicated sub-directory.
  • doc
    Sources for generation of this Doxygen documentation.

License

Copyright (c) 2016-2024, NVIDIA CORPORATION. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

When indicated in the source code, some compute functions in MatchLib have been derived from code in the Algorithmic C (tm) Datatypes v3.7.1 distributed with the following license:

Algorithmic C (tm) Datatypes                                          

Software Version: 3.7                                                 

Release Date    : Sat Jun 25 13:27:03 PDT 2016                        
Release Type    : Production Release                                  
Release Build   : 3.7.1                                               

Copyright 2004-2016, Mentor Graphics Corporation,                     

All Rights Reserved.                                                  

Licensed under the Apache License, Version 2.0 (the "License");       
you may not use this file except in compliance with the License.      
You may obtain a copy of the License at                               

    http://www.apache.org/licenses/LICENSE-2.0                        

Unless required by applicable law or agreed to in writing, software   
distributed under the License is distributed on an "AS IS" BASIS,     
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or       
implied.                                                              
See the License for the specific language governing permissions and   
limitations under the License.                                        


The most recent version of this package is available at github.