Example of a DMA device supporting contiguous memory or scatter-gather lists. The device has a controllable throughput (words per second) and supports either polling mode or interrupt based signalling upon DMA completion.
conf_object, log_object
- cell-change
- Notifier that is triggered after the object's cell was changed.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
- bank.regs
-
sample_dma_device_cpp.regs
– DMA register bank
-
info
– print information about the object
-
status
– print status of the object
-
target_mem_space
-
Required attribute;
read/write access; type:
o
The memory space on which the DMA engine operates. Data will be read from and copied to the memory associated with this memory space.
-
intr_target
-
Required attribute;
read/write access; type:
o
Interrupt target port to signal on DMA interrupts.
-
throttle
-
Optional attribute;
read/write access; type:
f
Delay in seconds per 32-bit word of memory copied, default is 1μs.
sample-dma-device-c++
DMA register bank
conf_object, log_object, transaction, register_view, register_view_read_only, bank_instrumentation_subscribe, instrumentation_order
- bank-register-value-change
- Notifier that is triggered when bank register value changes.
- cell-change
- Notifier that is triggered after the object's cell was changed.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
-
wait-for-get
– issue an inquiry read transaction and wait for it to complete
-
wait-for-read
– issue a read transaction and wait for it to complete
-
wait-for-set
– issue an inquiry write transaction and wait for it to complete
-
wait-for-write
– issue a write transaction and wait for it to complete