[En-Nut-Discussion] XSVF Executor

Harald Kipp harald.kipp at egnite.de
Mon Mar 21 12:44:12 CET 2011


Hi Werner,

On 3/21/2011 11:17 AM, Landsperger, Werner wrote:

> with the motivation to build an demonstrator which connects a web
> interface with a JTAG interface I have found the document  with the XSFV
> Executor (http://www.ethernut.de/en/xsvfexec/index.html) The
> Implementation is using the Ethernut2 Board but I prefer to use the
> Ethernut3 Board. Is there another implementation for Ethernut3 available
> or is this version already usable?

In fact the same program works for Ethernut 3. However, I slightly 
modified the procedure. While the xsvf file had been manually copied 
into nutapp/xsvfexec/ in earlier releases, I've now a modified Makefile, 
which allows to keep several CPLD projects in separate directories, 
using the same XSVF-Executor source.

Best download ethernut31d-support.zip from

http://www.ethernut.de/arc/

It contains the complete project for VHDL and should be easily adapted 
to Verilog, if you prefer this language.

Btw. the 3.1 support package had been created to help solving 
incompatibilities between Ethernut 3.0 and 3.1.

http://www.ethernut.de/en/hardware/enut3/compatible_30_31.html


> Furthermore I'm not sure but actually the code use an xsfv file packed
> in an c-file. When I adapt the code to read in the information from the
> SD Card, the program will buffer the content at the RAM right? But XSFV
> Files can be easily bigger than 50MB. How does this work?

The CPLD on Ethernut is not that big, it only looks big ;-). The size of 
the XSFV file is about 50kB.

The XSVF will be directly compiled into the XSFV Executor program, using 
the UROM filesystem, which introduces almost no overhead. The easiest 
way is to upload the Executor via the bootmon bootloader. When all files 
are at the right place, you simply press the reset button and the board 
will automatically load the binary from TFTPD into RAM and execute it to 
re-program the CPLD, within a few seconds.

In case that the 256k RAM may not be large enough to take the Executor 
including the XSVF, there are other options, because the Executor uses 
standard file I/O to read the XSVF code. However, you cannot use the 
memory card, because the MMC interface is implemented in the CPLD. But 
the Ethernet interface works independent. Though, I'm not fully sure 
whether CPLD programming may interfere with the external memory bus.

Also note, that I recently published a first version of ftdixsvf.exe for 
Windows, which allows to re-program the CPLD with the Turtelizer 2 JTAG 
adapter.

http://lists.egnite.de/pipermail/en-nut-discussion/2011-March/012556.html

Regards,

Harald




More information about the En-Nut-Discussion mailing list