mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Merge pull request #3938 from povik/booth-cleanup
This commit is contained in:
		
						commit
						dcb600ab81
					
				
					 4 changed files with 488 additions and 721 deletions
				
			
		|  | @ -2677,6 +2677,19 @@ RTLIL::Cell* RTLIL::Module::addPow(RTLIL::IdString name, const RTLIL::SigSpec &s | |||
| 	return cell; | ||||
| } | ||||
| 
 | ||||
| RTLIL::Cell* RTLIL::Module::addFa(RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_b, const RTLIL::SigSpec &sig_c, const RTLIL::SigSpec &sig_x, const RTLIL::SigSpec &sig_y, const std::string &src) | ||||
| { | ||||
| 	RTLIL::Cell *cell = addCell(name, ID($fa)); | ||||
| 	cell->parameters[ID::WIDTH] = sig_a.size(); | ||||
| 	cell->setPort(ID::A, sig_a); | ||||
| 	cell->setPort(ID::B, sig_b); | ||||
| 	cell->setPort(ID::C, sig_c); | ||||
| 	cell->setPort(ID::X, sig_x); | ||||
| 	cell->setPort(ID::Y, sig_y); | ||||
| 	cell->set_src_attribute(src); | ||||
| 	return cell; | ||||
| } | ||||
| 
 | ||||
| RTLIL::Cell* RTLIL::Module::addSlice(RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_y, RTLIL::Const offset, const std::string &src) | ||||
| { | ||||
| 	RTLIL::Cell *cell = addCell(name, ID($slice)); | ||||
|  |  | |||
|  | @ -1298,6 +1298,8 @@ public: | |||
| 	RTLIL::Cell* addModFloor (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_b, const RTLIL::SigSpec &sig_y, bool is_signed = false, const std::string &src = ""); | ||||
| 	RTLIL::Cell* addPow (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_b, const RTLIL::SigSpec &sig_y, bool a_signed = false, bool b_signed = false, const std::string &src = ""); | ||||
| 
 | ||||
| 	RTLIL::Cell* addFa (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_b, const RTLIL::SigSpec &sig_c, const RTLIL::SigSpec &sig_x, const RTLIL::SigSpec &sig_y, const std::string &src = ""); | ||||
| 
 | ||||
| 	RTLIL::Cell* addLogicNot (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_y, bool is_signed = false, const std::string &src = ""); | ||||
| 	RTLIL::Cell* addLogicAnd (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_b, const RTLIL::SigSpec &sig_y, bool is_signed = false, const std::string &src = ""); | ||||
| 	RTLIL::Cell* addLogicOr  (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_b, const RTLIL::SigSpec &sig_y, bool is_signed = false, const std::string &src = ""); | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -1 +1 @@ | |||
| test_cell -s 1694091355 -n 1000 -script booth_map_script.ys_ $mul | ||||
| test_cell -s 1694091355 -n 100 -script booth_map_script.ys_ $mul | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue