08-24-2010 01:45 PM
I am prototyping with the ML605 board. I am planning on using the Ethernet port to pipe data between the Vertex6 and a PC. There are 2 wrappers. One interfaces to the user design using FIFO's and the other uses the MicroBlaze running the networking protocol. I have no need for a Microcontroller in my design and I am trying to avoid going the embedded design approach. I would prefer to use the FIFO wrapper with a direct connection (using crossover cable) to the PC. I am not trying to build a network capable device, I am trying to build a "data pipe". Is it possible to do this without going with the embedded design approach?
We use C# here and our software guy says he's not sure if we can write a C# (or Windows) program that will communicate with the Virtex Ethernet port unless it is running the full network protocol (i.e. MicroBlaze embedded design). Anyone know a way to do this?
Thanks in advance,
08-24-2010 11:20 PM
If you don't need a processor or the upper layer networking stack, you are right, you can use the V6 EMAC wrapper from Core Generator. You may have a look at xapp1144 for a reference of the design.
Regarding the programming language, you cannot directly use C or C# directly on FPGA without a processor. So if you have to, you may need a C to HDL compiler to convert your program into equivalent HDL functions and integrate that into your EMAC design.
Hope it helps you.
-Yan Shun Li
08-25-2010 11:07 AM
Thanks for your response. With the C# question, I was referring to a C# program running on the PC that will send and receive Ethernet packets to the Virtex6 wrapper (without the MicroBlaze running any network protocol).
We are worried that Windows won't let us just send and receive Ethernet packets (on the PC) unless it is running the networking protocol.
Hope I am making sense.
08-26-2010 06:34 PM
No, it's okay, as long as you have the MAC address right. If your board is not running any network protocol, you can send a ping from the PC this way:
> arp -s 192.168.1.10 00-0a-35-01-de-64
> ping 192.168.1.10
In the 2 commands above, you have to make sure the MAC address is the one you've set for your TEMAC. The IP address can be any arbitrary value.
Hope this works for you.
-Yan Shun Li
09-14-2010 04:38 PM
As to the solution you provided, I has two questions? 1. Does it support a huge length of the data in the Ethernet package? 2. how does it work on two way communication.
Since our application needs to transmit and receive the huge length of the data between the code in FPGA and GUI application in Windows 7, does PING (instead of Socket) could cover this solution? If PING is used in this solution, what should we do on the code in FPGA in order to decode the incoming package (in Ping), put our data into this package, send it back to GUI application in the Windows 7, and make GUI application understand it. Does it need some protocols/handshakes to make this two way communication work?
09-15-2010 10:55 PM
Sorry for missing your response.
Yes for both questions. For 1), both the hard and soft TEMAC supports jumbo frame. if the data is larger than standard frame size (which is about 1500 bytes), you just need to turn on the jumbo enable option in the TEMAC. For 2), the TEMAC supports full duplex mode.
Hope this will help you.
10-04-2010 04:03 PM
I might not make my statement clear. When I said "it" in my previous questions, I meant PING instead of TEMAC. ICMP only cover 65500 byte. How could I use Ping to send (GUI commands from Host PC) and echo back 16M video image (from Xilinx FPGA)? If Ping could not do compete the task, is there any other protocol (in stead of Socket) could complete this task (16M data received by using 2-way communication between GUI application in Windows 7 and Xilinx Vertex 6)?
04-11-2011 04:39 PM
Hi, I'm encountering similar problem where I have to transmit ADC data out of the FPGA to a PC for post processing. I don't have much background in software and was wondering if there is a simple solution of transferring data back to PC through the ethernet connection that does not require much custom software written in the PC.
04-13-2011 06:04 AM
There is no 'simple' way to do what you want to do, though it's not fundamentally difficult. Deserialise or otherwise capture the ADC data, buffer it into packet-sized chunks, slap on Ethernet, IP, and UDP headers, and send it to an Ethernet MAC. Receiving that on a PC is then a pretty straightforward exercise - you can write a simple UDP server in a couple of minutes in modern scripting languages. If you're not experienced with HDLs this is a fairly daunting undertaking.
It might be easier to use an embedded processor on the FPGA to do IP communications, possibly using one of the reference implementations, but it will all depend on the required data transfer speed, the Xilinx software licenses you have, the amount of time you have, whether you need to be able to control the FPGA over the network, and so on.
01-19-2013 06:37 AM
Did you ever get this to work? I am in similar shoes. I too just want to transmit data from the ML605 board through the ethernet port to a PC. I have basic software skills, and I lack a lot of experience. Does anyone have an example code that I could look at for doing this? Can anyone recommend a good tutorial for stepping me through what needs to be done?