maxlutece
Newbie level 4
- Joined
- Jul 30, 2014
- Messages
- 5
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1
- Activity points
- 57
Hi !
I'm currently working on a project on FPGA. So I try to store a matrix into the DDR2 memory of my Atlys board but I've encountered problems ...
For the beginning I wrote a program on Xilinx which store 20 data of 32 bits in the memory and after that I tried to read the memory value of those cases on the LED. At each button push I display the next value but the problem is I don't have all the values.
More in details, I used a MIG core for interfacing the memory.The memory part reference is EDE1116AXXX-8E is set at the frequency 333.33 MHz.
The datasheet is available here https://www.xilinx.com/support/documentation/user_guides/ug388.pdf
I think that the problem can result about clocks :
- c3_sysclk_2x and c3_sysclk_2x_180 set to 666.66 Mhz
-calibration clock c3_mcb_drp_clk is set to 83 MHz (should be between 50 and 100 MHz)
-user clock c3_clk0 that is used for command writing and reading is set 333.33 MHz
The read values are not the same when I change the user clock, at 333.33 Mhz I have only a few values. When I read 20 datas the c3_p3_rd_empty is asserted after pushing the reading button 20 times. After reading 5 to 10 datas, I read the same value until the end.
I have set two unidirectionnal ports, p2 for writing and p3 for reading.
I have tried to send data with only one impulsion of c3_p2_wr_en (page 53 of the datasheet) and also with one impulsion for each change of the data (page 55 of the datasheet) but with no result.
I verified that the calibration is done and it's ok.
Do you know a tool to see the content of the DDR2 memory ? It can help me a lot because I can understand if the problem is due to the writing or the reading.
And do you have an idea for the clock configuration ? Maybe mine is wrong
Thank for your attention
I'm currently working on a project on FPGA. So I try to store a matrix into the DDR2 memory of my Atlys board but I've encountered problems ...
For the beginning I wrote a program on Xilinx which store 20 data of 32 bits in the memory and after that I tried to read the memory value of those cases on the LED. At each button push I display the next value but the problem is I don't have all the values.
More in details, I used a MIG core for interfacing the memory.The memory part reference is EDE1116AXXX-8E is set at the frequency 333.33 MHz.
The datasheet is available here https://www.xilinx.com/support/documentation/user_guides/ug388.pdf
I think that the problem can result about clocks :
- c3_sysclk_2x and c3_sysclk_2x_180 set to 666.66 Mhz
-calibration clock c3_mcb_drp_clk is set to 83 MHz (should be between 50 and 100 MHz)
-user clock c3_clk0 that is used for command writing and reading is set 333.33 MHz
The read values are not the same when I change the user clock, at 333.33 Mhz I have only a few values. When I read 20 datas the c3_p3_rd_empty is asserted after pushing the reading button 20 times. After reading 5 to 10 datas, I read the same value until the end.
I have set two unidirectionnal ports, p2 for writing and p3 for reading.
I have tried to send data with only one impulsion of c3_p2_wr_en (page 53 of the datasheet) and also with one impulsion for each change of the data (page 55 of the datasheet) but with no result.
I verified that the calibration is done and it's ok.
Do you know a tool to see the content of the DDR2 memory ? It can help me a lot because I can understand if the problem is due to the writing or the reading.
And do you have an idea for the clock configuration ? Maybe mine is wrong
Thank for your attention