mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	Merge pull request #2163 from jfng/cxxrtl-blackbox-debuginfo
cxxrtl: restrict the debug info of a blackbox to its ports.
This commit is contained in:
		
						commit
						c4f20f744b
					
				
					 1 changed files with 17 additions and 13 deletions
				
			
		| 
						 | 
					@ -1623,6 +1623,8 @@ struct CxxrtlWorker {
 | 
				
			||||||
			for (auto wire : module->wires()) {
 | 
								for (auto wire : module->wires()) {
 | 
				
			||||||
				if (wire->name[0] != '\\')
 | 
									if (wire->name[0] != '\\')
 | 
				
			||||||
					continue;
 | 
										continue;
 | 
				
			||||||
 | 
									if (module->get_bool_attribute(ID(cxxrtl_blackbox)) && (wire->port_id == 0))
 | 
				
			||||||
 | 
										continue;
 | 
				
			||||||
				count_public_wires++;
 | 
									count_public_wires++;
 | 
				
			||||||
				if (debug_const_wires.count(wire)) {
 | 
									if (debug_const_wires.count(wire)) {
 | 
				
			||||||
					// Wire tied to a constant
 | 
										// Wire tied to a constant
 | 
				
			||||||
| 
						 | 
					@ -1649,19 +1651,21 @@ struct CxxrtlWorker {
 | 
				
			||||||
					count_skipped_wires++;
 | 
										count_skipped_wires++;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			for (auto &memory_it : module->memories) {
 | 
								if (!module->get_bool_attribute(ID(cxxrtl_blackbox))) {
 | 
				
			||||||
				if (memory_it.first[0] != '\\')
 | 
									for (auto &memory_it : module->memories) {
 | 
				
			||||||
					continue;
 | 
										if (memory_it.first[0] != '\\')
 | 
				
			||||||
				f << indent << "items.add(path + " << escape_cxx_string(get_hdl_name(memory_it.second));
 | 
											continue;
 | 
				
			||||||
				f << ", debug_item(" << mangle(memory_it.second) << ", ";
 | 
										f << indent << "items.add(path + " << escape_cxx_string(get_hdl_name(memory_it.second));
 | 
				
			||||||
				f << memory_it.second->start_offset << "));\n";
 | 
										f << ", debug_item(" << mangle(memory_it.second) << ", ";
 | 
				
			||||||
			}
 | 
										f << memory_it.second->start_offset << "));\n";
 | 
				
			||||||
			for (auto cell : module->cells()) {
 | 
									}
 | 
				
			||||||
				if (is_internal_cell(cell->type))
 | 
									for (auto cell : module->cells()) {
 | 
				
			||||||
					continue;
 | 
										if (is_internal_cell(cell->type))
 | 
				
			||||||
				const char *access = is_cxxrtl_blackbox_cell(cell) ? "->" : ".";
 | 
											continue;
 | 
				
			||||||
				f << indent << mangle(cell) << access << "debug_info(items, ";
 | 
										const char *access = is_cxxrtl_blackbox_cell(cell) ? "->" : ".";
 | 
				
			||||||
				f << "path + " << escape_cxx_string(get_hdl_name(cell) + ' ') << ");\n";
 | 
										f << indent << mangle(cell) << access << "debug_info(items, ";
 | 
				
			||||||
 | 
										f << "path + " << escape_cxx_string(get_hdl_name(cell) + ' ') << ");\n";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		dec_indent();
 | 
							dec_indent();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue