Solving Quartus v13 hardware problems
This problem was discovered when approximately 20% of the students in an Advanced Programmable Logic course experienced Executable Linked File (ELF) download problems during their 2013 summer semester. In this course the students design a microprocessor with Quartus’ Qsys using the Nios II processor core. Downloading the hardware design to the DE2 development board will not cause any flashing lights or switches to operate unless you have downloaded a program to the hardware. In the course the software is typically sample code written by Altera using a version of Eclipse that configures a Board Support Package (BSP). Once a program has been written and you’ve placed Debug in RUN mode then you will see some activity on the DE2 board. This is a long process and the ELF download problem occurs on the last step. This failure can occur due to a whole slew of problems caused at any point during the design process; in other words, every single mouse click becomes a potential source for the problem.
Troubleshooting this problem pointed to a license issue. After weeks of analysis including reinstalling the software we had varying success getting the students up to speed. I asked one student to send me his files so I could try to troubleshoot/run his code on my machine which was working okay with my labs written previous using Quartus v13. I was looking to see if his operating system on his computer was the problem. Not only could I not fix his code but when I closed his design and open a previous design written in Quartus v13 I got an ELF error for a design that worked on a computer set up properly.
I began to suspect that there was no hardware downloaded to the DE2 board even though the students were installing components correctly. The clue was indicated in the following screen :
Figure 1 System ID Properties screen when no hardware is present...notice the reported error at the top.
To test this theory, I installed the following hardware in addition to the microprocessor to the hardware design and downloaded the modified hardware to the board. The LED did not turn on. This cut my troubleshooting problem by more than half because the microprocessor wasn’t part of this simple test circuit nor was the Eclipse software and BSP involved.
Figure 2 Test switch for hardware presence.
This switch setup will turn on/off an LED depending on the switch setting. Because the LED didn’t turn on this proved there was no hardware on the DE2 board causing the ELF problem we were seeing in the advanced designs. At this point I began offering 90% credit for labs completed by students that ended up with the same error as was shown in Figure 1 above.
The only thing that allows you to write a design and download it to a board is the license. So my license setting was changed when I run code written on a machine whose license wasn’t working. Since I had multiple versions of Quartus on my computer I was able to drop back to Quartus v11 and get the test circuit to work in a previous design. Now my computer was working correctly. This further confined the problem source to just the Quartus v13 edition.
The question I had to solve now was how some students were getting this problem. I had written explicit instructions for the students to follow when downloading and installing the Quartus and Nios II software. Since my Quartus v13 was now worthless, I could prove the trouble we were encountering was due to a downloading error by reinstalling the software using my own instructions and getting an advanced design to work. I began by uninstalling Quartus v13 and ModelSim (simulation software) on my computer using the OS uninstall routines. These are the versions I uninstalled:
I then had to delete the remaining reminents in the file structure and all the folders I had created to insure nothing was left to contaminate the new install. The instructions for how to download Quartus v13 posted on my website include a short cut to using the old extracted files starting on page 3.
After installing the software using the extracted file from the previous download (about a ½ wait) I was able to build, troubleshoot, and run successfully Lab 3. I used screen shots from this build to update my Lab3 and it is now posted on the web. Everything went smoothly except I had forgotten to use the correct name for the I/O bus so while the DE2 display the count correctly, the LED lights didn’t display. After thinking abou t it and installing a test switch which worked properly, I check old labs and saw my naming error which was easy to correct.
The problem with the students appears to be missteps taken during the reinstall. Hopefully this write-up will help. During this re-installation I did not change the licensing at all. Here is the defaults license that I observed after successfully running the program: