Device Register Map Template
- Updated2025-09-22
- 7 minute(s) read
The device register map defines the registers and fields assigned to each device in the system.
A template file for the device register map is included in the Semiconductor Device Control Add-On installer. When you create a copy of the template map file for your system, you must adhere to the structure and format requirements for the template file. Otherwise, the register map conversion utility will not be able to use the template file to generate a register map that is compatible with the Semiconductor Device Control Add-On.
Device Register Map Structure
The device register map must adhere to a specific structure to represent the relationship between devices, registers, and fields in the system.
This map can contain information about one or more devices. Each device contains the details of the device memory map which you can divide into groups as needed. Each register defines a specific memory address in the device memory map. The fields within the register represent one or more bits that define the purpose of the register. These fields can be split across two registers within the same group.
The following list shows an example of the hierarchy structure of the device register map file, including the use of split-field registers.
- Register Map
- Device 1
- Group 1
- Register 1
- Field 1
- Field 2
- Field ...
- Register 2
- Field 1
- Field 3
- Field ...
- Register ...
- Field 2
- Field 3
- Field ...
- Register 1
- Group 2
- Register ...
- Field ...
- Register ...
- Group 1
- Device 2
- Register ...
- Field ...
- Register ...
- Device ...
- Device 1
Device Register Map Format
The device register map template CSV file defines the formatting that the register map conversion utility requires to generate a register map file that is compatible with the Semiconductor Device Control Add-On.
Each row in the CSV file represents a single instance of a field in a register. If a field is split across multiple registers in the same register group, that field will appear multiple times in the device register map.
Each column in the CSV file defines a parameter for the field, such as the register name or register address. The first row of the file indicates the parameter that you must define for the field. When the register map conversion utility uses this device register map file, it will ignore the first row of the file.
The following sections define each parameter in the template CSV file in sequential order, starting with the first column.
Device Name
Column 1 defines the name of the device that contains the register. If multiple rows use the same device name, then the register and field represented in those rows belong to the same device.
The device name is a string that must meet the following format requirements.
- Do not use spaces. Instead, use underscores.
- Do not begin the device name with a number.
- Do not use special characters.
- Each device name should be unique.
Group Name
Column 2 defines the name of the group that contains the register.
The group name is a string that must meet the following format requirements.
- Do not use spaces. Instead, use underscores.
- Do not begin the group name with a number.
- Do not use special characters.
- The name of the register group should be unique across all IP blocks.
Refer to the following table for an example of register map grouping.
| Group Name | Register Name | Type | Register Address |
|---|---|---|---|
| Status_Register | DR_STATUS | Read | 0x00 |
| Data_Registers | OUT_X_MSB | Read | 0x01 |
| OUT_X_LSB | Read | 0x02 | |
| OUT_Y_MSB | Read | 0x03 | |
| OUT_Y_LSB | Read | 0x04 | |
| OUT_Z_MSB | Read | 0x05 | |
| OUT_Z_LSB | Read | 0x06 | |
| System_Registers | WHO_AM_I | Read | 0x07 |
| SYSMOD | Read | 0x08 | |
| Offset_Registers | OFF_X_MSB | Read/Write | 0x09 |
| OFF_X_LSB | Read/Write | 0x0A | |
| OFF_Y_MSB | Read/Write | 0x0B | |
| OFF_Y_LSB | Read/Write | 0x0C | |
| OFF_Z_MSB | Read/Write | 0x0D | |
| OFF_Z_LSB | Read/Write | 0x0E | |
| Temperature_Register | DIE_TEMP | Read | 0x0F |
| Control_Registers | CTRL_REG1 | Read/Write | 0x10 |
| CTRL_REG2 | Read/Write | 0x11 |
Group Address
Column 3 defines the address of the group. You must use a hexadecimal value for the group address.
Register Name
Column 4 defines the name of the register that contains the field.
The register name is a string that must meet the following format requirements.
- Do not use spaces. Instead, use underscores.
- Do not begin the register name with a number.
- Do not use special characters.
- The register name should be unique within one IP block.
Register Address
Column 5 defines the address of the register. You must use a hexadecimal value for the register address.
Register Address Length
Column 6 defines the bit size of the register address parameter for the field. You must use a decimal value for the register address length.
Register Data Length
Column 7 defines the bit size of the data that the register address can hold. You must use a decimal value for the register data length.
Default Data
Column 8 defines the default value for the register when the register map is loaded. You must use a decimal value for this parameter. When the register has more than one field, the first field holds the default value of the register. For the rest of the fields under the same register, the default data value can be 0.
Private
| TRUE | The field only appears when the Semiconductor Device Control Add-On is in debug mode. |
| FALSE | The field is visible to the user at all times. |
Field Name
Column 10 defines the name of the field. If a field is split across multiple registers in the same register group, that field will appear multiple times in the device register map. The field name string must meet the following format requirements.
- Use a unique field name.
- Do not use spaces. Instead, use underscores.
- Do not begin the field name with a number.
- Do not use special characters.
Description
Column 11 contains a description of the field. The description is a string that must meet the following format requirements.
- Do not use punctuation in the description.
- Do not insert a line break in the description.
Access
Column 12 defines the access permission setting for the field. You must use one of the following string values for this parameter.
| R | Read-only access |
| RW | Read and write access |
Register Offset
Column 13 defines the offset for the starting position of the field within the register. You must use a decimal value for the register offset.
The following example shows how register offset, field offset, and length would be defined when a single 16-bit field is split across three registers.
| Register Name | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| PRESSURE_OUT_XL | POUT[7] | POUT[6] | POUT[5] | POUT[4] | POUT[3] | POUT[2] | POUT[1] | POUT[0] |
| PRESSURE_OUT_L | POUT[11] | POUT[10] | POUT[9] | POUT[8] | ||||
| PRESSURE_OUT_H | POUT[15] | POUT[14] | POUT[13] | POUT[12] |
| Field Name | Register Name | Register Address | Register Offset | Field Offset | Length |
|---|---|---|---|---|---|
| POUT | PRESSURE_OUT_XL | 0x28 | 0 | 0 | 8 |
| POUT | PRESSURE_OUT_L | 0x29 | 4 | 8 | 4 |
| POUT | PRESSURE_OUT_H | 0x2A | 0 | 12 | 4 |
Field Offset
Column 14 defines the offset for the starting position within the field. You must use a decimal value for the field offset.
If a field is split and used across multiple registers, the field offset will apply to each segment of the field. Refer to the Register Offset section for an example of field offset.
Length
Column 15 defines the length of the field, or portion of the field, that is used within the register. You must use a decimal value for this parameter.
Type
Column 16 defines the type of representation for the field, either as a numerical value or as a list. You must use one of the following string values for this parameter.
| Numeric | Field is presented as a numerical value. |
| List | Field is presented as a list. |
Values
Column 17 defines the values for the field, either as numerical values or as a list depending on the value in the Type column. All values must be in decimal format.
If the field uses numerical values, you can input the start, stop, and step values that the field will use when assigning a definition number to the field. If the Type column is set to Numeric and the Values column is left empty, the definition number for the field will be equal to the field value at each step.
Refer to following table for an example of how to use the values for a field.
| Type | Syntax | Example | Example Definition |
|---|---|---|---|
| Numeric | <Start Value>;<Stop Value>;<Step Value> | 0;8;2 |
|
| List | <Field Value>:<Definition String>;<Field Value>:<Definition String> | 0:ModeZero;1:ModeOne;2:ModeTwo;3:ModeThree;4:ModeFour |
|
IsIndirect
Column 18 defines whether a register is direct or indirect. You must use a Boolean value for this parameter.
| Value | Description |
|---|---|
| TRUE | Indicates that the register is indirect. If the register is indirect, you must create an indirect register sequence for the corresponding register group to perform any operations on the indirect register. You can map the indirect register sequence and register group in the tab. |
| FALSE | Indicates that the register is direct. |
Related Information
- Using the Register Map Conversion Utility
The register map conversion utility uses a specified device register map to create a register map file that is compatible with the Semiconductor Device Control Add-On.
- 2024 Q3 New Features
Learn about new features, behavior changes, and other updates in Semiconductor Device Control Add-On 2024 Q3 for InstrumentStudio.