Thanks for the replies everyone. The timing violations (as reported) were primarily in the division component, and they were register to register violations due to the ripple effect of the subtraction portion (as best as I could tell). There were no reported violations in the abs() function. The code is already pipelined in that takes a clock per bit for the division (subtraction) until complete. Putting the fast Brent-Kung subtractor within the division routine should take care of the register to register violations. But the abs() function, due to its nature, cannot be pipelined (least not be me) since it is a predefined function. If it's inherently "slow" due to a ripple carry add internally, then that's just what it does.
I've been working on the project for a long time, changing this, that, etc trying for improvement, and I just want to take my best shot this time. I was just wondering if anyone had experienced a particular problem (with speed) for the abs() function.
I am going to roll my own abs() function equivalence with a sign check, 1's complement, then add 1 with my fast adder if needed. This WILL be pipelined, and should be as fast as I can possibly make it (clock to clock, but not absolute time).
Thanks again for the replies. I am looking for expert opinions. Also, expect another post from me on a timing related issue.