Skip to content
Snippets Groups Projects
Select Git revision
  • 64f0853aa156ff11996d01870ae05636e30680b5
  • master default protected
  • Work_Gijs protected
3 results

APSPU_I2C.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    fpga.h 8.77 KiB
    /* *************************************************************************
    * Copyright 2020
    * ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
    * P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    * *********************************************************************** */
    
    /* *************************************************************************
    * Author:
    * . Leon Hiemstra
    * . Pieter Donker
    * Purpose:
    * . opc-ua to ucp translator
    * Description:
    * . class for fpga registers (peripherals) that need some more actions
    * *********************************************************************** */
    
    #ifndef __PERIPH_FPGA_H__
    #define __PERIPH_FPGA_H__
    
    
    #include <string>
    #include <vector>
    #include <fstream>
    #include <sstream>
    
    #include "../io/ucp.h"
    #include "../tools/util.h"
    #include "../registers.h"
    #include "../constants.h"
    
    
    class Periph_fpga {
    private:
      Tictoc tictoc;  // used to get some timing information
      UCP *ucp;
      CMMap *mmap;
      uint32_t GlobalNr;
      uint32_t nBeamsets;
    
      // Masked is set by the client and is used to set the fpga's to communinicate with, true is communicate, false do not.
      bool Masked;
      // Online is the communication state with the fpga true if no errors, false is no communication.
      // state is set in read_system_info() function that is called every second from the monitor() function.
      bool Online;
    
      std::string my_current_design_name;
      uint my_current_hw_version;
      std::string my_current_fw_version;
    
      bool    my_bsn_input_sync_timeout;
      int64_t my_bsn_input_bsn;
      int64_t my_xst_input_bsn_at_sync;
      int64_t my_xst_output_sync_bsn;
      int32_t my_bsn_input_nof_packets;
      int32_t my_bsn_input_nof_valid;
      int32_t my_bsn_input_nof_err;
    
      uint32_t my_jesd_csr_rbd_count[C_S_pn];