| 1 | /*------------------------------------------------------------\ | 
|---|
| 2 | |                                                             | | 
|---|
| 3 | | Tool    :                  systemcass                       | | 
|---|
| 4 | |                                                             | | 
|---|
| 5 | | File    :                   internal.h                      | | 
|---|
| 6 | |                                                             | | 
|---|
| 7 | | Author  :                 Buchmann Richard                  | | 
|---|
| 8 | |                                                             | | 
|---|
| 9 | | Date    :                   09_07_2004                      | | 
|---|
| 10 | |                                                             | | 
|---|
| 11 | \------------------------------------------------------------*/ | 
|---|
| 12 | #ifndef __INTERNAL_H__ | 
|---|
| 13 | #define __INTERNAL_H__ | 
|---|
| 14 |  | 
|---|
| 15 | #include "internal_ext.h" | 
|---|
| 16 | #include <map> | 
|---|
| 17 | #include <string> | 
|---|
| 18 | #include <vector> | 
|---|
| 19 |  | 
|---|
| 20 | namespace sc_core { | 
|---|
| 21 |  | 
|---|
| 22 | // Method Process List | 
|---|
| 23 | extern method_process_t * method; | 
|---|
| 24 | extern method_process_list_t method_process_list; | 
|---|
| 25 |  | 
|---|
| 26 | // Module Naming Stack | 
|---|
| 27 | typedef std::vector<std::string> module_name_stack_t; | 
|---|
| 28 | extern module_name_stack_t module_name_stack; | 
|---|
| 29 |  | 
|---|
| 30 | // Hash Table Port -> Module | 
|---|
| 31 | typedef std::map</*const */sc_port_base *, const sc_module *> port2module_t; | 
|---|
| 32 | extern port2module_t port2module; | 
|---|
| 33 |  | 
|---|
| 34 | // Functions for Elaboration step | 
|---|
| 35 | void sort_equi_list(); | 
|---|
| 36 | void create_signals_table(); | 
|---|
| 37 | void bind_to_table(); | 
|---|
| 38 |  | 
|---|
| 39 | // Debug Functions | 
|---|
| 40 | void print_table(std::ostream&); | 
|---|
| 41 | void print_table_stats(std::ostream&); | 
|---|
| 42 | void print_registers_writing_stats(std::ostream&); | 
|---|
| 43 |  | 
|---|
| 44 | extern bool is_clock(const sc_interface &inter); | 
|---|
| 45 |  | 
|---|
| 46 | // Flags | 
|---|
| 47 | extern bool check_port_dependencies; | 
|---|
| 48 | extern bool dump_all_graph; | 
|---|
| 49 | extern const char * dump_module_hierarchy; | 
|---|
| 50 | extern bool dump_netlist_info; | 
|---|
| 51 | extern bool dump_funclist_info; | 
|---|
| 52 | extern bool dynamic_link_of_scheduling_code; | 
|---|
| 53 | extern bool keep_generated_code; | 
|---|
| 54 | extern bool nosimulation; | 
|---|
| 55 | extern bool notrace; | 
|---|
| 56 | extern bool print_user_resources; | 
|---|
| 57 | extern char * save_on_exit; | 
|---|
| 58 | extern int scheduling_method; | 
|---|
| 59 | extern bool use_port_dependency; | 
|---|
| 60 | extern bool use_openmp; | 
|---|
| 61 |  | 
|---|
| 62 | #define NO_SCHEDULING       0 | 
|---|
| 63 | #define BUCHMANN_SCHEDULING 1 | 
|---|
| 64 | #define MOUCHARD_SCHEDULING 2 | 
|---|
| 65 | #define CASS_SCHEDULING     4 | 
|---|
| 66 |  | 
|---|
| 67 | // More | 
|---|
| 68 |  | 
|---|
| 69 | extern uint64 trace_start; | 
|---|
| 70 |  | 
|---|
| 71 | } | 
|---|
| 72 |  | 
|---|
| 73 | #endif | 
|---|
| 74 |  | 
|---|