The butterworth filter should work. I did not use it, we implemented a filter on the FPGA ourselves, but I can't share that code.
The butterworth filter seems to accept any FXP data type.
What do you need an arccos for?
Depending on the requirements and signal quality a much simpler approach might also work:
detect the rising edge through 0 for both sine waves, the time difference is basically the phase between them. For noisy signals the output might jitter quite a bit, so you might want to filter the signals before detecting the zero crossing. Of course if your sine waves have an offset this will make things a bit more complicated.