summaryrefslogtreecommitdiff
blob: 39a8748eb2edd8cabe88d64b5ed9293c738c9bc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Structural Level ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
add_type entity
add_type port
add_type port_mode
add_type generic
add_type architecture
add_type signal
add_type process
add_type file
add_type component
add_type waveform
add_type string
add_type type
add_type type_kind
add_type signal_kind

;; Entity
add_predicate is_in_file(entity, file)
add_predicate has_begin(entity)
add_predicate has_visible_flag(entity)
add_predicate end_has_reserved_id(entity)
add_predicate end_has_identifier(entity)
add_predicate is_simulation_scenario(entity)
add_function line(entity, string)
add_function column(entity, string)
add_function identifier(entity, string)

;; Port
add_predicate is_port_of(port, entity)
add_predicate has_disconnect_flag(port)
add_predicate has_mode(port, string)
add_predicate has_class(port)
add_predicate is_ref(port)
add_predicate has_active_flag(port)
add_predicate has_identifier_list(port)
add_predicate has_visible_flag(port)
add_predicate has_after_drivers_flag(port)
add_predicate has_use_flag(port)
add_predicate has_open_flag(port)
add_predicate has_guarded_signal_flag(port)
add_predicate is_of_kind(port, string)
add_function line(port, string)
add_function column(port, string)
add_function identifier(port, string)

add_predicate is_a_clock(port)
add_predicate is_a_reset(port)

;; Generic
add_predicate is_generic_of(generic, entity)
add_predicate has_class(generic)
add_predicate is_ref(generic)
add_predicate has_identifier_list(generic)
add_predicate has_visible_flag(generic)
add_predicate has_after_drivers_flag(generic)
add_predicate is_of_type(generic, type)
add_function line(generic, string)
add_function column(generic, string)
add_function identifier(generic, string)

;; Architecture
add_predicate is_in_file(architecture, file)
add_predicate is_architecture_of(architecture, entity)
add_predicate has_foreign_flag(architecture)
add_predicate has_visible_flag(architecture)
add_predicate is_within_flag(architecture)
add_predicate end_has_reserved_id(architecture)
add_predicate end_has_identifier(architecture)
add_function line(architecture, string)
add_function column(architecture, string)
add_function identifier(architecture, string)

;; Signal
add_predicate belongs_to_architecture(signal, architecture)
add_predicate has_disconnect_flag(signal)
add_predicate is_ref(signal)
add_predicate has_active_flag(signal)
add_predicate has_identifier_list(signal)
add_predicate has_visible_flag(signal)
add_predicate has_after_drivers(signal)
add_predicate has_use_flag(signal)
add_predicate has_open_flag(signal)
add_predicate has_guarded_flag(signal)
add_predicate is_of_kind(signal, string)
add_predicate is_of_type(signal, type)
add_function line(signal, string)
add_function column(signal, string)
add_function identifier(signal, string)

;; Process
add_predicate belongs_to_architecture(process, architecture)
add_predicate has_seen_flag(process)
add_predicate end_has_postboned(process)
add_predicate has_postboned_flag(process)
add_predicate is_ref(process)
add_predicate has_passive_flag(process)
add_predicate has_visible_flag(process)
add_predicate is_within_flag(process)
add_predicate has_label(process)
add_predicate has_is(process)
add_predicate end_has_reserved_id(process)
add_predicate end_has_identifier(process)
add_predicate is_explicit_process(process)
add_function line(process, string)
add_function column(process, string)
add_function label(process, string)

;; File
add_function filename(file, string)

;; Component
add_predicate is_component_of(component, entity)
add_predicate belongs_to_architecture(component, architecture)
add_predicate port_maps(component, waveform, port)
add_function line(component, string)
add_function column(component, string)
add_function label(component, string)

;; Waveform
add_predicate is_in_sensitivity_list(waveform, process)
add_predicate is_accessed_by(waveform, process)
add_predicate is_waveform_of(waveform, signal)
add_predicate is_waveform_of(waveform, port)
add_predicate is_waveform_of(waveform, generic)

;; String
add_predicate string_matches(string, string)
;; is_accessed_by's signature must match is_read_element and
;; is_written_element's
add_predicate is_accessed_by(string, process)

;; Type
add_predicate is_approved_type(type)
add_predicate is_of_kind(type, string)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Instances ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
add_type wfm_instance
add_type ps_instance

add_predicate is_wfm_instance_of(wfm_instance, waveform)
add_predicate is_visible_in(wfm_instance, entity)

add_predicate is_ps_instance_of(ps_instance, process)
add_predicate is_visible_in(ps_instance, entity)

add_predicate process_instance_maps(ps_instance, wfm_instance, waveform)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Control Flow Level ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
add_type node
add_type depth

add_predicate is_start_node(node, process)
add_predicate has_option(node, string)
add_predicate node_connect(node, node)

;;; To be removed soon.
add_predicate expr_writes(node, waveform)

add_predicate is_read_structure(node, string)
add_predicate is_read_element(node, string, waveform)
add_predicate is_read_element(node, string, string)
add_predicate is_terminal(node)

add_predicate is_lower_than(depth, depth)

add_function label(node, string)
add_function kind(node, string)
add_function depth(node, depth)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Control Flow Level (First Order Additions) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
add_type path

add_predicate is_path_of(path, node)
add_predicate contains_node(path, node)
add_predicate is_before(path, node, node)