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 | endif | ||||||
| 
 | 
 | ||||||
| OBJS += kernel/driver.o kernel/register.o kernel/rtlil.o kernel/log.o kernel/calc.o | 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/BigIntegerAlgorithms.o libs/bigint/BigInteger.o libs/bigint/BigIntegerUtils.o | ||||||
| OBJS += libs/bigint/BigUnsigned.o libs/bigint/BigUnsignedInABase.o | OBJS += libs/bigint/BigUnsigned.o libs/bigint/BigUnsignedInABase.o | ||||||
|  |  | ||||||
|  | @ -30,9 +30,7 @@ | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include <exception> | #include <exception> | ||||||
| 
 | 
 | ||||||
| #include "kernel/rtlil.h" | #include "kernel/yosys.h" | ||||||
| #include "kernel/register.h" |  | ||||||
| #include "kernel/log.h" |  | ||||||
| 
 | 
 | ||||||
| bool fgetline(FILE *f, std::string &buffer) | bool fgetline(FILE *f, std::string &buffer) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -17,10 +17,7 @@ | ||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "kernel/log.h" | #include "kernel/yosys.h" | ||||||
| #include "kernel/rtlil.h" |  | ||||||
| #include "kernel/register.h" |  | ||||||
| #include "kernel/compatibility.h" |  | ||||||
| #include "backends/ilang/ilang_backend.h" | #include "backends/ilang/ilang_backend.h" | ||||||
| 
 | 
 | ||||||
| #include <sys/time.h> | #include <sys/time.h> | ||||||
|  | @ -43,25 +40,6 @@ std::list<std::string> string_buf; | ||||||
| static struct timeval initial_tv = { 0, 0 }; | static struct timeval initial_tv = { 0, 0 }; | ||||||
| static bool next_print_log = false; | 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) | void logv(const char *format, va_list ap) | ||||||
| { | { | ||||||
| 	if (log_time) { | 	if (log_time) { | ||||||
|  |  | ||||||
|  | @ -17,6 +17,8 @@ | ||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include "kernel/yosys.h" | ||||||
|  | 
 | ||||||
| #ifndef LOG_H | #ifndef LOG_H | ||||||
| #define LOG_H | #define LOG_H | ||||||
| 
 | 
 | ||||||
|  | @ -26,10 +28,6 @@ | ||||||
| #include <sys/time.h> | #include <sys/time.h> | ||||||
| #include <sys/resource.h> | #include <sys/resource.h> | ||||||
| 
 | 
 | ||||||
| #include <map> |  | ||||||
| #include <vector> |  | ||||||
| #include <string> |  | ||||||
| 
 |  | ||||||
| #define S__LINE__sub2(x) #x | #define S__LINE__sub2(x) #x | ||||||
| #define S__LINE__sub1(x) S__LINE__sub2(x) | #define S__LINE__sub1(x) S__LINE__sub2(x) | ||||||
| #define S__LINE__ S__LINE__sub1(__LINE__) | #define S__LINE__ S__LINE__sub1(__LINE__) | ||||||
|  |  | ||||||
|  | @ -26,24 +26,6 @@ | ||||||
| #include <vector> | #include <vector> | ||||||
| #include <map> | #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 | struct Pass | ||||||
| { | { | ||||||
| 	std::string pass_name, short_help; | 	std::string pass_name, short_help; | ||||||
|  |  | ||||||
|  | @ -17,21 +17,11 @@ | ||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include "kernel/yosys.h" | ||||||
|  | 
 | ||||||
| #ifndef RTLIL_H | #ifndef RTLIL_H | ||||||
| #define 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 | namespace RTLIL | ||||||
| { | { | ||||||
| 	enum State : unsigned char { | 	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