cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Observer
5,371 Views
Registered: ‎11-11-2009

Ceil function using System generator 9.2 ??

hi experts

Is there any block or logic to implement Ceil function using system generator blocks.

I am trying using Scale block. Shall i proceed exploring it or there are any easy logic is there to implement Ceil function using Xilinx system generator 9.2i.

regards

selvam

1 Solution

Accepted Solutions
5,802 Views
Registered: ‎08-20-2007
5 Replies
5,366 Views
Registered: ‎08-20-2007

If I understand right your logic, then ceiling is the same as flooring + 1. So far I remember flooring of two’s complement numbers is done by truncating the fraction part, both for positive and negative. At least it works for me.

So basically for flooring you don't need any logic, if you use "Convert" block with options Truncate and Wrap and binary point 0.

Then add 1 to result for ceiling.

Xilinx Employee
5,358 Views
Registered: ‎11-28-2007

To make it complete, you will need to test if the input is already an integer as floor and ceil of an integer have the same result.

syoma wrote:

If I understand right your logic, then ceiling is the same as flooring + 1. So far I remember flooring of two’s complement numbers is done by truncating the fraction part, both for positive and negative. At least it works for me.

So basically for flooring you don't need any logic, if you use "Convert" block with options Truncate and Wrap and binary point 0.

Then add 1 to result for ceiling.

Cheers,
Jim
5,803 Views
Registered: ‎08-20-2007
Observer
5,329 Views
Registered: ‎11-11-2009
Explorer
2,759 Views
Registered: ‎11-03-2013

You can use this function for ceil, if your calculation is CEIL(Y/2) :

```function integer ceil_of_half (integer x);
begin
if (x & 1)
ceil_of_half = x/2 + 1;
else
ceil_of_half = x/2;
end
endfunction

x = ceil_of_half(Z);```