Re: PCI bridge or custom FPGA to build a PCI Master + SDRAM
PCI and PCI express are simply BUS architecture. Both of them can support add-in cards, which can either be master, target, or both.
In a PCI subsystem, any add-in cards can perform requests to the PCI bus. So, you can have the main processor who access a card, or memory, and in turn, your own card can also access the system main memory, transparently, without disturbing the main processor. The ability for your board to access other interfaces over the PCI bus is 'master'. If your board only get access from the main CPU or another master on the PCI bus, then you probably only need a 'target' PCI interface.
Example of target and master boards are:
target:
- many video cards which have on-board memory (though, those are usually AGP, AGP is similar to PCI. Some cards are PCI).
- Most Ethernet controlers
- Many sound cards
target AND master:
- Video cards which rely on the main system memory (which use what that call 'shared memory').
- All the cards that access the main system memory on their own.
So, if your card doesn't need to generate their own transactions on the system PCI bus, they you probably don't need a master PCI interface.
Note that both master and targets can still generate interrupt requests.
If you look at opencores.org, there is a PCI core (opensource). I havn't tried it yet though. The PCI act as a bridge between PCI and an opensource bus standard called Wishbone. Wishbone is pretty straightforward. That core is both a target and master, though you can use what you want.