Let us say I want to reverse engineer a PCIe-based FPGA device. Can I read or extract the IP core or any firmware in the computer's RAM or by trying to communicate with the device in some way?
The firmware for these devices is typically not directly connected to the computer, and the FPGA reads the data itself upon startup through a dedicated connection not accessible to anything else. There would be no need to connect the memory chips to the computer, as it would add unnecessary complexity to the device.
The device may implement functions that let you read and write memory (e.g. to reflash the firmware) but often they don't implement read functions as it would make reverse engineering the firmware easier, and isn't needed for the device to function. Plenty of devices still do however, so you can back up the firmware before reflashing it.
FPGAs often have dedicated memory chips connected to them, so there's a good chance you could just physically attach an EEPROM reader to that chip and dump the data as you would for any other standard flash memory chip.