03-06-2018 01:46 AM
I want to write 65532*1024 bit values into DDR3 memory in virtex-7 (vc707) FPGA board.
And I need to read any one of 65532 data using an 16bit address input.That (16bit address) should be given through gpio to the memory during runtime.
I generated the block using block design in vivado 2015.1.And exported the bitstream into SDK.
I want to access the DDR3 memory from PC through the UART using hyperterminal or teraterm.
I got a sample code from lancesimms website(under mapping uart to led concept) and edited the code to my necessity.
I attached the 'C' code to run in SDK to accept 10*1024 bit values.
Here I accept hexadecimal input and I stored 32 bits of data at each memory location starting from the base address of SDRAM.
Here in the above code when I tried to write 10 or above values each of 1024bits (which i declared as variable "ad" in the attached code), only 9 values are getting stored and the rest are not getting written into the memory.
Even if I increase the "ad" value above 10, the loop runs completely for just 9 iterations and when it comes to 10th iteration it gets stopped in the middle as shown in the png file.
As I've attached the png file, data to be written gets stopped in the middle after the 9th iteration of "ad" variable in the attached code.
I've tried changing the AXI data width but no changes in the result.
Is there a problem with the hardware (that is the block design) or the code which I've uploaded.
Could you please identify any mistake in the code.
Or do I need to change the way of execution.
I'm new to the FPGA world so help me from the scratch.
03-06-2018 05:32 AM
venkat@ssn you could use the console XSCT to read from file and write to memory
See page 26
But because you are on a VC707 you will need a microblaze with UART access.
03-11-2018 10:24 PM - edited 03-11-2018 10:30 PM
Thanks for your response sir,
In that case what is the maximum word size that can be given as input in the bin file.
And how do I differentiate between each word while creating the bin file.
And is there any other way to send the input file with hexadecimal values?.