You must provide a hardware write and hardware read function for the API software to call once it needs to access the hardware. The hardware write and read functions use address, data and a user specified context as arguments. The data is 32-bits wide and the address is 13-bits wide. The context can be used to differentiate multiple instances and thus allow the same functions to be used for multiple instances. You must map the API software to the 13-bit wide address space used by each BCAM instance to a hardware base address in both the hardware write and read functions. The BCAM is accessed through the API and the register space is fully abstracted and therefore not listed. You do not need to directly access the registers in the IP; the driver supplied with the IP interfaces to the hardware under the hood and therefore direct accesses are not required.