Implementing a communication protocol for data transfer over TCP on an FPGA

A

Andre Renee

Hi,

I am currently working on a project where I have to transmit data from a PC
to an FPGA board via Ethernet. For that purpose I use the HTG-V4PCIe
evaluation board, which is a Xilinx Virtex-4 PCI Express Development Board
from HighTech Global (http://www.hitechglobal.com/boards/v4pcie.htm). It
features the Marvell Alaska 88E1111 Gigabit-Ethernet PHY which I use in
combination with the Virtex-4 built-in MAC interface. I implemented the
TCP/IP stack fully in hardware in VHDL and it works. Fine! :)

Now I have some serious problems with the data transmission and maybe
someone could point me to the right direction.

For transmitting the data from the PC to the board (in the form of files) I
need some sort of application protocoll layer, I guess. First I thought
about HTTP which is in my opinion a bit overkill, because all I want to do
is transmit files FROM the PC TO the FPGA. I may run a HTTP server on the
FPGA's Microblaze but I have the impression that would not satisfy my need
of just transmitting data files.
Then I thought about Telnet but I am afraid I am not familiar enough with it
to estimate if it allows the transfer of files. Is there any simple solution
to transmit files from a PC to the FPGA board with a plain application
protocoll layer?

Any help is highly appreciated.

Regards Andre
 
J

jetq88

Hi,

I am currently working on a project where I have to transmit data from a PC
to an FPGA board via Ethernet. For that purpose I use the HTG-V4PCIe
evaluation board, which is a Xilinx Virtex-4 PCI Express Development Board
from HighTech Global (http://www.hitechglobal.com/boards/v4pcie.htm). It
features the Marvell Alaska 88E1111 Gigabit-Ethernet PHY which I use in
combination with the Virtex-4 built-in MAC interface. I implemented the
TCP/IP stack fully in hardware in VHDL and it works. Fine! :)

Now I have some serious problems with the data transmission and maybe
someone could point me to the right direction.

For transmitting the data from the PC to the board (in the form of files) I
need some sort of application protocoll layer, I guess. First I thought
about HTTP which is in my opinion a bit overkill, because all I want to do
is transmit files FROM the PC TO the FPGA. I may run a HTTP server on the
FPGA's Microblaze but I have the impression that would not satisfy my need
of just transmitting data files.
Then I thought about Telnet but I am afraid I am not familiar enough with it
to estimate if it allows the transfer of files. Is there any simple solution
to transmit files from a PC to the FPGA board with a plain application
protocoll layer?

Any help is highly appreciated.

Regards Andre

you could try using socket, it's standard way to tranfer files over
tcp/ip

jet
 
N

Nick Maclaren

|>
|> Then I thought about Telnet but I am afraid I am not familiar enough with it
|> to estimate if it allows the transfer of files. Is there any simple solution
|> to transmit files from a PC to the FPGA board with a plain application
|> protocoll layer?

FTP or even TFTP. You can do it a lot more simply, but it sounds as
if you aren't the sort of person who is happy designing a one-off
protocol. WITH FTP, you need implement only one form of binary.


Regards,
Nick Maclaren.
 
B

Ben Jones

Andre Renee said:
I implemented the TCP/IP stack fully in hardware in VHDL and it works.
Man!

Is there any simple solution to transmit files from a PC to the FPGA board
with a plain application protocoll layer?

Personally, I would look at GNU Netcat(http://netcat.sourceforge.net/) for
very simple file transfer over TCP/UDP. You might also try TFTP (yuk).

Good luck,

-Ben-
 
T

Tauno Voipio

Andre said:
Hi,

I am currently working on a project where I have to transmit data from a PC
to an FPGA board via Ethernet. For that purpose I use the HTG-V4PCIe
evaluation board, which is a Xilinx Virtex-4 PCI Express Development Board
from HighTech Global (http://www.hitechglobal.com/boards/v4pcie.htm). It
features the Marvell Alaska 88E1111 Gigabit-Ethernet PHY which I use in
combination with the Virtex-4 built-in MAC interface. I implemented the
TCP/IP stack fully in hardware in VHDL and it works. Fine! :)

Now I have some serious problems with the data transmission and maybe
someone could point me to the right direction.

For transmitting the data from the PC to the board (in the form of files) I
need some sort of application protocoll layer, I guess. First I thought
about HTTP which is in my opinion a bit overkill, because all I want to do
is transmit files FROM the PC TO the FPGA. I may run a HTTP server on the
FPGA's Microblaze but I have the impression that would not satisfy my need
of just transmitting data files.
Then I thought about Telnet but I am afraid I am not familiar enough with it
to estimate if it allows the transfer of files. Is there any simple solution
to transmit files from a PC to the FPGA board with a plain application
protocoll layer?

Any help is highly appreciated.

The simple way is TFTP. It uses UDP as the transport layer,
so even TCP is not needed. However, there's practically no
security, and the protocol is a simple send-and-wait-for-
ack protocol. For local links, it's simple and works.

TFTP was created to boot diskless workstations, and for
similar tasks it's OK.

For more general file transfer, FTP is probably the correct
thing, although it's much more tedious to implement than TFTP.

The primary reference for TFTP is
<http://www.faqs.org/rfcs/rfc1350.html>.
 
A

Andre Renee

Hi Nick,

thanks for your quick reply. The problem is: with my TCP/IP implementation I
have only one port available. As far as I know with FTP I need at least
two...!?
 
Z

zcsizmadia

|>
|> Then I thought about Telnet but I am afraid I am not familiar enough with it
|> to estimate if it allows the transfer of files. Is there any simple solution
|> to transmit files from a PC to the FPGA board with a plain application
|> protocoll layer?

FTP or even TFTP. You can do it a lot more simply, but it sounds as
if you aren't the sort of person who is happy designing a one-off
protocol. WITH FTP, you need implement only one form of binary.

Regards,
Nick Maclaren.

If you have to write on the PC side as well, simple TCP socket
communication should be simple.
If not, just implement a simple TFTP server with the bare minimum in
the FPGA, so you can connect from any computer with "tftp" command.

Regards,
Zoltan
 
A

already5chosen

Hi Nick,

thanks for your quick reply. The problem is: with my TCP/IP implementation I
have only one port available. As far as I know with FTP I need at least
two...!?


Yes, FTP client, FTP server and TFTP server require at least two
ports. But TFTP client could leave with one local port that
communicates with two remote ports.
By the way, do you really implemented full TCP transport protocol in
hardware, all related RCPs including adaptive retransmission timers,
window size adjustment, flow control and congestion avoidance? If you
did that implementing application protocols should be a piece of cake
- most of them are order of magnitude simpler than TCP.

BTW, what you have against microblaze? Could save you months (years?)
of work and plenty of logic cells at cost of some embedded memory.
 
Joined
Apr 11, 2007
Messages
2
Reaction score
0
Hi Andre,

I am very interested in your job as I have to face a very similar problem. In my case I need to implement a TCP/IP protocol and also DHCP, ARP and ICMP.

For my application a Spartan 3 will do the job perfectly so I am considering two possibilites:

1) Use Spartan 3 + Embedded Ethernt product (Rabbit Semiconductors ...)
2) Use Virtex 4FX12 and implement it by myself.

Of course I like more the second option (also it will allow me to upgrade my design in he future) but I am afraid about how much time I would need to implement it. Please can you tell me how much time did you need for your implementation? Did you face any critical problem?

I have seen that Xilinx is selling GSRD to free Power PC processing time. Did you find big speed limitation doing in this way (all done by Power PC processing)?

Sorry for so many questions.

Thanks!

BR.
Oscar.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top