New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some errors when simulating DDR burst reads #2504
Comments
You have declared CCI-P and local memory to be in different clock domains. Do you have logic in the pClk domain that is sending command to local memory? Are there paths between the PCIe I/O and local memory I/O? Have you instantiated your own clock crossing? If you are simply sending reads and writes to local memory driven by pClk then the commands will not be received properly and the flow control mechanism will not work. |
Thanks for your reply. There is no path between the PCIe I/O and local memory I/O and all commands are sent to local memory is in the local memory clock domain. I use However, when I use
My software environment: OPAE-1-2-1, Quartus-19.2, ModelSim-Intel FPGA Edition It seems that I am missing some files in Is there any solutions to solve this problem? Maybe I use the wrong file? |
Hi,
When I design my own afu module, I modify the platform config to set "uClk_usr" as the clock in "local memory" and set "pClk" as the clock in "cci-p", here is my platform config:
The afu top module is
ccip_std_afu()
and there is two ddr bank interfaceavalon_mem_if.to_fiu local_mem[NUM_LOCAL_MEM_BANKS]
When my afu module sends DDR read requests continuously in simulation,such as sending read requests of different addresses for 20 consecutive cycles, that means the ddr single
local_mem[0].read
asserts for 20 cycles, the ddr singlelocal_mem[0].waitrequest
inccip_std_afu()
does not assert, but there is some warning shown in ASE. The warning is as follows.I looked at the
platform_shim_avalon_mem_if.sv
code that the afu module is connected, I found thatmem_async_shim
module is generated due to the modification of the local memory clock (change to uClk_usr).In
mem_async_shim
module (inavalon_mem_if_async_shim.sv
),platform_utils_avalon_mm_clock_crossing_bridge
module is instantiated andCOMMAND_FIFO_DEPTH
is set to 128. I guess that there is a FIFO inplatform_utils_avalon_mm_clock_crossing_bridge
and it can store 128 command, so the ddr singlelocal_mem[0].waitrequest
does not assert.But from the warning of ASE, the ddr_bfm can only deal with 9 commands. I found the
emif_ddr4.sv
file and theAV_MAX_PENDING_READS
parameter ofaltera_avalon_mm_slave_bfm
module is set to 9.Now, I use OPAE-1-2-1 and Intel PAC with Arria10 FPGA.
I think these are all errors caused by modifying the clock of "local memory". However my design must modify this clock, how should these problems be solved?
And, Do these warnings affect the correctness of data when continuously sending DDR read and write requests?
What should I do to get rid of the warning in ASE about continuously sending DDR read requests?
The text was updated successfully, but these errors were encountered: