REGISTER MEMORY MAP ADDRESSING

The register map address consists of the following:

• cPCI/PCIe BAR or Base Address for the Board • Module Slot Base Address • Function Offset Address

Board Base Address

The table below lists the BAR used for access to the motherboard and module registers. The second BAR is used internally for motherboard and module firmware updates. The other cPCI/PCIe BARs not listed are not used.

NAI BoardsDevice IDBusMotherboard and Module Register AccessMotherboard and Module Firmware Updates
Slave Boards
75G50x7581cPCIBAR 0 Size: Module Dependent (minimum 64K Bytes)BAR 1 Size: 1M Bytes
79G50x7981PCIeBAR 1 Size: Module Dependent (minimum 64K Bytes)BAR 2 Size: 1M Bytes
68G5/68G5P/68DT1/68CB60x6881PCIe
68SDP0x6805PCIe
67G60x6781PCIe
64G5N/AVMESlave Window 1 Size: 8M Bytes Addressing: Geographical Addressing or DIP Switches on board.Slave Window 2 Size: 8M Bytes
74SD50x7405PMC64K BytesN/A
Controller/Master Boards
75G5/75ARM10x7581cPCIBAR 0 Size: Module Dependent (minimum 64K bytes)BAR 1 Size: 1M bytes
75INT20x7584cPCIBAR 1 Size: Module Dependent (minimum 64K bytes)BAR 2 Size: 1M Bytes
75PPC10x7584cPCI
68ARM10x6884PCIe
68ARM20x6886PCIe
68PPC20x6884PCIe
67PPC20x6784PCIe
64ARM1N/AVMESlave Window 1 Size: 8M BytesSlave Window 2 Size: 8M Bytes
NANO
NIU1AN/AN/ADirect Memory AccessInternal Direct Memory Access
NIU2AN/AN/A

Module Slot and Function Addresses

The memory map for the modules are dependent on the types of modules on the board and the order in which the modules are installed on the board as well as the firmware installed on the motherboard. The function modules are enumerated allowing for dynamic memory space allocation and therefore the “start” address of the module function register area is factory pre-defined (and read from) the Module Address register. Refer to Figure 1 for an example.

Motherboard Registers:

Read/Write access to the motherboard registers starts with the base address for the board and then the motherboard base offset address.

For example, to address Module Slot 1 Start Address register (i.e. register address = 0x0400):

  1. Start with the base address for the board.
  2. Add the motherbase register address offset.
Motherboard Address =Base Address
Motherboard Address Offset
= 0x0000 0400
0x0000 0000 + 0x0400

Module Registers:

Read/Write access to the Function module’s registers start with the base address of the board. Add the “content” for the Module Start Address and then, add the specific module function register offset.

For example, to address an appropriate/specific function module with a register offset:

  1. Start with the base address for the board.
  2. Add the value (contents) from the module base address offset register (contents/value of Motherboard Memory register for Module 1 (i.e., @ 0x0400) = 0x4000.
  3. Then add the specific module function Register Offset of interest (i.e., A/D Reading Ch 1 @ 0x1000)
(Function Specific) Address =Base Address +Module Base Address Offset +Function Register Offset= 0x0000 5000
0x0000 00000x40000x1000