Skip to content

Commit 1d10096

Browse files
committed
address PR review
- ER::Success for wait - remove program flag and inclusion mechanism for now
1 parent 1b59912 commit 1d10096

File tree

4 files changed

+10
-23
lines changed

4 files changed

+10
-23
lines changed

src/diag.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ namespace diag {
231231
engine.setMessage(ExpectStatementUnsupported, "expect statement will not be synthesized");
232232
engine.setSeverity(ExpectStatementUnsupported, DiagnosticSeverity::Warning);
233233

234-
engine.setMessage(ProgramUnsupported, "program block will not be synthesized (use --ignore-programs=false to include)");
234+
engine.setMessage(ProgramUnsupported, "program block will not be synthesized");
235235
engine.setSeverity(ProgramUnsupported, DiagnosticSeverity::Warning);
236236

237237
engine.setMessage(ForbiddenDemotion, "disabling error '{}' is unsupported with yosys-slang");

src/initial_eval.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,8 +709,7 @@ ER EvalVisitor::visit(const TimedStatement &stmt)
709709
ER EvalVisitor::visit(const slang::ast::WaitStatement &stmt)
710710
{
711711
context.addDiag(slang_frontend::diag::WaitStatementUnsupported, stmt.sourceRange);
712-
ER result = stmt.stmt.visit(*this);
713-
return result;
712+
return ER::Success;
714713
}
715714

716715
ER EvalVisitor::visit(const EmptyStatement&)

src/slang_frontend.cc

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ void SynthesisSettings::addOptions(slang::CommandLine &cmdLine) {
5151
"Ignore initial blocks for synthesis");
5252
cmdLine.add("--ignore-assertions", ignore_assertions,
5353
"Ignore assertions and formal statements in input");
54-
cmdLine.add("--ignore-programs", ignore_programs,
55-
"Ignore program blocks in input");
5654
cmdLine.add("--unroll-limit", unroll_limit_,
5755
"Set unrolling limit (default: 4000)", "<limit>");
5856
// TODO: deprecate; now on by default
@@ -126,10 +124,6 @@ const RTLIL::IdString id(const std::string_view &view)
126124

127125
static const RTLIL::IdString module_type_id(const ast::InstanceBodySymbol &sym)
128126
{
129-
if (sym.getDefinition().definitionKind == ast::DefinitionKind::Program) {
130-
return RTLIL::escape_id(std::string(sym.name) + "$program");
131-
}
132-
133127
ast_invariant(sym, sym.parentInstance && sym.parentInstance->isModule());
134128
std::string instance = sym.getHierarchicalPath();
135129
if (instance == sym.name)
@@ -2092,13 +2086,13 @@ struct PopulateNetlist : public TimingPatternInterpretor, public ast::ASTVisitor
20922086

20932087
RTLIL::Cell *cell;
20942088
if (aloads.empty()) {
2095-
for (auto [named_chunk, name] : generate_subfield_names(driven_chunk, type)) {
2096-
cell = netlist.canvas->addDff(netlist.canvas->uniquify("$driver$" + RTLIL::unescape_id(netlist.id(*named_chunk.variable.get_symbol())) + name),
2097-
timing.triggers[0].signal,
2098-
assigned.extract(named_chunk.base - driven_chunk.base, named_chunk.bitwidth()),
2099-
netlist.convert_static(named_chunk),
2100-
timing.triggers[0].edge_polarity);
2101-
transfer_attrs(symbol, cell);
2089+
for (auto [named_chunk, name] : generate_subfield_names(driven_chunk, type)) {
2090+
cell = netlist.canvas->addDff(netlist.canvas->uniquify("$driver$" + RTLIL::unescape_id(netlist.id(*named_chunk.variable.get_symbol())) + name),
2091+
timing.triggers[0].signal,
2092+
assigned.extract(named_chunk.base - driven_chunk.base, named_chunk.bitwidth()),
2093+
netlist.convert_static(named_chunk),
2094+
timing.triggers[0].edge_polarity);
2095+
transfer_attrs(symbol, cell);
21022096
}
21032097
} else if (aloads.size() == 1) {
21042098
VariableBits aldff_q;
@@ -2241,10 +2235,8 @@ struct PopulateNetlist : public TimingPatternInterpretor, public ast::ASTVisitor
22412235
void handle(const ast::InstanceSymbol &sym)
22422236
{
22432237
if (sym.getDefinition().definitionKind == ast::DefinitionKind::Program) {
2244-
if (netlist.settings.ignore_programs.value_or(true)) {
2245-
return;
2246-
}
22472238
netlist.add_diag(diag::ProgramUnsupported, sym.location);
2239+
return;
22482240
}
22492241

22502242
// blackboxes get special handling no matter the hierarchy mode
@@ -3542,9 +3534,6 @@ struct SlangFrontend : Frontend {
35423534
HierarchyQueue hqueue;
35433535
for (auto instance : compilation->getRoot().topInstances) {
35443536
if (instance->getDefinition().definitionKind == ast::DefinitionKind::Program) {
3545-
if (settings.ignore_programs.value_or(true)) {
3546-
continue;
3547-
}
35483537
slang::Diagnostic program_diag(diag::ProgramUnsupported, instance->location);
35493538
driver.diagEngine.issue(program_diag);
35503539
continue;

src/slang_frontend.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,6 @@ struct SynthesisSettings {
404404
std::optional<bool> ignore_timing;
405405
std::optional<bool> ignore_initial;
406406
std::optional<bool> ignore_assertions;
407-
std::optional<bool> ignore_programs;
408407
std::optional<int> unroll_limit_;
409408
std::optional<bool> extern_modules;
410409
std::optional<bool> no_implicit_memories;

0 commit comments

Comments
 (0)