Select Git revision
APSPU_I2C.py
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];