Debugging software in an ACEX device with Nios 32 via JTAG

J

Joe Sabater

Guest
Hi,

I have been debugging a software application running in an Altera APEX
device with Nios 32 (including OCI-Core) via JTAG with no problem at
all. Now, I am trying to do the same with an ACEX (EP1K100FC256-2)
with no success. The problem seems to be when the debugger tries to
connect to the remote target via JTAG. After issuing a "nios-debug"
command under SOPC Builder shell I get the following error: "mdi
error: found 0 devices instead of 1".

It seems as the "nios-debug" script supplied by Altera doesn't
recognize ACEX devices, but not quite sure about.

Any idea? What is more, any of you have ever debugged software via
JTAG with an ACEX?

Thank you very much in advance.

Joe
 
jsabater@dimat.es (Joe Sabater) wrote in message news:<b80681f7.0310130832.78646141@posting.google.com>...
Hi,

I have been debugging a software application running in an Altera APEX
device with Nios 32 (including OCI-Core) via JTAG with no problem at
all. Now, I am trying to do the same with an ACEX (EP1K100FC256-2)
with no success. The problem seems to be when the debugger tries to
connect to the remote target via JTAG. After issuing a "nios-debug"
command under SOPC Builder shell I get the following error: "mdi
error: found 0 devices instead of 1".

It seems as the "nios-debug" script supplied by Altera doesn't
recognize ACEX devices, but not quite sure about.

Any idea? What is more, any of you have ever debugged software via
JTAG with an ACEX?

Thank you very much in advance.

Joe
Hi Joe,

Using an ACEX device is the cause of this issue. The OCI debug core
(via JTAG) relies on some enhanced connectivity to JTAG implemented
with APEX (and subsequent) FPGA families. The same limitation applies
for use of the SignalTap on-chip logic analyzer (in fact, the
SignalTap app note lists which device families can be used). Going
back to the Nios kit, this means that the older device families that
Nios supports (ACEX 1K & FLEX 10KE) will not support the OCI core via
JTAG.

Because of your report I put in a request that we provide a more
explicit warning (or error) message in SOPC Builder if you try to
activate OCI and are targeting FLEX or ACEX (in addition to updating
relevant documentation). As it is now, I noticed that there are a
number of warning messages in Quartus that say that the OCI logic is
being synthesized away because of this device limitation -- so this is
really the only warning of this limitation.

In Nios versions prior to 3.0, we had a different debug solution that
operated over serial port rather than JTAG. While I don't recommend
going backwards in terms of Nios CPU version, if its absolutely
essential that you use the GDB debugger with your ACEX device, you
might consider (temporarily) going back to Nios v2.2 to use the
non-JTAG debugging... this method operates over UART, and therefore
does not require the special JTAG enhancements which came out after
ACEX. If its possible to debug with your APEX device and then move to
a final test of your ACEX-based product with OCI turned off, this
would be the easiest solution.

Jesse Kempa
Altera Corp.
jkempa at altera dot com
 
In Nios versions prior to 3.0, we had a different debug solution that
operated over serial port rather than JTAG. While I don't recommend
going backwards in terms of Nios CPU version, if its absolutely
essential that you use the GDB debugger with your ACEX device, you
might consider (temporarily) going back to Nios v2.2 to use the
non-JTAG debugging... this method operates over UART, and therefore
does not require the special JTAG enhancements which came out after
ACEX. If its possible to debug with your APEX device and then move to
a final test of your ACEX-based product with OCI turned off, this
would be the easiest solution.
Ooops!

Just wanted to correct myself here- in Nios 3.0 (and later), you *can*
use the old UART-based debug solution, allowing the use of GDB/Insight
debugging in Flex & Acex-based Nios designs. The newer device families
allow use of the OCI (JTAG-based) debug core as noted above, but the
older devices can still be debugged using the serial port.

Thanks to Mr. Sabater for pointing this out.

Jesse Kempa
Altera Corp.
jkempa at altera dot com
 

Welcome to EDABoard.com

Sponsor

Back
Top