mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Added "kernel/yosys.h" and "kernel/yosys.cc"
This commit is contained in:
		
							parent
							
								
									273383692a
								
							
						
					
					
						commit
						a7c6b37abf
					
				
					 8 changed files with 133 additions and 61 deletions
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -121,7 +121,7 @@ S = | |||
| endif | ||||
| 
 | ||||
| OBJS += kernel/driver.o kernel/register.o kernel/rtlil.o kernel/log.o kernel/calc.o | ||||
| OBJS += kernel/compatibility.o | ||||
| OBJS += kernel/compatibility.o kernel/yosys.o | ||||
| 
 | ||||
| OBJS += libs/bigint/BigIntegerAlgorithms.o libs/bigint/BigInteger.o libs/bigint/BigIntegerUtils.o | ||||
| OBJS += libs/bigint/BigUnsigned.o libs/bigint/BigUnsignedInABase.o | ||||
|  |  | |||
|  | @ -30,9 +30,7 @@ | |||
| #include <algorithm> | ||||
| #include <exception> | ||||
| 
 | ||||
| #include "kernel/rtlil.h" | ||||
| #include "kernel/register.h" | ||||
| #include "kernel/log.h" | ||||
| #include "kernel/yosys.h" | ||||
| 
 | ||||
| bool fgetline(FILE *f, std::string &buffer) | ||||
| { | ||||
|  |  | |||
|  | @ -17,10 +17,7 @@ | |||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "kernel/log.h" | ||||
| #include "kernel/rtlil.h" | ||||
| #include "kernel/register.h" | ||||
| #include "kernel/compatibility.h" | ||||
| #include "kernel/yosys.h" | ||||
| #include "backends/ilang/ilang_backend.h" | ||||
| 
 | ||||
| #include <sys/time.h> | ||||
|  | @ -43,25 +40,6 @@ std::list<std::string> string_buf; | |||
| static struct timeval initial_tv = { 0, 0 }; | ||||
| static bool next_print_log = false; | ||||
| 
 | ||||
| std::string stringf(const char *fmt, ...) | ||||
| { | ||||
| 	std::string string; | ||||
| 	char *str = NULL; | ||||
| 	va_list ap; | ||||
| 
 | ||||
| 	va_start(ap, fmt); | ||||
| 	if (vasprintf(&str, fmt, ap) < 0) | ||||
| 		str = NULL; | ||||
| 	va_end(ap); | ||||
| 
 | ||||
| 	if (str != NULL) { | ||||
| 		string = str; | ||||
| 		free(str); | ||||
| 	} | ||||
| 
 | ||||
| 	return string; | ||||
| } | ||||
| 
 | ||||
| void logv(const char *format, va_list ap) | ||||
| { | ||||
| 	if (log_time) { | ||||
|  |  | |||
|  | @ -17,6 +17,8 @@ | |||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "kernel/yosys.h" | ||||
| 
 | ||||
| #ifndef LOG_H | ||||
| #define LOG_H | ||||
| 
 | ||||
|  | @ -26,10 +28,6 @@ | |||
| #include <sys/time.h> | ||||
| #include <sys/resource.h> | ||||
| 
 | ||||
| #include <map> | ||||
| #include <vector> | ||||
| #include <string> | ||||
| 
 | ||||
| #define S__LINE__sub2(x) #x | ||||
| #define S__LINE__sub1(x) S__LINE__sub2(x) | ||||
| #define S__LINE__ S__LINE__sub1(__LINE__) | ||||
|  |  | |||
|  | @ -26,24 +26,6 @@ | |||
| #include <vector> | ||||
| #include <map> | ||||
| 
 | ||||
| #ifdef YOSYS_ENABLE_TCL | ||||
| #include <tcl.h> | ||||
| extern Tcl_Interp *yosys_get_tcl_interp(); | ||||
| #endif | ||||
| 
 | ||||
| // from kernel/version_*.o (cc source generated from Makefile)
 | ||||
| extern const char *yosys_version_str; | ||||
| 
 | ||||
| // implemented in driver.cc
 | ||||
| extern RTLIL::Design *yosys_get_design(); | ||||
| extern std::string proc_self_dirname(); | ||||
| extern std::string proc_share_dirname(); | ||||
| extern const char *create_prompt(RTLIL::Design *design, int recursion_counter); | ||||
| 
 | ||||
| // from passes/cmds/design.cc
 | ||||
| extern std::map<std::string, RTLIL::Design*> saved_designs; | ||||
| extern std::vector<RTLIL::Design*> pushed_designs; | ||||
| 
 | ||||
| struct Pass | ||||
| { | ||||
| 	std::string pass_name, short_help; | ||||
|  |  | |||
|  | @ -17,21 +17,11 @@ | |||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "kernel/yosys.h" | ||||
| 
 | ||||
| #ifndef RTLIL_H | ||||
| #define RTLIL_H | ||||
| 
 | ||||
| #include <map> | ||||
| #include <set> | ||||
| #include <vector> | ||||
| #include <string> | ||||
| 
 | ||||
| #include "kernel/log.h" | ||||
| #include <initializer_list> | ||||
| 
 | ||||
| // various helpers (unrelated to RTLIL)
 | ||||
| std::string stringf(const char *fmt, ...); | ||||
| #define SIZE(__obj) int(__obj.size()) | ||||
| 
 | ||||
| namespace RTLIL | ||||
| { | ||||
| 	enum State : unsigned char { | ||||
|  |  | |||
							
								
								
									
										40
									
								
								kernel/yosys.cc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								kernel/yosys.cc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| /*
 | ||||
|  *  yosys -- Yosys Open SYnthesis Suite | ||||
|  * | ||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||
|  *   | ||||
|  *  Permission to use, copy, modify, and/or distribute this software for any | ||||
|  *  purpose with or without fee is hereby granted, provided that the above | ||||
|  *  copyright notice and this permission notice appear in all copies. | ||||
|  *   | ||||
|  *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
|  *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
|  *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
|  *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
|  *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
|  *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||
|  *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "kernel/yosys.h" | ||||
| 
 | ||||
| std::string stringf(const char *fmt, ...) | ||||
| { | ||||
| 	std::string string; | ||||
| 	char *str = NULL; | ||||
| 	va_list ap; | ||||
| 
 | ||||
| 	va_start(ap, fmt); | ||||
| 	if (vasprintf(&str, fmt, ap) < 0) | ||||
| 		str = NULL; | ||||
| 	va_end(ap); | ||||
| 
 | ||||
| 	if (str != NULL) { | ||||
| 		string = str; | ||||
| 		free(str); | ||||
| 	} | ||||
| 
 | ||||
| 	return string; | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										86
									
								
								kernel/yosys.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								kernel/yosys.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,86 @@ | |||
| /*
 | ||||
|  *  yosys -- Yosys Open SYnthesis Suite | ||||
|  * | ||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||
|  *   | ||||
|  *  Permission to use, copy, modify, and/or distribute this software for any | ||||
|  *  purpose with or without fee is hereby granted, provided that the above | ||||
|  *  copyright notice and this permission notice appear in all copies. | ||||
|  *   | ||||
|  *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
|  *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
|  *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
|  *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
|  *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
|  *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||
|  *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| 
 | ||||
| // *** NOTE TO THE READER ***
 | ||||
| //
 | ||||
| // Maybe you have just opened this file in the hope to learn more about the
 | ||||
| // Yosys API. Let me congratulate you on this great decision!  ;)
 | ||||
| //
 | ||||
| // If you want to know how the design is represented by Yosys in the memory,
 | ||||
| // you should read "kernel/rtlil.h".
 | ||||
| //
 | ||||
| // If you want to know how to register a command with Yosys, you could read
 | ||||
| // "kernel/register.h", but it would be easier to just look at a simple
 | ||||
| // example instead. A simple one would be "passes/cmds/log.cc".
 | ||||
| 
 | ||||
| 
 | ||||
| #ifndef YOSYS_H | ||||
| #define YOSYS_H | ||||
| 
 | ||||
| #include <map> | ||||
| #include <set> | ||||
| #include <vector> | ||||
| #include <string> | ||||
| #include <initializer_list> | ||||
| 
 | ||||
| #if 0 | ||||
| #  define YOSYS_NAMESPACE_BEGIN  namespace Yosys { | ||||
| #  define YOSYS_NAMESPACE_END    } | ||||
| #else | ||||
| #  define YOSYS_NAMESPACE_BEGIN | ||||
| #  define YOSYS_NAMESPACE_END | ||||
| #endif | ||||
| 
 | ||||
| YOSYS_NAMESPACE_BEGIN | ||||
| 
 | ||||
| std::string stringf(const char *fmt, ...); | ||||
| 
 | ||||
| #define SIZE(__obj) int(__obj.size()) | ||||
| 
 | ||||
| YOSYS_NAMESPACE_END | ||||
| 
 | ||||
| #include "kernel/log.h" | ||||
| #include "kernel/rtlil.h" | ||||
| #include "kernel/register.h" | ||||
| #include "kernel/compatibility.h" | ||||
| 
 | ||||
| YOSYS_NAMESPACE_BEGIN | ||||
| 
 | ||||
| #ifdef YOSYS_ENABLE_TCL | ||||
| #include <tcl.h> | ||||
| extern Tcl_Interp *yosys_get_tcl_interp(); | ||||
| #endif | ||||
| 
 | ||||
| // from kernel/version_*.o (cc source generated from Makefile)
 | ||||
| extern const char *yosys_version_str; | ||||
| 
 | ||||
| // implemented in driver.cc
 | ||||
| extern RTLIL::Design *yosys_get_design(); | ||||
| extern std::string proc_self_dirname(); | ||||
| extern std::string proc_share_dirname(); | ||||
| extern const char *create_prompt(RTLIL::Design *design, int recursion_counter); | ||||
| 
 | ||||
| // from passes/cmds/design.cc
 | ||||
| extern std::map<std::string, RTLIL::Design*> saved_designs; | ||||
| extern std::vector<RTLIL::Design*> pushed_designs; | ||||
| 
 | ||||
| YOSYS_NAMESPACE_END | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue