[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pci] Clock Domain Issues
Has anyone been successful in running the PCI core with the PCI side
running at one clock and the wishbone running off another? I have tried
running the PCI side at 33MHz and the wishbone side at various
frequencies ranging from 6MHz to 60MHz, and I'm running into problems.
I'm only testing the PCI target right now (as a guest in a PC system),
and I'm using the OpenCore DMA register file as a target. (I have also
tried my own register as a target) I've brought some of the wishbone
signals (including cyc, ack, we, stb...) out so I can scope them. The
tests I have tried include:
1) Writing single words
2) reading single words
3) writing bursts of 2 words
4) writing bursts in the pattern 1-2-1
I'm having problems with the PCI bridge generating improper wishbone
accesses and even hanging the PC! This is being implemented on a
Xilinx Virtex2 FPGA in a PC running linux.
Some of the symptoms include:
1) The OpenCore PCI Bridge will generate extra wishbone
transactions. eg. a PCI write of 4 words will sometimes
work properly and sometimes generate 5 or 6 word writes
on the wishbone bus.
2) The bridge will enter a state where NO transactions from
the PCI side will even make it across to the wishbone bus,
and the transactions eventually time out
3) The bridge will hang, such that wishbone transactions are
CONSTANTLY being initiated and no finishing (despite the
fact that they are being ACKed repeatedly)
4) The bridge enters a state where it ends EVERY attempted
transaction with a PCI STOPn and never asserts TRDYn.
This never allows the transaction to succeed. The PC
continuously retries until a watchdog kicks, and it reboots.
If I run the wishbone side at the PCI_CLK, this all seems to go away. It
would seem there is a problem with the clock domain crossing. Can
anyone provide any insight?
Thanks,
Dave Kroetsch
dkroetsch@videolocus.com
--
To unsubscribe from pci mailing list please visit http://www.opencores.org/mailinglists.shtml