User's Manual
PMAC Dual-Ported RAM User Manual
Dual-Ported RAM Communications 5
Before choosing the DPRAM starting address, determine what memory space is available in the VME
system (so that PMAC’s DPRAM does not interfere with existing RAM or other devices on the VME bus).
Just like setting up the base address of PMAC VME, the starting address of DPRAM is done through
software, but in a somewhat different manner. The best way to describe how to set up DPRAM is to give
an example.
Note:
Most users will simply use the Configure|VME Communications window in the
PMAC Executive program to set the address for DPRAM. The following section
explains how to perform this setup without the Executive program.
Example:
Suppose a starting address of $1FC000 was selected for the DPRAM. Just as we did for the base address
of PMAC, it is best to rewrite this address in binary and label the address bits, starting with A0 as the
rightmost bit:
Address Bit
A31 A24 A23 A16 A15 A8 A7 A0
Binary
0000 0000 0001 1111 1100 0000 0000 0000
Hex
00 1F C0 00
Clearly, we have a value of $00 for address bits A31 - A24, $1F for address bits A23 - A16, $C0 for bits
A15 - A8 and $00 for bits A7 - A0. To tell PMAC where we want DPRAM to begin, we need to break up
this starting address into two parts:
1. The first part will represent the value address bits A23 through A20. This value will only be written
to PMAC once during the setup process and saved.
2. The second part will represent the value address bits A19 through A14. This value will need to be
written to PMAC each time it is powered up or reset.
If using 32-bit addressing, address bits A31 through A24 for the dual-ported RAM are determined by
PMAC’s memory location X:$0785, which is also used for the same address bits of the base address of the
mailbox registers.
First we have to write the value of address bits A23 through A20 into bits 7 through 4 (high order nibble)
of PMAC's memory location X:$078A, i.e. the left hex digit (most significant bits) will be the value of
address bits A23 - A20, and the other digit (right digit & least significant bits) will always be $0. In this
example, the value for address bits A23 - A20 would be $1, therefore we would write a value of $10 into
location X:$078A.
Now we have to determine the value of address bits A19 through A14. Every time PMAC is powered up
or reset (either with the hardware reset line or use of the $$$ command) we will need to write this value
into PMAC’s base address + $121 (remember, from our previous examples, PMAC’s base address is
$7FA000).
In this example, constructing a 6-bit hex number from bits A19 - A14 gives us a value of $3F:
Address Bits A19 A18 A17 A16 A15 A14
Binary
Hex
Therefore, we write $3F from the VME host computer (master) into VME bus location $7FA121 after
PMAC is powered up or reset.