Forums

Is it possible to implement Ethernet on bare metal FPGA, Without Use of any Hard or Soft core processor?

Started by Swapnil Patil February 4, 2019
Hello folks, 

Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done?

I don't want to connect any Hard or Soft core processor.
also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6.
So how can it be done?

It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks  
On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote:
> Hello folks, > > Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? > > I don't want to connect any Hard or Soft core processor. > also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. > So how can it be done? > > It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks
You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. So it is doable, but since there is no reason to do it, no one has... yet. You might want to dig into an implementation rather than the specs. My understanding is there are a lot of details that aren't so clear in the spec. Rick C. - Tesla referral code - https://ts.la/richard11209
On 04/02/2019 06:37, gnuarm.deletethisbit@gmail.com wrote:
> On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote: >> Hello folks, >> >> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? >> >> I don't want to connect any Hard or Soft core processor. >> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. >> So how can it be done? >> >> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks > > > You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. > > So it is doable, but since there is no reason to do it, no one has... yet.
sure they have, I know of 2 companies just in the UK who have done this, 4links (since 2003) are Argon. Hans www.ht-lab.com You might want to dig into an implementation rather than the specs. My understanding is there are a lot of details that aren't so clear in the spec.
> > > Rick C. > > - Tesla referral code - https://ts.la/richard11209 >
On Monday, February 4, 2019 at 11:59:45 AM UTC+5:30, Swapnil Patil wrote:
> Hello folks, > > Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? > > I don't want to connect any Hard or Soft core processor. > also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. > So how can it be done? > > It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks
Thanks for replies. I understand it's not easy to implement still i want to give a try. If you have any links or document of work done related to this please share. Rick C. could you tell more how one should start to implement this with cores? I also wanted to know more about these written cores. Hans is it possible we can get information about work that companies made you know about? Thanks.
On 04/02/2019 09:20, Swapnil Patil wrote:
> On Monday, February 4, 2019 at 11:59:45 AM UTC+5:30, Swapnil Patil wrote: >> Hello folks, >> >> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? >> >> I don't want to connect any Hard or Soft core processor. >> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. >> So how can it be done? >> >> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks > > > Thanks for replies. I understand it's not easy to implement still i want to give a try. If you have any links or document of work done related to this please share. > Rick C. could you tell more how one should start to implement this with cores? I also wanted to know more about these written cores. > Hans is it possible we can get information about work that companies made you know about?
Hi Swapnil, I don't think you will get any info out of these companies as it's their IP. Try google, there might be some technical papers on the subject. However, as suggested by others you are better of using a softcore. Check out opencores.org. Good luck, Hans www.ht-lab.com
> Thanks. >
On Monday, February 4, 2019 at 3:40:42 AM UTC-5, HT-Lab wrote:
> On 04/02/2019 06:37, gnuarm.deletethisbit@gmail.com wrote: > > On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote: > >> Hello folks, > >> > >> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? > >> > >> I don't want to connect any Hard or Soft core processor. > >> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. > >> So how can it be done? > >> > >> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks > > > > > > You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. > > > > So it is doable, but since there is no reason to do it, no one has... yet. > > sure they have, I know of 2 companies just in the UK who have done this, > 4links (since 2003) are Argon.
I found 4links. Not sure if Argon is supposed to be another company or not. I guess I'm not sure what you mean when you say, "2 companies"... "have done this". What exactly do you mean by "this"? Rick C. + Tesla referral code - https://ts.la/richard11209
On 04/02/2019 14:35, gnuarm.deletethisbit@gmail.com wrote:
> On Monday, February 4, 2019 at 3:40:42 AM UTC-5, HT-Lab wrote: >> On 04/02/2019 06:37, gnuarm.deletethisbit@gmail.com wrote: >>> On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote: >>>> Hello folks, >>>> >>>> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? >>>> >>>> I don't want to connect any Hard or Soft core processor. >>>> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. >>>> So how can it be done? >>>> >>>> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks >>> >>> >>> You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. >>> >>> So it is doable, but since there is no reason to do it, no one has... yet. >> >> sure they have, I know of 2 companies just in the UK who have done this, >> 4links (since 2003) are Argon. > > I found 4links. Not sure if Argon is supposed to be another company or not. > > I guess I'm not sure what you mean when you say, "2 companies"... "have done this". What exactly do you mean by "this"?
I meant to write 4links and Argon. These companies have implemented a TCP/IP stack in hardware. Hans www.ht-lab.com
> > > Rick C. > > + Tesla referral code - https://ts.la/richard11209 >
On Monday, February 4, 2019 at 10:02:34 AM UTC-5, HT-Lab wrote:
> On 04/02/2019 14:35, gnuarm.deletethisbit@gmail.com wrote: > > On Monday, February 4, 2019 at 3:40:42 AM UTC-5, HT-Lab wrote: > >> On 04/02/2019 06:37, gnuarm.deletethisbit@gmail.com wrote: > >>> On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote: > >>>> Hello folks, > >>>> > >>>> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? > >>>> > >>>> I don't want to connect any Hard or Soft core processor. > >>>> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. > >>>> So how can it be done? > >>>> > >>>> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks > >>> > >>> > >>> You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. > >>> > >>> So it is doable, but since there is no reason to do it, no one has... yet. > >> > >> sure they have, I know of 2 companies just in the UK who have done this, > >> 4links (since 2003) are Argon. > > > > I found 4links. Not sure if Argon is supposed to be another company or not. > > > > I guess I'm not sure what you mean when you say, "2 companies"... "have done this". What exactly do you mean by "this"? > > I meant to write 4links and Argon. These companies have implemented a > TCP/IP stack in hardware.
I didn't find a company Argon, but maybe now that I know they are in the UK they might be easier to find. Tough name to search for. How do you know they've implemented a TCP/IP stack in hardware? Have you used it? I didn't see anything on the 4links web site. They seem to be big on tools for working with SpaceWire. Rick C. -- Tesla referral code - https://ts.la/richard11209
On 04/02/2019 15:28, gnuarm.deletethisbit@gmail.com wrote:
> On Monday, February 4, 2019 at 10:02:34 AM UTC-5, HT-Lab wrote: >> On 04/02/2019 14:35, gnuarm.deletethisbit@gmail.com wrote: >>> On Monday, February 4, 2019 at 3:40:42 AM UTC-5, HT-Lab wrote: >>>> On 04/02/2019 06:37, gnuarm.deletethisbit@gmail.com wrote: >>>>> On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote: >>>>>> Hello folks, >>>>>> >>>>>> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? >>>>>> >>>>>> I don't want to connect any Hard or Soft core processor. >>>>>> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. >>>>>> So how can it be done? >>>>>> >>>>>> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks >>>>> >>>>> >>>>> You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. >>>>> >>>>> So it is doable, but since there is no reason to do it, no one has... yet. >>>> >>>> sure they have, I know of 2 companies just in the UK who have done this, >>>> 4links (since 2003) are Argon. >>> >>> I found 4links. Not sure if Argon is supposed to be another company or not. >>> >>> I guess I'm not sure what you mean when you say, "2 companies"... "have done this". What exactly do you mean by "this"? >> >> I meant to write 4links and Argon. These companies have implemented a >> TCP/IP stack in hardware. > > I didn't find a company Argon, but maybe now that I know they are in the UK they might be easier to find. Tough name to search for. > > How do you know they've implemented a TCP/IP stack in hardware? Have you used it? I didn't see anything on the 4links web site. They seem to be big on tools for working with SpaceWire.
https://www.electronicsweekly.com/news/archived/resources-archived/uk-company-creates-hardware-tcpip-stack-that-runs-in-2003-04/ Hans. www.ht-lab.com
> > > Rick C. > > -- Tesla referral code - https://ts.la/richard11209 >
On Monday, February 4, 2019 at 10:55:55 AM UTC-5, HT-Lab wrote:
> On 04/02/2019 15:28, gnuarm.deletethisbit@gmail.com wrote: > > On Monday, February 4, 2019 at 10:02:34 AM UTC-5, HT-Lab wrote: > >> On 04/02/2019 14:35, gnuarm.deletethisbit@gmail.com wrote: > >>> On Monday, February 4, 2019 at 3:40:42 AM UTC-5, HT-Lab wrote: > >>>> On 04/02/2019 06:37, gnuarm.deletethisbit@gmail.com wrote: > >>>>> On Monday, February 4, 2019 at 1:29:45 AM UTC-5, Swapnil Patil wrote: > >>>>>> Hello folks, > >>>>>> > >>>>>> Let's say I have Spartan 6 board only and i wanted to implement Ethernet communication.So how can it be done? > >>>>>> > >>>>>> I don't want to connect any Hard or Soft core processor. > >>>>>> also I have looked into WIZnet W5300 Ethernet controller interfacing to spartan 6, but I don't want to connect any such controller just spartan 6. > >>>>>> So how can it be done? > >>>>>> > >>>>>> It is not necessary to use spartan 6 board only.If it possible to workout with any another boards I would really like to know. Thanks > >>>>> > >>>>> > >>>>> You can construct an Ethernet interface easily enough. I know cores have been written for that. What is hard is implementing the IP stack. Even on a processor this is a lot of work. Because there are a lot of steps involved and each step is not time critical, it makes much more sense to implement the logic sequentially rather than in FPGA fabric. Even if implemented in the fabric, it will consist of many state machines with lots of timers and counters. > >>>>> > >>>>> So it is doable, but since there is no reason to do it, no one has... yet. > >>>> > >>>> sure they have, I know of 2 companies just in the UK who have done this, > >>>> 4links (since 2003) are Argon. > >>> > >>> I found 4links. Not sure if Argon is supposed to be another company or not. > >>> > >>> I guess I'm not sure what you mean when you say, "2 companies"... "have done this". What exactly do you mean by "this"? > >> > >> I meant to write 4links and Argon. These companies have implemented a > >> TCP/IP stack in hardware. > > > > I didn't find a company Argon, but maybe now that I know they are in the UK they might be easier to find. Tough name to search for. > > > > How do you know they've implemented a TCP/IP stack in hardware? Have you used it? I didn't see anything on the 4links web site. They seem to be big on tools for working with SpaceWire. > > https://www.electronicsweekly.com/news/archived/resources-archived/uk-company-creates-hardware-tcpip-stack-that-runs-in-2003-04/
I'm surprised, but not amazed. They said it took up about 2500 FFs and 5000 4LUTs which is also not surprising. I guess the question is "why?" They say it can be easily verified and "should be more secure than software". Maybe I'm confused. I thought VHDL *was* software? I noticed they instantiated the design for a Virtex II fpga. That is a *very* old chip. I wonder if their design has actually sold? I suppose it's not such a far fetched thing once I see the numbers for size. I expect a logic based stack can be faster than software if you are willing to provide the gates. I wonder if they have ways of reusing the same hardware for multiple tasks while tasks are waiting for timeouts or I/O? While you can get good throughput with hardware, it can be more difficult to handle a lot of different connections. Rick C. -+ Tesla referral code - https://ts.la/richard11209