OpenCores
URL https://opencores.org/ocsvn/quark/quark/trunk

Subversion Repositories quark

[/] [quark/] [trunk/] [01_SysRequirements/] [03_InternalRequirements/] [01_MatlabAlgorithmDesign/] [DIV.m] - Blame information for rev 18

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 progman32
 
2
function [answer,zero] = DIV(dividend,divisor)
3
        denom = divisor;
4
        current = 1;
5
    answer = 0;
6
    zero = 0;
7
 
8
    if (divisor == 0)
9
        zero = 1;
10
        return;
11
    end
12
 
13
        % METHOD 1
14
    %while (dividend >= divisor)
15
    %    dividend = dividend - divisor;
16
    %    answer = answer + 1;
17
    %end
18
        %
19
 
20
        while (denom <= dividend)
21
                denom = fix(bitsll(denom, 1));
22
                current = fix(bitsll(current, 1));
23
        end
24
 
25
        denom = fix(bitsra(denom, 1));
26
        current = fix(bitsra(current, 1));
27
 
28
        while (current~=0)
29
                if (dividend >= denom)
30
                        dividend = int16(dividend - denom);
31
                        answer = bitor(answer, current);
32
        end
33
 
34
                current = fix(bitsra(current, 1));
35
                denom = fix(bitsra(denom, 1));
36
    end
37
end

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.