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

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [software/] [leon3/] [multest.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
#include "testmod.h"
2
#ifdef LEON2
3
#include "leon2.h"
4
#endif
5
 
6
struct mulcase {
7
        int     fac1;
8
        int     fac2;
9
        int     res;
10
};
11
 
12
volatile struct mulcase mula[] = { { 2, 3, 6}, { 2, -3, -6}, { 0,  1, 0},
13
        { 0, -1, 0}, {  1, -1, -1}, { -1,  1, -1}, { -2,  3, -6},
14
        { -2, -3, 6}, {  0,  0, 9}};
15
 
16
int mulscctmp = 0xfffff000;
17
 
18
multest()
19
{
20
#ifdef LEON2
21
        struct l2regs *lr = (struct l2regs *) 0x80000000;
22
#endif
23
        int i = 0;
24
 
25
        report_subtest(MUL_TEST+(get_pid()<<4));
26
        if (mulscc_test() != 0x123) fail(1);
27
 
28
        /* skip test if multiplier disabled */
29
#ifdef LEON2
30
        if (!((lr->leonconf >> MUL_CONF_BIT) & 1)) return(0);
31
#else
32
        if (!((get_asr17() >> 8) & 1)) return(0);
33
#endif
34
 
35
        while (mula[i].res != 9) {
36
            if ((mula[i].fac1 * mula[i].fac2) - mula[i].res) fail(2);
37
            i++;
38
        }
39
        if (!mulpipe()) fail(3);
40
#ifdef LEON2
41
        if (!((lr->leonconf >> MAC_CONF_BIT) & 1)) return(0);
42
#else
43
        if (!((get_asr17() >> 9) & 1)) return(0);
44
#endif
45
        if (!macpipe()) fail(4);
46
        return(0);
47
}
48
 
49
int ddd[8] = {0,0,0,0,0,0,0,0};

powered by: WebSVN 2.1.0

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