Well my eventual goal is to implement FPGA in my production systems so it probably makes sense to keep that in mind as I begin my first forays. My philosophy with the C I've written for the system is to keep it all as portable as possible and perhaps have lost efficiency in doing so but the products are low-volume and the cost of a bigger/faster part is far less than the cost of rewriting platform specific code. I think I will carry on that methodology with FPGAs and then look toward performance gains with platform specific optimisations if my hands get really tied.