This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
resources:fpga:docs:hdl:regmap [08 Sep 2023 15:41] – [DAC Channel (axi_ad*)] Updated HDL Doc Cristian Mihai Popa | resources:fpga:docs:hdl:regmap [19 Feb 2024 13:35] (current) – [PWM Generator (axi_pwm_gen)] Quick register fixes Adrian Costina | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | |||
- | |||
==== Base (common to all cores) ==== | ==== Base (common to all cores) ==== | ||
Line 867: | Line 865: | ||
|Address ||Bits |Name |Type |Default |Description | | |Address ||Bits |Name |Type |Default |Description | | ||
|DWORD |BYTE |::: |::: |::: |::: |::: | | |DWORD |BYTE |::: |::: |::: |::: |::: | | ||
- | ^0x000 ^0x0000 ^VERSION ^^^^Version of the peripheral. Follows semantic versioning. Current version 4.04.61. ^ | + | ^0x000 ^0x0000 ^VERSION ^^^^Version of the peripheral. Follows semantic versioning. Current version 4.05.61. ^ |
| | |[31:16] |VERSION_MAJOR |RO |0x04 | | | | | |[31:16] |VERSION_MAJOR |RO |0x04 | | | ||
- | |::: |::: |[15:8] |VERSION_MINOR |RO |0x03 | | | + | |::: |::: |[15:8] |VERSION_MINOR |RO |0x05 | | |
|::: |::: |[7:0] |VERSION_PATCH |RO |0x61 | | | |::: |::: |[7:0] |VERSION_PATCH |RO |0x61 | | | ||
^0x001 ^0x0004 ^PERIPHERAL_ID ^^^^ ^ | ^0x001 ^0x0004 ^PERIPHERAL_ID ^^^^ ^ | ||
Line 893: | Line 891: | ||
|::: |::: |[0] |TRANSFER_QUEUED |RO |0x0 |This bit will be asserted if a transfer has been queued and it is possible to queue the next transfer. Cleared together with the corresponding IRQ_PENDING bit. | | |::: |::: |[0] |TRANSFER_QUEUED |RO |0x0 |This bit will be asserted if a transfer has been queued and it is possible to queue the next transfer. Cleared together with the corresponding IRQ_PENDING bit. | | ||
^0x100 ^0x0400 ^CONTROL ^^^^ ^ | ^0x100 ^0x0400 ^CONTROL ^^^^ ^ | ||
- | | | |[1] |PAUSE |RW |0x0 |When set to 1 the currently active transfer is paused. It will be resumed once the bit is cleared again. | | + | | | |[2] |HWDESC |RW |0x0 |When set to 1 the scatter-gather transfers are enabled. |
+ | |::: |::: |[1] |PAUSE |RW |0x0 |When set to 1 the currently active transfer is paused. It will be resumed once the bit is cleared again. | | ||
|::: |::: |[0] |ENABLE |RW |0x0 |When set to 1 the DMA channel is enabled. | | |::: |::: |[0] |ENABLE |RW |0x0 |When set to 1 the DMA channel is enabled. | | ||
^0x101 ^0x0404 ^TRANSFER_ID ^^^^ ^ | ^0x101 ^0x0404 ^TRANSFER_ID ^^^^ ^ | ||
| | |[1:0] |TRANSFER_ID |RO |0x00 |This register contains the ID of the next transfer. The ID is generated by the DMAC and after the transfer has been started can be used to check if the transfer has finished by checking the corresponding bit in the TRANSFER_DONE register. The contents of this register is only valid if TRANSFER_SUBMIT is 0. | | | | |[1:0] |TRANSFER_ID |RO |0x00 |This register contains the ID of the next transfer. The ID is generated by the DMAC and after the transfer has been started can be used to check if the transfer has finished by checking the corresponding bit in the TRANSFER_DONE register. The contents of this register is only valid if TRANSFER_SUBMIT is 0. | | ||
^0x102 ^0x0408 ^TRANSFER_SUBMIT ^^^^ ^ | ^0x102 ^0x0408 ^TRANSFER_SUBMIT ^^^^ ^ | ||
- | | | |[0] |TRANSFER_SUBMIT |RW |0x00 |Writing a 1 to this register queues a new transfer. The bit transitions back to 0 once the transfer has been queued or the DMA channel is disabled. | + | | | |[0] |TRANSFER_SUBMIT |RW |0x0 |Writing a 1 to this register queues a new transfer. The bit transitions back to 0 once the transfer has been queued or the DMA channel is disabled. |
^0x103 ^0x040c ^FLAGS ^^^^ ^ | ^0x103 ^0x040c ^FLAGS ^^^^ ^ | ||
| | |[0] |CYCLIC |RW |'' | | | |[0] |CYCLIC |RW |'' | ||
Line 924: | Line 923: | ||
| | |[4:0] |ACTIVE_TRANSFER_ID |RO |0x00 |ID of the currently active transfer. When no transfer is active this register will be equal to the TRANSFER_ID register. | | | | |[4:0] |ACTIVE_TRANSFER_ID |RO |0x00 |ID of the currently active transfer. When no transfer is active this register will be equal to the TRANSFER_ID register. | | ||
^0x10c ^0x0430 ^STATUS ^^^^ ^ | ^0x10c ^0x0430 ^STATUS ^^^^ ^ | ||
- | | | |[31:0] |RESERVED |RO |0x00 |This register is reserved for future usage. Reading it will always return 0. | | + | | | |[31:0] |RESERVED |RO |0x00000000 |
^0x10d ^0x0434 ^CURRENT_DEST_ADDRESS ^^^^ ^ | ^0x10d ^0x0434 ^CURRENT_DEST_ADDRESS ^^^^ ^ | ||
- | | | |[31:0] |CURRENT_DEST_ADDRESS |RO |0x00 |Address to which the next data sample is written to. This register is only valid if the DMA channel has been configured for write to memory support. | | + | | | |[31:0] |CURRENT_DEST_ADDRESS |RO |0x00000000 |
^0x10e ^0x0438 ^CURRENT_SRC_ADDRESS ^^^^ ^ | ^0x10e ^0x0438 ^CURRENT_SRC_ADDRESS ^^^^ ^ | ||
- | | | |[31:0] |CURRENT_SRC_ADDRESS |RO |0x00 |Address form which the next data sample is read. This register is only valid if the DMA channel has been configured for read from memory support. | | + | | | |[31:0] |CURRENT_SRC_ADDRESS |RO |0x00000000 |
^0x112 ^0x0448 ^TRANSFER_PROGRESS ^^^^ ^ | ^0x112 ^0x0448 ^TRANSFER_PROGRESS ^^^^ ^ | ||
| | |[23:0] |TRANSFER_PROGRESS |RO |0x000000 |This field presents the number of bytes transferred to the destination for the current transfer. This register will be cleared once the transfer completes. This should be used for debugging purposes only. | | | | |[23:0] |TRANSFER_PROGRESS |RO |0x000000 |This field presents the number of bytes transferred to the destination for the current transfer. This register will be cleared once the transfer completes. This should be used for debugging purposes only. | | ||
^0x113 ^0x044c ^PARTIAL_TRANSFER_LENGTH ^^^^ ^ | ^0x113 ^0x044c ^PARTIAL_TRANSFER_LENGTH ^^^^ ^ | ||
- | | | |[31:0] |PARTIAL_LENGTH |RO |0x000000 | + | | | |[31:0] |PARTIAL_LENGTH |RO |0x00000000 |
^0x114 ^0x0450 ^PARTIAL_TRANSFER_ID ^^^^Must be read after the PARTIAL_TRANSFER_LENGTH registers. ^ | ^0x114 ^0x0450 ^PARTIAL_TRANSFER_ID ^^^^Must be read after the PARTIAL_TRANSFER_LENGTH registers. ^ | ||
| | |[1:0] |PARTIAL_TRANSFER_ID |RO |0x0 |ID of the transfer that was partial. | | | |[1:0] |PARTIAL_TRANSFER_ID |RO |0x0 |ID of the transfer that was partial. | ||
+ | ^0x115 ^0x0454 ^DESCRIPTOR_ID ^^^^ ^ | ||
+ | | | |[31:0] |DESCRIPTOR_ID |RO |0x00000000 |ID of the descriptor that points to the current memory segment being transferred. If HWDESC is set to 0, then this register returns 0. | | ||
+ | ^0x11f ^0x047c ^SG_ADDRESS ^^^^ ^ | ||
+ | | | |[31:0] |SG_ADDRESS |RW |0x00000000 |This register contains the starting address of the scatter-gather transfer. The address needs to be aligned to the bus width. | ||
^0x124 ^0x0490 ^DEST_ADDRESS_HIGH ^^^^ ^ | ^0x124 ^0x0490 ^DEST_ADDRESS_HIGH ^^^^ ^ | ||
| | |[31:0] |DEST_ADDRESS_HIGH |RW |0x00000000 |This register contains the HIGH segment of the destination address of the transfer. | | | |[31:0] |DEST_ADDRESS_HIGH |RW |0x00000000 |This register contains the HIGH segment of the destination address of the transfer. | ||
Line 940: | Line 943: | ||
| | |[31:0] |SRC_ADDRESS_HIGH |RW |0x00000000 |This register contains the HIGH segment of the source address of the transfer. | | | |[31:0] |SRC_ADDRESS_HIGH |RW |0x00000000 |This register contains the HIGH segment of the source address of the transfer. | ||
^0x126 ^0x0498 ^CURRENT_DEST_ADDRESS_HIGH ^^^^ ^ | ^0x126 ^0x0498 ^CURRENT_DEST_ADDRESS_HIGH ^^^^ ^ | ||
- | | | |[31:0] |CURRENT_DEST_ADDRESS_HIGH |RO |0x00 |HIGH segment of the address to which the next data sample is written to. This register is only valid if the DMA_AXI_ADDR_WIDTH is bigger than 32 and if the DMA channel has been configured for write to memory support. | | + | | | |[31:0] |CURRENT_DEST_ADDRESS_HIGH |RO |0x00000000 |
^0x127 ^0x049c ^CURRENT_SRC_ADDRESS_HIGH ^^^^ ^ | ^0x127 ^0x049c ^CURRENT_SRC_ADDRESS_HIGH ^^^^ ^ | ||
- | | | |[31:0] |CURRENT_SRC_ADDRESS_HIGH |RO |0x00 |HIGH segment of the address from which the next data sample is read. This register is only valid if the DMA_AXI_ADDR_WIDTH is bigger than 32 and if the DMA channel has been configured for read from memory support. | | + | | | |[31:0] |CURRENT_SRC_ADDRESS_HIGH |RO |0x00000000 |
- | ^Tue Mar 14 10:17:59 2023 ^^^^^^ | + | ^0x12f ^0x04bc ^SG_ADDRESS_HIGH ^^^^ ^ |
+ | | | |[31:0] |SG_ADDRESS_HIGH |RW |0x00000000 |HIGH segment of the starting address of the scatter-gather transfer. | ||
+ | ^Thu Feb 1 12:18:03 2024 ^^^^^^ | ||
++++ | ++++ | ||
Line 1408: | Line 1413: | ||
|DWORD |BYTE |::: |::: |::: |::: |::: | | |DWORD |BYTE |::: |::: |::: |::: |::: | | ||
^0x0000 ^0x0000 ^REG_VERSION ^^^^Version and Scratch Registers ^ | ^0x0000 ^0x0000 ^REG_VERSION ^^^^Version and Scratch Registers ^ | ||
- | | | |[31:0] |VERSION[31: | + | | | |[31:0] |VERSION[31: |
^0x0001 ^0x0004 ^REG_ID ^^^^Core ID ^ | ^0x0001 ^0x0004 ^REG_ID ^^^^Core ID ^ | ||
| | |[31:0] |ID[31:0] |RO |0x00000000 |Instance identifier number. | | | | |[31:0] |ID[31:0] |RO |0x00000000 |Instance identifier number. | | ||
Line 1414: | Line 1419: | ||
| | |[31:0] |SCRATCH[31: | | | |[31:0] |SCRATCH[31: | ||
^0x0003 ^0x000c ^REG_CORE_MAGIC ^^^^Identification number ^ | ^0x0003 ^0x000c ^REG_CORE_MAGIC ^^^^Identification number ^ | ||
- | | | |[31:0] |CORE_MAGIC[31: | + | | | |[31:0] |CORE_MAGIC[31: |
^0x0004 ^0x0010 ^REG_RSTN ^^^^Reset and load values ^ | ^0x0004 ^0x0010 ^REG_RSTN ^^^^Reset and load values ^ | ||
| | |[1] |LOAD_CONFIG |WO |0x0 |Loads the new values written in the config registers. | | | | |[1] |LOAD_CONFIG |WO |0x0 |Loads the new values written in the config registers. | | ||
Line 1420: | Line 1425: | ||
^0x0005 ^0x0014 ^REG_NB_PULSES ^^^^Number of pulses ^ | ^0x0005 ^0x0014 ^REG_NB_PULSES ^^^^Number of pulses ^ | ||
| | |[31:0] |NB_PULSES |RO |0x0000 |Number of configurable pulses. | | | | |[31:0] |NB_PULSES |RO |0x0000 |Number of configurable pulses. | | ||
- | ^0x0010 ^0x0040 ^REG_PULSE_0_PERIOD | + | ^0x0010 ^0x0040 ^REG_PULSE_X_PERIOD |
- | | | |[31:0] |PULSE_0_PERIOD[31: | + | | | |[31:0] |PULSE_X_PERIOD[31: |
- | ^0x0011 ^0x0044 ^REG_PULSE_0_WIDTH ^^^^Pulse 0 width ^ | + | ^0x0020 |
- | | | |[31:0] |PULSE_0_WIDTH[31: | + | | | |[31:0] |PULSE_X_WIDTH[31: |
- | ^0x0012 ^0x0048 ^REG_PULSE_0_OFFSET ^^^^Pulse 0 offset ^ | + | ^0x0030 |
- | | | |[31:0] |PULSE_0_OFFSET[31: | + | | | |[31:0] |PULSE_X_OFFSET[31: |
- | ^0x0013 ^0x004c ^REG_PULSE_1_PERIOD ^^^^Pulse 1 period | + | |
- | | | |[31:0] |PULSE_1_PERIOD[31: | + | |
- | ^0x0014 | + | |
- | | | |[31:0] |PULSE_1_WIDTH[31: | + | |
- | ^0x0015 ^0x0054 ^REG_PULSE_1_OFFSET ^^^^Pulse 1 offset ^ | + | |
- | | | |[31:0] |PULSE_1_OFFSET[31: | + | |
- | ^0x0016 ^0x0058 ^REG_PULSE_2_PERIOD ^^^^Pulse 2 period ^ | + | |
- | | | |[31:0] |PULSE_2_PERIOD[31: | + | |
- | ^0x0017 ^0x005c ^REG_PULSE_2_WIDTH ^^^^Pulse 2 width ^ | + | |
- | | | |[31:0] |PULSE_2_WIDTH[31: | + | |
- | ^0x0018 | + | |
- | | | |[31:0] |PULSE_2_OFFSET[31: | + | |
- | ^0x0019 ^0x0064 ^REG_PULSE_3_PERIOD ^^^^Pulse 3 period ^ | + | |
- | | | |[31:0] |PULSE_3_PERIOD[31: | + | |
- | ^0x001a ^0x0068 ^REG_PULSE_3_WIDTH ^^^^Pulse 3 width ^ | + | |
- | | | |[31:0] |PULSE_3_WIDTH[31: | + | |
- | ^0x001b ^0x006c ^REG_PULSE_3_OFFSET ^^^^Pulse 3 offset | + | |
- | | | |[31:0] |PULSE_3_OFFSET[31: | + | |
- | ^Tue Mar 14 10:17:59 2023 ^^^^^^ | + | |
++++ | ++++ | ||
~~NOTOC~~ | ~~NOTOC~~ | ||