Forum Discussion
Altera_Forum
Honored Contributor
14 years agoFmax
:oops: Hi, In my architecture I need to do the following formula: " ("conv_integer (byte) * 10000)/127 + 10000 I'm working with 10MHz clock. The code Fmax is: 14.5MHz ("TimeQueas...
Altera_Forum
Honored Contributor
14 years ago --- Quote Start --- :oops: Hi, In my architecture I need to do the following formula: " ("conv_integer (byte) * 10000)/127 + 10000 I'm working with 10MHz clock. The code Fmax is: 14.5MHz ("TimeQueast" is all blue after clock constrain to 10MHz) Is it going to be enough for the calculation to be quick for using the date immediately inside the Process or must I use pipeline stages and divider IP block instead of "/" operator? in simulation is works just fine. Thanks, Idan --- Quote End --- RTL simulation has no knowledge of 'delays' instead of dividing by a number, multiply by a scaled reciprocal of that number. You are almost halfway there your formula
(a * 10000) / 127 + 10000 can be changed to ( a * 79) + 10000 if you want more precision you can scale it up further like e.g. (a * 20157) / 256 + 10000 As the 256 is a power of 2 the compiler will graciously implement a right shift of 8 Result: no divider, less LEs used and maximum speed ...