What can PandABlocks do?
PandABlocks is a framework enabling a number of functional Block instances to be written and loaded to an FPGA, with their parameters (including their connections to other Blocks) changed at runtime. It allows flexible triggering and processing systems to be created, by users who are unfamiliar with writing FPGA firmware.
How is the documentation structured?
The documentation is structured into a series of Tutorials and some general Reference documentation. End users and developers need different documentation, so links for various categories of user are listed below:
Generating a new set of Blocks for a PandABlocks device
Read Available Blocks to find out what already exists, then read Assembling Blocks into an App to see how to make an App of these Blocks that can be loaded to a PandABlocks device.
Extending the functionality of a PandABlocks device
Read Available Blocks to see if you need to create a new Block or add to an existing one. Read Writing a Block to find out how to specify the interface to a Block, VHDL entity, timing tests and docs.
Working on the core autogeneration framework
Read Writing a Block to find out how the process works, then Autogeneration framework architecture for more details on specific parts of the autogeneration framework
Introduction
- What can PandABlocks do?
 - How is the documentation structured?
- Using an existing PandABlocks device
 - Generating a new set of Blocks for a PandABlocks device
 - Extending the functionality of a PandABlocks device
 - Working on the core autogeneration framework
- Blinking LEDs Tutorial
 - Position Capture Tutorial
 - Position Compare Tutorial
 - Snake Scan Tutorial
 - Available Blocks
- ABSENC - Absolute encoder
 - BITS - Soft inputs and constant bits
 - CALC - Position Calc
 - CLOCK - Configurable clock
 - COUNTER - Up/Down pulse counter
 - DIV - Pulse divider
 - EQU - EQU Input
 - FILTER - Filter
 - FMC_24V - FMC 24V IO Module
 - FMC_ACQ427 - FMC ACQ427 Module
 - FMC_ACQ430 - FMC ACQ430 Module
 - FMC_LOOPBACK - FMC Loopback Module
 - INENC - Input encoder
 - INENC - Input encoder
 - LUT - 5 Input lookup table
 - LVDSIN - LVDS Input
 - LVDSOUT - LVDS Output
 - OUTENC - Output encoder
 - PCAP - Position Capture
 - PCOMP - Position Compare
 - PGEN - Position Generator
 - PMACENC - Pmac encoder
 - POSENC - Quadrature and step/direction encoder
 - PULSE - One-shot pulse delay and stretch
 - QDEC - Quadrature Decoder
 - SEQ - Sequencer
 - SFP_DLS_EVENTR - SFP Event Receiver Module
 - SFP_LOOPBACK- SFP Loopback Module
 - SFP_PANDA_SYNC - Synchronize data between 2 PandAs
 - SFP_UDPONTRIG - SFP UDP on trig Module
 - SRGATE - Set Reset Gate
 - SYSTEM - System control FPGA
 - TTLIN - TTL Input
 - TTLOUT - TTL Output
 
 - Contributing
 - Assembling Blocks into an App
 - Writing a Block
 - Autogeneration framework architecture
- Softblocks
 - Wrappers
 - Config_d entries
pad()all_subclasses()BlockConfigBlockConfig.nameBlockConfig.numberBlockConfig.module_pathBlockConfig.ini_pathBlockConfig.block_addressBlockConfig.entityBlockConfig.typeBlockConfig.constraintsBlockConfig.ipBlockConfig.descriptionBlockConfig.fieldsBlockConfig.calc_extensionsBlockConfig.block_suffixesBlockConfig.register_addresses()BlockConfig.filter_fields()BlockConfig.generateInterfaceConstraints()
RegisterConfigBusEntryConfigFieldConfigFieldConfig.type_regexFieldConfig.nameFieldConfig.numberFieldConfig.typeFieldConfig.descriptionFieldConfig.registersFieldConfig.bus_entriesFieldConfig.wstbFieldConfig.option_filterFieldConfig.initial_valueFieldConfig.extensionFieldConfig.extra_config_linesFieldConfig.parse_extra_config()FieldConfig.register_addresses()FieldConfig.address_line()FieldConfig.config_line()FieldConfig.numbered_registers()
BitOutFieldConfigPosOutFieldConfigExtOutFieldConfigExtOutTimeFieldConfigTableFieldConfigTableShortFieldConfigParamFieldConfigCalcExtensionFieldConfigEnumParamFieldConfigUintParamFieldConfigScalarParamFieldConfigBitMuxFieldConfigPosMuxFieldConfigTimeFieldConfigTargetSiteConfig
 - Test benches
 
 - Changelog
 - Glossary
 - Running the tests
 
 
 
Tutorials
Reference
- Available Blocks
- ABSENC - Absolute encoder
 - BITS - Soft inputs and constant bits
 - CALC - Position Calc
 - CLOCK - Configurable clock
 - COUNTER - Up/Down pulse counter
 - DIV - Pulse divider
 - EQU - EQU Input
 - FILTER - Filter
 - FMC_24V - FMC 24V IO Module
 - FMC_ACQ427 - FMC ACQ427 Module
 - FMC_ACQ430 - FMC ACQ430 Module
 - FMC_LOOPBACK - FMC Loopback Module
 - INENC - Input encoder
 - INENC - Input encoder
 - LUT - 5 Input lookup table
 - LVDSIN - LVDS Input
 - LVDSOUT - LVDS Output
 - OUTENC - Output encoder
 - PCAP - Position Capture
 - PCOMP - Position Compare
 - PGEN - Position Generator
 - PMACENC - Pmac encoder
 - POSENC - Quadrature and step/direction encoder
 - PULSE - One-shot pulse delay and stretch
 - QDEC - Quadrature Decoder
 - SEQ - Sequencer
 - SFP_DLS_EVENTR - SFP Event Receiver Module
 - SFP_LOOPBACK- SFP Loopback Module
 - SFP_PANDA_SYNC - Synchronize data between 2 PandAs
 - SFP_UDPONTRIG - SFP UDP on trig Module
 - SRGATE - Set Reset Gate
 - SYSTEM - System control FPGA
 - TTLIN - TTL Input
 - TTLOUT - TTL Output
 
 - Contributing
 - Assembling Blocks into an App
 - Writing a Block
 - Autogeneration framework architecture
- Softblocks
 - Wrappers
 - Config_d entries
pad()all_subclasses()BlockConfigBlockConfig.nameBlockConfig.numberBlockConfig.module_pathBlockConfig.ini_pathBlockConfig.block_addressBlockConfig.entityBlockConfig.typeBlockConfig.constraintsBlockConfig.ipBlockConfig.descriptionBlockConfig.fieldsBlockConfig.calc_extensionsBlockConfig.block_suffixesBlockConfig.register_addresses()BlockConfig.filter_fields()BlockConfig.generateInterfaceConstraints()
RegisterConfigBusEntryConfigFieldConfigFieldConfig.type_regexFieldConfig.nameFieldConfig.numberFieldConfig.typeFieldConfig.descriptionFieldConfig.registersFieldConfig.bus_entriesFieldConfig.wstbFieldConfig.option_filterFieldConfig.initial_valueFieldConfig.extensionFieldConfig.extra_config_linesFieldConfig.parse_extra_config()FieldConfig.register_addresses()FieldConfig.address_line()FieldConfig.config_line()FieldConfig.numbered_registers()
BitOutFieldConfigPosOutFieldConfigExtOutFieldConfigExtOutTimeFieldConfigTableFieldConfigTableShortFieldConfigParamFieldConfigCalcExtensionFieldConfigEnumParamFieldConfigUintParamFieldConfigScalarParamFieldConfigBitMuxFieldConfigPosMuxFieldConfigTimeFieldConfigTargetSiteConfig
 - Test benches
 
 - Changelog
 - Glossary
 - Running the tests