Spartan 3E Sarter Kit Ethernet

  • Follow


Hello.
Would you please to get me some information about how can i realize
UDP transmition with Spartan 3E Starter Kit? Can i use IP supplied
with EDK in conjunction with Microblaze. Can I solve the problem
without using Microblaze? And last questions: what is difference
between AccelDSP and System Generator and can I convert some dsp
floating point algorithm available in C in VHDL block?
0
Reply Pavel 1/5/2008 9:08:34 PM

> Would you please to get me some information about how can i realize
> UDP transmition with Spartan 3E Starter Kit? Can i use IP supplied

Look at this site, there are some information:

http://www.fpga4fun.com/10BASE-T.html

> with EDK in conjunction with Microblaze. Can I solve the problem
> without using Microblaze? And last questions: what is difference

Yes you can, but it would be easier with the Microblaze, or a
sufficiently
powerful soft processor.

> between AccelDSP and System Generator and can I convert some dsp
> floating point algorithm available in C in VHDL block?

I think AccelDSP works with Simulink (MATLAB), not with C code.
System Generator should be a tool for developing DSP apps, probably
it's best suited for your needs.

Andrew
0
Reply quark 1/6/2008 9:26:05 AM


On Jan 5, 10:08 pm, "Pavel.Schu...@gmail.com"
<Pavel.Schu...@gmail.com> wrote:
> Hello.
> Would you please to get me some information about how can i realize
> UDP transmition with Spartan 3E Starter Kit? Can i use IP supplied
> with EDK in conjunction with Microblaze. Can I solve the problem
> without using Microblaze?

You transmitt ethernet packets by waiting for the PHY transmitt clock
to go low "always @(negedge E_TX_CLK)".  Then set E_TX_EN=1 and
E_TXD[3:0]=first nibble. Then for every event set next nibble. Once
you have supplied all data. Set E_TX_EN=0 to complete packet. You have
to wait 24 cycles at 100M before sending a new one.
The nibbles shall be 555555555555555D - packet data - crc32. Crc32 is
calculated from packet data only.
0
Reply posedge52 1/6/2008 1:03:17 PM

posedge52@yahoo.com wrote:
> On Jan 5, 10:08 pm, "Pavel.Schu...@gmail.com"
> <Pavel.Schu...@gmail.com> wrote:
>> Hello.
>> Would you please to get me some information about how can i realize
>> UDP transmition with Spartan 3E Starter Kit? Can i use IP supplied
>> with EDK in conjunction with Microblaze. Can I solve the problem
>> without using Microblaze?
> 
> You transmitt ethernet packets by waiting for the PHY transmitt clock
> to go low "always @(negedge E_TX_CLK)".  Then set E_TX_EN=1 and
> E_TXD[3:0]=first nibble. Then for every event set next nibble. Once
> you have supplied all data. Set E_TX_EN=0 to complete packet. You have
> to wait 24 cycles at 100M before sending a new one.
> The nibbles shall be 555555555555555D - packet data - crc32. Crc32 is
> calculated from packet data only.

If it is acceptable to hardwire the IP and MAC addresses, then a fairly 
straightforward state machine, in combination with a prepared header can 
transmit UDP frames. This can be a reasonable solution for a quick hack 
on a lab.

For local networks it is also reasonably safe to omit the UDP checksum. 
This can be done by setting it to an all-zeroes value. By doing so, you 
can avoid making an extra pass over the data.

However, if you need things like ARP, DHCP or IP routing, using a 
Microblaze (or another core of your choice) would make more sense.
0
Reply Arlet 1/6/2008 1:57:26 PM

Arlet Ottens <usenet+5@c-scape.nl> wrote:

>posedge52@yahoo.com wrote:
>> On Jan 5, 10:08 pm, "Pavel.Schu...@gmail.com"
>> <Pavel.Schu...@gmail.com> wrote:
>>> Hello.
>>> Would you please to get me some information about how can i realize
>>> UDP transmition with Spartan 3E Starter Kit? Can i use IP supplied
>>> with EDK in conjunction with Microblaze. Can I solve the problem
>>> without using Microblaze?
>> 
>> You transmitt ethernet packets by waiting for the PHY transmitt clock
>> to go low "always @(negedge E_TX_CLK)".  Then set E_TX_EN=1 and
>> E_TXD[3:0]=first nibble. Then for every event set next nibble. Once
>> you have supplied all data. Set E_TX_EN=0 to complete packet. You have
>> to wait 24 cycles at 100M before sending a new one.
>> The nibbles shall be 555555555555555D - packet data - crc32. Crc32 is
>> calculated from packet data only.
>
>If it is acceptable to hardwire the IP and MAC addresses, then a fairly 
>straightforward state machine, in combination with a prepared header can 
>transmit UDP frames. This can be a reasonable solution for a quick hack 
>on a lab.
>
>For local networks it is also reasonably safe to omit the UDP checksum. 
>This can be done by setting it to an all-zeroes value. By doing so, you 
>can avoid making an extra pass over the data.

Actually, you can calculate the CRC on the fly because it is
transmitted last.

-- 
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
0
Reply nico 1/6/2008 7:06:47 PM

Nico Coesel wrote:

> Arlet Ottens <usenet+5@c-scape.nl> wrote:
> 
>> If it is acceptable to hardwire the IP and MAC addresses, then a fairly 
>> straightforward state machine, in combination with a prepared header can 
>> transmit UDP frames. This can be a reasonable solution for a quick hack 
>> on a lab.
>>
>> For local networks it is also reasonably safe to omit the UDP checksum. 
>> This can be done by setting it to an all-zeroes value. By doing so, you 
>> can avoid making an extra pass over the data.
> 
> Actually, you can calculate the CRC on the fly because it is
> transmitted last.
> 

The Ethernet layer CRC-32 is transmitted last, but the UDP checksum is 
in the header.

Beware that omitting the UDP checksum removes protection against data 
corruption inside the FPGA, e.g. a bug in the transmit path before the 
CRC-32 is applied.






0
Reply Arlet 1/6/2008 7:28:40 PM

Pavel.Schukin@gmail.com wrote:
> Hello.
> Would you please to get me some information about how can i realize
> UDP transmition with Spartan 3E Starter Kit? Can i use IP supplied
> with EDK in conjunction with Microblaze. Can I solve the problem
> without using Microblaze? And last questions: what is difference
> between AccelDSP and System Generator and can I convert some dsp
> floating point algorithm available in C in VHDL block?

You can do this a number of ways, but the easiest would be to use a 
processor based subsystem. Build a system using BSB with MicroBlaze + 
ethernet. Add lwIP for a TCP/UDP software stack.

The right solution would depend on your application ofcourse.
0
Reply Siva 1/7/2008 11:52:34 PM

6 Replies
252 Views

(page loaded in 0.078 seconds)

Similiar Articles:













7/25/2012 7:37:46 AM


Reply: