CPRI F-Tile Dynamic Reconfiguration
Hi,
I use the Q24.2 and have Agilex7 F-Series 014.
I my design I use CPRI Phy over several of my FGTs. I generated the CPRI Phy IP to have 4 line rates (LRs) - LR8 (startup profile), LR7, LR5 & LR3. I want to change the CPRI LRs dynamically. To do this I followed the user guide (UG-20341 - F-Tile Dynamic Reconfiguration Suite Intel® FPGA IP User Guide).
For example, if I want to change LR in the first transcever from LR8 (profile 1) to LR3 (profile 4) I will do the follwing process:
- Reset the trancever phy - i_tx_rst_n & i_rx_rst_n are set to 1'b0.
- Trigger DR to target profile 4:
- avmm_write(32'h04, 32'h00040001)
- avmm_write(32'h08, 32'h00008004)
- avmm_write(32'h0, 32'h00000001) - Changing the CPRI rate in the Phy Configuration to LR 3 - setting 2 to offset address 0x0 & 0x4
- Release the reset of the transcever phy - i_tx_rst_n & i_rx_rst_n are set to 1'b1.
If I want to change the LR from LR3 to any other LR, I need to do the same procedure as described before but the start profile will be now 4.
The prblem is that I need to remember the last set profile each time I want to change the LR. This is very problematic since the CPU that perform and control the DR process need always to hold the profile state in its memory and if for example it crashes it should dig from its memory the last profile state after its recovery. Another problem is if the controller crashes in the middle of LR change, it cant guess the state of the current profile when it recovers.
To handle this, I saw in the in the UG that I can use the Recovery option. To do that, I need to synthesize the project after setting the Recovery enabled option in the Dynamic Reconfiguration Suite GUI.
For example, after changing from LR8 to LR3 I want to change back to LR8:
- Reset the trancever phy - i_tx_rst_n & i_rx_rst_n are set to 1'b0.
- Restore back to startup mode:
- avmm_write(32'h04, 32'h00060001)
- avmm_write(32'h0, 32'h00000001) - Changing the CPRI rate in the Phy Configuration to LR 8 - setting 9 to offset address 0x0 & 0x4
- Release the reset of the transcever phy - i_tx_rst_n & i_rx_rst_n are set to 1'b1.
I wasnt succeeded to do the recovery and I will appreciate if you tell me how to do it.
Regards,
Arik