ConOpSys V2970
P004.07
ANVILEX control operating system
|
FPGA base class. More...
#include <FPGA_Base.h>
Classes | |
struct | TFPGA_Module_Descriptor |
Pointer to the application task. More... | |
union | TFPGA_Registers |
FPGA register models. More... | |
struct | TUnit_Registers |
Register structure for generic unit ID access. More... | |
Public Member Functions | |
TFPGA_Base () | |
FPGA base class constructor method. More... | |
virtual | ~TFPGA_Base () |
FPGA base class destructor method. More... | |
VOID | Interrupt () |
FPGA interrupt method. More... | |
VOID | Init (TFPGA_Registers *struct_Registers_Base_Address) |
FPGA object initialisation method. More... | |
BOOL | Get_Internal_Slot_Module_ID (U8 u8_Slot_Index, U32 *u32_Module_ID) |
BOOL | Get_External_Slot_Module_ID (U8 u8_Slot_Index, U32 *u32_Module_ID) |
VOID | Increment_Test_Interconnect_Error_Counter () |
Increment test interconnect error counter method. More... | |
VOID | Test_Interconnect_Interface () |
Check FPGA interconnection interface method. More... | |
U32 | Get_Configurstion_ID () |
Get FPGA configuration ID method. More... | |
U16 | Get_Version () |
Get FPGA configuration version method. More... | |
U16 | Get_Revision () |
Get FPGA configuration revision method. More... | |
U32 | Get_Clock_Frequency () |
Get FPGA clock frequency in herz method. More... | |
U16 | Get_Slot_Size () |
Get FPGA slot size method. More... | |
F32 | Get_Clock_Frequency_In_Hz () |
Get FPGA internal clock frequency in Hz method. More... | |
U64 | Get_Interconnect_Error_Count () |
Get FPGA interconnect error count method. More... | |
U64 | Get_Interconnect_Test_Count () |
Get FPGA interconnect test count method. More... | |
virtual BOOL | Is_Installed () |
Get FPGA init status method. More... | |
TRIL | Is_Configured () |
Return FPGA configuration status method. More... | |
virtual BOOL | Configure ()=0 |
Configure FPGA method. More... | |
virtual BOOL | FPGA_PROG_Pin_Status ()=0 |
Get FPGA PROG pin status method. More... | |
virtual BOOL | FPGA_DONE_Pin_Status ()=0 |
Get FPGA DONE pin status method. More... | |
VOID | Send_General_Information (TProtocol_Base *object_Protocol) |
Send general information about FPGA object. More... | |
VOID | Send_Internal_Slot_Information (TProtocol_Base *object_Protocol) |
Send information about internal slots allocation. More... | |
VOID | Send_External_Slot_Information (TProtocol_Base *object_Protocol) |
Send information about external slots allocation. More... | |
VOID | Reset_Watchdog () |
Reset FPGA watchdog. More... | |
BOOL | Get_Slot_Module_Name_By_ID (U32 u32_Module_ID, C8 **c8_Module_Name) |
VOID | Send_Internal_Module_Information (U8 u8_Slot, TProtocol_Base *object_Protocol) |
VOID | Send_External_Module_Information (U8 u8_Slot, TProtocol_Base *object_Protocol) |
Protected Member Functions | |
VOID | FPGA_Write_U16 (U16 u16_Address, U16 u16_Value) |
Write U16 value into FPGA using generic access. More... | |
VOID | FPGA_Read_U16 (U16 u16_Address, U16 *u16_Value) |
Read U16 value from FPGA using generic access. More... | |
virtual VOID | Interrupt_Enable (U32 u32_TickPriority)=0 |
Enable FPGA interrupt method. More... | |
virtual VOID | Interrupt_Disable ()=0 |
Disable FPGA interrupt method. More... | |
Protected Attributes | |
volatile TFPGA_Registers * | struct_Registers = (TFPGA_Registers*)NULL |
Mapped FPGA registers. More... | |
TRIL | tril_FPGA_Configured = (TRIL)unset |
FPGA configuration status. More... | |
U64 | u64_Test_Interconnect_Test_Counter = (U64)0 |
Interconnect test counter. More... | |
U64 | u64_Test_Interconnect_Error_Counter = (U64)0 |
Interconnect error counter for diagnose. More... | |
U16 | u16_Write_Pattern_1 |
Write pattern #1 for testng. More... | |
U16 | u16_Write_Pattern_2 |
Write pattern #2 for testng. More... | |
U16 | u16_Write_Pattern_3 |
Write pattern #3 for testng. More... | |
U16 | u16_Write_Pattern_4 |
Write pattern #4 for testng. More... | |
U16 | u16_Read_Pattern_1 |
Reading pattern #1 for testng. More... | |
U16 | u16_Read_Pattern_2 |
Reading pattern #2 for testng. More... | |
U16 | u16_Read_Pattern_3 |
Reading pattern #3 for testng. More... | |
U16 | u16_Read_Pattern_4 |
Reading pattern #4 for testng. More... | |
Private Attributes | |
U32 | u32_Clock_Frequency = (U32)50000000 |
FPGA internal clock frequency in herz as integer value. More... | |
F32 | f32_Clock_Frequency = (F32)50000000.0f |
FPGA internal clock frequency in herz as float point value. More... | |
Static Private Attributes | |
static const TFPGA_Module_Descriptor | struct_FPGA_Module_Descriptor_Database [] |
FPAG module descriptior database storage. More... | |
FPGA base class.
TFPGA_Base::TFPGA_Base | ( | ) |
FPGA base class constructor method.
|
virtual |
FPGA base class destructor method.
|
pure virtual |
Configure FPGA method.
false | - FPGA does not present |
true | - FPGA present |
Implemented in TFPGA_STM32F429, TFPGA_P017_39_KG3_CB, TFPGA_P015_09_CB, and TFPGA.
|
pure virtual |
Get FPGA DONE pin status method.
false | - FPGA DONE pin is low |
true | - FPGA DONE pin is high |
Implemented in TFPGA_STM32F429, TFPGA_P017_39_KG3_CB, and TFPGA_P015_09_CB.
Referenced by Send_General_Information().
|
pure virtual |
Get FPGA PROG pin status method.
false | - FPGA PROG pin is low |
true | - FPGA PROG pin is high |
Implemented in TFPGA_STM32F429, TFPGA_P017_39_KG3_CB, and TFPGA_P015_09_CB.
Referenced by Send_General_Information().
Read U16 value from FPGA using generic access.
[in] | u16_Address | - Logical address for read operation |
[out] | *u16_Value | - Readed U16 value from FPGA |
References struct_Registers, and TFPGA_Base::TFPGA_Registers::u16_Data.
Write U16 value into FPGA using generic access.
[in] | u16_Address | - Logical address for read operation |
[in] | u16_Value | - U16 value for write into FPGA |
References struct_Registers, and TFPGA_Base::TFPGA_Registers::u16_Data.
U32 TFPGA_Base::Get_Clock_Frequency | ( | ) |
Get FPGA clock frequency in herz method.
References TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, TFPGA_Base::TFPGA_Registers::u16_FPGA_Clock_Frequency_High, and TFPGA_Base::TFPGA_Registers::u16_FPGA_Clock_Frequency_Low.
F32 TFPGA_Base::Get_Clock_Frequency_In_Hz | ( | ) |
Get FPGA internal clock frequency in Hz method.
References f32_Clock_Frequency.
U32 TFPGA_Base::Get_Configurstion_ID | ( | ) |
Get FPGA configuration ID method.
References TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, TFPGA_Base::TFPGA_Registers::u16_FPGA_Configuration_ID_High, and TFPGA_Base::TFPGA_Registers::u16_FPGA_Configuration_ID_Low.
References Compose_U32(), and struct_Registers.
Referenced by Send_External_Module_Information().
U64 TFPGA_Base::Get_Interconnect_Error_Count | ( | ) |
Get FPGA interconnect error count method.
References u64_Test_Interconnect_Error_Counter.
U64 TFPGA_Base::Get_Interconnect_Test_Count | ( | ) |
Get FPGA interconnect test count method.
References u64_Test_Interconnect_Test_Counter.
References Compose_U32(), and struct_Registers.
Referenced by Send_Internal_Module_Information().
U16 TFPGA_Base::Get_Revision | ( | ) |
Get FPGA configuration revision method.
References TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, and TFPGA_Base::TFPGA_Registers::u16_FPGA_Revision.
References TFPGA_Base::TFPGA_Module_Descriptor::c8_Module_Name, struct_FPGA_Module_Descriptor_Database, and TFPGA_Base::TFPGA_Module_Descriptor::u16_Module_ID.
Referenced by Send_External_Module_Information(), and Send_Internal_Module_Information().
U16 TFPGA_Base::Get_Slot_Size | ( | ) |
Get FPGA slot size method.
References TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, and TFPGA_Base::TFPGA_Registers::u16_FPGA_Slot_Size.
U16 TFPGA_Base::Get_Version | ( | ) |
Get FPGA configuration version method.
References TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, and TFPGA_Base::TFPGA_Registers::u16_FPGA_Version.
VOID TFPGA_Base::Increment_Test_Interconnect_Error_Counter | ( | ) |
Increment test interconnect error counter method.
References u64_Test_Interconnect_Error_Counter.
Referenced by Test_Interconnect_Interface().
VOID TFPGA_Base::Init | ( | TFPGA_Registers * | struct_Registers_Base_Address | ) |
FPGA object initialisation method.
[in] | *struct_Registers_Base_Address | - Pointer to registers base address |
References struct_Registers.
Referenced by TFPGA::Init().
VOID TFPGA_Base::Interrupt | ( | ) |
FPGA interrupt method.
References object_Application.
Referenced by TFPGA_P015_09_CB::Interrupt(), TFPGA_P017_39_KG3_CB::Interrupt(), and TFPGA_STM32F429::Interrupt().
|
protectedpure virtual |
Disable FPGA interrupt method.
[in] | u32_TickPriority | - Priority |
Implemented in TFPGA_STM32F429, TFPGA_P017_39_KG3_CB, TFPGA_P015_09_CB, and TFPGA.
Enable FPGA interrupt method.
[in] | u32_TickPriority | - Priority |
Implemented in TFPGA_STM32F429, TFPGA_P017_39_KG3_CB, TFPGA_P015_09_CB, and TFPGA.
TRIL TFPGA_Base::Is_Configured | ( | ) |
Return FPGA configuration status method.
false | - FPFA not configured |
true | - FPGA successful configured |
unset | - FPGA did not start configured |
References tril_FPGA_Configured.
Referenced by Send_General_Information().
|
virtual |
Get FPGA init status method.
false | - FPGA not installed |
true | - FPGA installed |
Referenced by Send_General_Information().
VOID TFPGA_Base::Reset_Watchdog | ( | ) |
Reset FPGA watchdog.
References TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, and TFPGA_Base::TFPGA_Registers::u16_Watchdog_CSR.
VOID TFPGA_Base::Send_External_Module_Information | ( | U8 | u8_Slot, |
TProtocol_Base * | object_Protocol | ||
) |
References Get_External_Slot_Module_ID(), Get_Slot_Module_Name_By_ID(), TProtocol_Base::Transmit_String(), and TProtocol_Base::Transmit_U32_Value_As_Hex().
Referenced by Send_External_Slot_Information().
VOID TFPGA_Base::Send_External_Slot_Information | ( | TProtocol_Base * | object_Protocol | ) |
Send information about external slots allocation.
[in] | *object_Protocol | Pointer to the communication protocol object |
References Send_External_Module_Information(), TProtocol_Base::Transmit_String(), and TProtocol_Base::Transmit_U32_Value_As_Hex().
Referenced by TFPGA_P015_09_CB::Send_Boot_Information(), and TFPGA_P017_39_KG3_CB::Send_Boot_Information().
VOID TFPGA_Base::Send_General_Information | ( | TProtocol_Base * | object_Protocol | ) |
Send general information about FPGA object.
[in] | *object_Protocol | Pointer to the communication protocol object |
References FPGA_BASE, FPGA_DONE_Pin_Status(), FPGA_PROG_Pin_Status(), Is_Configured(), Is_Installed(), TProtocol_Base::Transmit_BOOL_Value_As_Decimal(), TProtocol_Base::Transmit_String(), TProtocol_Base::Transmit_TRIL_Value_As_Decimal(), TProtocol_Base::Transmit_U16_Value_As_Hex(), TProtocol_Base::Transmit_U32_Value_As_Decimal(), and TProtocol_Base::Transmit_U32_Value_As_Hex().
Referenced by TFPGA_P015_09_CB::Send_Boot_Information(), and TFPGA_P017_39_KG3_CB::Send_Boot_Information().
VOID TFPGA_Base::Send_Internal_Module_Information | ( | U8 | u8_Slot, |
TProtocol_Base * | object_Protocol | ||
) |
References Get_Internal_Slot_Module_ID(), Get_Slot_Module_Name_By_ID(), TProtocol_Base::Transmit_String(), and TProtocol_Base::Transmit_U32_Value_As_Hex().
Referenced by Send_Internal_Slot_Information().
VOID TFPGA_Base::Send_Internal_Slot_Information | ( | TProtocol_Base * | object_Protocol | ) |
Send information about internal slots allocation.
[in] | *object_Protocol | Pointer to the communication protocol object |
References Send_Internal_Module_Information(), TProtocol_Base::Transmit_String(), and TProtocol_Base::Transmit_U32_Value_As_Hex().
Referenced by TFPGA_P015_09_CB::Send_Boot_Information(), and TFPGA_P017_39_KG3_CB::Send_Boot_Information().
VOID TFPGA_Base::Test_Interconnect_Interface | ( | ) |
Check FPGA interconnection interface method.
References TTIMER2_STM32F429::Get_Actual_Time_U64(), Increment_Test_Interconnect_Error_Counter(), object_Delay_Timer, TFPGA_Base::TFPGA_Registers::struct_Data, struct_Registers, u16_Read_Pattern_1, u16_Read_Pattern_2, u16_Read_Pattern_3, u16_Read_Pattern_4, TFPGA_Base::TFPGA_Registers::u16_Test_Register_1, TFPGA_Base::TFPGA_Registers::u16_Test_Register_2, TFPGA_Base::TFPGA_Registers::u16_Test_Register_3, TFPGA_Base::TFPGA_Registers::u16_Test_Register_4, u16_Write_Pattern_1, u16_Write_Pattern_2, u16_Write_Pattern_3, u16_Write_Pattern_4, and u64_Test_Interconnect_Test_Counter.
FPGA internal clock frequency in herz as float point value.
Referenced by Get_Clock_Frequency_In_Hz().
|
staticprivate |
FPAG module descriptior database storage.
Referenced by Get_Slot_Module_Name_By_ID().
|
protected |
Mapped FPGA registers.
Referenced by FPGA_Read_U16(), FPGA_Write_U16(), Get_Clock_Frequency(), Get_Configurstion_ID(), Get_External_Slot_Module_ID(), Get_Internal_Slot_Module_ID(), Get_Revision(), Get_Slot_Size(), Get_Version(), Init(), TFPGA::Read_U16(), Reset_Watchdog(), TFPGA::Test_Interconnect_Interface(), Test_Interconnect_Interface(), and TFPGA::Write_U16().
FPGA configuration status.
Referenced by TFPGA_P015_09_CB::Configure(), TFPGA_P017_39_KG3_CB::Configure(), TFPGA_STM32F429::Configure(), and Is_Configured().
|
protected |
Reading pattern #1 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Reading pattern #2 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Reading pattern #3 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Reading pattern #4 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Write pattern #1 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Write pattern #2 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Write pattern #3 for testng.
Referenced by Test_Interconnect_Interface().
|
protected |
Write pattern #4 for testng.
Referenced by Test_Interconnect_Interface().
FPGA internal clock frequency in herz as integer value.
Interconnect error counter for diagnose.
Referenced by Get_Interconnect_Error_Count(), and Increment_Test_Interconnect_Error_Counter().
Interconnect test counter.
Referenced by Get_Interconnect_Test_Count(), and Test_Interconnect_Interface().