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:
- [C++ functions : datapath description] (group___match_func.html)
- [C++ classes : state updating methods] (group___match_class.html)
- [SystemC modules : self-contained modules] (group___match_module.html)
- In addition, there is a collection of [auxiliary non-synthesizable components] (group___match_util.html) useful for building testbench and debug infrastructure of developed HW.
Directory organization
- cmod
- C model code
- 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.
- Simple examples of synthesizable code. Include counter and various more advanced examples demonstrating connections (inter unit communication channels).
- Majority of component implementations are located here.
- Contains all axi-related components
- Auxiliary non-synthesizable components to be used in testbenches.
- 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.