Skip to content
Snippets Groups Projects
  1. Aug 11, 2020
  2. Aug 05, 2020
  3. Jul 31, 2020
  4. Jul 28, 2020
  5. Jul 24, 2020
  6. Jul 22, 2020
    • Philipp Spilger's avatar
      Cleanup Decoder · 24f43808
      Philipp Spilger authored
      * has_leading_comma(word) is now static
      * message-type specific decode_message lambda is separate templated member function
      * code common to all message-types split out of specific function -> less code size
      
      Change-Id: I8b41e4af9aa6efab88963f2fa519f36c3e3f9ed0
      24f43808
    • Philipp Spilger's avatar
      Unify test main files · c1781766
      Philipp Spilger authored
      * use logger instead of direct cout in throughputtests
      
      Change-Id: I343e55338499c827e8afab79c7ffd687413e8bdb
      c1781766
    • Philipp Spilger's avatar
      Unify hw and sim test targets · 92318655
      Philipp Spilger authored
      * use get_connection_from_env followed by a visit
      * remove unused dispatch headers
      
      Change-Id: I4b69d959443e4d1a6a57284ae8e96ffad69a6519
      92318655
    • Philipp Spilger's avatar
      Remove usage of DoubleBuffer · 221c5c7a
      Philipp Spilger authored
      * no performance drop
      * less code complexity
      
      Change-Id: I8c7513ca5cd883d5f4420a7812983356a4fdbe98
      221c5c7a
  7. Jul 21, 2020
  8. Jul 17, 2020
    • Oliver Breitwieser's avatar
      ConnectionTimeInfo: Add cereal support · 1ac1469f
      Oliver Breitwieser authored and Philipp Spilger's avatar Philipp Spilger committed
      * Add support for filling standard-layouted data types with random data
        prior to serialization so that the test fails if not all members are
        serialized.
      
      * Performed manual verification that test breaks if not all members of
        ConnectionTimeInfo are serialized.
      
      Change-Id: I0b7e257e776ec71e7b5e7131375fb069c6388dcf
      1ac1469f
  9. Jul 14, 2020
  10. Jul 13, 2020
  11. Jul 06, 2020
  12. Jul 03, 2020
    • Philipp Spilger's avatar
      Add ConnectionTimeInfo struct · 3ebb1eb9
      Philipp Spilger authored
      * A connection logs time of encode, decode, commit and
        execute operations
      * Add logging to execute_messages, which logs in/out message count
        and time expenditure as difference of the time information before
        and after execution
      * change default loglevel from info to warning in order to be able to have
        the time info print in execute_messages on info loglevel without spamming
        the normal user
      
      Depends-On: 11111
      Change-Id: I17835a9ae7f089da72a9004a18b967c117b6132d
      3ebb1eb9
  13. Jun 12, 2020
  14. Jun 11, 2020
    • Oliver Breitwieser's avatar
      Add Handle<Connection>::release() · a4e10349
      Oliver Breitwieser authored
      In order to emulate unique_ptr interface that moves the connection
      object from the connection handle. Needed to move the ownership of
      connections to hxtorch.
      
      Change-Id: Ib999fdf5a4ca6aa9ecd1085515797f6802fde73e
      a4e10349
  15. Jun 10, 2020
    • Oliver Breitwieser's avatar
      Rework connection interface · b4c4b793
      Oliver Breitwieser authored
      * As discussed on 2020-04-07 after the Softie's meeting (ECM, YS, PSP,
        CM, OJB), we want to have a streamlined connection interfaces for all
        the possible ways we turn FPGA words into other FPGA words in
        hardware.
      
      * C++-API: Split old Connection objects into two parts:
        * The connection object that the user can only create and destroy but
          which holds state necessary for communication with the backend (hw,
          CoSim, QuiggelyClient, etc) and allows some state to be set.
        * Introduce hxcomm/common/stream.h:
          * The Stream-object featuring a uniform interface handling how to
            feed and read words to/from the backend.
          * The interface is defined via templated `Stream`-class that has to
            be befriended in the corresponding connection implementations
          * The Stream-interface is verified at compile time via the
            Streamable helper-struct.
      
      * Move `execute_words` from fisch as more generic
        `execute_messages`-function that is the entry point for all upper
        layers when communcating with backends.
        * Overloading is possible by fully or partially-specializing the
          detail::ExecutorMessages-helper struct's operator() method (not
          needed once partial function specialization arrives, so never)
        * default implementation in common namespace by adding explicit
          `send_halt_message_type` to ConnectionParameter template argument
      
      * Rework hxcomm/common/{arq,sim}connection.{h,tcc} to use the new Stream
        interface.
      
      * Update all tests to use streams for interacting with the hardware.
      
      * Rename init_parameters_t -> init_parameters_type to be consistent
        (they will be used by quiggeldy but that change is not merged -> no
        API break)
      
      * Provide get_connection_from_env-function that returns a connection
        variant over all possible connections (and is used in pyhxcomm, see
        below).
      
      * Introduce seperate `pyhxcomm`-namespace that is private to hxcomm and
        only to be accessed from Python. It adds convenience context-wrappers
        for connections ensuring connections get closed upon exiting contexts
        in Python
        * pyhxcomm::Managed<Connection> provides enter/exit-methods
        * enter() returns pyhxcom::Handle<Connection> holding the connection
        * if Handle<Connection> gets destroyed, connection gets freed (i.e.
          disconnected)
        * Managed<Connection> also holds a weak-ptr to the returned
          ConnectionHandle object and disconnects the Handle upon exit()-ing
        * Expose union over all Connections as `pyhxcomm_vx.ConnectionHandle`
          that can be used in type annotations in Python.
        * Expose special context manager `pyhxcomm_vx.ManagedConnection` that
          automatically creates a new connection from the environment and
          returns `ConnectionHandle` (which is a concrete `<Connection>Handle`
          in python rather than the cumbersome variant type).
      
      * Introduce hxcomm::visit_connection that allows for applying operations
        on connections wrapped in Handle-objects such as variants for hxcomm
        and pyhxcomm::ConnectionHandles. It is used in
        hxcomm::execute_messages as well as stadls::run-pybind11 bindings.
        * Functions templated over connections can be easily specialized for
          all wrapped connections via:
          * `ConnectionIsPlainGuard<Connection> = 0`
          * `ConnectionIsWrappedGuard<Connection> = 0`
        * Another possibility is to perform compile time checks using
          `ConnectionIsPlain<Connection>::value` (see `run`-implementation in
          haldls for example).
      
      * Add `static char const name[]` attributes for all connection for more
        informative logging.
      
      Depends-On: 10346,10335,10703,10978,11027
      
      Change-Id: I3ff901db53a5cb94a1faa50b18dc36786246f389
      b4c4b793
  16. May 25, 2020
  17. May 24, 2020
  18. May 21, 2020
  19. May 20, 2020
    • Johannes Weis's avatar
      Revert "Add (capped) exponential backoff to worker threads" · cf6809a4
      Johannes Weis authored
      This reverts commit 149edd5b.
      
      Reason for revert: Connection to chip hangs frequently, a script running
      for 10 minutes is hard to complete. The problem was introduced in this
      change, but there may be better solutions than only reverting.
      
      Change-Id: I463bc0692a265a69b49d71f64714cc52980d233e
      cf6809a4
  20. May 18, 2020
  21. May 13, 2020
  22. May 12, 2020
  23. May 06, 2020
  24. Apr 30, 2020
    • Yannik Stradmann's avatar
      Update container apps · d86ed956
      Yannik Stradmann authored
      * Use dls-core for core-software stack
      * Drop 'visionary' prefix
      
      Change-Id: I8aacbd7276d87269fd9f21082321ca42eb5303a9
      d86ed956
  25. Apr 26, 2020
  26. Apr 20, 2020
  27. Apr 17, 2020
  28. Apr 15, 2020
    • Philipp Spilger's avatar
      Remove halco dependency · d6b505c3
      Philipp Spilger authored
      * use rant directly for only case (num-bits of JTAG data)
      * use bitset for bit-aligned data in spike/MADC sample from chip
      
      Depends-On: 10242
      Change-Id: Ica7ea95caa84d228545ace9ff671f2a50940b39e
      d6b505c3