PCI bus probe/monitor/analyzer: which 74xxx interface chips?

  • Thread starter Thread starter JJ
  • Start date Start date
J

JJ

Hi!
I'd like to make a "monitor" for the PCI bus, on a card.
On the same card, however, there will also be a FPGA chip
used as a PCI controller.
The FPGA won't always be active, but I want to monitor the
PCI bus on that card all the time.

What family of 74xxx chips should I use? My best guess for
now is the AHC family. Am I off track?
Will it require too much input current (unlikey, I think)
that it will violate the PCI specs, also considering the
additional presence of the (Altera Cyclone) FPGA?

I'm thinking about using 74AHC573 chips to buffer the AD
lines, and the various PCI bus control lines.

Please do not tell me to use a PLX, AMCC or any other
expensive chip for the monitor. I have to keep the costs
down. Using the FPGA for the monitor is also out of the
possibilities. Will 74AHCxxx chips work well? If not,
what other family should I use, which is fast enough but
doesn't load the PCI bus too much?

The card/PCB is pretty small, no line will be longer than
a couple of inches max.

Thanks!
John
 
The design of a PCI bus analyzer is not trivial. Do you have any electrical
design background? Do you have a copy of the PCI design specification?
Maximum current and electrical load specifications are all well-defined in
the spec, as are required trace lenths for proper PCI operation. You
mention the 74AHC573 component which is simply a transparent latch. Are you
interested in capturing the signals on the PCI bus at one instance of time
or do you want to capture a series of multiple transactions? If so, you're
going to need memory on the card to capture the transactions, as well as
non-volatile memory to store your FPGA configuration. You'll also need some
on-board intelligence (perhaps implemented in the FPGA) to detect the
various transaction types on the bus and control the writes to the
transaction buffer. Once you've made a capture and have data stored, how do
you propose to see that data? Do you plan to read the data from your card
over the PCI bus via the host computer? If so, your card will have to act
as a PCI target, responding to configuration reads/writes and BAR memory
accesses. This means you either have to design your own PCI target
interface or buy a core for implementation in the FPGA. You can buy PCI
cores from the FPGA vendor of your choice, but they cost many thousands of
dollars. Aside from some crippled freebee versions of FPGA design tools
offered by the various vendors, they are extremely costly as well. Do you
have access to FPGA design tools and knowledge of a hardware description
language such as Verilog or VHDL (typically how modern FPGAs are designed)?

Forgive me if you've thought of these issues, I just don't know what your
design experience/background is. In my opinion, the scope of this project
is beyond that of the typical technical hobbyist. FPGA devices and tools
are fairly expensive for the individual's budget. Perhaps a more
cost-effective implementation would be an off-the-shelf PCI interface chip
such as PLX or AMCC (which you could perhaps get a free sample of) combined
with a low-cost 8-bit microcontroller. Off-the-shelf PCI interface chips
are typically cheaper than most current FPGAs, so I'm not sure where you're
getting your FPGA from. Of course, use of a microcontroller would require
some knowledge of a programming language, most likely C, and some method of
programming the device.

By the way, there are cards that perform the functions you're talking about.
Take a look at VMETRO's line of PCI bus analyzers as a reference. I use
these regularly and they are invaluable in debugging PCI designs.

Boff
 
Back
Top