Jump to content
  • 0

ARTY DDR3 with Microblaze


pjb_ngnr

Question

I am having issues getting the MicroBlaze to run using the DDR3 memory on the Arty.

I have followed this tutorial: https://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-getting-started-with-microblaze/start

The processor does not start up.  I have tried the tutorial a few times to make sure I did it correctly.

If I change the linker-script to use BRAMs, the MicroBlaze works just as expected. So the problem is with the DDR3 memory or the MIG.

Are there any known issues with the Arty and the MIG provided with the board files?

Thanks again,

  -Patrick

 

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

Thanks jpeyron,

I just tried your bit-stream on my Arty, and no "hello world" displayed on the UART.

The project block diagram you provided is the same as mine.  I am on Vivado 2016.1, so I can't modify your project files.  But other than that, they appear to be the same

In my project, using the BRAMs in the linker script to yield the "hello world" display upon writing the bit stream to the Arty.

So in summary: my device takes a bitstream, the usb uart works, the MicroBlaze works with BRAMs.

When I switch to mig in the linker script, the MicroBlaze does not run.  When I launch the bit-stream you graciously provided, it appears the  MicroBlaze does not run.

I just received the Arty yesterday, though I have worked on FPGAs for years.

Given what I am seeing, and that you say your MicroBlaze works with the bitstream you provided, I have a feeling the DDR3 on my board is failing, I need to supply the board with additional power, or perhaps something else I am not seeing or aware of with the Arty.

Thanks again,

-Patrick

Link to comment
Share on other sites

I have the same issue with your 2016.1 project as well.  No hello world until I change the linker script.

Here is a link to my project.  It is very simple, I just followed the tutorial.

There are 2 bitstreams:  system_wrapper_BRAMs.bit and system_wrapper_MIG.bit.

The BRAMS version produces a Hello World, the MIG does not.  The only difference is the linker script.

https://www.dropbox.com/s/sfxp1590q3xj67n/eSys.7z?dl=0

-Patrick

Link to comment
Share on other sites

Ok,

  I think there were a few issues.

  Issue 1) I made a silly mistake of associating the elf with a bit-stream where the elf expects to be in DDR3.  The elf needs to find its way to DDR, not BRAMs and the bit-stream, I believe, wants to load a elf directly to BRAM.  I had a project a few years back where I needed a bootloader to pull an SREC out of flash to get the MicroBlaze to run on DDR.  I think that may be part of my issue here.  To get MicroBlaze to run on DDR3 via a bits-tream or MCS, it may be more than just associating the elf file.  It may need an SREC boot-loader elf, which reads into DDR3 the actual elf that has my code with the Hello World.  Does that sound about right with the Arty?

  Issue 2)  SDK was expecting a file specifically named download.bit.  If I export the hardware and include the bit-stream and mmi, and rename them to download.bit, then I can launch the bits-tream from the SDK, and then I can create a new launch configuration.  Using that launch configuration in SDK, and can change the linkerscript to look at BRAMs, and MIG and the Hello World example will work.  If I then change to address ranges to something arbitrary, it fails.  Then when I change back to the MIG, it works again.

 In short, Issue 1 where MicroBlaze launching to DDR3 from the bit-stream, that issue was on me.  I think there is more to do to get that working the way I expect.  Is that accurate?  Do I need an SREC boot-loader?

 Issue 2 was somewhat my fault.  However the tutorial done as is did not work for me out of the box.  I had to change some file names and do the launching of the elf slightly differently.  But it will work if I do everything as described above.

Thanks again,

  -Patrick

Link to comment
Share on other sites

Yes,

  Thanks, that is what I was starting to expect it to be.  It has been a few years since I attempted to place an elf in a bitstream that wasn't intended for BRAMs.

  I appreciate the input!  I will try that specific SREC bootloader project.  That looks to be exactly what I need.

 

-Patrick

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...