padrick.Generators package

Subpackages

Submodules

padrick.Generators.CLIGeneratorCommands module

padrick.Generators.GeneratorSettings module

class padrick.Generators.GeneratorSettings.ConstraintsTemplates(*, case_analysis: PadrickTemplate = PadrickTemplate(name='Set Case Analysis statements for padmultiplexer', target_file_name='{padframe.name}_mode_{constraints_mode.name}.sdc', template=TemplatePackageResource(package='padrick.Generators.ConstraintsGenerator.Templates', resource='set_case_analysis.sdc.mako'), skip_generation=False))[source]

Bases: BaseModel

class padrick.Generators.GeneratorSettings.DocTemplates[source]

Bases: BaseModel

class padrick.Generators.GeneratorSettings.DriverTemplates(*, regfile_hjson: PadrickTemplate = PadrickTemplate(name='Register File Specification for {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_regs.hjson', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='regfile.hjson.mako'), skip_generation=False), driver_header: PadrickTemplate = PadrickTemplate(name='Driver header file', target_file_name='{padframe.name}.h', template=TemplatePackageResource(package='padrick.Generators.DriverGenerator.Templates', resource='driver.h.mako'), skip_generation=False), driver_source: PadrickTemplate = PadrickTemplate(name='Driver implementation file', target_file_name='{padframe.name}.c', template=TemplatePackageResource(package='padrick.Generators.DriverGenerator.Templates', resource='driver.c.mako'), skip_generation=False))[source]

Bases: BaseModel

class padrick.Generators.GeneratorSettings.GeneratorSettings(*, manifest_version: ConstrainedIntValue = 3, rtl_templates: RTLTemplates = RTLTemplates(toplevel_sv_package=PadrickTemplate(name='SV package', target_file_name='pkg_{padframe.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pkg_padframe.sv.mako'), skip_generation=False), pad_domain_top=PadrickTemplate(name='Paddomain module {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pad_domain.sv.mako'), skip_generation=False), pad_inst_module=PadrickTemplate(name='Pad instantiation module {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_pads.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pads.sv.mako'), skip_generation=False), internal_pkg=PadrickTemplate(name='Internal package for {pad_domain.name}', target_file_name='pkg_internal_{padframe.name}_{pad_domain.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pkg_pad_domain_internals.sv.mako'), skip_generation=False), pad_mux_module=PadrickTemplate(name='Pad Multiplexer for {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_muxer.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pad_multiplexer.sv.mako'), skip_generation=False), regfile_hjson=PadrickTemplate(name='Register File Specification for {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_regs.hjson', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='regfile.hjson.mako'), skip_generation=False), toplevel_module=PadrickTemplate(name='Padframe Top Module', target_file_name='{padframe.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='padframe.sv.mako'), skip_generation=False), assign_header_file=PadrickTemplate(name='Padframe assignment header file', target_file_name='assign.svh', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='assign.svh.mako'), skip_generation=False), bender_project_file=PadrickTemplate(name='Bender.yml Project file', target_file_name='Bender.yml', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='Bender.yml.mako'), skip_generation=False), ipapprox_src_files_yml=PadrickTemplate(name='IPApprox src_files.yml', target_file_name='src_files.yml', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='src_files.yml.mako'), skip_generation=False), ipapprox_ips_list_yml=PadrickTemplate(name='IPApprox ips_list.yml', target_file_name='ips_list.yml', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='ips_list.yml.mako'), skip_generation=False), fusesoc_core_file=PadrickTemplate(name='FuseSoC core file', target_file_name='{padframe.name}.core', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='FuseSoC.core.mako'), skip_generation=False)), driver_templates: DriverTemplates = DriverTemplates(regfile_hjson=PadrickTemplate(name='Register File Specification for {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_regs.hjson', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='regfile.hjson.mako'), skip_generation=False), driver_header=PadrickTemplate(name='Driver header file', target_file_name='{padframe.name}.h', template=TemplatePackageResource(package='padrick.Generators.DriverGenerator.Templates', resource='driver.h.mako'), skip_generation=False), driver_source=PadrickTemplate(name='Driver implementation file', target_file_name='{padframe.name}.c', template=TemplatePackageResource(package='padrick.Generators.DriverGenerator.Templates', resource='driver.c.mako'), skip_generation=False)), doc_templates: DocTemplates = DocTemplates(), constraints_templates: ConstraintsTemplates = ConstraintsTemplates(case_analysis=PadrickTemplate(name='Set Case Analysis statements for padmultiplexer', target_file_name='{padframe.name}_mode_{constraints_mode.name}.sdc', template=TemplatePackageResource(package='padrick.Generators.ConstraintsGenerator.Templates', resource='set_case_analysis.sdc.mako'), skip_generation=False)))[source]

Bases: BaseModel

classmethod check_manifest_version(version)[source]

Verifies that the configuration file has the right version number for the current version of padrick.

manifest_version: ConstrainedIntValue
class padrick.Generators.GeneratorSettings.RTLTemplates(*, toplevel_sv_package: PadrickTemplate = PadrickTemplate(name='SV package', target_file_name='pkg_{padframe.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pkg_padframe.sv.mako'), skip_generation=False), pad_domain_top: PadrickTemplate = PadrickTemplate(name='Paddomain module {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pad_domain.sv.mako'), skip_generation=False), pad_inst_module: PadrickTemplate = PadrickTemplate(name='Pad instantiation module {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_pads.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pads.sv.mako'), skip_generation=False), internal_pkg: PadrickTemplate = PadrickTemplate(name='Internal package for {pad_domain.name}', target_file_name='pkg_internal_{padframe.name}_{pad_domain.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pkg_pad_domain_internals.sv.mako'), skip_generation=False), pad_mux_module: PadrickTemplate = PadrickTemplate(name='Pad Multiplexer for {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_muxer.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='pad_multiplexer.sv.mako'), skip_generation=False), regfile_hjson: PadrickTemplate = PadrickTemplate(name='Register File Specification for {pad_domain.name}', target_file_name='{padframe.name}_{pad_domain.name}_regs.hjson', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='regfile.hjson.mako'), skip_generation=False), toplevel_module: PadrickTemplate = PadrickTemplate(name='Padframe Top Module', target_file_name='{padframe.name}.sv', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='padframe.sv.mako'), skip_generation=False), assign_header_file: PadrickTemplate = PadrickTemplate(name='Padframe assignment header file', target_file_name='assign.svh', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='assign.svh.mako'), skip_generation=False), bender_project_file: PadrickTemplate = PadrickTemplate(name='Bender.yml Project file', target_file_name='Bender.yml', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='Bender.yml.mako'), skip_generation=False), ipapprox_src_files_yml: PadrickTemplate = PadrickTemplate(name='IPApprox src_files.yml', target_file_name='src_files.yml', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='src_files.yml.mako'), skip_generation=False), ipapprox_ips_list_yml: PadrickTemplate = PadrickTemplate(name='IPApprox ips_list.yml', target_file_name='ips_list.yml', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='ips_list.yml.mako'), skip_generation=False), fusesoc_core_file: PadrickTemplate = PadrickTemplate(name='FuseSoC core file', target_file_name='{padframe.name}.core', template=TemplatePackageResource(package='padrick.Generators.RTLGenerator.Templates', resource='FuseSoC.core.mako'), skip_generation=False))[source]

Bases: BaseModel

padrick.Generators.PadrickTemplate module

class padrick.Generators.PadrickTemplate.PadrickTemplate(*, name: str, target_file_name: str, template: Union[TemplatePackageResource, Path], skip_generation: bool = False)[source]

Bases: BaseModel

name: str
render(output_dir: Path, logger: Logger, padframe: Padframe, debug_render=False, **kwargs)[source]
target_file_name: str
template: Union[TemplatePackageResource, Path]
class padrick.Generators.PadrickTemplate.TemplatePackageResource(package, resource)[source]

Bases: tuple

property package

Alias for field number 0

property resource

Alias for field number 1

exception padrick.Generators.PadrickTemplate.TemplateRenderException[source]

Bases: Exception

Module contents