Introduction
This page is intented to serve as an entry point map to those interested in working and collaborating in the development of the HDLMake tool. In order to do so, we have generated some diagrams for the Python source code by using the Pyreverse tool included in the Pylint package.
Note: The diagrams in this page are extracted from HDLMake 3.2 version.
Global oveview
Classes
Packages
The module pool
Classes
Packages
The source files
Classes
Packages
In the HDLMake tool, we have two big families of supported files:
- Those HDL files that can be parsed and scanned for dependencies between them.
- Those supported files that cannot be parsed, so that we cannot generate dependencies.
All of the file types supported ultimately belongs to the File class, being the base class for all of them.
In order to support dependencies, the HDL Files inherit from the DepFile class, that makes use of the DepRelation class to create a instance for each of the relations found by the specific HDL parsers. Note that they do not inherit directly, but making use of the intermediate SourceFile class, allowing them to host extra information about its content. These HDL file types are:
- VHDL file, that makes use of the VHDLParser.
- Verilog file, that makes use of the VerilogParser and its associated VerilogPreprocessor
- SystemVerilog/SV file, that inherits from Verilog file class.
If we want to add new supported file type to HDLMake, one that is not parseable, we need to add a new file class to one the following sections (note that smaller sections and tool-independent formats could be find/added too):
Then, we need to modify the create_source_file function accordingly so that HDLMake understand will be able to understand the file type by its extension. After doing this, the different tools will be able to include the new filetype if required.