mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-16 16:34:47 -04:00
in GAM16v8 synthesis a combinatorial which is a simple variable is ignored!
This commit is contained in:
parent
f8b42d95cf
commit
c0cfc0d941
@ -143,6 +143,9 @@ public class Gal16v8CuplExporter implements ExpressionExporter<Gal16v8CuplExport
|
||||
|
||||
@Override
|
||||
public BuilderCollector addCombinatorial(String name, Expression expression) throws BuilderException {
|
||||
if (expression instanceof Variable)
|
||||
return this; // ignore simple variables!
|
||||
|
||||
expression.traverse(notAllowedVariablesVisitor);
|
||||
notAllowedVariablesVisitor.check(name);
|
||||
return super.addCombinatorial(name, expression);
|
||||
|
@ -1,7 +1,9 @@
|
||||
package de.neemann.digital.builder.Gal16v8;
|
||||
|
||||
import de.neemann.digital.analyse.expression.Expression;
|
||||
import de.neemann.digital.analyse.expression.Variable;
|
||||
import de.neemann.digital.builder.BuilderCollector;
|
||||
import de.neemann.digital.builder.BuilderException;
|
||||
import de.neemann.digital.builder.ExpressionExporter;
|
||||
import de.neemann.digital.builder.PinMap;
|
||||
import de.neemann.digital.builder.jedec.FuseMap;
|
||||
@ -41,7 +43,15 @@ public class Gal16v8JEDECExporter implements ExpressionExporter<Gal16v8JEDECExpo
|
||||
map.setFuse(i, true);
|
||||
filler = new FuseMapFiller(map, 16);
|
||||
|
||||
builder = new BuilderCollector();
|
||||
builder = new BuilderCollector() {
|
||||
@Override
|
||||
public BuilderCollector addCombinatorial(String name, Expression expression) throws BuilderException {
|
||||
if (expression instanceof Variable)
|
||||
return this; // a simple variable is ignored!
|
||||
else
|
||||
return super.addCombinatorial(name, expression);
|
||||
}
|
||||
};
|
||||
pinMap = new PinMap()
|
||||
.setAvailInputs(2, 3, 4, 5, 6, 7, 8, 9)
|
||||
.setAvailOutputs(12, 13, 14, 15, 16, 17, 18, 19);
|
||||
@ -119,7 +129,7 @@ public class Gal16v8JEDECExporter implements ExpressionExporter<Gal16v8JEDECExpo
|
||||
if (!registered) {
|
||||
// turn on unused AC1(n) bits
|
||||
for (int i : pinMap.getUnusedOutputs())
|
||||
map.setFuse(AC1+(19-i));
|
||||
map.setFuse(AC1 + (19 - i));
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user