padrick.Model package
Submodules
padrick.Model.CommonValidators module
padrick.Model.Constants module
padrick.Model.PadDomain module
- class padrick.Model.PadDomain.PadDomain(*args, name: ConstrainedStrValue, description: Optional[str] = None, pad_types: ConstrainedListValue[PadType], pad_list: ConstrainedListValue[PadInstance], port_groups: List[PortGroup] = [], user_attr: Optional[Dict[str, Union[str, int, bool]]] = None)[source]
Bases:
BaseModel
A pad_domain contains the configuration about one collection of pads and ports that can connected with each other.
- classmethod check_each_pad_instance_name_is_unique(pads: List[PadInstance])[source]
- property dynamic_pad_signals_pad2soc
- classmethod expand_multi_pads(pads: List[PadInstance])[source]
- name: ConstrainedStrValue
- classmethod normalize_pad_mux_groups(pads: List[PadInstance])[source]
- pad_list: ConstrainedListValue[PadInstance]
padrick.Model.PadInstance module
- class padrick.Model.PadInstance.PadInstance(*, name: ~padrick.Model.TemplatedIdentifier.TemplatedIdentifierType, description: ~typing.Optional[~padrick.Model.TemplatedString.TemplatedStringType] = None, multiple: ~padrick.Model.PadInstance.ConstrainedIntValue = 1, pad_type: ~typing.Union[~padrick.Model.PadInstance.ConstrainedStrValue, ~padrick.Model.PadType.PadType], is_static: bool = False, mux_groups: ~types.ConstrainedSetValue[~padrick.Model.TemplatedIdentifier.TemplatedIdentifierType] = {all, self}, connections: ~typing.Optional[~typing.Mapping[~typing.Union[~padrick.Model.PadSignal.PadSignal, str], ~typing.Optional[~padrick.Model.SignalExpressionType.SignalExpressionType]]] = None, default_port: ~typing.Optional[~typing.Union[~typing.Mapping[~typing.Union[typing_extensions.Literal[*], ~padrick.Model.TemplatedIdentifier.TemplatedIdentifierType], ~padrick.Model.TemplatedPortIdentifier.TemplatedPortIdentifierType], ~padrick.Model.TemplatedPortIdentifier.TemplatedPortIdentifierType, ~typing.Tuple[~padrick.Model.PortGroup.PortGroup, ~padrick.Model.Port.Port]]] = None, user_attr: ~typing.Optional[~padrick.Model.UserAttrs.UserAttrs] = None)[source]
Bases:
BaseModel
- class Config[source]
Bases:
object
- extra = 'forbid'
- underscore_attrs_are_private = True
- validate_assignment = True
- default_port: Port]]]
- description: Optional[TemplatedStringType]
- property dynamic_pad_signals
- property dynamic_pad_signals_pad2soc
- property dynamic_pad_signals_soc2pad
- expand_padinstance() List[PadInstance] [source]
- property landing_pads
- classmethod link_and_validate_connections(v: Mapping[str, SignalExpressionType], values)[source]
- multiple: ConstrainedIntValue
- property mux_group_name
- mux_groups: ConstrainedSetValue[TemplatedIdentifierType]
- classmethod mux_groups_must_not_contain_uppercase_letters(mux_group: TemplatedIdentifierType)[source]
- name: TemplatedIdentifierType
- property static_connection_signals: List[Signal]
Returns all static connection signals used for the given pad. Returns:
- property static_pad_signal_connections
- property static_pad_signals
padrick.Model.PadSignal module
- class padrick.Model.PadSignal.ConnectionType(value)[source]
-
An enumeration.
- dynamic = 'dynamic'
- static = 'static'
- class padrick.Model.PadSignal.PadSignal(direction=None, *values, name: ~padrick.Model.TemplatedIdentifier.TemplatedIdentifierType, size: ~padrick.Model.PadSignal.ConstrainedIntValue = 1, description: ~typing.Optional[str] = None, kind: ~padrick.Model.PadSignal.PadSignalKind, conn_type: ~typing.Optional[~padrick.Model.PadSignal.ConnectionType] = None, and_override_signal: ~padrick.Model.SignalExpressionType.SignalExpressionType =, or_override_signal: ~padrick.Model.SignalExpressionType.SignalExpressionType =, default_reset_value: ~typing.Optional[int] = None, default_static_value: ~typing.Optional[~padrick.Model.SignalExpressionType.SignalExpressionType] = None, user_attr: ~typing.Optional[~padrick.Model.UserAttrs.UserAttrs] = None)[source]
Bases:
Signal
- and_override_signal: SignalExpressionType
- conn_type: Optional[ConnectionType]
- default_static_value: Optional[SignalExpressionType]
- property direction
- kind: PadSignalKind
- or_override_signal: SignalExpressionType
- property static_signals
- class padrick.Model.PadSignal.PadSignalKind(value)[source]
-
An enumeration.
- input = 'input'
- output = 'output'
- pad = 'pad'
- class padrick.Model.PadSignal.Signal(direction=None, *values, name: TemplatedIdentifierType, size: ConstrainedIntValue = 1)[source]
Bases:
BaseModel
- property direction
- name: TemplatedIdentifierType
- size: ConstrainedIntValue
padrick.Model.PadType module
padrick.Model.Padframe module
- class padrick.Model.Padframe.Padframe(*, manifest_version: int, name: ConstrainedStrValue, description: Optional[str] = None, pad_domains: ConstrainedListValue[PadDomain], user_attr: Optional[UserAttrs] = None)[source]
Bases:
BaseModel
Padframe class that represents the padframe configuration parsed from the configuration file.
- class Config[source]
Bases:
object
- json_encoders = {<class 'mako.template.Template'>: <function Padframe.Config.<lambda>>, <class 'padrick.Model.SignalExpressionType.SignalExpressionType'>: <function Padframe.Config.<lambda>>, <class 'padrick.Model.PadSignal.PadSignal'>: <function Padframe.Config.<lambda>>, <class 'padrick.Model.PadSignal.Signal'>: <function Padframe.Config.<lambda>>}
- title = 'Padframe Config'
- underscore_attrs_are_private = True
- classmethod check_manifest_version(version)[source]
Verifies that the configuration file has the right version number for the current version of padrick.
- name: ConstrainedStrValue
padrick.Model.ParseContext module
padrick.Model.Port module
- class padrick.Model.Port.Port(*, name: TemplatedIdentifierType, description: Optional[TemplatedStringType] = None, connections: Optional[Mapping[Union[Signal, str], Optional[SignalExpressionType]]] = None, mux_groups: ConstrainedSetValue[TemplatedIdentifierType] = {all, self}, multiple: ConstrainedIntValue = 1, user_attr: Optional[UserAttrs] = None)[source]
Bases:
BaseModel
- class Config[source]
Bases:
object
- extra = 'forbid'
- underscore_attrs_are_private = True
- validate_assignment = True
- description: Optional[TemplatedStringType]
- classmethod link_and_validate_connections(v: Mapping[Union[Signal, str], SignalExpressionType], values)[source]
- multiple: ConstrainedIntValue
- mux_groups: ConstrainedSetValue[TemplatedIdentifierType]
- classmethod mux_groups_must_not_contain_uppercase_letters(mux_group: TemplatedIdentifierType)[source]
- name: TemplatedIdentifierType
padrick.Model.PortGroup module
- class padrick.Model.PortGroup.PortGroup(*, name: TemplatedIdentifierType, description: Optional[TemplatedStringType] = None, mux_groups: Optional[ConstrainedSetValue[TemplatedIdentifierType]] = None, ports: List[Port], output_defaults: Union[SignalExpressionType, Mapping[Union[Signal, str], Optional[SignalExpressionType]]] = {}, multiple: ConstrainedIntValue = 1, user_attr: Optional[UserAttrs] = None)[source]
Bases:
BaseModel
- description: Optional[TemplatedStringType]
- classmethod expand_multi_ports(ports)[source]
Expand ports with muliple>1 into individual port objects replacing the ‘<>’ token in name, description and signalexpression with the array index.
- multiple: ConstrainedIntValue
- mux_groups: Optional[ConstrainedSetValue[TemplatedIdentifierType]]
- name: TemplatedIdentifierType
- output_defaults: Union[SignalExpressionType, Mapping[Union[Signal, str], Optional[SignalExpressionType]]]
- property port_signals
- property port_signals_pads2soc
- property port_signals_soc2pads
- classmethod validate_and_link_output_defaults(v: Mapping[str, SignalExpressionType], values)[source]
Make sure the signals specified in connection_defaults are actually pad2chip port signals and make sure the associated expression is static.
padrick.Model.SignalExpressionType module
padrick.Model.TemplatedIdentifier module
padrick.Model.TemplatedIndexGrammar module
padrick.Model.TemplatedPortIdentifier module
padrick.Model.TemplatedString module
padrick.Model.UserAttrs module
padrick.Model.Utilities module
- padrick.Model.Utilities.sort_pads(seq: Iterable[PadInstance])[source]