Visible to Intel only — GUID: dxb1571108566849
Ixiasoft
3.2.4.1.1. FPGA Internal Register Access
- Direct access
- Indirect access
Direct access registers consist of MMIO addressable registers. The provided example design hello_afu.sv illustrates direct access registers.
- ccip_async_shim – CCI-P to and from Avalon® clock domain crossing
- ccip_avmm_mmio – converts MMIO to and from Avalon® memory-mapped interface
- bbs_regs_mm_wrap – contains CCI-P required DFH and AFU ID registers and indirect command and status registers
Field Name | Range | Access | Description |
---|---|---|---|
cmd | [63:62] | RW | Command for slave: 0x0 – NOP 0x1 – indirect read request 0x2 – indirect write request |
addr | [61:32] | RW | Slave address |
Write data | [31:0] | RW | Slave write data |
- Write the following to the Control register:
- cmd = 0x2
- addr
- Write data
- Poll on the RW valid field of the Status register for RW valid = 1 to verify that the write is successful.
- Write the following to the Control register::
- cmd = 0x1
- addr
- Poll on the RW valid field of the Status register for RW valid = 1 to verify that the RD Data field contains valid data.
BBS_regs_mm_wrap Access Behavior
The following figures show the bbs_regs_mm_wrap upstream Avalon® memory-mapped interface slave to downstream Avalon® memory-mapped interface slave waveforms for indirect write and read operations.
Indirect Write and Read Requests with Non-Blocking Access
The back pressure signal (avmm_s_waitrequest) is not used from the indirect access module to the CCI-P; and a write (WR) or read (RD) transaction can start at any time, but must complete in the next clock cycle.
Write and Indirect Read Requests with Blocking Access
The back pressure signal (avmm_s_waitrequest) is always set to ‘1’ in the NOP state; and a write (WR) or read (RD) transaction can start when avmm_s_waitrequest = 1, but cannot finish until avmm_s_waitrequest != 0.
Avalon® memory-mapped interface Master Response to a Read Request with Non-Blocking and Blocking Access
- When AVMM_MASTER_READDATAVALID_EN = 1 and avmm_m_readdatavalid are valid
- When AVMM_MASTER_READDATAVALID_EN = 0 and (!avmm_m_waitrequest & avmm_m_read) are valid