Look at any PCIe endpoint controller or IP (FPGA) for all the functionality you need without having to implement a driver. For example the [MCS9901CV-CC][1] is a single lane multifunction PCI express to I/O controller. It supports two serial ports, one parallel port and six GPIO's. This provides you with a simple parallel port interface, which is probably the simplest implementation you could get. You can also use the IEE-1284 prtocol to implement Byte, Nibble or extended I/O features. There are lots of endpoint controllers with this sort of functionality, or IP if you want to implement in an FPGA (horrendously expensive for this simple functionality). You DON'T need PCIe bridge functionality and it would be idiotic to put this functionality in place to get simple I/O functions such as you need. I'd suggest you buy almost any simple PCIe single lane parallel port interface and begin your learning from whatever chip is onboard. [1]: https://www.asix.com.tw/products.php?op=pItemdetail&PItemID=120;74;110&PLine=74