@@ -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
127125static 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 ;
0 commit comments