mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	verific: proper file location for readmem commands
This commit is contained in:
		
							parent
							
								
									8d0f71b256
								
							
						
					
					
						commit
						e35a166353
					
				
					 1 changed files with 33 additions and 0 deletions
				
			
		|  | @ -53,6 +53,9 @@ USING_YOSYS_NAMESPACE | ||||||
| #include "VhdlUnits.h" | #include "VhdlUnits.h" | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #include "VerificStream.h" | ||||||
|  | #include "FileSystem.h" | ||||||
|  | 
 | ||||||
| #ifdef YOSYSHQ_VERIFIC_EXTENSIONS | #ifdef YOSYSHQ_VERIFIC_EXTENSIONS | ||||||
| #include "InitialAssertions.h" | #include "InitialAssertions.h" | ||||||
| #endif | #endif | ||||||
|  | @ -118,6 +121,34 @@ string get_full_netlist_name(Netlist *nl) | ||||||
| 	return nl->CellBaseName(); | 	return nl->CellBaseName(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | class YosysStreamCallBackHandler : public VerificStreamCallBackHandler | ||||||
|  | { | ||||||
|  | public: | ||||||
|  |     YosysStreamCallBackHandler() : VerificStreamCallBackHandler() { } | ||||||
|  |     virtual ~YosysStreamCallBackHandler() { } | ||||||
|  | 
 | ||||||
|  |     virtual verific_stream *GetSysCallStream(const char *file_path) | ||||||
|  |     { | ||||||
|  |         if (!file_path) return nullptr; | ||||||
|  | 
 | ||||||
|  |         linefile_type src_loc = GetFromLocation(); | ||||||
|  | 
 | ||||||
|  |         char *this_file_name = nullptr; | ||||||
|  |         if (src_loc && !FileSystem::IsAbsolutePath(file_path)) { | ||||||
|  |             const char *src_file_name = LineFile::GetFileName(src_loc); | ||||||
|  |             char *dir_name = FileSystem::DirectoryPath(src_file_name); | ||||||
|  |             if (dir_name) { | ||||||
|  |                 this_file_name = Strings::save(dir_name, "/", file_path); | ||||||
|  |                 Strings::free(dir_name); | ||||||
|  |                 file_path = this_file_name; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         verific_stream *strm = new verific_ifstream(file_path); | ||||||
|  |         Strings::free(this_file_name); | ||||||
|  |         return strm; | ||||||
|  |     } | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| // ==================================================================
 | // ==================================================================
 | ||||||
| 
 | 
 | ||||||
| VerificImporter::VerificImporter(bool mode_gates, bool mode_keep, bool mode_nosva, bool mode_names, bool mode_verific, bool mode_autocover, bool mode_fullinit) : | VerificImporter::VerificImporter(bool mode_gates, bool mode_keep, bool mode_nosva, bool mode_names, bool mode_verific, bool mode_autocover, bool mode_fullinit) : | ||||||
|  | @ -2648,6 +2679,8 @@ struct VerificPass : public Pass { | ||||||
| 
 | 
 | ||||||
| 		int argidx = 1; | 		int argidx = 1; | ||||||
| 		std::string work = "work"; | 		std::string work = "work"; | ||||||
|  | 		YosysStreamCallBackHandler cb; | ||||||
|  | 		veri_file::RegisterCallBackVerificStream(&cb); | ||||||
| 
 | 
 | ||||||
| 		if (GetSize(args) > argidx && (args[argidx] == "-set-error" || args[argidx] == "-set-warning" || | 		if (GetSize(args) > argidx && (args[argidx] == "-set-error" || args[argidx] == "-set-warning" || | ||||||
| 				args[argidx] == "-set-info" || args[argidx] == "-set-ignore")) | 				args[argidx] == "-set-info" || args[argidx] == "-set-ignore")) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue