| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-01 15:58:25 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-01 15:58:25 +0200 | 
| commit | 3466690e0a13a145d8d1eef89eba3f962f9f6e2b (patch) | |
| tree | 92002b426a60b770ab3bbd784e326466bd28737a /data | |
| parent | dcc5284790f16566c4885f9e0fa3c6fb9577c11d (diff) | |
Adds test cases for the issue.
Diffstat (limited to 'data')
| -rw-r--r-- | data/property/simple_flip_flop.pro | 1 | ||||
| -rw-r--r-- | data/property/simple_flip_flop_instance.pro | 95 | ||||
| -rw-r--r-- | data/property/test-case/fast.pp (renamed from data/property/simple_flip_flop_instance.pp) | 0 | ||||
| -rw-r--r-- | data/property/test-case/fast.pro | 57 | ||||
| -rw-r--r-- | data/property/test-case/slow.pp | 6 | ||||
| -rw-r--r-- | data/property/test-case/slow.pro | 60 | 
6 files changed, 124 insertions, 95 deletions
| diff --git a/data/property/simple_flip_flop.pro b/data/property/simple_flip_flop.pro index e1621c1..b054c7f 100644 --- a/data/property/simple_flip_flop.pro +++ b/data/property/simple_flip_flop.pro @@ -5,6 +5,7 @@        (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS)     )     (and +      (not (eq clk reg))        (is_explicit_process ps)        (is_in_sensitivity_list clk ps)        (CTL_verifies ps diff --git a/data/property/simple_flip_flop_instance.pro b/data/property/simple_flip_flop_instance.pro deleted file mode 100644 index a3881aa..0000000 --- a/data/property/simple_flip_flop_instance.pro +++ /dev/null @@ -1,95 +0,0 @@ -(tag_existing -   ( -      (ent entity STRUCT_ENTITY) -      (reg waveform STRUCT_SIMPLE_FLIP_FLOP_OUTPUT) -      (clk waveform STRUCT_SIMPLE_FLIP_FLOP_CLOCK) -      (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) -   ) -   (and -      (is_explicit_process ps) -;; debt: )) -;; Get ps instance -(exists i_ps ps_instance -   (and -      (is_visible_in i_ps ent) -      (is_ps_instance_of i_ps ps) -;; debt: )) )) -;; Get a local waveform matching a clk instance -(exists i_clk wfm_instance -   (and -      (process_instance_maps i_ps i_clk _) -;;      (is_visible_in i_clk ent) -      (is_wfm_instance_of i_clk clk) -      (exists local_clk waveform -         (and -            (process_instance_maps i_ps i_clk local_clk) -            (is_in_sensitivity_list local_clk ps) -;; debt: )))) )))) -;; Get a local waveform matching a reg instance -(exists i_reg wfm_instance -   (and -      (process_instance_maps i_ps i_reg _) -;;      (is_visible_in i_reg ent) -      (is_wfm_instance_of i_reg reg) -      (exists local_reg waveform -         (and -            (process_instance_maps i_ps i_reg local_reg) -;; debt: )))) )))))))) -;; Analyze ps using the local waveforms -(CTL_verifies ps -   (AF -      (and -         (kind "if") -         (or -            (and -               (is_read_structure "(??)") -               (or -                  (is_read_element "0" "falling_edge") -                  (is_read_element "0" "rising_edge") -               ) -               (is_read_element "1" local_clk) -            ) -            (and -               (is_read_structure "(?(??)(???))") -               (is_read_element "0" "and") -               (is_read_element "1" "event") -               (is_read_element "2" local_clk) -               (is_read_element "3" "=") -               (or -                  (is_read_element "4" local_clk) -                  (is_read_element "5" local_clk) -               ) -            ) -            (and -               (is_read_structure "(?(???)(??))") -               (is_read_element "0" "and") -               (is_read_element "1" "=") -               (or -                  (is_read_element "2" local_clk) -                  (is_read_element "3" local_clk) -               ) -               (is_read_element "4" "event") -               (is_read_element "5" local_clk) -            ) -         ) -         (EX -            (and -               (has_option "COND_WAS_TRUE") -               (does_not_reach_parent_before -                  (and -                     (expr_writes local_reg) -                     (AX -                        (not -                           (EF -                              (expr_writes local_reg) -                           ) -                        ) -                     ) -                  ) -               ) -            ) -         ) -      ) -   ) -) -)))))))))))) diff --git a/data/property/simple_flip_flop_instance.pp b/data/property/test-case/fast.pp index b460eec..b460eec 100644 --- a/data/property/simple_flip_flop_instance.pp +++ b/data/property/test-case/fast.pp diff --git a/data/property/test-case/fast.pro b/data/property/test-case/fast.pro new file mode 100644 index 0000000..10bc135 --- /dev/null +++ b/data/property/test-case/fast.pro @@ -0,0 +1,57 @@ +(tag_existing +   ( +      (ent entity STRUCT_ENTITY) +      (reg waveform STRUCT_SIMPLE_FLIP_FLOP_OUTPUT) +      (clk waveform STRUCT_SIMPLE_FLIP_FLOP_CLOCK) +      (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) +   ) +   (and +      (not (eq reg clk)) +      (is_explicit_process ps) +      ;; debt: )) +      ;; Get ps instance +      (exists i_ps ps_instance +         (and +            (is_visible_in i_ps ent) +            (is_ps_instance_of i_ps ps) +            ;; debt: )) )) +            ;; Get a local waveform matching a clk instance +            (exists i_clk wfm_instance +               (and +                  (process_instance_maps i_ps i_clk _) +            ;;      (is_visible_in i_clk ent) +                  (is_wfm_instance_of i_clk clk) +                  (exists local_clk waveform +                     (and +                        (process_instance_maps i_ps i_clk local_clk) +                        (is_in_sensitivity_list local_clk ps) +                        ;; debt: )))) )))) +                        ;; Get a local waveform matching a reg instance +                        (exists i_reg wfm_instance +                           (and +                              (process_instance_maps i_ps i_reg _) +                        ;;      (is_visible_in i_reg ent) +                              (is_wfm_instance_of i_reg reg) +                              (exists local_reg waveform +                                 (and +                                    (process_instance_maps i_ps i_reg local_reg) +                                    ;; debt: )))) )))))))) +                                    ;; Analyze ps using the local waveforms +                                    (CTL_verifies ps +                                       (AF +                                          ;; using local_clk or local_reg here makes the property take forever to verify.... +                                          (kind "if") +                                       ) +                                    ) +                                 ) +                              ) +                           ) +                        ) +                     ) +                  ) +               ) +            ) +         ) +      ) +   ) +) diff --git a/data/property/test-case/slow.pp b/data/property/test-case/slow.pp new file mode 100644 index 0000000..b460eec --- /dev/null +++ b/data/property/test-case/slow.pp @@ -0,0 +1,6 @@ +The component described by the entity $ent.IDENTIFIER$ (declared in $ent.FILE$, +line $ent.LINE$, column $ent.COLUMN$) has a simple flip-flop described by the +process $ps.LABEL$ (declared in $ps.FILE$, l. $ps.LINE$, c. $ps.COLUMN$), +controlled by $clk.IDENTIFIER$ (declared in $clk.FILE$, l. $clk.LINE$, +c. $clk.COLUMN$), and with output $reg.IDENTIFIER$ (declared in $reg.FILE$, +l. $reg.LINE$, c. $reg.COLUMN$). diff --git a/data/property/test-case/slow.pro b/data/property/test-case/slow.pro new file mode 100644 index 0000000..2566a6f --- /dev/null +++ b/data/property/test-case/slow.pro @@ -0,0 +1,60 @@ +(tag_existing +   ( +      (ent entity STRUCT_ENTITY) +      (reg waveform STRUCT_SIMPLE_FLIP_FLOP_OUTPUT) +      (clk waveform STRUCT_SIMPLE_FLIP_FLOP_CLOCK) +      (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) +   ) +   (and +      (not (eq reg clk)) +      (is_explicit_process ps) +      ;; debt: )) +      ;; Get ps instance +      (exists i_ps ps_instance +         (and +            (is_visible_in i_ps ent) +            (is_ps_instance_of i_ps ps) +            ;; debt: )) )) +            ;; Get a local waveform matching a clk instance +            (exists i_clk wfm_instance +               (and +                  (process_instance_maps i_ps i_clk _) +            ;;      (is_visible_in i_clk ent) +                  (is_wfm_instance_of i_clk clk) +                  (exists local_clk waveform +                     (and +                        (process_instance_maps i_ps i_clk local_clk) +                        (is_in_sensitivity_list local_clk ps) +                        ;; debt: )))) )))) +                        ;; Get a local waveform matching a reg instance +                        (exists i_reg wfm_instance +                           (and +                              (process_instance_maps i_ps i_reg _) +                        ;;      (is_visible_in i_reg ent) +                              (is_wfm_instance_of i_reg reg) +                              (exists local_reg waveform +                                 (and +                                    (process_instance_maps i_ps i_reg local_reg) +                                    ;; debt: )))) )))))))) +                                    ;; Analyze ps using the local waveforms +                                    (CTL_verifies ps +                                       (AF +                                          ;; using local_clk or local_reg here makes the property take forever to verify.... +                                          (and +                                             (kind "if") +                                             (is_read_element "1" local_clk) +                                          ) +                                       ) +                                    ) +                                 ) +                              ) +                           ) +                        ) +                     ) +                  ) +               ) +            ) +         ) +      ) +   ) +) | 


