summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-30 15:15:02 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-30 15:15:02 +0200
commit99bbe050e57c50c5c21b849c1721fe9979894d8f (patch)
tree09b4a92fedc2b56e5f0ff1f91847a90708603aa0 /instance-calculator/src/VHDLProcess.java
parentb715c825c0a36063e7b79248059263b438a0b5a6 (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.java31
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();