mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	verific: Added "-vlog-libext" option to specify search extension for libraries
This commit is contained in:
		
							parent
							
								
									d1b2beab12
								
							
						
					
					
						commit
						6e8e4b4550
					
				
					 2 changed files with 17 additions and 1 deletions
				
			
		| 
						 | 
					@ -30,6 +30,7 @@ Yosys 0.17 .. Yosys 0.17-dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 * Verific support
 | 
					 * Verific support
 | 
				
			||||||
    - Proper file location for readmem commands
 | 
					    - Proper file location for readmem commands
 | 
				
			||||||
 | 
					    - Added "-vlog-libext" option to specify search extension for libraries
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Yosys 0.16 .. Yosys 0.17
 | 
					Yosys 0.16 .. Yosys 0.17
 | 
				
			||||||
--------------------------
 | 
					--------------------------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,7 +86,7 @@ bool verific_import_pending;
 | 
				
			||||||
string verific_error_msg;
 | 
					string verific_error_msg;
 | 
				
			||||||
int verific_sva_fsm_limit;
 | 
					int verific_sva_fsm_limit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vector<string> verific_incdirs, verific_libdirs;
 | 
					vector<string> verific_incdirs, verific_libdirs, verific_libexts;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void msg_func(msg_type_t msg_type, const char *message_id, linefile_type linefile, const char *msg, va_list args)
 | 
					void msg_func(msg_type_t msg_type, const char *message_id, linefile_type linefile, const char *msg, va_list args)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -2323,6 +2323,7 @@ void verific_import(Design *design, const std::map<std::string,std::string> &par
 | 
				
			||||||
	LineFile::DeleteAllLineFiles();
 | 
						LineFile::DeleteAllLineFiles();
 | 
				
			||||||
	verific_incdirs.clear();
 | 
						verific_incdirs.clear();
 | 
				
			||||||
	verific_libdirs.clear();
 | 
						verific_libdirs.clear();
 | 
				
			||||||
 | 
						verific_libexts.clear();
 | 
				
			||||||
	verific_import_pending = false;
 | 
						verific_import_pending = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!verific_error_msg.empty())
 | 
						if (!verific_error_msg.empty())
 | 
				
			||||||
| 
						 | 
					@ -2433,6 +2434,11 @@ struct VerificPass : public Pass {
 | 
				
			||||||
		log("find undefined modules.\n");
 | 
							log("find undefined modules.\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
 | 
							log("    verific -vlog-libext <extension>..\n");
 | 
				
			||||||
 | 
							log("\n");
 | 
				
			||||||
 | 
							log("Add Verilog library extensions, used when searching in library directories.\n");
 | 
				
			||||||
 | 
							log("\n");
 | 
				
			||||||
 | 
							log("\n");
 | 
				
			||||||
		log("    verific -vlog-define <macro>[=<value>]..\n");
 | 
							log("    verific -vlog-define <macro>[=<value>]..\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("Add Verilog defines.\n");
 | 
							log("Add Verilog defines.\n");
 | 
				
			||||||
| 
						 | 
					@ -2716,6 +2722,12 @@ struct VerificPass : public Pass {
 | 
				
			||||||
			goto check_error;
 | 
								goto check_error;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (GetSize(args) > argidx && args[argidx] == "-vlog-libext") {
 | 
				
			||||||
 | 
								for (argidx++; argidx < GetSize(args); argidx++)
 | 
				
			||||||
 | 
									verific_libexts.push_back(args[argidx]);
 | 
				
			||||||
 | 
								goto check_error;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (GetSize(args) > argidx && args[argidx] == "-vlog-define") {
 | 
							if (GetSize(args) > argidx && args[argidx] == "-vlog-define") {
 | 
				
			||||||
			for (argidx++; argidx < GetSize(args); argidx++) {
 | 
								for (argidx++; argidx < GetSize(args); argidx++) {
 | 
				
			||||||
				string name = args[argidx];
 | 
									string name = args[argidx];
 | 
				
			||||||
| 
						 | 
					@ -2856,6 +2868,8 @@ struct VerificPass : public Pass {
 | 
				
			||||||
				veri_file::AddIncludeDir(dir.c_str());
 | 
									veri_file::AddIncludeDir(dir.c_str());
 | 
				
			||||||
			for (auto &dir : verific_libdirs)
 | 
								for (auto &dir : verific_libdirs)
 | 
				
			||||||
				veri_file::AddYDir(dir.c_str());
 | 
									veri_file::AddYDir(dir.c_str());
 | 
				
			||||||
 | 
								for (auto &ext : verific_libexts)
 | 
				
			||||||
 | 
									veri_file::AddLibExt(ext.c_str());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			while (argidx < GetSize(args))
 | 
								while (argidx < GetSize(args))
 | 
				
			||||||
				file_names.Insert(args[argidx++].c_str());
 | 
									file_names.Insert(args[argidx++].c_str());
 | 
				
			||||||
| 
						 | 
					@ -3345,6 +3359,7 @@ struct VerificPass : public Pass {
 | 
				
			||||||
			LineFile::DeleteAllLineFiles();
 | 
								LineFile::DeleteAllLineFiles();
 | 
				
			||||||
			verific_incdirs.clear();
 | 
								verific_incdirs.clear();
 | 
				
			||||||
			verific_libdirs.clear();
 | 
								verific_libdirs.clear();
 | 
				
			||||||
 | 
								verific_libexts.clear();
 | 
				
			||||||
			verific_import_pending = false;
 | 
								verific_import_pending = false;
 | 
				
			||||||
			goto check_error;
 | 
								goto check_error;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue