- IPCore_Strobe: The processor should write 1 to bit 0 of this register after it has written all the input data to the FPGA. This triggers the FPGA to begin execution for one DUT subsystem sample time.
- IPCore_Ready: The processor should wait until bit 0 of this register is 1 before reading output data from the FPGA. The FPGA sets this register to 1 when it finishes execution for one DUT subsystem sample time.
Processor and FPGA Synchronization in Coprocessing Mode
16 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
JOAQUIN GARCIA ORDOÑEZ
le 6 Juil 2021
Réponse apportée : JT Ferrara
le 7 Juil 2021
Hello everyone.
I'm following this documentation to run an experiment that is hardware-in-the-loop: https://mathworks.com/help/hdlcoder/ug/processor-and-fpga-synchronization.html
Sicne the FPGA is very fast compared to the processor, I chose the coprocessing mode (blocking) for syncronization. The documentation states the following: "During each sample time, the processor writes to the FPGA, then stops and waits for an indication that the FPGA has finished processing before continuing to run."
However, I do not know what is this indication that the FPGA has finished. My problem is that the processor reads the FPGA before it has finished, and I can't find any clue for giving the FPGA more time to finish.
Thank you very much.
0 commentaires
Réponse acceptée
JT Ferrara
le 7 Juil 2021
Hi Joaquin,
When you select "Coprocessing -- Blocking mode", HDL Coder generates two synchronization registers in your IP core for start/end of the FPGA processing:
The addresses for these registers can be found in the generated IP core report.
0 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!