OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [perl_gui/] [lib/] [perl/] [intfc_gen.pm] - Blame information for rev 17

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 16 alirezamon
#!/usr/bin/perl -w -I ..
2
###############################################################################
3
#
4
# File:         interface.pm
5
# 
6
#
7
###############################################################################
8
use warnings;
9
use strict;
10
 
11
 
12
 
13
package intfc_gen;
14
 
15
sub interface_generator {
16
                my $class = "intfc_gen";
17
                my $self;
18
                $self->{file_name}=();
19
                $self->{modules}={};
20
                $self->{module_name}=();
21
                $self->{type}=();
22
                $self->{name}=();
23
                bless($self,$class);
24
                return $self;
25
}
26
 
27
sub intfc_set_interface_file {
28
        my ($self,$file)= @_;
29
        if (defined $file){
30
                #print "file name has been changed to $file\n";
31
                $self->{file_name}=$file;
32
                #delete old data
33
                if(exists ($self->{modules})) {delete $self->{modules}; } ;
34
                if(exists ($self->{module_name})) {delete $self->{module_name}; } ;
35
                if(exists ($self->{ports})){ delete $self->{ports}};
36
 
37
 
38
 
39
                }
40
}
41
 
42
sub intfc_get_interface_file {
43
        my ($self)=@_;
44
        my $file;
45
        if (exists ($self->{file_name})){
46
                $file=$self->{file_name};
47
        }
48
        return $file;
49
}
50
 
51
sub intfc_add_module_list{
52
                my ($self,@list)=@_;
53
                $self->{modules}={};
54
                foreach my $p(@list) {
55
                        $self->{modules}{$p}={};
56
 
57
                }
58
 
59
}
60
 
61
 
62
sub intfc_get_module_list{
63
                my ($self)=@_;
64
                my @modules;
65
                if(exists($self->{modules})){
66
                        @modules=keys %{$self->{modules}};
67
                }
68
                return @modules;
69
}
70
 
71
sub intfc_set_module_name{
72
        my ($self,$module)= @_;
73
        $self->{module_name}=$module;
74
        if(exists ($self->{ports})){ delete $self->{ports}};
75
}
76
 
77
sub intfc_remove_ports{
78
        my $self=shift;
79
        if(exists ($self->{ports})){ delete $self->{ports}};
80
}
81
 
82
 
83
 
84
sub intfc_get_module_name {
85
        my ($self)=@_;
86
        my $module;
87
        if (exists ($self->{module_name})){
88
                $module=$self->{module_name};
89
        }
90
        return $module;
91
}
92
 
93
 
94
sub intfc_add_port{
95 17 alirezamon
        my ($self,$port_id,$type,$range,$name,$connect_type,$connect_range,$connect_name,$outport_type,$default_out)=@_;
96 16 alirezamon
        $self->{ports}{$port_id}{name}=$name;
97
        $self->{ports}{$port_id}{range}=$range;
98
        $self->{ports}{$port_id}{type}=$type;
99
        $self->{ports}{$port_id}{connect_name}=$connect_name;
100
        $self->{ports}{$port_id}{connect_range}=$connect_range;
101
        $self->{ports}{$port_id}{connect_type}=$connect_type;
102 17 alirezamon
        $self->{ports}{$port_id}{outport_type}=$outport_type;
103
        $self->{ports}{$port_id}{default_out}=$default_out;
104 16 alirezamon
}
105
 
106
sub intfc_get_ports{
107 17 alirezamon
        my ($self,$types_ref,$ranges_ref,$names_ref,$connect_types_ref,$connect_ranges_ref,$connect_name_ref,$outport_type_ref,$default_out_ref)=@_;
108 16 alirezamon
        if(exists ($self->{ports})){
109
                foreach my $id (sort keys %{$self->{ports}}){
110
                                $types_ref->{$id}=$self->{ports}{$id}{type};
111
                                $ranges_ref->{$id}=$self->{ports}{$id}{range};
112
                                $names_ref->{$id}=$self->{ports}{$id}{name};
113
                                $connect_types_ref->{$id}=$self->{ports}{$id}{connect_type};
114
                                $connect_ranges_ref->{$id}=$self->{ports}{$id}{connect_range};
115
                                $connect_name_ref->{$id}=$self->{ports}{$id}{connect_name};
116
                                $outport_type_ref->{$id}=$self->{ports}{$id}{outport_type};
117 17 alirezamon
                                $default_out_ref->{$id}=$self->{ports}{$id}{default_out};
118 16 alirezamon
                }
119
        }
120
}
121
 
122
sub intfc_ckeck_ports_available{
123
        my ($self)=@_;
124
        my $result;
125
        if(exists ($self->{ports})){$result=1;}
126
        return $result;
127
 
128
}
129
 
130
sub intfc_remove_port{
131
                my ($self,$port_id)=@_;
132
                if(exists ($self->{ports}{$port_id})){
133
                        delete $self->{ports}{$port_id};
134
                }
135
}
136
 
137
 
138
sub intfc_get_ports_type{
139
        my ($self)=@_;
140
        my %ports_type;
141
        if(exists ($self->{ports})){
142
                foreach my $p (sort keys %{$self->{ports}}){
143
                        $ports_type{$p}= $self->{ports}{$p}{type};
144
 
145
                }
146
        }
147
        return %ports_type;
148
}
149
 
150
 
151
 
152
sub intfc_set_interface_name{
153
        my ($self,$name)=@_;
154
        $self->{name}=$name;
155
}
156
 
157
sub intfc_get_interface_name {
158
        my ($self)=@_;
159
        my $name;
160
        if(exists ($self->{name})){
161
                $name=$self->{name};
162
        }
163
        return $name;
164
}
165
 
166
 
167
 
168
 
169
sub intfc_set_interface_type {
170
        my ($self,$intfc_type)=@_;
171
        $self->{type}=$intfc_type;
172
}
173
 
174
 
175
sub intfc_get_interface_type {
176
        my ($self)=@_;
177
        my $type;
178
        if(exists ($self->{type})){
179
                $type=$self->{type};
180
        }
181
        return $type;
182
}
183
 
184
 
185
sub intfc_set_connection_num {
186
        my ($self,$connection_num)=@_;
187
        $self->{connection_num}=$connection_num;
188
}
189
 
190
 
191
sub intfc_get_connection_num {
192
        my ($self)=@_;
193
        my $connection_num;
194
        if(exists ($self->{connection_num})){
195
                $connection_num=$self->{connection_num};
196
        }
197
        return $connection_num;
198
}
199
 
200
 
201
sub intfc_set_category{
202
        my ($self,$category)=@_;
203
        $self->{category}=$category;
204
}
205
 
206
 
207
sub intfc_get_category{
208
        my ($self)=@_;
209
        my $category;
210
        if(exists ($self->{category})){
211
                $category=$self->{category};
212
        }
213
        return $category;
214
}
215
 
216
sub intfc_set_description{
217
        my  ($self,$description)=@_;
218
        $self->{description}=$description;
219
}
220
 
221
 
222
 
223
sub intfc_get_description{
224
my ($self)=@_;
225
        my $des;
226
        if(exists ($self->{description})){
227
                $des=$self->{description};
228
        }
229
        return $des;
230
}
231
 
232
 
233
 
234
1

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.