ConOpSys V2970  P004.07
ANVILEX control operating system
FPGA_Base.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file FPGA_Base.h
3 //! @brief FPGA chip base class header file.
4 //! @attention No special attention requered.
5 //! @copyright (C) 2015-2020 ANVILEX LLC
6 //! $HeadURL: https://192.168.3.4:8443/svn/P004_07/ConOpSys/Peripherals/FPGA/FPGA_Base.h $
7 //! $Revision: 2843 $
8 //! $Date: 2021-08-06 16:39:48 +0500 (Fr, 06 Aug 2021) $
9 //! $Author: ggavrituhin $
10 //------------------------------------------------------------------------------
11 //
12 // Redistribution and use in source and binary forms, with or without
13 // modification, are permitted provided that the following conditions are met:
14 //
15 // 1. Redistributions of source code must retain the above copyright notice,
16 // this list of conditions and the following disclaimer.
17 //
18 // 2. Redistributions in binary form must reproduce the above copyright notice,
19 // this list of conditions and the following disclaimer in the documentation
20 // and/or other materials provided with the distribution.
21 //
22 // 3. Neither the name of ANVILEX nor the names of its contributors may be
23 // used to endorse or promote products derived from this software without
24 // specific prior written permission.
25 //
26 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
30 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36 // POSSIBILITY OF SUCH DAMAGE.
37 //
38 //------------------------------------------------------------------------------
39 
40 //------------------------------------------------------------------------------
41 // Protecting header files from mutual, recursive inclusion.
42 //------------------------------------------------------------------------------
43 
44 #pragma once
45 
46 //------------------------------------------------------------------------------
47 // Include standard libraries header files
48 //------------------------------------------------------------------------------
49 
50 //------------------------------------------------------------------------------
51 // Include thrid party header files
52 //------------------------------------------------------------------------------
53 
54 //------------------------------------------------------------------------------
55 // Include ConOpSys header files
56 //------------------------------------------------------------------------------
57 
58 //------------------------------------------------------------------------------
59 // Include ConOpSys application header files
60 //------------------------------------------------------------------------------
61 
62 #include "Application_Task_Base.h"
63 
64 //------------------------------------------------------------------------------
65 // Global defines
66 //------------------------------------------------------------------------------
67 
68 // Physical size of FPGA address space in byte
69 #define FPGA_PHYSICAL_ADDRESS_SPACE_SIZE (0x10000)
70 
71 //------------------------------------------------------------------------------
72 // Global macros
73 //------------------------------------------------------------------------------
74 
75 //------------------------------------------------------------------------------
76 // Class declaration
77 //------------------------------------------------------------------------------
78 
79 //! @brief FPGA base class
81 {
82 
83  //----------------------------------------------------------------------------
84  // Public defines, methods and variables
85  //----------------------------------------------------------------------------
86 
87  public:
88 
89  //--------------------------------------------------------------------------
90  // Public defines
91  //--------------------------------------------------------------------------
92 
93  //! @brief FPGA register models
94  typedef union
95  {
96 
97  // Register structure for generic access
98  struct
99  {
100 
101  //----------------------------------------------------------------------
102  // Test registers
103  //----------------------------------------------------------------------
104 
105  //! @brief Offset 0x00, FPGA access test register 1
107 
108  //! @brief Offset 0x01, FPGA access test register 2
110 
111  //! @brief Offset 0x02, FPGA access test register 3
113 
114  //! @brief Offset 0x03, FPGA access test register 4
116 
117  //----------------------------------------------------------------------
118  // Information registers
119  //----------------------------------------------------------------------
120 
121  //! @brief Offset 0x04, FPGA configuration ID register, low word
123 
124  //! @brief Offset 0x05, FPGA configuration ID register, high word
126 
127  //! @brief Offset 0x06, FPGA version register
129 
130  //! @brief Offset 0x07, FPGA revision register
132 
133  //! @brief Offset 0x08, FPGA clock frequency low word
135 
136  //! @brief Offset 0x09, FPGA clock frequency high word
138 
139  //! @brief Offset 0x0A, FPGA slot size
141 
142  //! @brief Offset 0x0B, Reserve
144 
145  //! @brief Offset 0x0C, FPGA interrupt period register, low word
147 
148  //! @brief Offset 0x0D, FPGA interrupt period register, low word
150 
151  //! @brief Offset 0x0E, FPGA watchdog period register
153 
154  //! @brief Offset 0x0F, FPGA watchdog control and status register
156 
157  } struct_Data;
158 
159  //! @brief Generic data registers
161 
162  } TFPGA_Registers;
163 
164  //! @brief Register structure for generic unit ID access
165  typedef struct
166  {
167 
168  //! @brief 0x00 : Module identification low register
170 
171  //! @brief 0x01 : Module identification high register
173 
174  } TUnit_Registers;
175 
176  //--------------------------------------------------------------------------
177  // Public methods
178  //--------------------------------------------------------------------------
179 
180  //!-------------------------------------------------------------------------
181  //! @brief FPGA base class constructor method.
182  //! @note None
183  //! \par Override
184  //! Not allowed
185  //! @attention Don't call this method directly.
186  //--------------------------------------------------------------------------
187 
188  TFPGA_Base();
189 
190  //!-------------------------------------------------------------------------
191  //! @brief FPGA base class destructor method.
192  //! @note None
193  //! \par Override
194  //! Not allowed
195  //! @attention Don't call this method directly.
196  //--------------------------------------------------------------------------
197 
198  virtual ~TFPGA_Base();
199 
200  //!-------------------------------------------------------------------------
201  //! @brief FPGA interrupt method
202  //! @note None
203  //! @return None
204  //! \par Override
205  //! Requered
206  //! @attention None
207  //--------------------------------------------------------------------------
208 
209  VOID Interrupt();
210 
211  //!-------------------------------------------------------------------------
212  //! @brief FPGA object initialisation method.
213  //! @note None
214  //! @param [in] *struct_Registers_Base_Address - Pointer to registers base address
215  //! @return None
216  //! \par Override
217  //! Requered
218  //! @attention None
219  //--------------------------------------------------------------------------
220 
221  VOID Init( TFPGA_Registers *struct_Registers_Base_Address );
222 
223  BOOL Get_Internal_Slot_Module_ID( U8 u8_Slot_Index, U32 *u32_Module_ID );
224 
225  BOOL Get_External_Slot_Module_ID( U8 u8_Slot_Index, U32 *u32_Module_ID );
226 
227  //!-------------------------------------------------------------------------
228  //! @brief Increment test interconnect error counter method.
229  //! @note None
230  //! @return None
231  //! \par Override
232  //! Not allowed
233  //! @attention None
234  //--------------------------------------------------------------------------
235 
237 
238  //!-------------------------------------------------------------------------
239  //! @brief Check FPGA interconnection interface method.
240  //! @note None
241  //! @return None
242  //! \par Override
243  //! Optional
244  //! @attention None
245  //--------------------------------------------------------------------------
246 
248 
249  //!-------------------------------------------------------------------------
250  //! @brief Get FPGA configuration ID method.
251  //! @note None
252  //! @return U32 - Return configurstion ID
253  //! \par Override
254  //! Not allowed
255  //! @attention None
256  //--------------------------------------------------------------------------
257 
259 
260  //!-------------------------------------------------------------------------
261  //! @brief Get FPGA configuration version method.
262  //! @note None
263  //! @return U16 - Return FPGA version
264  //! \par Override
265  //! Not allowed
266  //! @attention None
267  //--------------------------------------------------------------------------
268 
269  U16 Get_Version();
270 
271  //!-------------------------------------------------------------------------
272  //! @brief Get FPGA configuration revision method.
273  //! @note None
274  //! @return U16 - Return FPGA revision
275  //! \par Override
276  //! Not allowed
277  //! @attention None
278  //--------------------------------------------------------------------------
279 
280  U16 Get_Revision();
281 
282  //!-------------------------------------------------------------------------
283  //! @brief Get FPGA clock frequency in herz method.
284  //! @note None
285  //! @return U16 - Return FPGA clock frequency in herz
286  //! \par Override
287  //! Not allowed
288  //! @attention None
289  //--------------------------------------------------------------------------
290 
292 
293  //!-------------------------------------------------------------------------
294  //! @brief Get FPGA slot size method.
295  //! @note None
296  //! @return U16 - Return FPGA slot size
297  //! \par Override
298  //! Not allowed
299  //! @attention None
300  //--------------------------------------------------------------------------
301 
302  U16 Get_Slot_Size();
303 
304  //!-------------------------------------------------------------------------
305  //! @brief Get FPGA internal clock frequency in Hz method.
306  //! @note None
307  //! @return F32 - Return Clock frequency
308  //! \par Override
309  //! Not allowed
310  //! @attention None
311  //--------------------------------------------------------------------------
312 
314 
315 
316  //!-------------------------------------------------------------------------
317  //! @brief Get FPGA interconnect error count method.
318  //! @note None
319  //! @return U64 - FPGA interconnect error count
320  //! \par Override
321  //! Not allowed
322  //! @attention None
323  //--------------------------------------------------------------------------
324 
326 
327  //!-------------------------------------------------------------------------
328  //! @brief Get FPGA interconnect test count method.
329  //! @note None
330  //! @return U64 - FPGA interconnect test count
331  //! \par Override
332  //! Not allowed
333  //! @attention None
334  //--------------------------------------------------------------------------
335 
337 
338  //!-------------------------------------------------------------------------
339  //! @brief Get FPGA init status method.
340  //! @note None
341  //! @return BOOL - Return FPGA init status
342  //! @retval false - FPGA not installed
343  //! @retval true - FPGA installed
344  //! \par Override
345  //! Requered
346  //! @attention None
347  //--------------------------------------------------------------------------
348 
349  virtual BOOL Is_Installed();
350 
351  //!-------------------------------------------------------------------------
352  //! @brief Return FPGA configuration status method.
353  //! @note None
354  //! @return TRIL - Return FPGA init status
355  //! @retval false - FPFA not configured
356  //! @retval true - FPGA successful configured
357  //! @retval unset - FPGA did not start configured
358  //! \par Override
359  //! Not allowed
360  //! @attention None
361  //--------------------------------------------------------------------------
362 
364 
365  //!-------------------------------------------------------------------------
366  //! @brief Configure FPGA method.
367  //! @note None
368  //! @return BOOL - Return FPGA present status
369  //! @retval false - FPGA does not present
370  //! @retval true - FPGA present
371  //! \par Override
372  //! Requered
373  //! @attention None
374  //--------------------------------------------------------------------------
375 
376  virtual BOOL Configure() = 0;
377 
378  //!-------------------------------------------------------------------------
379  //! @brief Get FPGA PROG pin status method.
380  //! @note None
381  //! @return BOOL - Return FPGA PROG pin status
382  //! @retval false - FPGA PROG pin is low
383  //! @retval true - FPGA PROG pin is high
384  //! \par Override
385  //! Requered
386  //! @attention None
387  //--------------------------------------------------------------------------
388 
389  virtual BOOL FPGA_PROG_Pin_Status() = 0;
390 
391  //!-------------------------------------------------------------------------
392  //! @brief Get FPGA DONE pin status method.
393  //! @note None
394  //! @return BOOL - Return FPGA DONE pin status
395  //! @retval false - FPGA DONE pin is low
396  //! @retval true - FPGA DONE pin is high
397  //! \par Override
398  //! Requered
399  //! @attention None
400  //--------------------------------------------------------------------------
401 
402  virtual BOOL FPGA_DONE_Pin_Status() = 0;
403 
404  //!-------------------------------------------------------------------------
405  //! @brief Send general information about FPGA object
406  //! @note None
407  //! @param [in] *object_Protocol Pointer to the communication protocol object
408  //! @return None
409  //! \par Override
410  //! Optional
411  //! @attention None
412  //--------------------------------------------------------------------------
413 
414  VOID Send_General_Information( TProtocol_Base *object_Protocol );
415 
416  //!-------------------------------------------------------------------------
417  //! @brief Send information about internal slots allocation
418  //! @note None
419  //! @param [in] *object_Protocol Pointer to the communication protocol object
420  //! @return None
421  //! \par Override
422  //! Optional
423  //! @attention None
424  //--------------------------------------------------------------------------
425 
427 
428  //!-------------------------------------------------------------------------
429  //! @brief Send information about external slots allocation
430  //! @note None
431  //! @param [in] *object_Protocol Pointer to the communication protocol object
432  //! @return None
433  //! \par Override
434  //! Optional
435  //! @attention None
436  //--------------------------------------------------------------------------
437 
439 
440  //!-------------------------------------------------------------------------
441  //! @brief Reset FPGA watchdog
442  //! @note None
443  //! @return None
444  //! \par Override
445  //! Requered
446  //! @attention None
447  //--------------------------------------------------------------------------
448 
450 
451  BOOL Get_Slot_Module_Name_By_ID( U32 u32_Module_ID, C8 **c8_Module_Name );
452 
453  VOID Send_Internal_Module_Information( U8 u8_Slot, TProtocol_Base *object_Protocol );
454 
455  VOID Send_External_Module_Information( U8 u8_Slot, TProtocol_Base *object_Protocol );
456 
457  //----------------------------------------------------------------------------
458  // Protected defines, methods and variables
459  //----------------------------------------------------------------------------
460 
461  protected:
462 
463  //--------------------------------------------------------------------------
464  // Protected methods
465  //--------------------------------------------------------------------------
466 
467  //!-------------------------------------------------------------------------
468  //! @brief Write U16 value into FPGA using generic access.
469  //! @note None
470  //! @param [in] u16_Address - Logical address for read operation
471  //! @param [in] u16_Value - U16 value for write into FPGA
472  //! @return None
473  //! \par Override
474  //! Requered
475  //! @attention None
476  //--------------------------------------------------------------------------
477 
478  VOID FPGA_Write_U16( U16 u16_Address, U16 u16_Value );
479 
480  //!-------------------------------------------------------------------------
481  //! @brief Read U16 value from FPGA using generic access.
482  //! @note None
483  //! @param [in] u16_Address - Logical address for read operation
484  //! @param [out] *u16_Value - Readed U16 value from FPGA
485  //! @return None
486  //! \par Override
487  //! Requered
488  //! @attention None
489  //--------------------------------------------------------------------------
490 
491  VOID FPGA_Read_U16( U16 u16_Address, U16 *u16_Value );
492 
493  //!-------------------------------------------------------------------------
494  //! @brief Enable FPGA interrupt method.
495  //! @note None
496  //! @param [in] u32_TickPriority - Priority
497  //! @return None
498  //! \par Override
499  //! Requered
500  //! @attention None
501  //--------------------------------------------------------------------------
502 
503  virtual VOID Interrupt_Enable( U32 u32_TickPriority ) = 0;
504 
505  //!-------------------------------------------------------------------------
506  //! @brief Disable FPGA interrupt method.
507  //! @note None
508  //! @param [in] u32_TickPriority - Priority
509  //! @return None
510  //! \par Override
511  //! Requered
512  //! @attention None
513  //--------------------------------------------------------------------------
514 
515  virtual VOID Interrupt_Disable() = 0;
516 
517  //--------------------------------------------------------------------------
518  // Protected variables
519  //--------------------------------------------------------------------------
520 
521  //! @brief Mapped FPGA registers
523 
524  //! @brief FPGA configuration status
526 
527  //! @brief Interconnect test counter
529 
530  //! @brief Interconnect error counter for diagnose
532 
533  //! @brief Write pattern #1 for testng
535 
536  //! @brief Write pattern #2 for testng
538 
539  //! @brief Write pattern #3 for testng
541 
542  //! @brief Write pattern #4 for testng
544 
545  //! @brief Reading pattern #1 for testng
547 
548  //! @brief Reading pattern #2 for testng
550 
551  //! @brief Reading pattern #3 for testng
553 
554  //! @brief Reading pattern #4 for testng
556 
557  //! @brief Pointer to the application task
558 // TApplication_Task_Base *object_Application_Task;
559 
560  //----------------------------------------------------------------------------
561  // Private defines, methods and variables
562  //----------------------------------------------------------------------------
563 
564  private:
565 
566  //--------------------------------------------------------------------------
567  // Private defines
568  //--------------------------------------------------------------------------
569 
570  //! @brief FPGA module descriptior structure
571  typedef struct
572  {
573 
574  //! @brief FPGA module identifier
576 
577  //! @brief FPGA module name
579 
580  //! @brief FPGA module description
582 
584 
585  //--------------------------------------------------------------------------
586  // Private variables
587  //--------------------------------------------------------------------------
588 
589  //! @brief FPAG module descriptior database storage
591 
592  //! @brief FPGA internal clock frequency in herz as integer value
594 
595  //! @brief FPGA internal clock frequency in herz as float point value
596  F32 f32_Clock_Frequency = (F32)50000000.0f;
597 
598 };
599 
600 //------------------------------------------------------------------------------
601 // End of file
602 //------------------------------------------------------------------------------
ConOpSys application task base class header file.
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
#define NULL
Definition: Defines.h:388
unsigned long long U64
Binary 64-Bit unsigned integer datatype defenition.
Definition: Defines.h:213
int TRIL
Thrilean datatype defenition.
Definition: Defines.h:143
unsigned char U8
Binary 8-Bit unsigned integer datatype defenition.
Definition: Defines.h:183
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
float F32
IEEE-754 32-Bit single presession floating point numbers datatype defenition.
Definition: Defines.h:324
unsigned short U16
Binary 16-Bit unsigned integer datatype defenition.
Definition: Defines.h:193
char C8
ASCII 8-Bit char datatype defenition.
Definition: Defines.h:156
#define unset
Unset value of thrilean datatype defenition.
Definition: Defines.h:146
#define FPGA_PHYSICAL_ADDRESS_SPACE_SIZE
Definition: FPGA_Base.h:69
FPGA base class.
Definition: FPGA_Base.h:81
VOID Send_Internal_Slot_Information(TProtocol_Base *object_Protocol)
Send information about internal slots allocation.
Definition: FPGA_Base.cpp:1334
F32 f32_Clock_Frequency
FPGA internal clock frequency in herz as float point value.
Definition: FPGA_Base.h:596
VOID Init(TFPGA_Registers *struct_Registers_Base_Address)
FPGA object initialisation method.
Definition: FPGA_Base.cpp:358
U32 Get_Clock_Frequency()
Get FPGA clock frequency in herz method.
Definition: FPGA_Base.cpp:1193
U64 Get_Interconnect_Error_Count()
Get FPGA interconnect error count method.
Definition: FPGA_Base.cpp:1036
U16 u16_Read_Pattern_2
Reading pattern #2 for testng.
Definition: FPGA_Base.h:549
virtual VOID Interrupt_Disable()=0
Disable FPGA interrupt method.
virtual BOOL FPGA_PROG_Pin_Status()=0
Get FPGA PROG pin status method.
U32 Get_Configurstion_ID()
Get FPGA configuration ID method.
Definition: FPGA_Base.cpp:1152
virtual BOOL Configure()=0
Configure FPGA method.
U64 u64_Test_Interconnect_Test_Counter
Interconnect test counter.
Definition: FPGA_Base.h:528
VOID Send_Internal_Module_Information(U8 u8_Slot, TProtocol_Base *object_Protocol)
Definition: FPGA_Base.cpp:1789
TRIL Is_Configured()
Return FPGA configuration status method.
Definition: FPGA_Base.cpp:1251
VOID Interrupt()
FPGA interrupt method.
Definition: FPGA_Base.cpp:1012
U64 u64_Test_Interconnect_Error_Counter
Interconnect error counter for diagnose.
Definition: FPGA_Base.h:531
VOID FPGA_Write_U16(U16 u16_Address, U16 u16_Value)
Write U16 value into FPGA using generic access.
Definition: FPGA_Base.cpp:1128
volatile TFPGA_Registers * struct_Registers
Mapped FPGA registers.
Definition: FPGA_Base.h:522
BOOL Get_Slot_Module_Name_By_ID(U32 u32_Module_ID, C8 **c8_Module_Name)
Definition: FPGA_Base.cpp:1750
virtual BOOL FPGA_DONE_Pin_Status()=0
Get FPGA DONE pin status method.
U16 u16_Write_Pattern_3
Write pattern #3 for testng.
Definition: FPGA_Base.h:540
virtual ~TFPGA_Base()
FPGA base class destructor method.
Definition: FPGA_Base.cpp:350
U16 u16_Read_Pattern_1
Reading pattern #1 for testng.
Definition: FPGA_Base.h:546
F32 Get_Clock_Frequency_In_Hz()
Get FPGA internal clock frequency in Hz method.
Definition: FPGA_Base.cpp:1024
VOID Test_Interconnect_Interface()
Check FPGA interconnection interface method.
Definition: FPGA_Base.cpp:1080
VOID Increment_Test_Interconnect_Error_Counter()
Increment test interconnect error counter method.
Definition: FPGA_Base.cpp:1060
VOID Send_External_Module_Information(U8 u8_Slot, TProtocol_Base *object_Protocol)
Definition: FPGA_Base.cpp:1837
U16 u16_Write_Pattern_1
Write pattern #1 for testng.
Definition: FPGA_Base.h:534
VOID Send_External_Slot_Information(TProtocol_Base *object_Protocol)
Send information about external slots allocation.
Definition: FPGA_Base.cpp:1542
U16 u16_Read_Pattern_4
Reading pattern #4 for testng.
Definition: FPGA_Base.h:555
TRIL tril_FPGA_Configured
FPGA configuration status.
Definition: FPGA_Base.h:525
U16 u16_Write_Pattern_4
Write pattern #4 for testng.
Definition: FPGA_Base.h:543
VOID FPGA_Read_U16(U16 u16_Address, U16 *u16_Value)
Read U16 value from FPGA using generic access.
Definition: FPGA_Base.cpp:1140
U64 Get_Interconnect_Test_Count()
Get FPGA interconnect test count method.
Definition: FPGA_Base.cpp:1048
VOID Reset_Watchdog()
Reset FPGA watchdog.
Definition: FPGA_Base.cpp:1227
U16 Get_Version()
Get FPGA configuration version method.
Definition: FPGA_Base.cpp:1169
TFPGA_Base()
FPGA base class constructor method.
Definition: FPGA_Base.cpp:342
virtual BOOL Is_Installed()
Get FPGA init status method.
Definition: FPGA_Base.cpp:1239
U16 Get_Revision()
Get FPGA configuration revision method.
Definition: FPGA_Base.cpp:1181
static const TFPGA_Module_Descriptor struct_FPGA_Module_Descriptor_Database[]
FPAG module descriptior database storage.
Definition: FPGA_Base.h:590
BOOL Get_Internal_Slot_Module_ID(U8 u8_Slot_Index, U32 *u32_Module_ID)
Definition: FPGA_Base.cpp:370
virtual VOID Interrupt_Enable(U32 u32_TickPriority)=0
Enable FPGA interrupt method.
U32 u32_Clock_Frequency
FPGA internal clock frequency in herz as integer value.
Definition: FPGA_Base.h:593
BOOL Get_External_Slot_Module_ID(U8 u8_Slot_Index, U32 *u32_Module_ID)
Definition: FPGA_Base.cpp:762
VOID Send_General_Information(TProtocol_Base *object_Protocol)
Send general information about FPGA object.
Definition: FPGA_Base.cpp:1263
U16 Get_Slot_Size()
Get FPGA slot size method.
Definition: FPGA_Base.cpp:1212
U16 u16_Write_Pattern_2
Write pattern #2 for testng.
Definition: FPGA_Base.h:537
U16 u16_Read_Pattern_3
Reading pattern #3 for testng.
Definition: FPGA_Base.h:552
Definition: Protocol_Base.h:57
Pointer to the application task.
Definition: FPGA_Base.h:572
C8 * c8_Module_Description
FPGA module description.
Definition: FPGA_Base.h:581
U16 u16_Module_ID
FPGA module identifier.
Definition: FPGA_Base.h:575
C8 * c8_Module_Name
FPGA module name.
Definition: FPGA_Base.h:578
Register structure for generic unit ID access.
Definition: FPGA_Base.h:166
U16 u16_Unit_ID_L
0x00 : Module identification low register
Definition: FPGA_Base.h:169
U16 u16_Unit_ID_H
0x01 : Module identification high register
Definition: FPGA_Base.h:172
FPGA register models.
Definition: FPGA_Base.h:95
U16 u16_FPGA_Revision
Offset 0x07, FPGA revision register.
Definition: FPGA_Base.h:131
U16 u16_FPGA_Version
Offset 0x06, FPGA version register.
Definition: FPGA_Base.h:128
U16 u16_Reserve_0x0B
Offset 0x0B, Reserve.
Definition: FPGA_Base.h:143
U16 u16_FPGA_Slot_Size
Offset 0x0A, FPGA slot size.
Definition: FPGA_Base.h:140
U16 u16_FPGA_Configuration_ID_Low
Offset 0x04, FPGA configuration ID register, low word.
Definition: FPGA_Base.h:122
U16 u16_FPGA_Clock_Frequency_High
Offset 0x09, FPGA clock frequency high word.
Definition: FPGA_Base.h:137
U16 u16_Watchdog_CSR
Offset 0x0F, FPGA watchdog control and status register.
Definition: FPGA_Base.h:155
U16 u16_FPGA_Interrupt_Period_Low
Offset 0x0C, FPGA interrupt period register, low word.
Definition: FPGA_Base.h:146
U16 u16_FPGA_Clock_Frequency_Low
Offset 0x08, FPGA clock frequency low word.
Definition: FPGA_Base.h:134
U16 u16_FPGA_Configuration_ID_High
Offset 0x05, FPGA configuration ID register, high word.
Definition: FPGA_Base.h:125
U16 u16_FPGA_Watchdog_Period
Offset 0x0E, FPGA watchdog period register.
Definition: FPGA_Base.h:152
U16 u16_Test_Register_2
Offset 0x01, FPGA access test register 2.
Definition: FPGA_Base.h:109
U16 u16_Test_Register_1
Offset 0x00, FPGA access test register 1.
Definition: FPGA_Base.h:106
U16 u16_Test_Register_4
Offset 0x03, FPGA access test register 4.
Definition: FPGA_Base.h:115
U16 u16_FPGA_Interrupt_Period_High
Offset 0x0D, FPGA interrupt period register, low word.
Definition: FPGA_Base.h:149
U16 u16_Test_Register_3
Offset 0x02, FPGA access test register 3.
Definition: FPGA_Base.h:112