- Timestamp:
- Jan 19, 2008, 12:09:01 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Vhdl.h
r69 r71 20 20 #include "Common/include/ErrorMorpheo.h" 21 21 22 using namespace std; 22 namespace morpheo { 23 namespace behavioural { 23 24 24 namespace morpheo { 25 namespace behavioural { 25 std::string std_logic (uint32_t size); 26 std::string std_logic_conv (uint32_t size, std::string value); 27 std::string std_logic_conv (uint32_t size, uint32_t value); 28 std::string std_logic_range (uint32_t size, uint32_t max , uint32_t min ); 29 std::string std_logic_range (uint32_t max , uint32_t min ); 30 std::string std_logic_range (uint32_t size); 31 std::string std_logic_others (uint32_t size, uint32_t cst ); 26 32 27 string std_logic (uint32_t size); 28 string std_logic_conv (uint32_t size, string value); 29 string std_logic_conv (uint32_t size, uint32_t value); 30 string std_logic_range (uint32_t size, uint32_t max , uint32_t min ); 31 string std_logic_range (uint32_t max , uint32_t min ); 32 string std_logic_range (uint32_t size); 33 string std_logic_others (uint32_t size, uint32_t cst ); 33 class Vhdl 34 { 35 // -----[ fields ]---------------------------------------------------- 36 private : const std::string _name ; 34 37 35 class Vhdl 36 { 37 // -----[ fields ]---------------------------------------------------- 38 private : const string _name ; 38 private : std::list<std::string> _list_library_work ; 39 private : std::list<std::string> _list_signal ; 40 private : std::list<std::string> _list_type ; 41 private : std::list<std::string> _list_alias ; 42 private : std::list<std::string> _list_port ; 43 private : std::list<std::string> _list_body ; 39 44 40 private : list<string> _list_library_work ; 41 private : list<string> _list_signal ; 42 private : list<string> _list_type ; 43 private : list<string> _list_alias ; 44 private : list<string> _list_port ; 45 private : list<string> _list_body ; 46 47 // -----[ methods ]--------------------------------------------------- 48 public : Vhdl (string name); 49 public : ~Vhdl (); 50 51 public : void generate_file (void); 52 public : void generate_file (bool generate_package, 53 bool generate_model ); 45 // -----[ methods ]--------------------------------------------------- 46 public : Vhdl (std::string name); 47 public : ~Vhdl (); 54 48 55 private : void generate_file_package (void); 56 private : void generate_file_model (void); 57 58 private : string get_package (uint32_t depth , 59 string filename , 60 string package_name , 61 string entity_name ); 62 private : string get_model (uint32_t depth , 63 string filename , 64 string entity_name , 65 string architecture_name ); 66 private : string get_header (uint32_t depth , 67 string filename ); 68 private : string get_entity (uint32_t depth , 69 string name ); 70 private : string get_architecture (uint32_t depth , 71 string name , 72 string entity_name ); 73 private : string get_component (uint32_t depth , 74 string name ); 49 public : void generate_file (void); 50 public : void generate_file (bool generate_package, 51 bool generate_model ); 75 52 76 private : string get_port (uint32_t depth ); 77 public : void set_port (string name , 78 direction_t direction , 79 string type ); 80 public : void set_port (string name , 81 direction_t direction , 82 uint32_t size ); 83 private : string get_signal (uint32_t depth ); 84 public : void set_signal (string name , 85 string type ); 86 public : void set_signal (string name , 87 uint32_t signal ); 88 public : void set_signal (string name , 89 string type , 90 string init ); 91 public : void set_signal (string name , 92 uint32_t size , 93 string init ); 94 public : void set_signal (string name , 95 uint32_t size , 96 uint32_t init ); 97 public : void set_constant (string name , 98 string type , 99 string init ); 100 public : void set_constant (string name , 101 uint32_t size , 102 string init ); 103 public : void set_constant (string name , 104 uint32_t size , 105 uint32_t init ); 53 private : void generate_file_package (void); 54 private : void generate_file_model (void); 106 55 107 private : string get_type (uint32_t depth ); 108 public : void set_type (string name , 109 string type ); 110 private : string get_alias (uint32_t depth ); 111 public : void set_alias (string name1 , 112 string type1 , 113 string name2 , 114 string range2 ); 115 public : void set_alias (string name1 , 116 uint32_t size1 , 117 string name2 , 118 string range2 ); 56 private : std::string get_package (uint32_t depth , 57 std::string filename , 58 std::string package_name , 59 std::string entity_name ); 60 private : std::string get_model (uint32_t depth , 61 std::string filename , 62 std::string entity_name , 63 std::string architecture_name ); 64 private : std::string get_header (uint32_t depth , 65 std::string filename ); 66 private : std::string get_entity (uint32_t depth , 67 std::string name ); 68 private : std::string get_architecture (uint32_t depth , 69 std::string name , 70 std::string entity_name ); 71 private : std::string get_component (uint32_t depth , 72 std::string name ); 119 73 120 public : string get_list (list<string> liste , 121 uint32_t depth , 122 string separator , 123 bool last_separator ); 124 public : void set_list (list<string> & liste , 125 string text ); 74 private : std::string get_port (uint32_t depth ); 75 public : void set_port (std::string name , 76 direction_t direction , 77 std::string type ); 78 public : void set_port (std::string name , 79 direction_t direction , 80 uint32_t size ); 81 private : std::string get_signal (uint32_t depth ); 82 public : void set_signal (std::string name , 83 std::string type ); 84 public : void set_signal (std::string name , 85 uint32_t signal ); 86 public : void set_signal (std::string name , 87 std::string type , 88 std::string init ); 89 public : void set_signal (std::string name , 90 uint32_t size , 91 std::string init ); 92 public : void set_signal (std::string name , 93 uint32_t size , 94 uint32_t init ); 95 public : void set_constant (std::string name , 96 std::string type , 97 std::string init ); 98 public : void set_constant (std::string name , 99 uint32_t size , 100 std::string init ); 101 public : void set_constant (std::string name , 102 uint32_t size , 103 uint32_t init ); 126 104 127 private : string get_body (uint32_t depth ); 128 public : void set_body (string text ); 105 private : std::string get_type (uint32_t depth ); 106 public : void set_type (std::string name , 107 std::string type ); 108 private : std::string get_alias (uint32_t depth ); 109 public : void set_alias (std::string name1 , 110 std::string type1 , 111 std::string name2 , 112 std::string range2 ); 113 public : void set_alias (std::string name1 , 114 uint32_t size1 , 115 std::string name2 , 116 std::string range2 ); 129 117 130 public : void set_body_component (string name_instance , 131 string name_component , 132 list<string> list_port_map ); 133 public : void set_body_component_port_map (list<string> & list_port_map , 134 string name_port , 135 uint32_t size_port , 136 string name_signal , 137 uint32_t size_signal ); 118 public : std::string get_list (std::list<std::string> liste , 119 uint32_t depth , 120 std::string separator , 121 bool last_separator ); 122 public : void set_list (std::list<std::string> & liste , 123 std::string text ); 138 124 139 private : string get_library_ieee (uint32_t depth ); 140 private : string get_library_work (uint32_t depth ); 141 public : void set_library_work (string package_name ); 125 private : std::string get_body (uint32_t depth ); 126 public : void set_body (std::string text ); 142 127 143 private : string direction_toString (direction_t direction); 144 }; 128 public : void set_body_component (std::string name_instance , 129 std::string name_component , 130 std::list<std::string> list_port_map ); 131 public : void set_body_component_port_map (std::list<std::string> & list_port_map , 132 std::string name_port , 133 uint32_t size_port , 134 std::string name_signal , 135 uint32_t size_signal ); 145 136 146 }; // end namespace behavioural 137 private : std::string get_library_ieee (uint32_t depth ); 138 private : std::string get_library_work (uint32_t depth ); 139 public : void set_library_work (std::string package_name ); 140 141 private : std::string direction_toString (direction_t direction); 142 }; 143 144 }; // end namespace behavioural 147 145 }; // end namespace morpheo 148 146
Note: See TracChangeset
for help on using the changeset viewer.