Task #5891
closedNew EFSM structure support in CgaaEfsmTransformer
100%
Description
I've created the SVN branch called hierarchical-efsm which introduces new EFSM structure. It is necessary to modify EFSM-related classes in this branch.
Updated by Sergey Smolov over 9 years ago
- Status changed from Open to Resolved
I have the following code in my CgaaEfsmTransformer component:
efsm.addState(Efsm.PREINITIAL_STATE); efsm.createTransition(Efsm.PREINITIAL_STATE, initState, getInitTransition());
What should I do with it now? I've found the similar Efsm.UNINITIALIZED_STATE
field, but this state is unused now.
Updated by Igor Melnichenko over 9 years ago
Sergey Smolov wrote:
I have the following code in my CgaaEfsmTransformer component:
[...]
What should I do with it now? I've found the similar
Efsm.UNINITIALIZED_STATE
field, but this state is unused now.
Please refer to our correspondence of April 9th.
Uninitialised state must be used in an EFSM (as an initial state) only if state variables are initially uninitialised (as in default case of Verilog). In other cases initial state must be chosen from the set of EFSM states on the basis of initial values of state variables.
Updated by Sergey Smolov over 9 years ago
- Status changed from Open to Resolved
- % Done changed from 0 to 100
Done in r2019, hierarchical-efsm branch.
Updated by Igor Melnichenko over 9 years ago
- Status changed from Resolved to Open
The exception during sample.vhd EFSM creation (all variables must be declared before expression processing):
ERROR: The exception has been encountered: java.lang.IllegalArgumentException: There is no declaration of variable STATE neither in this EFSM nor in its parent
at ru.ispras.retrascope.model.efsm.Efsm.processAddedExpression(Efsm.java:852)
at ru.ispras.retrascope.model.efsm.Efsm.addState(Efsm.java:121)
at ru.ispras.retrascope.model.efsm.Efsm.createState(Efsm.java:105)
at ru.ispras.retrascope.engine.cgaa.transformer.efsm.CgaaEfsmTransformer.addStates(CgaaEfsmTransformer.java:551)
at ru.ispras.retrascope.engine.cgaa.transformer.efsm.CgaaEfsmTransformer.getOutput(CgaaEfsmTransformer.java:251)
at ru.ispras.retrascope.engine.cfg.CfgEngine.start(CfgEngine.java:121)
at ru.ispras.retrascope.basis.Engine.start(Engine.java:201)
at ru.ispras.retrascope.basis.ToolChain.start(ToolChain.java:111)
at ru.ispras.retrascope.basis.Engine.start(Engine.java:201)
at ru.ispras.retrascope.Retrascope$ToolRun.start(Retrascope.java:194)
at ru.ispras.retrascope.Retrascope.main(Retrascope.java:366)
at ru.ispras.retrascope.Retrascope.main(Retrascope.java:383)
at ru.ispras.retrascope.util.VhdlUtilTest.runRetrascope(VhdlUtilTest.java:157)
at ru.ispras.retrascope.util.VhdlUtilTest.runVhdl(VhdlUtilTest.java:77)
at ru.ispras.retrascope.util.HdlUtilTest.runVhdl(HdlUtilTest.java:97)
at ru.ispras.retrascope.engine.efsm.generator.test.EfsmTestGeneratorVhdlTestCase.generate(EfsmTestGeneratorVhdlTestCase.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Updated by Sergey Smolov over 9 years ago
- File compile-log.txt added
- Status changed from Open to Feedback
- % Done changed from 100 to 0
I've tried to compile hierarchical-efsm branch and I've got almost 100 compilation errors.
Have you committed all the new source files (for example, the compiler complains about the absence of ProcessSimulationSnapshot class)?
I've attached the compiler log to the ticket (see compiler-log.txt).
Updated by Igor Melnichenko over 9 years ago
Oops. I've just commited a version without compilation errors in my classes but there are still some unupdated classes related to http://forge.ispras.ru/issues/5889
Updated by Sergey Smolov over 9 years ago
I still have compilation errors:
compile.java: [mkdir] Created dir: D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\bin\classes [javac] Compiling 189 source files to D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\bin\classes [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\jaxb\JaxbEfsmAdapter.ja va:19: error: cannot find symbol [javac] import ru.ispras.retrascope.model.basis.Model; [javac] ^ [javac] symbol: class Model [javac] location: package ru.ispras.retrascope.model.basis [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\EfsmConflictExtractor.j ava:106: error: cannot find symbol [javac] List<Efsm> efsmList = efsmModel.getEfsmList(); [javac] ^ [javac] symbol: method getEfsmList() [javac] location: variable efsmModel of type EfsmModel [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\EfsmConflictExtractor.j ava:193: error: cannot find symbol [javac] Efsm product = Efsm.product(efsmList.get(i), efsmList.get(j)); [javac] ^ [javac] symbol: method product(Efsm,Efsm) [javac] location: class Efsm [javac] D:\Bot\projects\retrascope.svn\branches\hierarchical-efsm\retrascope\src\main\java\ru\ispras\retrascope\engine\efsm\extractor\conflict\jaxb\JaxbEfsmAdapter.ja va:42: error: constructor Efsm in class Efsm cannot be applied to given types; [javac] return new Efsm(string); [javac] ^ [javac] required: EfsmModule,String [javac] found: String [javac] reason: actual and formal argument lists differ in length [javac] 4 errors
Updated by Igor Melnichenko over 9 years ago
Yes, it is the classes I talked about. Their functionality relates to conflict extraction and the http://forge.ispras.ru/issues/5889 task.
Updated by Sergey Smolov over 9 years ago
- Status changed from Open to Resolved
- % Done changed from 0 to 100
Done in r2343
Updated by Igor Melnichenko about 9 years ago
- Status changed from Resolved to Verified
Updated by Sergey Smolov almost 9 years ago
- Status changed from Verified to Closed
- Published in build set to 0.2.1