Table Of Contents

Previous topic

Module protocols

Next topic

Metadata providers

This Page

Parameters

Purpose

Parameters can be used for 2 different purposes:

  • compile-time specialization. In soclib-cc, they are called template parameters.
  • run-time parameters. In soclib-cc, they are called instance parameters.

Most HDL languages only support numeric constant as parameters.

Language support

Language Template parameter Instance parameter

VHDL

(only numeric parameters supported)

Unsupported by language.

Sometimes, you’ll find VHDL preprocessors which generate VHDL files, preprocessor parameters can be seen as tempalte parameters.

generic map
SystemC (C++) Any pod (integers, pointers, etc.) or types, classes, etc. Any pod or object instance

Soclib-cc library does not check for validity of parameters as such, this is up to the Metadata providers to ensure parameters and types are valid for their own handled module types.

Parameter types

Available parameter types:

Parameter type name Associated data
Bool A binary value (true/false)
Int An integer value
Float A floating point value
String A character string (file path, etc.)
StringArray An array of character strings, of arbitrary length
IntArray An array of integer values, of arbitrary length
IntTab A table of integers, this is used by most soclib components for routing configuration
Type (C++-specific) A data type, only usable as template parameter
Module (C++-specific) A module type or instance