FPGARelated.com
Forums

embedded PCI

Started by colin August 17, 2004
I would like to embed a device that has a PCI inteface with an FPGA
(preferably a SPARTAN 3).

Two questions have arisen before I start

1) Many PCI based chips (including the one I want to use) can be
purchased as a PCI card to speed up development. I have had a good
google without success but does anyone know of an FPGA development
platform that includes a PCI card site, I could then develop the
firmware without designing a PCB.

2) I have no PCI experience but there seems to be a lot of talk about
meeting the irdy/trdy timings. Is it a lot easier in my scenario
because if I am not the master then I know that I am being addressed
(ie. I don't need a big address decoder) and if I am the master I just
need to write single words to the device so I can live with a big
performance hit.


Thanks in advance

Colin
colin wrote:
> I would like to embed a device that has a PCI inteface with an FPGA > (preferably a SPARTAN 3). > > Two questions have arisen before I start > > 1) Many PCI based chips (including the one I want to use) can be > purchased as a PCI card to speed up development. I have had a good > google without success but does anyone know of an FPGA development > platform that includes a PCI card site, I could then develop the > firmware without designing a PCB.
By PCI site, you mean a slot where you can put PCI cards or a PCI edge so that you can use it your FPGA board as a PCI device. Look at the avnet spartan 3 kit. I have it and it's real nice ;)
> 2) I have no PCI experience but there seems to be a lot of talk about > meeting the irdy/trdy timings. Is it a lot easier in my scenario > because if I am not the master then I know that I am being addressed > (ie. I don't need a big address decoder) and if I am the master I just > need to write single words to the device so I can live with a big > performance hit.
If you want to implement a PCI device that is not a PCI master then that should not be too hard. Implementing a PCI host bridge however is really more complex ... Look at opencore there is one IIRC. Sylvain
Sylvain Munaut <tnt_at_246tNt_dot_com@reducespam.com> wrote in message news:<4122353f$0$2518$ba620e4c@news.skynet.be>...
> colin wrote: > > I would like to embed a device that has a PCI inteface with an FPGA > > (preferably a SPARTAN 3). > > > > Two questions have arisen before I start > > > > 1) Many PCI based chips (including the one I want to use) can be > > purchased as a PCI card to speed up development. I have had a good > > google without success but does anyone know of an FPGA development > > platform that includes a PCI card site, I could then develop the > > firmware without designing a PCB. > > By PCI site, you mean a slot where you can put PCI cards or a PCI edge so > that you can use it your FPGA board as a PCI device. > > Look at the avnet spartan 3 kit. I have it and it's real nice ;) >
Err. You seem to have missed the point. I want to buy a PCI card with the silicon I want to use on it and plug it into an FPGA development board. The avnet card looks like just another FPGA based PCI card, I've googled and I've found many of them. My FPGA will be a high performance slave with just enough mastering to do the config cycles to the other chip (unfortunately the config registers reset to zeroe's else I wouldn't need to do this) and to set up the DMA's By the loud silence I assume the FPGA board I want doesn't exist.
colin wrote:
> Sylvain Munaut <tnt_at_246tNt_dot_com@reducespam.com> wrote in message news:<4122353f$0$2518$ba620e4c@news.skynet.be>... > >>colin wrote: >> >>>I would like to embed a device that has a PCI inteface with an FPGA >>>(preferably a SPARTAN 3). >>> >>>Two questions have arisen before I start >>> >>>1) Many PCI based chips (including the one I want to use) can be >>>purchased as a PCI card to speed up development. I have had a good >>>google without success but does anyone know of an FPGA development >>>platform that includes a PCI card site, I could then develop the >>>firmware without designing a PCB. >> >>By PCI site, you mean a slot where you can put PCI cards or a PCI edge so >>that you can use it your FPGA board as a PCI device. >> >>Look at the avnet spartan 3 kit. I have it and it's real nice ;) >> > > Err. You seem to have missed the point. I want to buy a PCI card with > the silicon I want to use on it and plug it into an FPGA development > board. The avnet card looks like just another FPGA based PCI card, > I've googled and I've found many of them. > My FPGA will be a high performance slave with just enough mastering to > do the config cycles to the other chip (unfortunately the config > registers reset to zeroe's else I wouldn't need to do this) and to set > up the DMA's > > By the loud silence I assume the FPGA board I want doesn't exist.
Look for a passive PCI backplane. I have one that came with a Intel dev board. Sylvain
Sylvain Munaut <tnt_at_246tNt_dot_com@reducespam.com> wrote in message news:<41235d89$0$338$ba620e4c@news.skynet.be>...
> colin wrote: > > Sylvain Munaut <tnt_at_246tNt_dot_com@reducespam.com> wrote in message news:<4122353f$0$2518$ba620e4c@news.skynet.be>... > > > >>colin wrote: > >> > >>>I would like to embed a device that has a PCI inteface with an FPGA > >>>(preferably a SPARTAN 3). > >>> > >>>Two questions have arisen before I start > >>> > >>>1) Many PCI based chips (including the one I want to use) can be > >>>purchased as a PCI card to speed up development. I have had a good > >>>google without success but does anyone know of an FPGA development > >>>platform that includes a PCI card site, I could then develop the > >>>firmware without designing a PCB. > >> > >>By PCI site, you mean a slot where you can put PCI cards or a PCI edge so > >>that you can use it your FPGA board as a PCI device. > >> > >>Look at the avnet spartan 3 kit. I have it and it's real nice ;) > >> > > > > Err. You seem to have missed the point. I want to buy a PCI card with > > the silicon I want to use on it and plug it into an FPGA development > > board. The avnet card looks like just another FPGA based PCI card, > > I've googled and I've found many of them. > > My FPGA will be a high performance slave with just enough mastering to > > do the config cycles to the other chip (unfortunately the config > > registers reset to zeroe's else I wouldn't need to do this) and to set > > up the DMA's > > > > By the loud silence I assume the FPGA board I want doesn't exist. > > Look for a passive PCI backplane. I have one that came with a Intel dev board. > > > Sylvain
Unfortunately a passive backplane is just that. I would need a card plugged into the "master" slot which provides the clock and arbiter. I think that I would also need to plug the fpga card into the master slot so that it can drive idsel but I'm on the limits of understanding at about this point (at the moment). Colin
>Unfortunately a passive backplane is just that. I would need a card >plugged into the "master" slot which provides the clock and arbiter. > >I think that I would also need to plug the fpga card into the master >slot so that it can drive idsel but I'm on the limits of understanding >at about this point (at the moment).
I think you could plug some normal "master" card into the master slot, say a PC. It will do the configuration setup work. Then just let it sit there. Now you can play with your FPGA card and whatever else you have installed. Your FPGA card can do PCI cycles to talk to other cards. -- The suespammers.org mail server is located in California. So are all my other mailboxes. Please do not send unsolicited bulk e-mail or unsolicited commercial e-mail to my suespammers.org address or any of my other addresses. These are my opinions, not necessarily my employer's. I hate spam.
hmurray@suespammers.org (Hal Murray) wrote in message news:<_sadnTQqu_1KsbvcRVn-iw@megapath.net>...
> > I think you could plug some normal "master" card into the master slot, > say a PC. It will do the configuration setup work. Then just let > it sit there. > > Now you can play with your FPGA card and whatever else you have > installed. Your FPGA card can do PCI cycles to talk to other cards.
I appreciate that this is so. However my PCI firmware now has to have config registers and my firmware has to go to somewhere (I have no knowledge of OS's) to find out where the other card is in the address map. There are many corners that can legitimately be cut in an embedded design. I have a device that HAPPENS to have a PCI bus that I want to connect directly to an FPGA. In the final design I can 1) Just do some writes to config registers in the other device. I know from the data sheets what a config read would get me so I won't do them. 2) As a slave I will get read and written to four locations. With complete control of the address map I can just decode AD31 and AD30. 3) I think I can do away with PAR and ignore the PERR signal but I need to check this. 4) The more that I read the more I think that I can even ignore most of IRDY and TRDY. As a master I need to set up DMA's by reading and writing registers which I think will allways be available, as a slave I might not be able to respond if my FIFOs are nearly full or empty and that is trivial. No one has moaned about spartan 3 availability for a while so hopefully I can get hold of one and throw together a PCB with a PCI site on it. Colin