rt-thread/bsp/rm48x50/HALCoGen/include/std_nhet.h

2428 lines
62 KiB
C
Raw Normal View History

/** @file std_nhet.h
* @brief NHET Instruction Definition File
* @date 23.May.2013
* @version 03.05.01
*
* (c) Texas Instruments 2009-2013, All rights reserved.
*/
#ifndef __STD_NHET_H__
#define __STD_NHET_H__
#include "sys_common.h"
#if defined(_TMS470_BIG) || defined(__big_endian__)
#ifndef HET_v2
# define HET_v2 0
#endif
#ifndef HETBYTE
# define HETBYTE uint8
#endif
typedef struct memory_format
{
uint32 program_word ;
uint32 control_word ;
uint32 data_word ;
uint32 reserved_word ;
} HET_MEMORY ;
/*---------------------------------------------*/
/* ACMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct acmp_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 9 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 coutprv : 1 ;
uint32 : 2 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 ext_reg : 1 ;
uint32 : 2 ;
uint32 pin_action : 1 ;
uint32 : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 : 7 ;
} ACMP_FIELDS;
typedef union
{
ACMP_FIELDS acmp ;
HET_MEMORY memory ;
} ACMP_INSTRUCTION;
/*---------------------------------------------*/
/* ECMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct ecmp_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 hr_lr : 1 ;
uint32 angle_compare : 1 ;
uint32 : 7 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 sub_opcode : 2 ;
uint32 pin_action : 1 ;
uint32 opposite_action : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} ECMP_FIELDS;
typedef union
{
ECMP_FIELDS ecmp ;
HET_MEMORY memory ;
} ECMP_INSTRUCTION;
/*---------------------------------------------*/
/* SCMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct scmp_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 2 ;
uint32 : 2 ;
uint32 : 5 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 coutprv : 1 ;
uint32 : 2 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 compare_mode : 2 ;
uint32 pin_action : 1 ;
uint32 : 2 ;
uint32 restart_en : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 : 7 ;
} SCMP_FIELDS ;
typedef union
{
SCMP_FIELDS scmp ;
HET_MEMORY memory ;
} SCMP_INSTRUCTION;
/*---------------------------------------------*/
/* MCMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct mcmp_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 hr_lr : 1 ;
uint32 angle_compare : 1 ;
uint32 : 1 ;
uint32 save_subtract : 1 ;
uint32 : 5 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 sub_opcode : 1 ;
uint32 order : 1 ;
uint32 pin_action : 1 ;
uint32 opposite_action : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} MCMP_FIELDS ;
typedef union
{
MCMP_FIELDS mcmp ;
HET_MEMORY memory ;
} MCMP_INSTRUCTION;
/*---------------------------------------------*/
/* MOV64 INSTRUCTION */
/*---------------------------------------------*/
typedef struct mov64_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 compare_mode : 2 ;
uint32 pin_action : 1 ;
uint32 opposite_action : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} MOV64_FIELDS ;
typedef union
{
MOV64_FIELDS mov64 ;
HET_MEMORY memory ;
} MOV64_INSTRUCTION;
/*---------------------------------------------*/
/* DADM64 INSTRUCTION */
/*---------------------------------------------*/
typedef struct dadm64_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 compare_mode : 2 ;
uint32 pin_action : 1 ;
uint32 opposite_action : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} DADM64_FIELDS ;
typedef union
{
DADM64_FIELDS dadm64 ;
HET_MEMORY memory ;
} DADM64_INSTRUCTION;
/*---------------------------------------------*/
/* RADM64 INSTRUCTION */
/*---------------------------------------------*/
typedef struct RADM64_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 compare_mode : 2 ;
uint32 pin_action : 1 ;
uint32 opposite_action : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} RADM64_FIELDS ;
typedef union
{
RADM64_FIELDS radm64 ;
HET_MEMORY memory ;
} RADM64_INSTRUCTION;
/*---------------------------------------------*/
/* MOV32 INSTRUCTION */
/*---------------------------------------------*/
typedef struct MOV32_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 z_flag : 1 ;
uint32 : 15 ;
uint32 init_flag : 1 ;
uint32 sub_opcode : 1 ;
uint32 move_type : 2 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} MOV32_FIELDS ;
typedef union
{
MOV32_FIELDS mov32 ;
HET_MEMORY memory ;
} MOV32_INSTRUCTION;
/*---------------------------------------------*/
/* ADM32 INSTRUCTION */
/*---------------------------------------------*/
typedef struct ADM32_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 auto_read_clear : 1 ;
uint32 : 19 ;
uint32 init_flag : 1 ;
uint32 sub_opcode : 1 ;
uint32 move_type : 2 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} ADM32_FIELDS ;
typedef union
{
ADM32_FIELDS adm32 ;
HET_MEMORY memory ;
} ADM32_INSTRUCTION;
/*---------------------------------------------*/
/* ADCNST INSTRUCTION */
/*---------------------------------------------*/
typedef struct ADCNST_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1 ; /* pk */
uint32 : 1 ;
uint32 constant : 25 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} ADCNST_FIELDS ;
typedef union
{
ADCNST_FIELDS adcnst ;
HET_MEMORY memory ;
} ADCNST_INSTRUCTION;
/*----------------------------------------------*/
/* ADD INSTRUCTION */
/*----------------------------------------------*/
typedef struct ADD_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} ADD_FIELDS ;
typedef union
{
ADD_FIELDS add ;
HET_MEMORY memory ;
} ADD_INSTRUCTION;
/*----------------------------------------------*/
/* ADC INSTRUCTION */
/*----------------------------------------------*/
typedef struct ADC_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} ADC_FIELDS ;
typedef union
{
ADC_FIELDS adc ;
HET_MEMORY memory ;
} ADC_INSTRUCTION;
/*----------------------------------------------*/
/* SUB INSTRUCTION */
/*----------------------------------------------*/
typedef struct SUB_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} SUB_FIELDS ;
typedef union
{
SUB_FIELDS sub ;
HET_MEMORY memory ;
} SUB_INSTRUCTION;
/*----------------------------------------------*/
/* SBB INSTRUCTION */
/*----------------------------------------------*/
typedef struct SBB_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} SBB_FIELDS ;
typedef union
{
SBB_FIELDS sbb ;
HET_MEMORY memory ;
} SBB_INSTRUCTION;
/*----------------------------------------------*/
/* AND INSTRUCTION */
/*----------------------------------------------*/
typedef struct AND_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} AND_FIELDS ;
typedef union
{
AND_FIELDS and ;
HET_MEMORY memory ;
} AND_INSTRUCTION;
/*----------------------------------------------*/
/* OR INSTRUCTION */
/*----------------------------------------------*/
typedef struct OR_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} OR_FIELDS ;
typedef union
{
OR_FIELDS or ;
HET_MEMORY memory ;
} OR_INSTRUCTION;
/*----------------------------------------------*/
/* XOR INSTRUCTION */
/*----------------------------------------------*/
typedef struct XOR_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 remote_address : 9 ;
uint32 : 5 ;
uint32 control : 1;
uint32 sub_opcode3 : 3 ;
uint32 src_1 : 4 ;
uint32 src_2 : 3 ;
uint32 shft_mode : 3 ;
uint32 shft_cnt : 5 ;
uint32 reg_ext : 1 ;
uint32 init_flag : 1 ;
uint32 sub_opcode1 : 1 ;
uint32 rem_dest : 2 ;
uint32 reg : 2 ;
uint32 : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} XOR_FIELDS ;
typedef union
{
XOR_FIELDS xor ;
HET_MEMORY memory ;
} XOR_INSTRUCTION;
/*---------------------------------------------*/
/* CNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct CNT_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 angle_cnt : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 : 4 ;
uint32 interrupt_enable : 1 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 1 ;
uint32 max : 25 ;
uint32 data : 25 ;
uint32 : 7 ;
} CNT_FIELDS ;
typedef union
{
CNT_FIELDS cnt ;
HET_MEMORY memory ;
} CNT_INSTRUCTION;
/*---------------------------------------------*/
/* APCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct apcnt_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 interrupt_enable : 1 ;
uint32 edge_select : 2 ;
uint32 : 6 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 count : 25 ;
uint32 data : 25 ;
uint32 : 7 ;
} APCNT_FIELDS ;
typedef union
{
APCNT_FIELDS apcnt ;
HET_MEMORY memory ;
} APCNT_INSTRUCTION;
/*---------------------------------------------*/
/* PCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct pcnt_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 interrupt_enable : 1 ;
uint32 period_pulse_select : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 count : 25 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} PCNT_FIELDS ;
typedef union
{
PCNT_FIELDS pcnt ;
HET_MEMORY memory ;
} PCNT_INSTRUCTION;
/*---------------------------------------------*/
/* SCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct scnt_format
{
uint32 : 9 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 1 ;
uint32 count_mode : 2 ;
uint32 step_width : 2 ;
uint32 : 4 ;
uint32 : 5 ;
uint32 auto_read_clear : 1 ;
uint32 : 1 ;
uint32 gap_start : 25 ;
uint32 data : 25 ;
uint32 : 7 ;
} SCNT_FIELDS ;
typedef union
{
SCNT_FIELDS scnt ;
HET_MEMORY memory ;
} SCNT_INSTRUCTION;
/*---------------------------------------------*/
/* ACNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct acnt_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 edge_select : 1 ;
uint32 : 7 ;
uint32 interrupt_enable : 1 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 gap_end : 25 ;
uint32 data : 25 ;
uint32 : 7 ;
} ACNT_FIELDS ;
typedef union
{
ACNT_FIELDS acnt ;
HET_MEMORY memory ;
} ACNT_INSTRUCTION;
/*---------------------------------------------*/
/* ECNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct ecnt_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 1 ;
uint32 count_mode : 2 ;
uint32 : 6 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 : 3 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 count_cond : 3 ;
uint32 : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 : 7 ;
} ECNT_FIELDS ;
typedef union
{
ECNT_FIELDS ecnt ;
HET_MEMORY memory ;
} ECNT_INSTRUCTION;
/*---------------------------------------------*/
/* RCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct rcnt_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 1 ;
uint32 count_mode : 2 ;
uint32 : 5 ;
uint32 count_mode1 : 1 ;
uint32 : 3 ;
uint32 : 2 ;
uint32 control : 1 ;
uint32 : 1 ;
uint32 divisor : 25 ;
uint32 data : 25 ;
uint32 : 7 ;
} RCNT_FIELDS ;
typedef union
{
RCNT_FIELDS rcnt ;
HET_MEMORY memory ;
} RCNT_INSTRUCTION;
/*---------------------------------------------*/
/* DJNZ INSTRUCTION */
/*---------------------------------------------*/
typedef struct djnz_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 1 ;
uint32 sub_opcode : 2 ;
uint32 : 6 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 4 ;
uint32 cond_addr : 9 ;
uint32 : 10 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 : 7 ;
} DJNZ_FIELDS ;
typedef union
{
DJNZ_FIELDS djnz ;
HET_MEMORY memory ;
} DJNZ_INSTRUCTION;
/*---------------------------------------------*/
/* DJZ INSTRUCTION */
/*---------------------------------------------*/
typedef struct djz_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 1 ;
uint32 sub_opcode : 2 ;
uint32 : 6 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 4 ;
uint32 cond_addr : 9 ;
uint32 : 10 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 : 7 ;
} DJZ_FIELDS ;
typedef union
{
DJZ_FIELDS djz ;
HET_MEMORY memory ;
} DJZ_INSTRUCTION;
/*---------------------------------------------*/
/* PWCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct pwcnt_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 hr_lr : 1 ;
uint32 count_mode : 2 ;
uint32 : 6 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 : 3 ;
uint32 en_pin_action : 1 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 3 ;
uint32 pin_action : 1 ;
uint32 opposite_action : 1 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} PWCNT_FIELDS ;
typedef union
{
PWCNT_FIELDS pwcnt ;
HET_MEMORY memory ;
} PWCNT_INSTRUCTION;
/*---------------------------------------------*/
/* WCAP INSTRUCTION */
/*---------------------------------------------*/
typedef struct wcap_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 hr_lr : 1 ;
uint32 : 8 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 : 3 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 capture_condition : 2 ;
uint32 : 2 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} WCAP_FIELDS ;
typedef union
{
WCAP_FIELDS wcap ;
HET_MEMORY memory ;
} WCAP_INSTRUCTION;
/*----------------------------------------------*/
/* WCAPE INSTRUCTION */
/*----------------------------------------------*/
typedef struct wcape_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 9 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 : 3 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 capture_condition : 2 ;
uint32 : 2 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 ts_data : 25 ;
uint32 ec_data : 7 ;
} WCAPE_FIELDS ;
typedef union
{
WCAPE_FIELDS wcape ;
HET_MEMORY memory ;
} WCAPE_INSTRUCTION;
/*---------------------------------------------*/
/* BR INSTRUCTION */
/*---------------------------------------------*/
typedef struct br_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 9 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 : 3 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
#if HET_v2
uint32 branch_condition : 5 ;
#else
uint32 branch_condition : 3 ;
uint32 : 1 ;
uint32 : 1 ;
#endif
uint32 : 2 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 hr_data : 7 ;
} BR_FIELDS ;
typedef union
{
BR_FIELDS br ;
HET_MEMORY memory ;
} BR_INSTRUCTION;
/*---------------------------------------------*/
/* SHFT INSTRUCTION */
/*---------------------------------------------*/
typedef struct shft_format
{
uint32 : 6 ;
uint32 reqnum : 3 ;
uint32 brk : 1 ;
uint32 next_program_address : 9 ;
uint32 op_code : 4 ;
uint32 : 5 ;
uint32 shift_mode : 4 ;
uint32 : 3 ;
uint32 request : 2 ;
uint32 auto_read_clear : 1 ;
uint32 previous_bit : 1 ;
uint32 : 3 ;
uint32 cond_addr : 9 ;
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 shift_condition : 2 ;
uint32 : 2 ;
uint32 t_register_select : 1 ;
uint32 ab_register_select : 1 ;
uint32 interrupt_enable : 1 ;
uint32 data : 25 ;
uint32 : 7 ;
} SHFT_FIELDS ;
typedef union
{
SHFT_FIELDS shft ;
HET_MEMORY memory ;
} SHFT_INSTRUCTION;
/* ---------------------------------------------------------------------------------------------------- */
#elif defined(_TMS470_LITTLE) || defined(__little_endian__)
#ifndef HETBYTE
# define HETBYTE uint8
#endif
typedef struct memory_format
{
uint32 program_word ;
uint32 control_word ;
uint32 data_word ;
uint32 reserved_word ;
} HET_MEMORY ;
/*---------------------------------------------*/
/* ACMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct acmp_format
{
uint32 : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 1 ;
uint32 pin_action : 1 ;
uint32 : 3 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 2 ;
uint32 coutprv : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} ACMP_FIELDS;
typedef union
{
ACMP_FIELDS acmp ;
HET_MEMORY memory ;
} ACMP_INSTRUCTION;
/*---------------------------------------------*/
/* ECMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct ecmp_format
{
uint32 : 7 ;
uint32 angle_compare : 1 ;
uint32 hr_lr : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 opposite_action : 1 ;
uint32 pin_action : 1 ;
uint32 sub_opcode : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} ECMP_FIELDS;
typedef union
{
ECMP_FIELDS ecmp ;
HET_MEMORY memory ;
} ECMP_INSTRUCTION;
/*---------------------------------------------*/
/* SCMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct scmp_format
{
uint32 : 5 ;
uint32 : 2 ;
uint32 : 2 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 restart_en : 1 ;
uint32 : 2 ;
uint32 pin_action : 1 ;
uint32 compare_mode : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 2 ;
uint32 coutprv : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} SCMP_FIELDS ;
typedef union
{
SCMP_FIELDS scmp ;
HET_MEMORY memory ;
} SCMP_INSTRUCTION;
/*---------------------------------------------*/
/* MCMP INSTRUCTION */
/*---------------------------------------------*/
typedef struct mcmp_format
{
uint32 : 5 ;
uint32 save_subtract : 1 ;
uint32 : 1 ;
uint32 angle_compare : 1 ;
uint32 hr_lr : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 opposite_action : 1 ;
uint32 pin_action : 1 ;
uint32 order : 1 ;
uint32 sub_opcode : 1 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} MCMP_FIELDS ;
typedef union
{
MCMP_FIELDS mcmp ;
HET_MEMORY memory ;
} MCMP_INSTRUCTION;
/*---------------------------------------------*/
/* MOV64 INSTRUCTION */
/*---------------------------------------------*/
typedef struct mov64_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 opposite_action : 1 ;
uint32 pin_action : 1 ;
uint32 compare_mode : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} MOV64_FIELDS ;
typedef union
{
MOV64_FIELDS mov64 ;
HET_MEMORY memory ;
} MOV64_INSTRUCTION;
/*---------------------------------------------*/
/* DADM64 INSTRUCTION */
/*---------------------------------------------*/
typedef struct dadm64_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 opposite_action : 1 ;
uint32 pin_action : 1 ;
uint32 compare_mode : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} DADM64_FIELDS ;
typedef union
{
DADM64_FIELDS dadm64 ;
HET_MEMORY memory ;
} DADM64_INSTRUCTION;
/*---------------------------------------------*/
/* RADM64 INSTRUCTION */
/*---------------------------------------------*/
typedef struct RADM64_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 opposite_action : 1 ;
uint32 pin_action : 1 ;
uint32 compare_mode : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} RADM64_FIELDS ;
typedef union
{
RADM64_FIELDS radm64 ;
HET_MEMORY memory ;
} RADM64_INSTRUCTION;
/*---------------------------------------------*/
/* MOV32 INSTRUCTION */
/*---------------------------------------------*/
typedef struct MOV32_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 move_type : 2 ;
uint32 sub_opcode : 1 ;
uint32 init_flag : 1 ;
uint32 : 15 ;
uint32 z_flag : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} MOV32_FIELDS ;
typedef union
{
MOV32_FIELDS mov32 ;
HET_MEMORY memory ;
} MOV32_INSTRUCTION;
/*---------------------------------------------*/
/* ADM32 INSTRUCTION */
/*---------------------------------------------*/
typedef struct ADM32_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 move_type : 2 ;
uint32 sub_opcode : 1 ;
uint32 init_flag : 1 ;
uint32 : 19 ;
uint32 auto_read_clear : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} ADM32_FIELDS ;
typedef union
{
ADM32_FIELDS adm32 ;
HET_MEMORY memory ;
} ADM32_INSTRUCTION;
/*---------------------------------------------*/
/* ADCNST INSTRUCTION */
/*---------------------------------------------*/
typedef struct ADCNST_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 constant : 25 ;
uint32 : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} ADCNST_FIELDS ;
typedef union
{
ADCNST_FIELDS adcnst ;
HET_MEMORY memory ;
} ADCNST_INSTRUCTION;
/*----------------------------------------------*/
/* ADD INSTRUCTION */
/*----------------------------------------------*/
typedef struct ADD_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} ADD_FIELDS ;
typedef union
{
ADD_FIELDS add ;
HET_MEMORY memory ;
} ADD_INSTRUCTION;
/*----------------------------------------------*/
/* ADC INSTRUCTION */
/*----------------------------------------------*/
typedef struct ADC_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} ADC_FIELDS ;
typedef union
{
ADC_FIELDS adc ;
HET_MEMORY memory ;
} ADC_INSTRUCTION;
/*----------------------------------------------*/
/* SUB INSTRUCTION */
/*----------------------------------------------*/
typedef struct SUB_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} SUB_FIELDS ;
typedef union
{
SUB_FIELDS sub ;
HET_MEMORY memory ;
} SUB_INSTRUCTION;
/*----------------------------------------------*/
/* SBB INSTRUCTION */
/*----------------------------------------------*/
typedef struct SBB_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} SBB_FIELDS ;
typedef union
{
SBB_FIELDS sbb ;
HET_MEMORY memory ;
} SBB_INSTRUCTION;
/*----------------------------------------------*/
/* AND INSTRUCTION */
/*----------------------------------------------*/
typedef struct AND_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} AND_FIELDS ;
typedef union
{
AND_FIELDS and ;
HET_MEMORY memory ;
} AND_INSTRUCTION;
/*----------------------------------------------*/
/* OR INSTRUCTION */
/*----------------------------------------------*/
typedef struct OR_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} OR_FIELDS ;
typedef union
{
OR_FIELDS or ;
HET_MEMORY memory ;
} OR_INSTRUCTION;
/*----------------------------------------------*/
/* XOR INSTRUCTION */
/*----------------------------------------------*/
typedef struct XOR_format
{
uint32 remote_address : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 : 1 ;
uint32 reg : 2 ;
uint32 rem_dest : 2 ;
uint32 sub_opcode1 : 1 ;
uint32 init_flag : 1 ;
uint32 reg_ext : 1 ;
uint32 shft_cnt : 5 ;
uint32 shft_mode : 3 ;
uint32 src_2 : 3 ;
uint32 src_1 : 4 ;
uint32 sub_opcode3 : 3 ;
uint32 control : 1 ;
uint32 : 5 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} XOR_FIELDS ;
typedef union
{
XOR_FIELDS xor ;
HET_MEMORY memory ;
} XOR_INSTRUCTION;
/*---------------------------------------------*/
/* CNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct CNT_format
{
uint32 interrupt_enable : 1 ;
uint32 : 4 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 angle_cnt : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 max : 25 ;
uint32 : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} CNT_FIELDS ;
typedef union
{
CNT_FIELDS cnt ;
HET_MEMORY memory ;
} CNT_INSTRUCTION;
/*---------------------------------------------*/
/* APCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct apcnt_format
{
uint32 : 6 ;
uint32 edge_select : 2 ;
uint32 interrupt_enable : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 count : 25 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} APCNT_FIELDS ;
typedef union
{
APCNT_FIELDS apcnt ;
HET_MEMORY memory ;
} APCNT_INSTRUCTION;
/*---------------------------------------------*/
/* PCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct pcnt_format
{
uint32 pin_select : 5 ;
uint32 : 1 ;
uint32 period_pulse_select : 2 ;
uint32 interrupt_enable : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 count : 25 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} PCNT_FIELDS ;
typedef union
{
PCNT_FIELDS pcnt ;
HET_MEMORY memory ;
} PCNT_INSTRUCTION;
/*---------------------------------------------*/
/* SCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct scnt_format
{
uint32 : 4 ;
uint32 step_width : 2 ;
uint32 count_mode : 2 ;
uint32 : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 : 9 ;
uint32 gap_start : 25 ;
uint32 : 1 ;
uint32 auto_read_clear : 1 ;
uint32 : 5 ;
uint32 : 7 ;
uint32 data : 25 ;
} SCNT_FIELDS ;
typedef union
{
SCNT_FIELDS scnt ;
HET_MEMORY memory ;
} SCNT_INSTRUCTION;
/*---------------------------------------------*/
/* ACNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct acnt_format
{
uint32 interrupt_enable : 1 ;
uint32 : 7 ;
uint32 edge_select : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 gap_end : 25 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} ACNT_FIELDS ;
typedef union
{
ACNT_FIELDS acnt ;
HET_MEMORY memory ;
} ACNT_INSTRUCTION;
/*---------------------------------------------*/
/* ECNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct ecnt_format
{
uint32 : 6 ;
uint32 count_mode : 2 ;
uint32 : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 1 ;
uint32 count_cond : 3 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 : 3 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} ECNT_FIELDS ;
typedef union
{
ECNT_FIELDS ecnt ;
HET_MEMORY memory ;
} ECNT_INSTRUCTION;
/*---------------------------------------------*/
/* RCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct rcnt_format
{
uint32 count_mode1 : 1 ;
uint32 : 5 ;
uint32 count_mode : 2 ;
uint32 : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 divisor : 25 ;
uint32 : 1 ;
uint32 control : 1 ;
uint32 : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} RCNT_FIELDS ;
typedef union
{
RCNT_FIELDS rcnt ;
HET_MEMORY memory ;
} RCNT_INSTRUCTION;
/*---------------------------------------------*/
/* DJNZ INSTRUCTION */
/*---------------------------------------------*/
typedef struct djnz_format
{
uint32 : 6 ;
uint32 sub_opcode : 2 ;
uint32 : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 10 ;
uint32 cond_addr : 9 ;
uint32 : 4 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} DJNZ_FIELDS ;
typedef union
{
DJNZ_FIELDS djnz ;
HET_MEMORY memory ;
} DJNZ_INSTRUCTION;
/*---------------------------------------------*/
/* DJZ INSTRUCTION */
/*---------------------------------------------*/
typedef struct djz_format
{
uint32 : 6 ;
uint32 sub_opcode : 2 ;
uint32 : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 10 ;
uint32 cond_addr : 9 ;
uint32 : 4 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} DJZ_FIELDS ;
typedef union
{
DJZ_FIELDS djz ;
HET_MEMORY memory ;
} DJZ_INSTRUCTION;
/*---------------------------------------------*/
/* PWCNT INSTRUCTION */
/*---------------------------------------------*/
typedef struct pwcnt_format
{
uint32 : 6 ;
uint32 count_mode : 2 ;
uint32 hr_lr : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 opposite_action : 1 ;
uint32 pin_action : 1 ;
uint32 : 3 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 en_pin_action : 1 ;
uint32 : 3 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} PWCNT_FIELDS ;
typedef union
{
PWCNT_FIELDS pwcnt ;
HET_MEMORY memory ;
} PWCNT_INSTRUCTION;
/*---------------------------------------------*/
/* WCAP INSTRUCTION */
/*---------------------------------------------*/
typedef struct wcap_format
{
uint32 : 8 ;
uint32 hr_lr : 1 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 2 ;
uint32 capture_condition : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 : 3 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} WCAP_FIELDS ;
typedef union
{
WCAP_FIELDS wcap ;
HET_MEMORY memory ;
} WCAP_INSTRUCTION;
/*----------------------------------------------*/
/* WCAPE INSTRUCTION */
/*----------------------------------------------*/
typedef struct wcape_format
{
uint32 : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 2 ;
uint32 capture_condition : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 ec_data : 7 ;
uint32 ts_data : 25 ;
} WCAPE_FIELDS ;
typedef union
{
WCAPE_FIELDS wcape ;
HET_MEMORY memory ;
} WCAPE_INSTRUCTION;
/*---------------------------------------------*/
/* BR INSTRUCTION */
/*---------------------------------------------*/
typedef struct br_format
{
uint32 : 9 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 : 2 ;
uint32 : 1 ;
uint32 : 1 ;
uint32 branch_condition : 3 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 : 3 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 hr_data : 7 ;
uint32 data : 25 ;
} BR_FIELDS ;
typedef union
{
BR_FIELDS br ;
HET_MEMORY memory ;
} BR_INSTRUCTION;
/*---------------------------------------------*/
/* SHFT INSTRUCTION */
/*---------------------------------------------*/
typedef struct shft_format
{
uint32 shift_mode : 4 ;
uint32 : 5 ;
uint32 op_code : 4 ;
uint32 next_program_address : 9 ;
uint32 brk : 1 ;
uint32 reqnum : 3 ;
uint32 : 6 ;
uint32 interrupt_enable : 1 ;
uint32 ab_register_select : 1 ;
uint32 t_register_select : 1 ;
uint32 : 2 ;
uint32 shift_condition : 2 ;
uint32 : 1 ;
uint32 pin_select : 5 ;
uint32 cond_addr : 9 ;
uint32 : 3 ;
uint32 previous_bit : 1 ;
uint32 auto_read_clear : 1 ;
uint32 request : 2 ;
uint32 : 3 ;
uint32 : 7 ;
uint32 data : 25 ;
} SHFT_FIELDS ;
typedef union
{
SHFT_FIELDS shft ;
HET_MEMORY memory ;
} SHFT_INSTRUCTION;
#endif
#endif
/*--------------------------- End Of File ----------------------------------*/