11-02-2009 05:17 AM
I am having some problems using the PLB2PLB
bridge in EDK 9.2.04. I have created a customized peripheral on my own
with 2 input registers and 1 output register, among other stuff. It
works perfectly when I connect it in a PLB bus attached to a microblaze
processor. The problem comes when I connect it to a secondary PLB bus,
connected with the primary PLB by means of a PLB2PLB bridge. I connect
all the components in such a way that the master side of the bridge is
connected to the primary PLB and the slave side, to the secondary PLB;
which, in turn, is connected to the peripheral. In the "Adresses" tab,
I assign to the bridge 64KBof memory.
I perform 2 write operations and 1 read on the
registers. The problem is that only the first write works; and when I
try to do the second write, it doesn't work any more...
I have read here:
that the bridge actually doesn't work in the version 10.1 of the ISE
tools. Maybe it doesn't work also for EDK 9.2.04, so I have also tried
to include the newest version of the PLB bridge, included in EDK 11.1
(just copying the IP core that the installation includes to my local IP
repository, and including it), but still it doesn't work.
Any guess?? I don't know if I'm doing something wrong... On the other hand, my particular issue is that I need to use the 9.2.04 version of EDK necessarily because I'm using the "Early Access Partial Reconfiguration" tool as well.
Thanks in advance.Regards.
11-18-2009 09:15 AM
The first thing I would check is the C_RNG0_BASEADDR of the bridge. Make sure that it covers the address of the custom peripheral.
It would be better if you can elaborate a little bit on the issue. What did you mean by the second write doesn't work? How did you verify it, with ChipScope or something else?
11-23-2009 03:40 AM
The C_RNG0_BASEADDR of the bridge is exactly the same as the C_BASEADDR of my peripheral.
I have verified that the second write doesn't work by putting a xil_printf() below. Commenting the second write operation, the program finishes (and I can see the result of the xil_printf()). Otherwise, it doesn't execute the xil_printf(). I think that the system waits the second write to be completed, I mean, to receive some kind of acknowledge that never receives, as someone guesses in the link that I provided above.