mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Fix merge issues
This commit is contained in:
		
							parent
							
								
									7a45cd5856
								
							
						
					
					
						commit
						7959e9d6b2
					
				
					 6 changed files with 14 additions and 21 deletions
				
			
		|  | @ -254,7 +254,7 @@ struct XAigerWriter | ||||||
| 
 | 
 | ||||||
| 			log_assert(!holes_mode); | 			log_assert(!holes_mode); | ||||||
| 
 | 
 | ||||||
| 			if (cell->type == "$__ABC_FF_") | 			if (cell->type == "$__ABC9_FF_") | ||||||
| 			{ | 			{ | ||||||
| 				SigBit D = sigmap(cell->getPort("\\D").as_bit()); | 				SigBit D = sigmap(cell->getPort("\\D").as_bit()); | ||||||
| 				SigBit Q = sigmap(cell->getPort("\\Q").as_bit()); | 				SigBit Q = sigmap(cell->getPort("\\Q").as_bit()); | ||||||
|  |  | ||||||
|  | @ -833,7 +833,7 @@ void AigerReader::post_process() | ||||||
| 			log_assert(q->port_input); | 			log_assert(q->port_input); | ||||||
| 			q->port_input = false; | 			q->port_input = false; | ||||||
| 
 | 
 | ||||||
| 			auto ff = module->addCell(NEW_ID, "$__ABC_FF_"); | 			auto ff = module->addCell(NEW_ID, "$__ABC9_FF_"); | ||||||
| 			ff->setPort("\\D", d); | 			ff->setPort("\\D", d); | ||||||
| 			ff->setPort("\\Q", q); | 			ff->setPort("\\Q", q); | ||||||
| 			flop_count++; | 			flop_count++; | ||||||
|  |  | ||||||
|  | @ -459,7 +459,7 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *module, std::string scrip | ||||||
| 		dict<IdString, bool> abc9_box; | 		dict<IdString, bool> abc9_box; | ||||||
| 		vector<RTLIL::Cell*> boxes; | 		vector<RTLIL::Cell*> boxes; | ||||||
| 		for (auto cell : module->selected_cells()) { | 		for (auto cell : module->selected_cells()) { | ||||||
| 			if (cell->type.in(ID($_AND_), ID($_NOT_), ID($__ABC_FF_))) { | 			if (cell->type.in(ID($_AND_), ID($_NOT_), ID($__ABC9_FF_))) { | ||||||
| 				module->remove(cell); | 				module->remove(cell); | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
|  | @ -533,7 +533,7 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *module, std::string scrip | ||||||
| 			cell_stats[mapped_cell->type]++; | 			cell_stats[mapped_cell->type]++; | ||||||
| 
 | 
 | ||||||
| 			RTLIL::Cell *existing_cell = nullptr; | 			RTLIL::Cell *existing_cell = nullptr; | ||||||
| 			if (mapped_cell->type.in(ID($lut), ID($__ABC_FF_))) { | 			if (mapped_cell->type.in(ID($lut), ID($__ABC9_FF_))) { | ||||||
| 				if (mapped_cell->type == ID($lut) && | 				if (mapped_cell->type == ID($lut) && | ||||||
| 						GetSize(mapped_cell->getPort(ID::A)) == 1 && | 						GetSize(mapped_cell->getPort(ID::A)) == 1 && | ||||||
| 						mapped_cell->getParam(ID(LUT)) == RTLIL::Const::from_string("01")) { | 						mapped_cell->getParam(ID(LUT)) == RTLIL::Const::from_string("01")) { | ||||||
|  |  | ||||||
|  | @ -256,14 +256,6 @@ struct TechmapWorker | ||||||
| 				if (w->attributes.count(ID(src))) | 				if (w->attributes.count(ID(src))) | ||||||
| 					w->add_strpool_attribute(ID(src), extra_src_attrs); | 					w->add_strpool_attribute(ID(src), extra_src_attrs); | ||||||
| 			} | 			} | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 			if (it.second->name.begins_with("\\_TECHMAP_REPLACE_")) { |  | ||||||
| 				IdString replace_name = stringf("%s%s", orig_cell_name.c_str(), it.second->name.c_str() + strlen("\\_TECHMAP_REPLACE_")); |  | ||||||
| 				Wire *replace_w = module->addWire(replace_name, it.second); |  | ||||||
| 				module->connect(replace_w, w); |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			design->select(module, w); | 			design->select(module, w); | ||||||
| 
 | 
 | ||||||
| 			if (it.second->name.begins_with("\\_TECHMAP_REPLACE_.")) { | 			if (it.second->name.begins_with("\\_TECHMAP_REPLACE_.")) { | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ | ||||||
| // The purpose of the following FD* rules are to wrap the flop (which, when | // The purpose of the following FD* rules are to wrap the flop (which, when | ||||||
| //   called with the `_ABC' macro set captures only its combinatorial | //   called with the `_ABC' macro set captures only its combinatorial | ||||||
| //   behaviour) with: | //   behaviour) with: | ||||||
| // (a) a special $__ABC_FF_ in front of the FD*'s output, indicating to abc9 | // (a) a special $__ABC9_FF_ in front of the FD*'s output, indicating to abc9 | ||||||
| //     the connectivity of its basic D-Q flop | //     the connectivity of its basic D-Q flop | ||||||
| // (b) a special TECHMAP_REPLACE_.$currQ wire that will be used for feedback | // (b) a special TECHMAP_REPLACE_.$currQ wire that will be used for feedback | ||||||
| //     into the (combinatorial) FD* cell to facilitate clock-enable behaviour | //     into the (combinatorial) FD* cell to facilitate clock-enable behaviour | ||||||
|  | @ -50,7 +50,7 @@ module FDRE (output reg Q, input C, CE, D, R); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .R(R) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .R(R) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q(Q)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q(Q)); | ||||||
| endmodule | endmodule | ||||||
| module FDRE_1 (output reg Q, input C, CE, D, R); | module FDRE_1 (output reg Q, input C, CE, D, R); | ||||||
|   parameter [0:0] INIT = 1'b0; |   parameter [0:0] INIT = 1'b0; | ||||||
|  | @ -61,7 +61,7 @@ module FDRE_1 (output reg Q, input C, CE, D, R); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .R(R) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .R(R) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q(Q)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q(Q)); | ||||||
| endmodule | endmodule | ||||||
| 
 | 
 | ||||||
| module FDCE (output reg Q, input C, CE, D, CLR); | module FDCE (output reg Q, input C, CE, D, CLR); | ||||||
|  | @ -79,7 +79,7 @@ module FDCE (output reg Q, input C, CE, D, CLR); | ||||||
|     .D(D), .Q($nextQ),  .C(C), .CE(CE), .CLR(CLR) |     .D(D), .Q($nextQ),  .C(C), .CE(CE), .CLR(CLR) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q($currQ)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($currQ)); | ||||||
|   \$__ABC_ASYNC abc_async (.A($currQ), .S(CLR ^ IS_CLR_INVERTED), .Y(Q)); |   \$__ABC_ASYNC abc_async (.A($currQ), .S(CLR ^ IS_CLR_INVERTED), .Y(Q)); | ||||||
| endmodule | endmodule | ||||||
| module FDCE_1 (output reg Q, input C, CE, D, CLR); | module FDCE_1 (output reg Q, input C, CE, D, CLR); | ||||||
|  | @ -91,7 +91,7 @@ module FDCE_1 (output reg Q, input C, CE, D, CLR); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .CLR(CLR) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .CLR(CLR) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q($currQ)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($currQ)); | ||||||
|   \$__ABC_ASYNC abc_async (.A($currQ), .S(CLR), .Y(Q)); |   \$__ABC_ASYNC abc_async (.A($currQ), .S(CLR), .Y(Q)); | ||||||
| endmodule | endmodule | ||||||
| 
 | 
 | ||||||
|  | @ -110,7 +110,7 @@ module FDPE (output reg Q, input C, CE, D, PRE); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(PRE) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(PRE) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q($currQ)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($currQ)); | ||||||
|   \$__ABC_ASYNC abc_async (.A($currQ), .S(PRE ^ IS_PRE_INVERTED), .Y(Q)); |   \$__ABC_ASYNC abc_async (.A($currQ), .S(PRE ^ IS_PRE_INVERTED), .Y(Q)); | ||||||
| endmodule | endmodule | ||||||
| module FDPE_1 (output reg Q, input C, CE, D, PRE); | module FDPE_1 (output reg Q, input C, CE, D, PRE); | ||||||
|  | @ -122,7 +122,7 @@ module FDPE_1 (output reg Q, input C, CE, D, PRE); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(PRE) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(PRE) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q($currQ)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($currQ)); | ||||||
|   \$__ABC_ASYNC abc_async (.A($currQ), .S(PRE), .Y(Q)); |   \$__ABC_ASYNC abc_async (.A($currQ), .S(PRE), .Y(Q)); | ||||||
| endmodule | endmodule | ||||||
| 
 | 
 | ||||||
|  | @ -141,7 +141,7 @@ module FDSE (output reg Q, input C, CE, D, S); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .S(S) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .S(S) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q(Q)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q(Q)); | ||||||
| endmodule | endmodule | ||||||
| module FDSE_1 (output reg Q, input C, CE, D, S); | module FDSE_1 (output reg Q, input C, CE, D, S); | ||||||
|   parameter [0:0] INIT = 1'b0; |   parameter [0:0] INIT = 1'b0; | ||||||
|  | @ -152,7 +152,7 @@ module FDSE_1 (output reg Q, input C, CE, D, S); | ||||||
|     .D(D), .Q($nextQ), .C(C), .CE(CE), .S(S) |     .D(D), .Q($nextQ), .C(C), .CE(CE), .S(S) | ||||||
|   ); |   ); | ||||||
|   wire _TECHMAP_REPLACE_.$currQ = Q; |   wire _TECHMAP_REPLACE_.$currQ = Q; | ||||||
|   \$__ABC_FF_ abc_dff (.D($nextQ), .Q(Q)); |   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q(Q)); | ||||||
| endmodule | endmodule | ||||||
| 
 | 
 | ||||||
| module RAM32X1D ( | module RAM32X1D ( | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ endmodule | ||||||
| 
 | 
 | ||||||
| module \$__ABC9_FF_ (input D, output Q); | module \$__ABC9_FF_ (input D, output Q); | ||||||
|   assign Q = D; |   assign Q = D; | ||||||
|  | endmodule | ||||||
| 
 | 
 | ||||||
| module \$__ABC9_LUT6 (input A, input [5:0] S, output Y); | module \$__ABC9_LUT6 (input A, input [5:0] S, output Y); | ||||||
|   assign Y = A; |   assign Y = A; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue