Yes metastability is important when crossing clock domains, but more often the problem isn't metastability but race conditions. If you have more than one signal, such as a count, crossing a clock domain, sometimes you get the value with some bits before and some after the clock transition.
Metastability problems occur at higher clock frequencies, race conditions crossing clock domains at any frequency. I would put this along with metastability, as both happen when crossing clock domains. This is why Gray code counters are used with FIFOs.
PRBS: Pseudo random bit sequence can be very useful for generating bit stream that could be used for testing data path or generate quasi white noise. These same generators can be use to generate cyclic redundancy code and to verify CRC compliance of or received data packet.
@Kevin Nielson thanks for the advice. I assumed the shape was the real kicker but wasn't sure I wanted to mess with accuracy until I knew for sure. That seems like a viable way to get the area down. It's important that whatever I do is recreatable to a similiar accuracy using the FANN C library, as that's what I use to train. Shouldn't be hard to spot the tanh portion and switch it to this same function. Just so my offline results more closely match the FPGA's / determine a good weight set. Much appreciated.
I would guess that for a perceptron you don't need high accuracy; it's more the shape of the curve that counts rather than it being an exact tanh value. You might be able to have a small LUT and do a low-precision linear interpolation (aka 1st-order Taylor). Tanh is fairly linear through the middle region so mabye you could use a constant multiplier for that region, which might be as simple as a bit shift.