Skip to content

Commit

Permalink
Merge pull request #1525 from danilovesky/verilog-import-inout
Browse files Browse the repository at this point in the history
Improve STG verification and Verilog import
  • Loading branch information
danilovesky committed Sep 1, 2023
2 parents 19a18bd + 3c7ea77 commit 5ec10d7
Show file tree
Hide file tree
Showing 26 changed files with 322 additions and 214 deletions.
21 changes: 0 additions & 21 deletions ci/flow-mpsat-g/dlatch-split_place-hierarchy.g

This file was deleted.

16 changes: 0 additions & 16 deletions ci/flow-mpsat-g/dlatch-split_place-hierarchy.result.ref

This file was deleted.

20 changes: 0 additions & 20 deletions ci/flow-mpsat-g/dlatch-split_place-reverse.g

This file was deleted.

16 changes: 0 additions & 16 deletions ci/flow-mpsat-g/dlatch-split_place-reverse.result.ref

This file was deleted.

2 changes: 1 addition & 1 deletion ci/flow-mpsat-g/test.result.ref
@@ -1 +1 @@
24 out of 28 benchmarks passed the test
22 out of 26 benchmarks passed the test
2 changes: 1 addition & 1 deletion settings.gradle
Expand Up @@ -22,7 +22,7 @@ gradle.ext.javaTargetVersion = JavaVersion.VERSION_11
gradle.ext.javaReleaseVersion = 11 /* Must be integer, e.g. 11 for JDK11*/

// Checkstyle code linter (https://checkstyle.sourceforge.io/)
gradle.ext.checkstyleVersion = '10.12.2'
gradle.ext.checkstyleVersion = '10.12.3'
// PMD code analyser (https://pmd.github.io/)
gradle.ext.pmdVersion = '6.55.0'
// Jacoco code coverage (https://www.eclemma.org/jacoco/)
Expand Down
Expand Up @@ -211,7 +211,7 @@ List<VerilogPort> parsePorts():
}
{
(
LOOKAHEAD("(" (<INPUT> | <OUTPUT>))
LOOKAHEAD("(" (<INPUT> | <OUTPUT> | <INOUT>))
ports = parseCompactPorts()
|
ports = parseExtendedPorts()
Expand Down Expand Up @@ -331,10 +331,15 @@ VerilogPort.Type parsePortType():
return VerilogPort.Type.OUTPUT;
}
|
<WIRE>
<INOUT>
{
return VerilogPort.Type.INTERNAL;
return VerilogPort.Type.INOUT;
}
|
<WIRE>
{
return VerilogPort.Type.WIRE;
}
}

VerilogPort.Range parseRange():
Expand Down
Expand Up @@ -89,6 +89,7 @@ public class CircuitSettings extends AbstractModelSettings {
private static final String keyVerilogAssignDelay = prefix + ".verilogAssignDelay";
private static final String keyBusSuffix = prefix + ".busSuffix";
private static final String keyDissolveSingletonBus = prefix + ".dissolveSingletonBus";
private static final String keyAcceptInoutPort = prefix + ".acceptInoutPort";
private static final String keyModuleFilePattern = prefix + ".moduleFilePattern";
// Reset
private static final String keyResetActiveHighPort = prefix + ".resetActiveHighPort";
Expand Down Expand Up @@ -140,6 +141,7 @@ public class CircuitSettings extends AbstractModelSettings {
private static final String defaultVerilogAssignDelay = "";
private static final String defaultBusSuffix = "__" + BUS_INDEX_PLACEHOLDER;
private static final boolean defaultDissolveSingletonBus = true;
private static final boolean defaultAcceptInoutPort = true;
private static final String defaultModuleFilePattern = MODULE_NAME_PLACEHOLDER + FileFilters.DOCUMENT_EXTENSION;
// Reset
private static final String defaultResetActiveHighPort = "rst";
Expand Down Expand Up @@ -191,6 +193,7 @@ public class CircuitSettings extends AbstractModelSettings {
private static String verilogAssignDelay = defaultVerilogAssignDelay;
private static String busSuffix = defaultBusSuffix;
private static boolean dissolveSingletonBus = defaultDissolveSingletonBus;
private static boolean acceptInoutPort = defaultAcceptInoutPort;
private static String moduleFilePattern = defaultModuleFilePattern;
// Reset
private static String resetActiveHighPort = defaultResetActiveHighPort;
Expand Down Expand Up @@ -352,6 +355,11 @@ public class CircuitSettings extends AbstractModelSettings {
CircuitSettings::setDissolveSingletonBus,
CircuitSettings::getDissolveSingletonBus));

properties.add(new PropertyDeclaration<>(Boolean.class,
PropertyHelper.BULLET_PREFIX + "Accept inout ports and ignore their connections",
CircuitSettings::setAcceptInoutPort,
CircuitSettings::getAcceptInoutPort));

properties.add(new PropertyDeclaration<>(String.class,
PropertyHelper.BULLET_PREFIX + "File pattern for import of hierarchical Verilog modules ("
+ MODULE_NAME_PLACEHOLDER + " denotes module name)",
Expand Down Expand Up @@ -518,6 +526,7 @@ public void load(Config config) {
setVerilogAssignDelay(config.getString(keyVerilogAssignDelay, defaultVerilogAssignDelay));
setBusSuffix(config.getString(keyBusSuffix, defaultBusSuffix));
setDissolveSingletonBus(config.getBoolean(keyDissolveSingletonBus, defaultDissolveSingletonBus));
setAcceptInoutPort(config.getBoolean(keyAcceptInoutPort, defaultAcceptInoutPort));
setModuleFilePattern(config.getString(keyModuleFilePattern, defaultModuleFilePattern));
// Reset
setResetActiveHighPort(config.getString(keyResetActiveHighPort, defaultResetActiveHighPort));
Expand Down Expand Up @@ -569,6 +578,7 @@ public void save(Config config) {
config.set(keyVerilogAssignDelay, getVerilogAssignDelay());
config.set(keyBusSuffix, getBusSuffix());
config.setBoolean(keyDissolveSingletonBus, getDissolveSingletonBus());
config.setBoolean(keyAcceptInoutPort, getAcceptInoutPort());
config.set(keyModuleFilePattern, getModuleFilePattern());
// Reset
config.set(keyResetActiveHighPort, getResetActiveHighPort());
Expand Down Expand Up @@ -783,6 +793,14 @@ public static void setDissolveSingletonBus(boolean value) {
dissolveSingletonBus = value;
}

public static boolean getAcceptInoutPort() {
return acceptInoutPort;
}

public static void setAcceptInoutPort(boolean value) {
acceptInoutPort = value;
}

public static String getModuleFilePattern() {
return moduleFilePattern;
}
Expand Down

0 comments on commit 5ec10d7

Please sign in to comment.