| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-30 15:15:02 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-30 15:15:02 +0200 | 
| commit | 99bbe050e57c50c5c21b849c1721fe9979894d8f (patch) | |
| tree | 09b4a92fedc2b56e5f0ff1f91847a90708603aa0 /instance-calculator/src/VHDLProcess.java | |
| parent | b715c825c0a36063e7b79248059263b438a0b5a6 (diff) | |
Reduces the scalability issue.
It seems to take very long to find solutions for
simple_flip_flop_instance, but at least it no longer gives up right
away.
Diffstat (limited to 'instance-calculator/src/VHDLProcess.java')
| -rw-r--r-- | instance-calculator/src/VHDLProcess.java | 31 | 
1 files changed, 20 insertions, 11 deletions
| diff --git a/instance-calculator/src/VHDLProcess.java b/instance-calculator/src/VHDLProcess.java index eba5e46..07bac2e 100644 --- a/instance-calculator/src/VHDLProcess.java +++ b/instance-calculator/src/VHDLProcess.java @@ -102,7 +102,6 @@ public class VHDLProcess        result =           new VHDLProcess.Instance           ( -            Instances.get_id_for(instances_count),              this,              visibility,              iwfm_map @@ -115,6 +114,13 @@ public class VHDLProcess     public static class Instance     { +      private static int instances_count; + +      static +      { +         instances_count = 0; +      } +        private final String id;        private final VHDLProcess parent;        private final Map<VHDLWaveform.Instance, VHDLWaveform> iwfm_map; @@ -122,13 +128,18 @@ public class VHDLProcess        private Instance        ( -         final String id,           final VHDLProcess parent,           final VHDLEntity visibility,           final Map<VHDLWaveform.Instance, VHDLWaveform> iwfm_map        )        { -         this.id = id; +         this.id = +            ( +               Main.get_parameters().get_id_prefix() +               + "ps_" +               + instances_count +            ); +           this.parent = parent;           this.visibility = visibility;           this.iwfm_map = iwfm_map; @@ -168,7 +179,6 @@ public class VHDLProcess           result =              new VHDLProcess.Instance              ( -               Instances.get_id_for(parent.instances_count),                 parent,                 visibility,                 new_iwfm_map @@ -187,7 +197,12 @@ public class VHDLProcess           try           { -            of.write("(is_process_instance "); +            of.write("(add_element ps_instance "); +            of.write(id); +            of.write(")"); +            of.insert_newline(); + +            of.write("(is_ps_instance_of ");              of.write(id);              of.write(" ");              of.write(parent.get_id()); @@ -197,8 +212,6 @@ public class VHDLProcess              of.write("(is_visible_in ");              of.write(id);              of.write(" "); -            of.write(parent.get_id()); -            of.write(" ");              of.write(visibility.get_id());              of.write(")");              of.insert_newline(); @@ -212,12 +225,8 @@ public class VHDLProcess                 of.write("(process_instance_maps ");                 of.write(id);                 of.write(" "); -               of.write(parent.get_id()); -               of.write(" ");                 of.write(iwfm.getKey().get_id());                 of.write(" "); -               of.write(iwfm.getKey().get_parent().get_id()); -               of.write(" ");                 of.write(iwfm.getValue().get_id());                 of.write(")");                 of.insert_newline(); | 


