From 4835386b0bbaed398935aee19195e6f49c6be09d Mon Sep 17 00:00:00 2001 From: Daniela Genius <genius@debussy.soc.lip6.fr> Date: Mon, 25 Nov 2019 15:32:11 +0100 Subject: [PATCH] GAW tracing of clock signals --- .../syscamstranslator/toSysCAMS/ClusterCode.java | 12 ++++++++++-- .../toSysCAMSCluster/ClusterCode.java | 9 ++++++++- .../ui/window/JDialogSysCAMSPortConverter.java | 15 ++++++++++++++- src/main/java/ui/window/JDialogSysCAMSPortDE.java | 12 ++++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/main/java/syscamstranslator/toSysCAMS/ClusterCode.java b/src/main/java/syscamstranslator/toSysCAMS/ClusterCode.java index 69211191ad..dde7eabba5 100644 --- a/src/main/java/syscamstranslator/toSysCAMS/ClusterCode.java +++ b/src/main/java/syscamstranslator/toSysCAMS/ClusterCode.java @@ -68,7 +68,8 @@ public class ClusterCode { int nb_block = 1; LinkedList<String> names = new LinkedList<String>(); - + LinkedList<String> clocknames = new LinkedList<String>(); + if (cluster != null) { LinkedList<SysCAMSTBlockTDF> tdf = cluster.getBlockTDF(); LinkedList<SysCAMSTBlockDE> de = cluster.getBlockDE(); @@ -180,7 +181,9 @@ public class ClusterCode { if(t.getUnitStartTime().equals("\u03BCs"))unitStartTimeString="SC_US"; if(t.getUnit().equals("ns"))unitString="SC_NS"; if(t.getUnitStartTime().equals("ns"))unitStartTimeString="SC_NS"; - corpsCluster = corpsCluster + "\t sc_clock " + t.getName() + " (\"" + t.getName() + "\"," + t.getFrequency()+","+ unitString+","+ t.getDutyCycle()+","+ t.getStartTime()+","+unitStartTimeString+","+ t.getPosFirst()+");" + CR; } + corpsCluster = corpsCluster + "\t sc_clock " + t.getName() + " (\"" + t.getName() + "\"," + t.getFrequency()+","+ unitString+","+ t.getDutyCycle()+","+ t.getStartTime()+","+unitStartTimeString+","+ t.getPosFirst()+");" + CR; + clocknames.add(t.getName()); + } nb_block=0; corpsCluster = corpsCluster + CR + "\t// Instantiate cluster's modules." + CR; @@ -315,6 +318,11 @@ public class ClusterCode { corpsCluster = corpsCluster + "\t// Configure signal tracing." + CR + "\tsca_trace_file* tfp = sca_create_tabular_trace_file(\"" + cluster.getClusterName() + "_tb\");" + CR; + for (int i = 0; i <clock.size(); i++) { + corpsCluster = corpsCluster + "\tsca_trace(tfp, "+ clocknames.get(i) + ", \"" + clocknames.get(i) + "\");" + CR; + } + + for (int i = 0; i < connectors.size(); i++) { corpsCluster = corpsCluster + "\tsca_trace(tfp, "+ names.get(i) + ", \"" + names.get(i) + "\");" + CR; } diff --git a/src/main/java/syscamstranslator/toSysCAMSCluster/ClusterCode.java b/src/main/java/syscamstranslator/toSysCAMSCluster/ClusterCode.java index 67c4c2ef75..fe988a3f31 100644 --- a/src/main/java/syscamstranslator/toSysCAMSCluster/ClusterCode.java +++ b/src/main/java/syscamstranslator/toSysCAMSCluster/ClusterCode.java @@ -64,6 +64,7 @@ public class ClusterCode { int nb_block = 0; LinkedList<String> names = new LinkedList<String>(); + LinkedList<String> clocknames = new LinkedList<String>(); if (cluster != null) { LinkedList<SysCAMSTBlockTDF> tdf = cluster.getBlockTDF(); @@ -83,7 +84,9 @@ public class ClusterCode { if(t.getUnitStartTime().equals("\u03BCs"))unitStartTimeString="SC_US"; if(t.getUnit().equals("ns"))unitString="SC_NS"; if(t.getUnitStartTime().equals("ns"))unitStartTimeString="SC_NS"; - corpsCluster += "\t sc_clock " + t.getName() + " (\"" + t.getName() + "\"," + t.getFrequency()+","+ unitString+","+ t.getDutyCycle()+","+ t.getStartTime()+","+unitStartTimeString+","+ t.getPosFirst()+");" + CR; } + corpsCluster += "\t sc_clock " + t.getName() + " (\"" + t.getName() + "\"," + t.getFrequency()+","+ unitString+","+ t.getDutyCycle()+","+ t.getStartTime()+","+unitStartTimeString+","+ t.getPosFirst()+");" + CR; + clocknames.add(t.getName()); + } corpsCluster += "template <typename vci_param>" + CR + "class " +cluster.getClusterName()+ " : public sc_core::sc_module { "+ CR; @@ -115,6 +118,10 @@ public class ClusterCode { } corpsCluster = corpsCluster + CR + "\t// Declare signals to interconnect." + CR; + + for (int i = 0; i <clock.size(); i++) { + corpsCluster = corpsCluster + "\tsca_trace(tfp, "+ clocknames.get(i) + ", \"" + clocknames.get(i) + "\");" + CR; + } for (int i = 0; i < connectors.size(); i++) { nb_con = i; diff --git a/src/main/java/ui/window/JDialogSysCAMSPortConverter.java b/src/main/java/ui/window/JDialogSysCAMSPortConverter.java index 3f1f8989d7..2ebc505b36 100644 --- a/src/main/java/ui/window/JDialogSysCAMSPortConverter.java +++ b/src/main/java/ui/window/JDialogSysCAMSPortConverter.java @@ -242,6 +242,7 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen listArrayTypeString.add("bool"); listArrayTypeString.add("double"); listArrayTypeString.add("sc_int<N>"); + listArrayTypeString.add("sc_uint<N>"); if (port.getFather() != null) { if (port.getFather() instanceof SysCAMSBlockTDF) { if (!((SysCAMSBlockTDF) port.getFather()).getListTypedef().isEmpty()) { @@ -271,6 +272,9 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen if (port.getConvType().equals("sc_dt::sc_int")) { typeComboBoxString.setSelectedIndex(3); } + if (port.getConvType().equals("sc_dt::sc_uint")) { + typeComboBoxString.setSelectedIndex(4); + } } typeComboBoxString.addActionListener(this); constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0, @@ -414,7 +418,16 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen port.setNbits(Integer.parseInt(nbitsTextField.getText())); - } + } + + if(typeComboBoxString.getSelectedItem()=="sc_uint<N>"){ + //port.setConvType("sc_dt::sc_int<"+nbitsTextField.getText()+"> "); + port.setConvType("sc_dt::sc_uint"); + port.setNbits(Integer.parseInt(nbitsTextField.getText())); + + + } + else{ port.setConvType((String) typeComboBoxString.getSelectedItem()); port.setNbits(Integer.parseInt(nbitsTextField.getText())); diff --git a/src/main/java/ui/window/JDialogSysCAMSPortDE.java b/src/main/java/ui/window/JDialogSysCAMSPortDE.java index c5402792b1..3f2c253dd3 100644 --- a/src/main/java/ui/window/JDialogSysCAMSPortDE.java +++ b/src/main/java/ui/window/JDialogSysCAMSPortDE.java @@ -153,6 +153,7 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener { listArrayTypeString.add("bool"); listArrayTypeString.add("double"); listArrayTypeString.add("sc_int<N>"); + listArrayTypeString.add("sc_uint<N>"); listArrayTypeString.add("sc_uint<32>"); if (port.getFather() != null) { @@ -189,6 +190,9 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener { if (port.getDEType().equals("sc_dt::sc_uint<32>")) { typeComboBoxString.setSelectedIndex(3); } + if (port.getDEType().equals("sc_dt::sc_uint<N>")) { + typeComboBoxString.setSelectedIndex(3); + } } typeComboBoxString.addActionListener(this); @@ -316,6 +320,14 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener { } + + if(typeComboBoxString.getSelectedItem()=="sc_uint<N>"){ + // port.setDEType((String)"sc_int<"+nbitsTextField.getText()+"> "); + port.setDEType("sc_dt::sc_uint"); + + + } + else{ if(typeComboBoxString.getSelectedItem()=="sc_uint<32>"){ // port.setDEType((String)"sc_int<"+nbitsTextField.getText()+"> "); -- GitLab