LOLA
chip.h
Go to the documentation of this file.
1 #pragma once
2 #include "halco/hicann-dls/vx/v2/chip.h"
3 #include "haldls/cerealization.h"
4 #include "haldls/vx/v2/background.h"
5 #include "haldls/vx/v2/ppu.h"
6 #include "hate/visibility.h"
8 #include "lola/vx/genpybind.h"
9 #include "lola/vx/v2/cadc.h"
10 #include "lola/vx/v2/capmem.h"
12 #include "lola/vx/v2/neuron.h"
13 #include "lola/vx/v2/ppu.h"
18 #include <boost/hana/adapt_struct.hpp>
19 
21 
25 class GENPYBIND(visible) Chip
26 {
27 public:
28  typedef halco::hicann_dls::vx::ChipOnDLS coordinate_type;
29  typedef std::false_type has_local_data;
30 
31  Chip() = default;
32 
38 
43 
44  typedef halco::common::typed_array<
45  haldls::vx::v2::BackgroundSpikeSource,
46  halco::hicann_dls::vx::v2::BackgroundSpikeSourceOnDLS>
47  BackgroundSpikeSources GENPYBIND(opaque(false));
52 
57  CapMem capmem;
58 
59  typedef halco::common::
60  typed_array<SynapseDriverBlock, halco::hicann_dls::vx::v2::SynapseDriverBlockOnDLS>
61  SynapseDriverBlocks GENPYBIND(opaque(false));
67 
68  typedef halco::common::typed_array<SynapseBlock, halco::hicann_dls::vx::v2::SynapseBlockOnDLS>
69  SynapseBlocks GENPYBIND(opaque(false));
75 
80  NeuronBlock neuron_block;
81 
82  typedef halco::common::typed_array<CADCReadoutChain, halco::hicann_dls::vx::v2::CADCOnDLS>
83  CADCReadoutChains GENPYBIND(opaque(false));
89 
93  ReadoutChain readout_chain;
94 
95  typedef halco::common::
96  typed_array<haldls::vx::v2::PPUMemory, halco::hicann_dls::vx::v2::PPUMemoryOnDLS>
97  PPUMemory GENPYBIND(opaque(false));
102 
107 
108  bool operator==(Chip const& other) const SYMBOL_VISIBLE;
109  bool operator!=(Chip const& other) const SYMBOL_VISIBLE;
110 
111  GENPYBIND(stringstream)
112  friend std::ostream& operator<<(std::ostream& os, Chip const& config) SYMBOL_VISIBLE;
113 
117  static const SYMBOL_VISIBLE Chip default_neuron_bypass;
118 
119 private:
120  friend haldls::vx::detail::VisitPreorderImpl<Chip>;
121 };
122 
123 } // namespace lola::vx::v2
124 
125 #include "lola/vx/v2/chip.tcc"
Container for configuration of the routing crossbar.
Complete external PPU memory.
Definition: ppu.h:74
Timing configuration of memories.
Definition: memory_timing.h:17
Complete static configuration of one chip.
Definition: chip.h:26
SynapseDriverBlocks synapse_driver_blocks
Blocks of synapse drivers, one per hemisphere containing hemisphere-global configuration and all indi...
Definition: chip.h:66
ExternalPPUMemory external_ppu_memory
Chip-external global PPU memory.
Definition: chip.h:106
ReadoutChain readout_chain
Readout chain containing MADC configuration and analog signal routing.
Definition: chip.h:93
halco::common::typed_array< haldls::vx::v2::BackgroundSpikeSource, halco::hicann_dls::vx::v2::BackgroundSpikeSourceOnDLS > BackgroundSpikeSources
Definition: chip.h:47
halco::common::typed_array< CADCReadoutChain, halco::hicann_dls::vx::v2::CADCOnDLS > CADCReadoutChains
Definition: chip.h:83
halco::common::typed_array< SynapseBlock, halco::hicann_dls::vx::v2::SynapseBlockOnDLS > SynapseBlocks
Definition: chip.h:69
CapMem capmem
CapMem configuration and unused cells, all cells associated with other entities, e....
Definition: chip.h:57
bool operator==(Chip const &other) const SYMBOL_VISIBLE
halco::hicann_dls::vx::ChipOnDLS coordinate_type
Definition: chip.h:28
MemoryTiming memory_timing
Timing of memory cells, SynRAM, CADC offsets, analog and digital neuron and synapse driver configurat...
Definition: chip.h:37
BackgroundSpikeSources background_spike_sources
Background spike sources.
Definition: chip.h:51
std::false_type has_local_data
Definition: chip.h:29
halco::common::typed_array< haldls::vx::v2::PPUMemory, halco::hicann_dls::vx::v2::PPUMemoryOnDLS > PPUMemory
Definition: chip.h:97
Crossbar crossbar
Event routing crossbar configuration.
Definition: chip.h:42
CADCReadoutChains cadc_readout_chains
CADC readout chains, one per hemisphere containing CADC and correlation sensor configuration as well ...
Definition: chip.h:88
PPUMemory ppu_memory
PPU SRAM memory, one per PPU.
Definition: chip.h:101
halco::common::typed_array< SynapseDriverBlock, halco::hicann_dls::vx::v2::SynapseDriverBlockOnDLS > SynapseDriverBlocks
Definition: chip.h:61
SynapseBlocks synapse_blocks
Blocks of synapses, one per hemisphere containing hemisphere-global configuration and all individual ...
Definition: chip.h:74
bool operator!=(Chip const &other) const SYMBOL_VISIBLE
#define GENPYBIND_TAG_LOLA_VX_V2
Definition: genpybind.h:5
Definition: cadc.h:465