/** @file std_nhet.h * @brief NHET Instruction Definition File * @date 29.May.2013 * @version 03.05.02 * * (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 ----------------------------------*/