/************************************************************************** * * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file FPGA.h * * @author (last) Sean Nash * @date (last) 12-Sep-2025 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 * ***************************************************************************/ #ifndef __FPGA_H__ #define __FPGA_H__ #ifdef _TD_ #include "TDCommon.h" #endif #ifdef _DD_ #include "DDCommon.h" #endif #include "Interrupts.h" /** * @defgroup FPGA FPGA * @brief FPGA service unit. * The FPGA unit manages communication between the HD and the FPGA via UART. * This unit is driven by the Priority Task via calls to two FPGA executive functions: * 1) an incoming executive manages the states of the state machine that deal with responses and data received from the FPGA * 2) an outgoing executive manages transmission of write and read commands to the FPGA. * This unit first reads the header record that includes the FPGA ID and revision and * verifies the FPGA ID to check FPGA communication. Then, it essentially enters an infinite loop * where a bulk write command updates actuator set points and a bulk read command retrieves the * latest sensor readings. * * @addtogroup FPGA * @{ */ // ********** public definitions ********** // ********** public function prototypes ********** void initFPGA( U08* hdr, U08* sen, U08* act, U32 hdrSize, U32 senSize, U32 actSize ); void execFPGA( BOOL in ); void signalFPGAReceiptCompleted( void ); void signalFPGATransmitCompleted( void ); /**@}*/ #endif