FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5915 Discussions

How to write to DDR of a DE1-SoC using the ARM processor?

hcruz1
Beginner
872 Views

I have some input data I want to copy to the DDR memory. This data is loaded once and it's never changed. I know I can load this data using the FPGA (as seen here), but I'm looking for an alternative way of doing this using the ARM processor of the DE1-SoC. Afterwards, I need to read data from the DDR.

 

For those familiar with Xilinx, this could be easily done using XSCT and the commands

mwr

 and 

 

mrd

Is there a similar way of doing this with Intel?

I've tried Intel University program, which works but I'm looking for a command line solution. I've also tried quartus_stp with a TCL script, but when I run this:

 

foreach hw_name [get_hardware_names] { foreach dev_name [get_device_names -hardware_name $hw_name] { puts "Found device name $dev_name on hardware $hw_name" get_editable_mem_instances -device_name $dev_name -hardware_name $hw_name } }

I get this error:

Found device name @1: SOCVHPS (0x4BA00477) on hardware DE-SoC [USB-1] Warning (16702): No editable memory instance was found. Found device name @2: 5CSE(BA5|MA5)/5CSTFD5D5/.. (0x02D120DD) on hardware DE-SoC [USB-1] Warning (16702): No editable memory instance was found.

I was hoping to get the name of the memories and be able to use the command 

write_content_to_memory

but the output says no editable memories were found.

I'm new to Intel and having a hard time with these details, thank you for your help!

 

0 Kudos
5 Replies
EBERLAZARE_I_Intel
657 Views

Hi there,

 

May I know which Quartus version are you using?

0 Kudos
hcruz1
Beginner
657 Views

Hi!

 

I'm using Quartus Prime Standard 18.1 for Windows.

0 Kudos
EBERLAZARE_I_Intel
657 Views

Hi,

 

I could not find any further information regarding the error itself, have you tried booting up your board to see if the DDR is up from preloader?

 

Here is the get_editable_mem_instances descriptions for reference:

https://www.intel.com/content/www/us/en/programmable/quartushelp/13.0/mergedProjects/tafs/tafs/tcl_pkg_insystem_memory_edit_ver_1.0_cmd_get_editable_mem_instances.htm

 

 

You may check all other functions available here:

https://www.intel.com/content/www/us/en/programmable/quartushelp/13.0/mergedProjects/tafs/tafs/tcl_pkg_insystem_memory_edit_ver_1.0.htm

 

regards.

 

0 Kudos
hcruz1
Beginner
657 Views

I've loaded the preloader following the instructions from this tutorial (https://www.intel.com/content/www/us/en/programmable/documentation/lro1424280108409.html) but the error messages remain the same. Should I be doing any additional step afterwards? Is it necessary to use Quartus to do this?

 

Because so far what I've done is load the preloader as explained in the tutorial and run a simple hello world using ARM Development Suite Gold Edition. Any help is appreciated.

 

Thank you but I've already checked the functions documentation.

0 Kudos
EBERLAZARE_I_Intel
657 Views

Hi,

 

I suggest that you check the serial terminal to see the preloader/boot log to see if the DDR calibration was successful.

 

Then, please run the same "Hello World" application, but build it located in the SDRAM memory instead of the on-chip RAM as in the example. Instead of running the TCL script to see everything is functioning accordingly.

 

The log should look something like this with the DDR calibration passing:

 

U-Boot SPL 2013.01.01 (Oct 21 2013 - 13:44:30)

BOARD : Acme Dynamite Board

SDRAM: Initializing MMR registers

SDRAM: Calibrating PHY

SEQ.C: Preparing to start memory calibration

SEQ.C: CALIBRATION PASSED

SDRAM: ECC Enabled

ALTERA DWMMC: 0

 

Regards

0 Kudos
Reply