Can any one of the Base Address Registers (BAR0, BAR1, BAR2) be used as I/O or memory space?
Yes -- for LogiCORE PCI, any BAR may be used as I/O or memory space.
However, some BIOSs may expect the first BAR to be in a specific location, and may require BAR0 to be used at minimum. In this case, BAR0 must be used before using BAR1 or BAR2. This is true for any standard BIOS maker.