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

Subversion Repositories t6507lp

[/] [t6507lp/] [trunk/] [fv/] [alu_input.e] - Blame information for rev 245

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

Line No. Rev Author Line
1 130 creep
alu_input.e
2
<'
3 132 creep
import alu_components.e;
4 182 creep
type alu_input_t: [ENABLED_VALID, DISABLED_VALID, RESET, ENABLED_RAND, DISABLED_RAND];
5
type alu_test_type: [REGULAR, RAND];
6 130 creep
 
7
struct alu_input_s {
8
        input_kind : alu_input_t;
9 182 creep
        test_kind : alu_test_type;
10 130 creep
        reset_n: bool;
11
        alu_enable: bool;
12 132 creep
        alu_opcode: valid_opcodes;
13 130 creep
        alu_a: byte;
14
 
15 233 creep
        keep test_kind == REGULAR;
16 182 creep
 
17
        when REGULAR'test_kind alu_input_s {
18
                keep soft input_kind == select {
19
                        45: ENABLED_VALID;
20
                        45: DISABLED_VALID;
21
                        10: RESET;
22
                };
23 130 creep
        };
24
 
25
        when ENABLED_VALID'input_kind alu_input_s {
26
                keep reset_n == TRUE; // remember this is active low
27
                keep alu_enable == TRUE;
28
                keep alu_a in [0..255];
29
        };
30 143 creep
 
31 130 creep
        when DISABLED_VALID'input_kind alu_input_s {
32
                keep reset_n == TRUE; // remember this is active low
33
                keep alu_enable == FALSE;
34
                keep alu_a in [0..255];
35
        };
36
 
37 143 creep
        when RESET'input_kind alu_input_s {
38
                keep reset_n == FALSE; // remember this is active low
39 182 creep
                keep soft alu_enable == select {
40
                        50: FALSE;
41
                        50: TRUE;
42
                };
43 143 creep
                keep alu_a in [0..255];
44
                //keep alu_opcode in [0..255];
45
        };
46
 
47 130 creep
        event T1_cover_event;
48
        cover T1_cover_event is {
49 185 creep
                item input_kind using no_collect=TRUE, ignore = (input_kind == ENABLED_RAND || input_kind == DISABLED_RAND);
50 131 creep
                item alu_opcode using num_of_buckets=256, radix=HEX, no_collect=TRUE;
51 130 creep
                cross input_kind, alu_opcode;
52
                //item alu_a;
53
        };
54 182 creep
};
55 130 creep
 
56 182 creep
 
57
extend alu_input_s {
58
        rand_op : byte;
59
 
60
        when RAND'test_kind alu_input_s {
61
                keep soft input_kind == select {
62
                        45: ENABLED_RAND;
63
                        45: DISABLED_RAND;
64
                        10: RESET;
65
                };
66
        };
67
 
68
        when ENABLED_RAND'input_kind alu_input_s {
69
                keep reset_n == TRUE; // remember this is active low
70
                keep alu_enable == TRUE;
71
                keep alu_a in [0..255];
72
                keep rand_op in [0..255];
73
        };
74
 
75
        when DISABLED_RAND'input_kind alu_input_s {
76
                keep reset_n == TRUE; // remember this is active low
77 185 creep
                keep alu_enable == FALSE;
78 182 creep
                keep alu_a in [0..255];
79
                keep rand_op in [0..255];
80
        };
81
 
82
        event T2_cover_event;
83
        cover T2_cover_event is {
84
                item alu_enable using no_collect=TRUE;
85
                item rand_op using num_of_buckets=256, radix=HEX, no_collect=TRUE;
86
                cross alu_enable, rand_op;
87
        };
88 130 creep
};
89
'>
90
 

powered by: WebSVN 2.1.0

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