Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Troubleshooting
Computer Laboratory > Course material 2004-05 > ECAD + Architecture Main Page > Troubleshooting


  Troubleshooting

In an effort to reduce the number of students jumping off the balcony of the Intel Lab to a reasonable level, here are some suggestions should you become stuck.

Help! It doesn't work! What do I do now?

  • Isolate it between two areas, where one works and one doesn't. Even if the working bit is "When I press this button the LED comes on," at least that tells you the tools are working.
  • Test it in the simulator.
  • Have you typed "source excalibur_pins.tcl" in the TCL window? If not you need to.
  • Try using the LED bar graph and output LEDs to display signals that you couldn't normally see.
  • The blue lights on the I/O board correspond to the output pins, so you can use them to check the signal to the seven-segment display.
  • If you can't even make the LED bar graph light up, try using a different board. If it still doesn't work, try using a different computer.
  • If you still don't know why your code isn't working as you expect, read through the compilation messages. Sometimes Quartus isn't sure what you're trying to do and makes a guess instead of raising an error. Note particularly the fmax of your design: this is the maximum clock frequency at which your design will run. If fmax is less than 25MHz, you probably have a long carry chain caused by adding large numbers together.

I think my code is going and printing stuff, but I don't see anything on the terminal.

  • Have a look on the board near the serial port connector. There are small surface-mount LEDs to indicate recieve and transmit. See if your program flashes one when it runs, and see if pressing keys in the terminal program lights another.
  • If the ARM won't light an LED, your code is probably wrong.
  • If you just see funny characters in the terminal program, the baud rate is probably set wrong.
  • If the terminal won't light an LED, and the ARM lights the LED, check that the terminal's COM port is set appropriately (the top one is COM1), and that the baud rate is 38400 with no parity or flow control and one stop bit.

Ahh! I'm never going to get this finished in time!

  • If you don't finish in time, you can stay after/come back later and sort the practical out, then get it ticked at the next lab. There is one extra session after the end of Lab 6 in case you didn't finish it in time.
  • Read up on the lab before and figure out how to do it. You can obtain Quartus Web Edition and ARM Developer Suite student edition for free if you want to write everything out of lab time.

How can I make the Quartus Fitter go faster?

Go to 'Assignments | Settings', select 'Compiler Settings | Fitting' on the left.
Uncheck the top two 'Optimise...' items. Select 'Fast Fit' below.
Click 'OK' to dismiss the window.

This isn't recommended for very complex designs (as they may not meet the 25MHz clock rate unoptimised). This should not be an issue for anything encountered in the labs.

What's the difference between compiling and building?

"Compile" compiles the hardware as well as the software. You need some hardware to interface to the ARM. "Build" on the other hand just builds (incrementally compiles) the software. Thus, if you just ask for "Build" you will be missing the hardware files. When you change the software you don't need to compile again (you can just build), but when you change the hardware design you do need to compile again.

Compiling takes too long!

Compiling in Quartus takes a long time on the PWF because Quartus stores its temporary files on a network drive. The only workaround is to check your code more thoroughly so you don't have to compile it as many times! Altera is aware of this shortcoming but has not fixed it yet. It might be easier to do some of your development at home: free editions of Quartus and the ARM Developer Suite are available on the internet.

Info: Error: L6218E: Undefined symbol UART_INIT (referred from main.o).

The 'serialio.s' file isn't included in the project. This must be done carefully as the first assembler (.s) file listed comes first in the memory image.
Go to 'Assignments->Settings',
select 'Files & Directories : Add/Remove' on the left.
Click '...' to add the file 'serialio.s' (you may need to change the filter to see '.s' files). 'serialio.s' is now listed at the top. Click 'Down' to move it below 'main.s'.
Click 'OK' to dismiss the window.

I get a 'JTAG error 82'

Try restarting your computer twice. If this doesn't work, move to another workstation and alert the demonstrators.

I'm getting error messages that mention "Flex-lm" or licence servers

This should be working. Call a demonstrator.

Text fields in the Excalibur MegaWizard can't be modified (e.g. setting clock to 25MHz)

This should be fixed in this version of Quartus. Minimizing the MegaWizard and then restoring it should make it work; if it doesn't, the only solution is to exit and restart the wizard. If you have this problem please let a demonstrator know so it can be reported to Altera.