cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Highlighted
Observer
5,105 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
Highlighted
5,536 Views
Registered: ‎08-20-2007
5 Replies
Highlighted
5,100 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.

Highlighted
Xilinx Employee
5,092 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
Highlighted
5,537 Views
Registered: ‎08-20-2007
Highlighted
Observer
5,063 Views
Registered: ‎11-11-2009
Highlighted
Explorer
2,493 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);```