Version 0 of Playing with Bwise and a ethernet connected FPGA

Updated 2008-09-15 12:24:00 by theover

by TV

Using Bwise

As an extension of the idea in Bwise, a serial port tcl script and a Xilinx demo board

Spartan 3 board [L1 ] Digilent Ethernet module [L2 ]

Digilent Adept suite [L3 ]

 newproc {} FPGA {i1 i2 i3 i4 i5 i6 i7 i8 i9 i10} {o1 o2 o3 o4 o5 o6 o7 o8 o9 o10}

 proc fpgablock {} {
   set in {} ; 
   for {set i 1} {$i <= 10} {incr i} {append in "[uplevel #0 set FPGA.i$i] "}
   set r [exec ./relay.exe << $in]
   for {set i 1} {$i <= 10} {incr i} {uplevel #0 set FPGA.o$i [lindex $r [expr $i-1]]}
 }

 set FPGA.bfunc fpgablock

http://82.171.148.176/Bwise/fpgablock1.gif http://82.171.148.176/Bwise/fpgainfo1.gif

Needs: [L4 ]

compiled with cygwin on windows XP (Pro in this case) because I don´t know a Linux Adapt software version like this:

 gcc -mno-cygwin -o relay.exe -I ../Adept\ sdk\ files/ -L ../Adept\ sdk\ files/ relay.cpp -ldpcutil

test with

 echo '00 00 00 00 00 00 00 00 00 00' | ./relay

gives back the 10 register contents, after the 10 writable regs have been set according to the hex data fed to stdin.

Speed: sub second easily but probably not very many invokations per second. (Connected over a giga ether switch network, actually at a Gb/s for the notebook driving the ethercard, which however is connected at 10(!)Mb/s, so fairly slow.)

Current vhdl/schematic to fill the FPGA with is simply the example coming with the ethernet board, possibly with some small modifications (like I made a schematic symbol of the interface, for use (on the same notebook) with Xilinx ISE Webpack 8.2i) The possible speed of the interface is up to over 200 Kilo byte per second tested. The same ethernet connection, which for demonstration purposes can also be connected directly over a single ethernet cable, is used to program the fpga with the required bit file, which is reliable and fast (about a second).

See also List computations in a FPGA, driven by Tcl


enter categories here