FAQ: What happens when the IMDW0 bit is changed, and why does the same address behave differently for 32-bit and 40-bit accesses?
Processor: ADSP-214xx/ADSP-213xx
When the IMDWx bit is changed, the process or changes the bit-width and data organization for the corresponding internal memory block.
An extended-precision normal word (40-bit) access to/from internal memory, using a normal word address space, is only possible when the corresponding internal memory block’s IMDWx bit is set (=1) for 40-bit word organization.
Behavior Based on IMDWx Bit Setting
When IMDWx bit is set (=1):
- Reading data from memory into a register (for example, R0) fetches the complete 40-bit data.
- Memory is accessed using 40-bit normal word memory organization.
- Data stored as 40-bit extended precision values are accessed correctly.
When IMDWx bit is cleared (=0)
- Reading data from memory into a register (for example, R0) fetches only the 32-bit data.
- Memory is accessed using 32-bit memory organization.
- Data previously stored as 40-bit values will not be interpreted through 40-bit memory organization and may not be accessed correctly.
Therefore, changing the IMDWx configuration changes both the memory word organization and how the data at a given memory address is interpreted.
Can you please refer to the “Normal Word (40-Bit) Accesses”[Page No:266] in the Programming reference manual. The link for it is given below:
https://www.analog.com/media/en/dsp-documentation/processor-manuals/ADSP-2136x_2137x_214xx_pgr_rev2.4.pdf