-
Notifications
You must be signed in to change notification settings - Fork 7
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
Memory write error at 0x80000000. MicroBlaze instruction insert overrun #2
Comments
Hi! As the first troubleshooting step, I recommend that you lower the MicroBlaze's frequency to 100 MHz. As I described in this chapter of the tutorial, lowering the frequency will eliminate the timing violations, and the overall design should be more stable. Do I understand correctly that you built the HW design from scratch following the tutorial's steps? Did you also create the Vitis workspace from scratch or re-used the one provided in the project_files? I recommend that you create a brand new Vitis workspace using the HW definition .xsa file exported from your HW design. You then just copy the main.cpp into the src folder of your Vitis workspace. |
Hi! Yes, I built the HW from scratch following every step. I tried to create the Vitis workspace using the .xsa file exported instead of importing the one provided but I still get the same error. In case I can't set the MicroBlaze clock to 200MHz, is there any way that I can send a signal in a PMOD, for instance, at 200MHz? Thank you very much |
Can you upload your HW design here so I can look at it? Please note that limit for attachment size on a GitHub issue is 25 MB for files, which are not pictures or videos.
As I explained in the tutorial, 200 MHz seems on the boundary of what is possible on the Artix 7 FPGA chip. Have you considered using Xilinx Zynq SoC (e.g., Cora Z7)? It comes with one or two ARM cores running at 667 MHz. The overall HW design is much simpler than using a MicroBlaze (see this tutorial).
I believe 200 MHz should be possible on Arty A100 by a logic implemented in the Programmable Logic of the FPGA. |
Sure, I am uploading the .xpr file so you can check it, thank you
I set 200MHz as a reference value, but I previously tried to change the frequency and set it to a value different than 100MHz and I had problems too. I will check the Xilinx Zynq SoC to see it if it has what I need, thanks for the tip!
Okay, I see. I will check how to implement it. |
The .xpr file alone is not enough. I need the full content of the folder from which you took the .xpr file (including sub-folders!). |
Sorry, my bad. Here you have the file with every sub folder. |
I don't see any obvious issue in your HW design. I'm getting curious what the issue is. I will change board in your HW design to my Arty A7-35, produce outputs and try to run it. I will have time for this probably tomorrow or during the weekend. |
Unfortunately, I don't know what the problem is you are facing. It worked for me without issues. I installed the Vivado and Vitis 2023.2 (in Linux VM). I generated the Vivado outputs, created a Vitis Classic workspace, compiled the main.cpp. Do you have access to other Artix-7 FPGA board? Maybe there is a HW issue with your Arty A7-100T. |
I tried with another board, but the error is still appearing. I compiled a 'Hello world' application to try and it didn't run so the problem has to do something with the HW. The error is related to the MIG memory, since the 0x800000 address belongs to it, maybe something about the timing constraints? Do you have any timing violations in your Vivado output? |
Okay, sure, I am attaching it in a ZIP file. |
I'm sorry, but I don't see what is wrong with your setup. 😟 I created a new Vitis workspace and imported your export. I didn't see anything suspicious in the project. When I copied into the Vitis main.cpp from this repository it worked as expected and I saw expected signal on the ping A0. |
It's okay, no problem. Thanks for the help! I'll continue working on it and in case I fix it, I'll let you know. Thank you again! |
Hello.I also meet this problem,have you solved this problem?Thank you. |
Hello,is the project must work in Linux? |
Hi! From a Google search, it seems that this happens sporadically to people (examples are here and here), but none of the forum posts came to a conclusion. Which board and which version of Xilinx tools are you using?
I'm using Windows. That's where I created and tested my DDR3 tutorial. Nevertheless, I expect that you can do the same also on Linux (if it's one declared by Xilinx to be compatible). |
Thank you for your reply. The versions of Vivado and Vitis that I am using are both 2022.2. This project was working properly in 2019.1, but if I directly port it to version 2022.2 for use, the same error will occur
…---Original---
From: "Viktor ***@***.***>
Date: Thu, Dec 12, 2024 18:17 PM
To: ***@***.***>;
Cc: ***@***.******@***.***>;
Subject: Re: [viktor-nikolov/MicroBlaze-DDR3-tutorial] Memory write error at0x80000000. MicroBlaze instruction insert overrun (Issue #2)
Hi!
Unfortunately, we weren't able to find the source of the issue gari-marcos had. 😟
From a Google search, it seems that this happens sporadically to people (examples are here and here), but none of the forum posts came to a conclusion.
Which board and which version of Xilinx tools are you using?
is the project must work in Linux?
I'm using Windows. That's where I created and tested my DDR3 tutorial. Nevertheless, I expect that you can do the same also on Linux (if it's one declared by Xilinx to be compatible).
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
It really sucks when different versions of the tools produce different results. My wild guess is that this is some edge case issue dependent on your HW and version of the tools. |
Okay, thank you very much. Do you have any good suggestions? Should I rebuild the project in version 2022.2
…---Original---
From: "Viktor ***@***.***>
Date: Thu, Dec 12, 2024 18:33 PM
To: ***@***.***>;
Cc: ***@***.******@***.***>;
Subject: Re: [viktor-nikolov/MicroBlaze-DDR3-tutorial] Memory write error at0x80000000. MicroBlaze instruction insert overrun (Issue #2)
This project was working properly in 2019.1, but if I directly port it to version 2022.2 for use, the same error will occur
It really sucks when different versions of the tools produce different results.
I wish I knew how to help you. 😞
My wild guess is that this is some edge case issue dependent on your HW and version of the tools.
I created my MicroBlaze projects in versions 2023.1 and 2024.1 and never faced this issue.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
I think it's worth a try. It doesn't take much time. If I were in your shoes, I would try different versions of the tools and different boards. |
OK.Thanks for your reply.I will try your suggestions.
…---Original---
From: "Viktor ***@***.***>
Date: Thu, Dec 12, 2024 18:54 PM
To: ***@***.***>;
Cc: ***@***.******@***.***>;
Subject: Re: [viktor-nikolov/MicroBlaze-DDR3-tutorial] Memory write error at0x80000000. MicroBlaze instruction insert overrun (Issue #2)
Should I rebuild the project in version 2022.2
I think it's worth a try. It doesn't take much time.
If I were in your shoes, I would try different versions of the tools and different boards.
Keep the MicroBlaze frequency down at 100 MHz to eliminate timing issues being a factor.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Hello,
First of all, thanks for your tutorial, it's great and easy to follow.
I followed it using an Arty 100 instead of the Arty 35 and everything seemed to work fine. However, when I try to run the program the following error appears:
10:05:47 ERROR : Memory write error at 0x80000000. MicroBlaze instruction insert overrun
I checked the Vitis Log and this is it in case you need it:
I checked online and I saw it could be something related to the timing constraints, so I checked the Vivado timing report summary and i got this:
![imagen](https://private-user-images.githubusercontent.com/51913202/322765557-8193f2b9-94f8-4a2b-9916-16169bf596c0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjUwNDcsIm5iZiI6MTczOTAyNDc0NywicGF0aCI6Ii81MTkxMzIwMi8zMjI3NjU1NTctODE5M2YyYjktOTRmOC00YTJiLTk5MTYtMTYxNjliZjU5NmMwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE0MjU0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFlOTVhM2M5OWI4ODNiMDI5Y2EyNWY2MzM5MjBjYzdlZmYxYjQ0NTY5ZGVkZjY2MDU3ZWI1Mzk3MDEzZTU3ZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.WaH8OZKLB2CFiBWx_82D_dkxBKbZ57qP6ChpgQEY0q4)
Is there anything I could change in order to work properly?
Thank you in advance
The text was updated successfully, but these errors were encountered: