summaryrefslogtreecommitdiff
blob: 107893889aa04618bde27bcbddabedd32b545eb0 (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
(seek
   (
      (wfm waveform)
   )
   (and
      ;; If the name of the waveform does not end in "_n",
      (not (string_matches [identifier [is_waveform_of wfm]] ".*_n"))
      ;; and there is a process
      (exists p1 process
         ;; that.
         (CTL_verifies p1
            ;; at some point,
            (EF
               (and
                  ;; has a condition which tests the the signal against '0'.
                  (kind "if")
                  (is_read_structure "(???)")
                  (is_read_element "0" "=")
                  (or
                     (and
                        (is_read_element "1" "'0'")
                        (is_read_element "2" wfm)
                     )
                     (and
                        (is_read_element "1" wfm)
                        (is_read_element "2" "'0'")
                     )
                  )
               )
            )
         )
      )
      ;; and that signal is never tested against '1'.
      (not
         (exists p2 process
            (CTL_verifies p2
               (EF
                  (and
                     (kind "if")
                     (is_read_structure "(???)")
                     (is_read_element "0" "=")
                     (or
                        (and
                           (is_read_element "1" "'1'")
                           (is_read_element "2" wfm)
                        )
                        (and
                           (is_read_element "1" wfm)
                           (is_read_element "2" "'1'")
                        )
                     )
                  )
               )
            )
         )
      )
   )
   ;; Then it is misnamed.
)