@@ -0,0 +1,36 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | ------------------------------------------------------------------------------ | |||
|
20 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
21 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
22 | -- | |||
|
23 | -- This program is free software; you can redistribute it and/or modify | |||
|
24 | -- it under the terms of the GNU General Public License as published by | |||
|
25 | -- the Free Software Foundation; either version 2 of the License, or | |||
|
26 | -- (at your option) any later version. | |||
|
27 | -- | |||
|
28 | -- This program is distributed in the hope that it will be useful, | |||
|
29 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
30 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
31 | -- GNU General Public License for more details. | |||
|
32 | -- | |||
|
33 | -- You should have received a copy of the GNU General Public License | |||
|
34 | -- along with this program; if not, write to the Free Software | |||
|
35 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
36 | ------------------------------------------------------------------------------- |
This diff has been collapsed as it changes many lines, (1661 lines changed) Show them Hide them | |||||
@@ -0,0 +1,1661 | |||||
|
1 | # Doxyfile 1.7.1 | |||
|
2 | ||||
|
3 | # This file describes the settings to be used by the documentation system | |||
|
4 | # doxygen (www.doxygen.org) for a project | |||
|
5 | # | |||
|
6 | # All text after a hash (#) is considered a comment and will be ignored | |||
|
7 | # The format is: | |||
|
8 | # TAG = value [value, ...] | |||
|
9 | # For lists items can also be appended using: | |||
|
10 | # TAG += value [value, ...] | |||
|
11 | # Values that contain spaces should be placed between quotes (" ") | |||
|
12 | ||||
|
13 | #--------------------------------------------------------------------------- | |||
|
14 | # Project related configuration options | |||
|
15 | #--------------------------------------------------------------------------- | |||
|
16 | ||||
|
17 | # This tag specifies the encoding used for all characters in the config file | |||
|
18 | # that follow. The default is UTF-8 which is also the encoding used for all | |||
|
19 | # text before the first occurrence of this tag. Doxygen uses libiconv (or the | |||
|
20 | # iconv built into libc) for the transcoding. See | |||
|
21 | # http://www.gnu.org/software/libiconv for the list of possible encodings. | |||
|
22 | ||||
|
23 | DOXYFILE_ENCODING = UTF-8 | |||
|
24 | ||||
|
25 | # The PROJECT_NAME tag is a single word (or a sequence of words surrounded | |||
|
26 | # by quotes) that should identify the project. | |||
|
27 | ||||
|
28 | PROJECT_NAME = "apb lcd driver" | |||
|
29 | ||||
|
30 | # The PROJECT_NUMBER tag can be used to enter a project or revision number. | |||
|
31 | # This could be handy for archiving the generated documentation or | |||
|
32 | # if some version control system is used. | |||
|
33 | ||||
|
34 | PROJECT_NUMBER = 0.1 | |||
|
35 | ||||
|
36 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) | |||
|
37 | # base path where the generated documentation will be put. | |||
|
38 | # If a relative path is entered, it will be relative to the location | |||
|
39 | # where doxygen was started. If left blank the current directory will be used. | |||
|
40 | ||||
|
41 | OUTPUT_DIRECTORY = ./Doc | |||
|
42 | ||||
|
43 | # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create | |||
|
44 | # 4096 sub-directories (in 2 levels) under the output directory of each output | |||
|
45 | # format and will distribute the generated files over these directories. | |||
|
46 | # Enabling this option can be useful when feeding doxygen a huge amount of | |||
|
47 | # source files, where putting all generated files in the same directory would | |||
|
48 | # otherwise cause performance problems for the file system. | |||
|
49 | ||||
|
50 | CREATE_SUBDIRS = NO | |||
|
51 | ||||
|
52 | # The OUTPUT_LANGUAGE tag is used to specify the language in which all | |||
|
53 | # documentation generated by doxygen is written. Doxygen will use this | |||
|
54 | # information to generate all constant output in the proper language. | |||
|
55 | # The default language is English, other supported languages are: | |||
|
56 | # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, | |||
|
57 | # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, | |||
|
58 | # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English | |||
|
59 | # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, | |||
|
60 | # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, | |||
|
61 | # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. | |||
|
62 | ||||
|
63 | OUTPUT_LANGUAGE = English | |||
|
64 | ||||
|
65 | # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will | |||
|
66 | # include brief member descriptions after the members that are listed in | |||
|
67 | # the file and class documentation (similar to JavaDoc). | |||
|
68 | # Set to NO to disable this. | |||
|
69 | ||||
|
70 | BRIEF_MEMBER_DESC = YES | |||
|
71 | ||||
|
72 | # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend | |||
|
73 | # the brief description of a member or function before the detailed description. | |||
|
74 | # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the | |||
|
75 | # brief descriptions will be completely suppressed. | |||
|
76 | ||||
|
77 | REPEAT_BRIEF = YES | |||
|
78 | ||||
|
79 | # This tag implements a quasi-intelligent brief description abbreviator | |||
|
80 | # that is used to form the text in various listings. Each string | |||
|
81 | # in this list, if found as the leading text of the brief description, will be | |||
|
82 | # stripped from the text and the result after processing the whole list, is | |||
|
83 | # used as the annotated text. Otherwise, the brief description is used as-is. | |||
|
84 | # If left blank, the following values are used ("$name" is automatically | |||
|
85 | # replaced with the name of the entity): "The $name class" "The $name widget" | |||
|
86 | # "The $name file" "is" "provides" "specifies" "contains" | |||
|
87 | # "represents" "a" "an" "the" | |||
|
88 | ||||
|
89 | ABBREVIATE_BRIEF = "The $name class" \ | |||
|
90 | "The $name widget" \ | |||
|
91 | "The $name file" \ | |||
|
92 | is \ | |||
|
93 | provides \ | |||
|
94 | specifies \ | |||
|
95 | contains \ | |||
|
96 | represents \ | |||
|
97 | a \ | |||
|
98 | an \ | |||
|
99 | the | |||
|
100 | ||||
|
101 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then | |||
|
102 | # Doxygen will generate a detailed section even if there is only a brief | |||
|
103 | # description. | |||
|
104 | ||||
|
105 | ALWAYS_DETAILED_SEC = NO | |||
|
106 | ||||
|
107 | # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all | |||
|
108 | # inherited members of a class in the documentation of that class as if those | |||
|
109 | # members were ordinary class members. Constructors, destructors and assignment | |||
|
110 | # operators of the base classes will not be shown. | |||
|
111 | ||||
|
112 | INLINE_INHERITED_MEMB = NO | |||
|
113 | ||||
|
114 | # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full | |||
|
115 | # path before files name in the file list and in the header files. If set | |||
|
116 | # to NO the shortest path that makes the file name unique will be used. | |||
|
117 | ||||
|
118 | FULL_PATH_NAMES = YES | |||
|
119 | ||||
|
120 | # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag | |||
|
121 | # can be used to strip a user-defined part of the path. Stripping is | |||
|
122 | # only done if one of the specified strings matches the left-hand part of | |||
|
123 | # the path. The tag can be used to show relative paths in the file list. | |||
|
124 | # If left blank the directory from which doxygen is run is used as the | |||
|
125 | # path to strip. | |||
|
126 | ||||
|
127 | STRIP_FROM_PATH = | |||
|
128 | ||||
|
129 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of | |||
|
130 | # the path mentioned in the documentation of a class, which tells | |||
|
131 | # the reader which header file to include in order to use a class. | |||
|
132 | # If left blank only the name of the header file containing the class | |||
|
133 | # definition is used. Otherwise one should specify the include paths that | |||
|
134 | # are normally passed to the compiler using the -I flag. | |||
|
135 | ||||
|
136 | STRIP_FROM_INC_PATH = | |||
|
137 | ||||
|
138 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter | |||
|
139 | # (but less readable) file names. This can be useful is your file systems | |||
|
140 | # doesn't support long names like on DOS, Mac, or CD-ROM. | |||
|
141 | ||||
|
142 | SHORT_NAMES = YES | |||
|
143 | ||||
|
144 | # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen | |||
|
145 | # will interpret the first line (until the first dot) of a JavaDoc-style | |||
|
146 | # comment as the brief description. If set to NO, the JavaDoc | |||
|
147 | # comments will behave just like regular Qt-style comments | |||
|
148 | # (thus requiring an explicit @brief command for a brief description.) | |||
|
149 | ||||
|
150 | JAVADOC_AUTOBRIEF = NO | |||
|
151 | ||||
|
152 | # If the QT_AUTOBRIEF tag is set to YES then Doxygen will | |||
|
153 | # interpret the first line (until the first dot) of a Qt-style | |||
|
154 | # comment as the brief description. If set to NO, the comments | |||
|
155 | # will behave just like regular Qt-style comments (thus requiring | |||
|
156 | # an explicit \brief command for a brief description.) | |||
|
157 | ||||
|
158 | QT_AUTOBRIEF = NO | |||
|
159 | ||||
|
160 | # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen | |||
|
161 | # treat a multi-line C++ special comment block (i.e. a block of //! or /// | |||
|
162 | # comments) as a brief description. This used to be the default behaviour. | |||
|
163 | # The new default is to treat a multi-line C++ comment block as a detailed | |||
|
164 | # description. Set this tag to YES if you prefer the old behaviour instead. | |||
|
165 | ||||
|
166 | MULTILINE_CPP_IS_BRIEF = NO | |||
|
167 | ||||
|
168 | # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented | |||
|
169 | # member inherits the documentation from any documented member that it | |||
|
170 | # re-implements. | |||
|
171 | ||||
|
172 | INHERIT_DOCS = YES | |||
|
173 | ||||
|
174 | # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce | |||
|
175 | # a new page for each member. If set to NO, the documentation of a member will | |||
|
176 | # be part of the file/class/namespace that contains it. | |||
|
177 | ||||
|
178 | SEPARATE_MEMBER_PAGES = NO | |||
|
179 | ||||
|
180 | # The TAB_SIZE tag can be used to set the number of spaces in a tab. | |||
|
181 | # Doxygen uses this value to replace tabs by spaces in code fragments. | |||
|
182 | ||||
|
183 | TAB_SIZE = 8 | |||
|
184 | ||||
|
185 | # This tag can be used to specify a number of aliases that acts | |||
|
186 | # as commands in the documentation. An alias has the form "name=value". | |||
|
187 | # For example adding "sideeffect=\par Side Effects:\n" will allow you to | |||
|
188 | # put the command \sideeffect (or @sideeffect) in the documentation, which | |||
|
189 | # will result in a user-defined paragraph with heading "Side Effects:". | |||
|
190 | # You can put \n's in the value part of an alias to insert newlines. | |||
|
191 | ||||
|
192 | ALIASES = | |||
|
193 | ||||
|
194 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C | |||
|
195 | # sources only. Doxygen will then generate output that is more tailored for C. | |||
|
196 | # For instance, some of the names that are used will be different. The list | |||
|
197 | # of all members will be omitted, etc. | |||
|
198 | ||||
|
199 | OPTIMIZE_OUTPUT_FOR_C = YES | |||
|
200 | ||||
|
201 | # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java | |||
|
202 | # sources only. Doxygen will then generate output that is more tailored for | |||
|
203 | # Java. For instance, namespaces will be presented as packages, qualified | |||
|
204 | # scopes will look different, etc. | |||
|
205 | ||||
|
206 | OPTIMIZE_OUTPUT_JAVA = NO | |||
|
207 | ||||
|
208 | # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran | |||
|
209 | # sources only. Doxygen will then generate output that is more tailored for | |||
|
210 | # Fortran. | |||
|
211 | ||||
|
212 | OPTIMIZE_FOR_FORTRAN = NO | |||
|
213 | ||||
|
214 | # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL | |||
|
215 | # sources. Doxygen will then generate output that is tailored for | |||
|
216 | # VHDL. | |||
|
217 | ||||
|
218 | OPTIMIZE_OUTPUT_VHDL = NO | |||
|
219 | ||||
|
220 | # Doxygen selects the parser to use depending on the extension of the files it | |||
|
221 | # parses. With this tag you can assign which parser to use for a given extension. | |||
|
222 | # Doxygen has a built-in mapping, but you can override or extend it using this | |||
|
223 | # tag. The format is ext=language, where ext is a file extension, and language | |||
|
224 | # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, | |||
|
225 | # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make | |||
|
226 | # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C | |||
|
227 | # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions | |||
|
228 | # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. | |||
|
229 | ||||
|
230 | EXTENSION_MAPPING = | |||
|
231 | ||||
|
232 | # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want | |||
|
233 | # to include (a tag file for) the STL sources as input, then you should | |||
|
234 | # set this tag to YES in order to let doxygen match functions declarations and | |||
|
235 | # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. | |||
|
236 | # func(std::string) {}). This also make the inheritance and collaboration | |||
|
237 | # diagrams that involve STL classes more complete and accurate. | |||
|
238 | ||||
|
239 | BUILTIN_STL_SUPPORT = NO | |||
|
240 | ||||
|
241 | # If you use Microsoft's C++/CLI language, you should set this option to YES to | |||
|
242 | # enable parsing support. | |||
|
243 | ||||
|
244 | CPP_CLI_SUPPORT = NO | |||
|
245 | ||||
|
246 | # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. | |||
|
247 | # Doxygen will parse them like normal C++ but will assume all classes use public | |||
|
248 | # instead of private inheritance when no explicit protection keyword is present. | |||
|
249 | ||||
|
250 | SIP_SUPPORT = NO | |||
|
251 | ||||
|
252 | # For Microsoft's IDL there are propget and propput attributes to indicate getter | |||
|
253 | # and setter methods for a property. Setting this option to YES (the default) | |||
|
254 | # will make doxygen to replace the get and set methods by a property in the | |||
|
255 | # documentation. This will only work if the methods are indeed getting or | |||
|
256 | # setting a simple type. If this is not the case, or you want to show the | |||
|
257 | # methods anyway, you should set this option to NO. | |||
|
258 | ||||
|
259 | IDL_PROPERTY_SUPPORT = YES | |||
|
260 | ||||
|
261 | # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC | |||
|
262 | # tag is set to YES, then doxygen will reuse the documentation of the first | |||
|
263 | # member in the group (if any) for the other members of the group. By default | |||
|
264 | # all members of a group must be documented explicitly. | |||
|
265 | ||||
|
266 | DISTRIBUTE_GROUP_DOC = NO | |||
|
267 | ||||
|
268 | # Set the SUBGROUPING tag to YES (the default) to allow class member groups of | |||
|
269 | # the same type (for instance a group of public functions) to be put as a | |||
|
270 | # subgroup of that type (e.g. under the Public Functions section). Set it to | |||
|
271 | # NO to prevent subgrouping. Alternatively, this can be done per class using | |||
|
272 | # the \nosubgrouping command. | |||
|
273 | ||||
|
274 | SUBGROUPING = YES | |||
|
275 | ||||
|
276 | # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum | |||
|
277 | # is documented as struct, union, or enum with the name of the typedef. So | |||
|
278 | # typedef struct TypeS {} TypeT, will appear in the documentation as a struct | |||
|
279 | # with name TypeT. When disabled the typedef will appear as a member of a file, | |||
|
280 | # namespace, or class. And the struct will be named TypeS. This can typically | |||
|
281 | # be useful for C code in case the coding convention dictates that all compound | |||
|
282 | # types are typedef'ed and only the typedef is referenced, never the tag name. | |||
|
283 | ||||
|
284 | TYPEDEF_HIDES_STRUCT = NO | |||
|
285 | ||||
|
286 | # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to | |||
|
287 | # determine which symbols to keep in memory and which to flush to disk. | |||
|
288 | # When the cache is full, less often used symbols will be written to disk. | |||
|
289 | # For small to medium size projects (<1000 input files) the default value is | |||
|
290 | # probably good enough. For larger projects a too small cache size can cause | |||
|
291 | # doxygen to be busy swapping symbols to and from disk most of the time | |||
|
292 | # causing a significant performance penality. | |||
|
293 | # If the system has enough physical memory increasing the cache will improve the | |||
|
294 | # performance by keeping more symbols in memory. Note that the value works on | |||
|
295 | # a logarithmic scale so increasing the size by one will rougly double the | |||
|
296 | # memory usage. The cache size is given by this formula: | |||
|
297 | # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, | |||
|
298 | # corresponding to a cache size of 2^16 = 65536 symbols | |||
|
299 | ||||
|
300 | SYMBOL_CACHE_SIZE = 0 | |||
|
301 | ||||
|
302 | #--------------------------------------------------------------------------- | |||
|
303 | # Build related configuration options | |||
|
304 | #--------------------------------------------------------------------------- | |||
|
305 | ||||
|
306 | # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in | |||
|
307 | # documentation are documented, even if no documentation was available. | |||
|
308 | # Private class members and static file members will be hidden unless | |||
|
309 | # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES | |||
|
310 | ||||
|
311 | EXTRACT_ALL = YES | |||
|
312 | ||||
|
313 | # If the EXTRACT_PRIVATE tag is set to YES all private members of a class | |||
|
314 | # will be included in the documentation. | |||
|
315 | ||||
|
316 | EXTRACT_PRIVATE = NO | |||
|
317 | ||||
|
318 | # If the EXTRACT_STATIC tag is set to YES all static members of a file | |||
|
319 | # will be included in the documentation. | |||
|
320 | ||||
|
321 | EXTRACT_STATIC = NO | |||
|
322 | ||||
|
323 | # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) | |||
|
324 | # defined locally in source files will be included in the documentation. | |||
|
325 | # If set to NO only classes defined in header files are included. | |||
|
326 | ||||
|
327 | EXTRACT_LOCAL_CLASSES = YES | |||
|
328 | ||||
|
329 | # This flag is only useful for Objective-C code. When set to YES local | |||
|
330 | # methods, which are defined in the implementation section but not in | |||
|
331 | # the interface are included in the documentation. | |||
|
332 | # If set to NO (the default) only methods in the interface are included. | |||
|
333 | ||||
|
334 | EXTRACT_LOCAL_METHODS = YES | |||
|
335 | ||||
|
336 | # If this flag is set to YES, the members of anonymous namespaces will be | |||
|
337 | # extracted and appear in the documentation as a namespace called | |||
|
338 | # 'anonymous_namespace{file}', where file will be replaced with the base | |||
|
339 | # name of the file that contains the anonymous namespace. By default | |||
|
340 | # anonymous namespace are hidden. | |||
|
341 | ||||
|
342 | EXTRACT_ANON_NSPACES = NO | |||
|
343 | ||||
|
344 | # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all | |||
|
345 | # undocumented members of documented classes, files or namespaces. | |||
|
346 | # If set to NO (the default) these members will be included in the | |||
|
347 | # various overviews, but no documentation section is generated. | |||
|
348 | # This option has no effect if EXTRACT_ALL is enabled. | |||
|
349 | ||||
|
350 | HIDE_UNDOC_MEMBERS = NO | |||
|
351 | ||||
|
352 | # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all | |||
|
353 | # undocumented classes that are normally visible in the class hierarchy. | |||
|
354 | # If set to NO (the default) these classes will be included in the various | |||
|
355 | # overviews. This option has no effect if EXTRACT_ALL is enabled. | |||
|
356 | ||||
|
357 | HIDE_UNDOC_CLASSES = NO | |||
|
358 | ||||
|
359 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all | |||
|
360 | # friend (class|struct|union) declarations. | |||
|
361 | # If set to NO (the default) these declarations will be included in the | |||
|
362 | # documentation. | |||
|
363 | ||||
|
364 | HIDE_FRIEND_COMPOUNDS = NO | |||
|
365 | ||||
|
366 | # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any | |||
|
367 | # documentation blocks found inside the body of a function. | |||
|
368 | # If set to NO (the default) these blocks will be appended to the | |||
|
369 | # function's detailed documentation block. | |||
|
370 | ||||
|
371 | HIDE_IN_BODY_DOCS = NO | |||
|
372 | ||||
|
373 | # The INTERNAL_DOCS tag determines if documentation | |||
|
374 | # that is typed after a \internal command is included. If the tag is set | |||
|
375 | # to NO (the default) then the documentation will be excluded. | |||
|
376 | # Set it to YES to include the internal documentation. | |||
|
377 | ||||
|
378 | INTERNAL_DOCS = NO | |||
|
379 | ||||
|
380 | # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate | |||
|
381 | # file names in lower-case letters. If set to YES upper-case letters are also | |||
|
382 | # allowed. This is useful if you have classes or files whose names only differ | |||
|
383 | # in case and if your file system supports case sensitive file names. Windows | |||
|
384 | # and Mac users are advised to set this option to NO. | |||
|
385 | ||||
|
386 | CASE_SENSE_NAMES = NO | |||
|
387 | ||||
|
388 | # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen | |||
|
389 | # will show members with their full class and namespace scopes in the | |||
|
390 | # documentation. If set to YES the scope will be hidden. | |||
|
391 | ||||
|
392 | HIDE_SCOPE_NAMES = YES | |||
|
393 | ||||
|
394 | # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen | |||
|
395 | # will put a list of the files that are included by a file in the documentation | |||
|
396 | # of that file. | |||
|
397 | ||||
|
398 | SHOW_INCLUDE_FILES = YES | |||
|
399 | ||||
|
400 | # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen | |||
|
401 | # will list include files with double quotes in the documentation | |||
|
402 | # rather than with sharp brackets. | |||
|
403 | ||||
|
404 | FORCE_LOCAL_INCLUDES = NO | |||
|
405 | ||||
|
406 | # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] | |||
|
407 | # is inserted in the documentation for inline members. | |||
|
408 | ||||
|
409 | INLINE_INFO = YES | |||
|
410 | ||||
|
411 | # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen | |||
|
412 | # will sort the (detailed) documentation of file and class members | |||
|
413 | # alphabetically by member name. If set to NO the members will appear in | |||
|
414 | # declaration order. | |||
|
415 | ||||
|
416 | SORT_MEMBER_DOCS = YES | |||
|
417 | ||||
|
418 | # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the | |||
|
419 | # brief documentation of file, namespace and class members alphabetically | |||
|
420 | # by member name. If set to NO (the default) the members will appear in | |||
|
421 | # declaration order. | |||
|
422 | ||||
|
423 | SORT_BRIEF_DOCS = NO | |||
|
424 | ||||
|
425 | # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen | |||
|
426 | # will sort the (brief and detailed) documentation of class members so that | |||
|
427 | # constructors and destructors are listed first. If set to NO (the default) | |||
|
428 | # the constructors will appear in the respective orders defined by | |||
|
429 | # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. | |||
|
430 | # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO | |||
|
431 | # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. | |||
|
432 | ||||
|
433 | SORT_MEMBERS_CTORS_1ST = NO | |||
|
434 | ||||
|
435 | # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the | |||
|
436 | # hierarchy of group names into alphabetical order. If set to NO (the default) | |||
|
437 | # the group names will appear in their defined order. | |||
|
438 | ||||
|
439 | SORT_GROUP_NAMES = NO | |||
|
440 | ||||
|
441 | # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be | |||
|
442 | # sorted by fully-qualified names, including namespaces. If set to | |||
|
443 | # NO (the default), the class list will be sorted only by class name, | |||
|
444 | # not including the namespace part. | |||
|
445 | # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. | |||
|
446 | # Note: This option applies only to the class list, not to the | |||
|
447 | # alphabetical list. | |||
|
448 | ||||
|
449 | SORT_BY_SCOPE_NAME = NO | |||
|
450 | ||||
|
451 | # The GENERATE_TODOLIST tag can be used to enable (YES) or | |||
|
452 | # disable (NO) the todo list. This list is created by putting \todo | |||
|
453 | # commands in the documentation. | |||
|
454 | ||||
|
455 | GENERATE_TODOLIST = YES | |||
|
456 | ||||
|
457 | # The GENERATE_TESTLIST tag can be used to enable (YES) or | |||
|
458 | # disable (NO) the test list. This list is created by putting \test | |||
|
459 | # commands in the documentation. | |||
|
460 | ||||
|
461 | GENERATE_TESTLIST = YES | |||
|
462 | ||||
|
463 | # The GENERATE_BUGLIST tag can be used to enable (YES) or | |||
|
464 | # disable (NO) the bug list. This list is created by putting \bug | |||
|
465 | # commands in the documentation. | |||
|
466 | ||||
|
467 | GENERATE_BUGLIST = YES | |||
|
468 | ||||
|
469 | # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or | |||
|
470 | # disable (NO) the deprecated list. This list is created by putting | |||
|
471 | # \deprecated commands in the documentation. | |||
|
472 | ||||
|
473 | GENERATE_DEPRECATEDLIST= YES | |||
|
474 | ||||
|
475 | # The ENABLED_SECTIONS tag can be used to enable conditional | |||
|
476 | # documentation sections, marked by \if sectionname ... \endif. | |||
|
477 | ||||
|
478 | ENABLED_SECTIONS = | |||
|
479 | ||||
|
480 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines | |||
|
481 | # the initial value of a variable or define consists of for it to appear in | |||
|
482 | # the documentation. If the initializer consists of more lines than specified | |||
|
483 | # here it will be hidden. Use a value of 0 to hide initializers completely. | |||
|
484 | # The appearance of the initializer of individual variables and defines in the | |||
|
485 | # documentation can be controlled using \showinitializer or \hideinitializer | |||
|
486 | # command in the documentation regardless of this setting. | |||
|
487 | ||||
|
488 | MAX_INITIALIZER_LINES = 30 | |||
|
489 | ||||
|
490 | # Set the SHOW_USED_FILES tag to NO to disable the list of files generated | |||
|
491 | # at the bottom of the documentation of classes and structs. If set to YES the | |||
|
492 | # list will mention the files that were used to generate the documentation. | |||
|
493 | ||||
|
494 | SHOW_USED_FILES = YES | |||
|
495 | ||||
|
496 | # If the sources in your project are distributed over multiple directories | |||
|
497 | # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy | |||
|
498 | # in the documentation. The default is NO. | |||
|
499 | ||||
|
500 | SHOW_DIRECTORIES = NO | |||
|
501 | ||||
|
502 | # Set the SHOW_FILES tag to NO to disable the generation of the Files page. | |||
|
503 | # This will remove the Files entry from the Quick Index and from the | |||
|
504 | # Folder Tree View (if specified). The default is YES. | |||
|
505 | ||||
|
506 | SHOW_FILES = YES | |||
|
507 | ||||
|
508 | # Set the SHOW_NAMESPACES tag to NO to disable the generation of the | |||
|
509 | # Namespaces page. This will remove the Namespaces entry from the Quick Index | |||
|
510 | # and from the Folder Tree View (if specified). The default is YES. | |||
|
511 | ||||
|
512 | SHOW_NAMESPACES = YES | |||
|
513 | ||||
|
514 | # The FILE_VERSION_FILTER tag can be used to specify a program or script that | |||
|
515 | # doxygen should invoke to get the current version for each file (typically from | |||
|
516 | # the version control system). Doxygen will invoke the program by executing (via | |||
|
517 | # popen()) the command <command> <input-file>, where <command> is the value of | |||
|
518 | # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file | |||
|
519 | # provided by doxygen. Whatever the program writes to standard output | |||
|
520 | # is used as the file version. See the manual for examples. | |||
|
521 | ||||
|
522 | FILE_VERSION_FILTER = | |||
|
523 | ||||
|
524 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed | |||
|
525 | # by doxygen. The layout file controls the global structure of the generated | |||
|
526 | # output files in an output format independent way. The create the layout file | |||
|
527 | # that represents doxygen's defaults, run doxygen with the -l option. | |||
|
528 | # You can optionally specify a file name after the option, if omitted | |||
|
529 | # DoxygenLayout.xml will be used as the name of the layout file. | |||
|
530 | ||||
|
531 | LAYOUT_FILE = | |||
|
532 | ||||
|
533 | #--------------------------------------------------------------------------- | |||
|
534 | # configuration options related to warning and progress messages | |||
|
535 | #--------------------------------------------------------------------------- | |||
|
536 | ||||
|
537 | # The QUIET tag can be used to turn on/off the messages that are generated | |||
|
538 | # by doxygen. Possible values are YES and NO. If left blank NO is used. | |||
|
539 | ||||
|
540 | QUIET = NO | |||
|
541 | ||||
|
542 | # The WARNINGS tag can be used to turn on/off the warning messages that are | |||
|
543 | # generated by doxygen. Possible values are YES and NO. If left blank | |||
|
544 | # NO is used. | |||
|
545 | ||||
|
546 | WARNINGS = YES | |||
|
547 | ||||
|
548 | # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings | |||
|
549 | # for undocumented members. If EXTRACT_ALL is set to YES then this flag will | |||
|
550 | # automatically be disabled. | |||
|
551 | ||||
|
552 | WARN_IF_UNDOCUMENTED = YES | |||
|
553 | ||||
|
554 | # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for | |||
|
555 | # potential errors in the documentation, such as not documenting some | |||
|
556 | # parameters in a documented function, or documenting parameters that | |||
|
557 | # don't exist or using markup commands wrongly. | |||
|
558 | ||||
|
559 | WARN_IF_DOC_ERROR = YES | |||
|
560 | ||||
|
561 | # This WARN_NO_PARAMDOC option can be abled to get warnings for | |||
|
562 | # functions that are documented, but have no documentation for their parameters | |||
|
563 | # or return value. If set to NO (the default) doxygen will only warn about | |||
|
564 | # wrong or incomplete parameter documentation, but not about the absence of | |||
|
565 | # documentation. | |||
|
566 | ||||
|
567 | WARN_NO_PARAMDOC = NO | |||
|
568 | ||||
|
569 | # The WARN_FORMAT tag determines the format of the warning messages that | |||
|
570 | # doxygen can produce. The string should contain the $file, $line, and $text | |||
|
571 | # tags, which will be replaced by the file and line number from which the | |||
|
572 | # warning originated and the warning text. Optionally the format may contain | |||
|
573 | # $version, which will be replaced by the version of the file (if it could | |||
|
574 | # be obtained via FILE_VERSION_FILTER) | |||
|
575 | ||||
|
576 | WARN_FORMAT = "$file:$line: $text" | |||
|
577 | ||||
|
578 | # The WARN_LOGFILE tag can be used to specify a file to which warning | |||
|
579 | # and error messages should be written. If left blank the output is written | |||
|
580 | # to stderr. | |||
|
581 | ||||
|
582 | WARN_LOGFILE = | |||
|
583 | ||||
|
584 | #--------------------------------------------------------------------------- | |||
|
585 | # configuration options related to the input files | |||
|
586 | #--------------------------------------------------------------------------- | |||
|
587 | ||||
|
588 | # The INPUT tag can be used to specify the files and/or directories that contain | |||
|
589 | # documented source files. You may enter file names like "myfile.cpp" or | |||
|
590 | # directories like "/usr/src/myproject". Separate the files or directories | |||
|
591 | # with spaces. | |||
|
592 | ||||
|
593 | INPUT = ./ | |||
|
594 | ||||
|
595 | # This tag can be used to specify the character encoding of the source files | |||
|
596 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is | |||
|
597 | # also the default input encoding. Doxygen uses libiconv (or the iconv built | |||
|
598 | # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for | |||
|
599 | # the list of possible encodings. | |||
|
600 | ||||
|
601 | INPUT_ENCODING = UTF-8 | |||
|
602 | ||||
|
603 | # If the value of the INPUT tag contains directories, you can use the | |||
|
604 | # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | |||
|
605 | # and *.h) to filter out the source-files in the directories. If left | |||
|
606 | # blank the following patterns are tested: | |||
|
607 | # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx | |||
|
608 | # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 | |||
|
609 | ||||
|
610 | FILE_PATTERNS = *.c \ | |||
|
611 | *.cc \ | |||
|
612 | *.cxx \ | |||
|
613 | *.cpp \ | |||
|
614 | *.c++ \ | |||
|
615 | *.d \ | |||
|
616 | *.java \ | |||
|
617 | *.ii \ | |||
|
618 | *.ixx \ | |||
|
619 | *.ipp \ | |||
|
620 | *.i++ \ | |||
|
621 | *.inl \ | |||
|
622 | *.h \ | |||
|
623 | *.hh \ | |||
|
624 | *.hxx \ | |||
|
625 | *.hpp \ | |||
|
626 | *.h++ \ | |||
|
627 | *.idl \ | |||
|
628 | *.odl \ | |||
|
629 | *.cs \ | |||
|
630 | *.php \ | |||
|
631 | *.php3 \ | |||
|
632 | *.inc \ | |||
|
633 | *.m \ | |||
|
634 | *.mm \ | |||
|
635 | *.dox \ | |||
|
636 | *.py \ | |||
|
637 | *.f90 \ | |||
|
638 | *.f \ | |||
|
639 | *.vhd \ | |||
|
640 | *.vhdl | |||
|
641 | ||||
|
642 | # The RECURSIVE tag can be used to turn specify whether or not subdirectories | |||
|
643 | # should be searched for input files as well. Possible values are YES and NO. | |||
|
644 | # If left blank NO is used. | |||
|
645 | ||||
|
646 | RECURSIVE = NO | |||
|
647 | ||||
|
648 | # The EXCLUDE tag can be used to specify files and/or directories that should | |||
|
649 | # excluded from the INPUT source files. This way you can easily exclude a | |||
|
650 | # subdirectory from a directory tree whose root is specified with the INPUT tag. | |||
|
651 | ||||
|
652 | EXCLUDE = | |||
|
653 | ||||
|
654 | # The EXCLUDE_SYMLINKS tag can be used select whether or not files or | |||
|
655 | # directories that are symbolic links (a Unix filesystem feature) are excluded | |||
|
656 | # from the input. | |||
|
657 | ||||
|
658 | EXCLUDE_SYMLINKS = NO | |||
|
659 | ||||
|
660 | # If the value of the INPUT tag contains directories, you can use the | |||
|
661 | # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude | |||
|
662 | # certain files from those directories. Note that the wildcards are matched | |||
|
663 | # against the file with absolute path, so to exclude all test directories | |||
|
664 | # for example use the pattern */test/* | |||
|
665 | ||||
|
666 | EXCLUDE_PATTERNS = | |||
|
667 | ||||
|
668 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names | |||
|
669 | # (namespaces, classes, functions, etc.) that should be excluded from the | |||
|
670 | # output. The symbol name can be a fully qualified name, a word, or if the | |||
|
671 | # wildcard * is used, a substring. Examples: ANamespace, AClass, | |||
|
672 | # AClass::ANamespace, ANamespace::*Test | |||
|
673 | ||||
|
674 | EXCLUDE_SYMBOLS = | |||
|
675 | ||||
|
676 | # The EXAMPLE_PATH tag can be used to specify one or more files or | |||
|
677 | # directories that contain example code fragments that are included (see | |||
|
678 | # the \include command). | |||
|
679 | ||||
|
680 | EXAMPLE_PATH = | |||
|
681 | ||||
|
682 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the | |||
|
683 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | |||
|
684 | # and *.h) to filter out the source-files in the directories. If left | |||
|
685 | # blank all files are included. | |||
|
686 | ||||
|
687 | EXAMPLE_PATTERNS = * | |||
|
688 | ||||
|
689 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be | |||
|
690 | # searched for input files to be used with the \include or \dontinclude | |||
|
691 | # commands irrespective of the value of the RECURSIVE tag. | |||
|
692 | # Possible values are YES and NO. If left blank NO is used. | |||
|
693 | ||||
|
694 | EXAMPLE_RECURSIVE = NO | |||
|
695 | ||||
|
696 | # The IMAGE_PATH tag can be used to specify one or more files or | |||
|
697 | # directories that contain image that are included in the documentation (see | |||
|
698 | # the \image command). | |||
|
699 | ||||
|
700 | IMAGE_PATH = | |||
|
701 | ||||
|
702 | # The INPUT_FILTER tag can be used to specify a program that doxygen should | |||
|
703 | # invoke to filter for each input file. Doxygen will invoke the filter program | |||
|
704 | # by executing (via popen()) the command <filter> <input-file>, where <filter> | |||
|
705 | # is the value of the INPUT_FILTER tag, and <input-file> is the name of an | |||
|
706 | # input file. Doxygen will then use the output that the filter program writes | |||
|
707 | # to standard output. If FILTER_PATTERNS is specified, this tag will be | |||
|
708 | # ignored. | |||
|
709 | ||||
|
710 | INPUT_FILTER = | |||
|
711 | ||||
|
712 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | |||
|
713 | # basis. Doxygen will compare the file name with each pattern and apply the | |||
|
714 | # filter if there is a match. The filters are a list of the form: | |||
|
715 | # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further | |||
|
716 | # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER | |||
|
717 | # is applied to all files. | |||
|
718 | ||||
|
719 | FILTER_PATTERNS = | |||
|
720 | ||||
|
721 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using | |||
|
722 | # INPUT_FILTER) will be used to filter the input files when producing source | |||
|
723 | # files to browse (i.e. when SOURCE_BROWSER is set to YES). | |||
|
724 | ||||
|
725 | FILTER_SOURCE_FILES = NO | |||
|
726 | ||||
|
727 | #--------------------------------------------------------------------------- | |||
|
728 | # configuration options related to source browsing | |||
|
729 | #--------------------------------------------------------------------------- | |||
|
730 | ||||
|
731 | # If the SOURCE_BROWSER tag is set to YES then a list of source files will | |||
|
732 | # be generated. Documented entities will be cross-referenced with these sources. | |||
|
733 | # Note: To get rid of all source code in the generated output, make sure also | |||
|
734 | # VERBATIM_HEADERS is set to NO. | |||
|
735 | ||||
|
736 | SOURCE_BROWSER = YES | |||
|
737 | ||||
|
738 | # Setting the INLINE_SOURCES tag to YES will include the body | |||
|
739 | # of functions and classes directly in the documentation. | |||
|
740 | ||||
|
741 | INLINE_SOURCES = YES | |||
|
742 | ||||
|
743 | # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct | |||
|
744 | # doxygen to hide any special comment blocks from generated source code | |||
|
745 | # fragments. Normal C and C++ comments will always remain visible. | |||
|
746 | ||||
|
747 | STRIP_CODE_COMMENTS = YES | |||
|
748 | ||||
|
749 | # If the REFERENCED_BY_RELATION tag is set to YES | |||
|
750 | # then for each documented function all documented | |||
|
751 | # functions referencing it will be listed. | |||
|
752 | ||||
|
753 | REFERENCED_BY_RELATION = NO | |||
|
754 | ||||
|
755 | # If the REFERENCES_RELATION tag is set to YES | |||
|
756 | # then for each documented function all documented entities | |||
|
757 | # called/used by that function will be listed. | |||
|
758 | ||||
|
759 | REFERENCES_RELATION = NO | |||
|
760 | ||||
|
761 | # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) | |||
|
762 | # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from | |||
|
763 | # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will | |||
|
764 | # link to the source code. Otherwise they will link to the documentation. | |||
|
765 | ||||
|
766 | REFERENCES_LINK_SOURCE = YES | |||
|
767 | ||||
|
768 | # If the USE_HTAGS tag is set to YES then the references to source code | |||
|
769 | # will point to the HTML generated by the htags(1) tool instead of doxygen | |||
|
770 | # built-in source browser. The htags tool is part of GNU's global source | |||
|
771 | # tagging system (see http://www.gnu.org/software/global/global.html). You | |||
|
772 | # will need version 4.8.6 or higher. | |||
|
773 | ||||
|
774 | USE_HTAGS = NO | |||
|
775 | ||||
|
776 | # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen | |||
|
777 | # will generate a verbatim copy of the header file for each class for | |||
|
778 | # which an include is specified. Set to NO to disable this. | |||
|
779 | ||||
|
780 | VERBATIM_HEADERS = YES | |||
|
781 | ||||
|
782 | #--------------------------------------------------------------------------- | |||
|
783 | # configuration options related to the alphabetical class index | |||
|
784 | #--------------------------------------------------------------------------- | |||
|
785 | ||||
|
786 | # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index | |||
|
787 | # of all compounds will be generated. Enable this if the project | |||
|
788 | # contains a lot of classes, structs, unions or interfaces. | |||
|
789 | ||||
|
790 | ALPHABETICAL_INDEX = YES | |||
|
791 | ||||
|
792 | # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then | |||
|
793 | # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns | |||
|
794 | # in which this list will be split (can be a number in the range [1..20]) | |||
|
795 | ||||
|
796 | COLS_IN_ALPHA_INDEX = 5 | |||
|
797 | ||||
|
798 | # In case all classes in a project start with a common prefix, all | |||
|
799 | # classes will be put under the same header in the alphabetical index. | |||
|
800 | # The IGNORE_PREFIX tag can be used to specify one or more prefixes that | |||
|
801 | # should be ignored while generating the index headers. | |||
|
802 | ||||
|
803 | IGNORE_PREFIX = | |||
|
804 | ||||
|
805 | #--------------------------------------------------------------------------- | |||
|
806 | # configuration options related to the HTML output | |||
|
807 | #--------------------------------------------------------------------------- | |||
|
808 | ||||
|
809 | # If the GENERATE_HTML tag is set to YES (the default) Doxygen will | |||
|
810 | # generate HTML output. | |||
|
811 | ||||
|
812 | GENERATE_HTML = YES | |||
|
813 | ||||
|
814 | # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. | |||
|
815 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | |||
|
816 | # put in front of it. If left blank `html' will be used as the default path. | |||
|
817 | ||||
|
818 | HTML_OUTPUT = html | |||
|
819 | ||||
|
820 | # The HTML_FILE_EXTENSION tag can be used to specify the file extension for | |||
|
821 | # each generated HTML page (for example: .htm,.php,.asp). If it is left blank | |||
|
822 | # doxygen will generate files with .html extension. | |||
|
823 | ||||
|
824 | HTML_FILE_EXTENSION = .html | |||
|
825 | ||||
|
826 | # The HTML_HEADER tag can be used to specify a personal HTML header for | |||
|
827 | # each generated HTML page. If it is left blank doxygen will generate a | |||
|
828 | # standard header. | |||
|
829 | ||||
|
830 | HTML_HEADER = | |||
|
831 | ||||
|
832 | # The HTML_FOOTER tag can be used to specify a personal HTML footer for | |||
|
833 | # each generated HTML page. If it is left blank doxygen will generate a | |||
|
834 | # standard footer. | |||
|
835 | ||||
|
836 | HTML_FOOTER = | |||
|
837 | ||||
|
838 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading | |||
|
839 | # style sheet that is used by each HTML page. It can be used to | |||
|
840 | # fine-tune the look of the HTML output. If the tag is left blank doxygen | |||
|
841 | # will generate a default style sheet. Note that doxygen will try to copy | |||
|
842 | # the style sheet file to the HTML output directory, so don't put your own | |||
|
843 | # stylesheet in the HTML output directory as well, or it will be erased! | |||
|
844 | ||||
|
845 | HTML_STYLESHEET = | |||
|
846 | ||||
|
847 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. | |||
|
848 | # Doxygen will adjust the colors in the stylesheet and background images | |||
|
849 | # according to this color. Hue is specified as an angle on a colorwheel, | |||
|
850 | # see http://en.wikipedia.org/wiki/Hue for more information. | |||
|
851 | # For instance the value 0 represents red, 60 is yellow, 120 is green, | |||
|
852 | # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. | |||
|
853 | # The allowed range is 0 to 359. | |||
|
854 | ||||
|
855 | HTML_COLORSTYLE_HUE = 220 | |||
|
856 | ||||
|
857 | # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of | |||
|
858 | # the colors in the HTML output. For a value of 0 the output will use | |||
|
859 | # grayscales only. A value of 255 will produce the most vivid colors. | |||
|
860 | ||||
|
861 | HTML_COLORSTYLE_SAT = 100 | |||
|
862 | ||||
|
863 | # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to | |||
|
864 | # the luminance component of the colors in the HTML output. Values below | |||
|
865 | # 100 gradually make the output lighter, whereas values above 100 make | |||
|
866 | # the output darker. The value divided by 100 is the actual gamma applied, | |||
|
867 | # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, | |||
|
868 | # and 100 does not change the gamma. | |||
|
869 | ||||
|
870 | HTML_COLORSTYLE_GAMMA = 80 | |||
|
871 | ||||
|
872 | # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML | |||
|
873 | # page will contain the date and time when the page was generated. Setting | |||
|
874 | # this to NO can help when comparing the output of multiple runs. | |||
|
875 | ||||
|
876 | HTML_TIMESTAMP = YES | |||
|
877 | ||||
|
878 | # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, | |||
|
879 | # files or namespaces will be aligned in HTML using tables. If set to | |||
|
880 | # NO a bullet list will be used. | |||
|
881 | ||||
|
882 | HTML_ALIGN_MEMBERS = YES | |||
|
883 | ||||
|
884 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML | |||
|
885 | # documentation will contain sections that can be hidden and shown after the | |||
|
886 | # page has loaded. For this to work a browser that supports | |||
|
887 | # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox | |||
|
888 | # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). | |||
|
889 | ||||
|
890 | HTML_DYNAMIC_SECTIONS = YES | |||
|
891 | ||||
|
892 | # If the GENERATE_DOCSET tag is set to YES, additional index files | |||
|
893 | # will be generated that can be used as input for Apple's Xcode 3 | |||
|
894 | # integrated development environment, introduced with OSX 10.5 (Leopard). | |||
|
895 | # To create a documentation set, doxygen will generate a Makefile in the | |||
|
896 | # HTML output directory. Running make will produce the docset in that | |||
|
897 | # directory and running "make install" will install the docset in | |||
|
898 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find | |||
|
899 | # it at startup. | |||
|
900 | # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html | |||
|
901 | # for more information. | |||
|
902 | ||||
|
903 | GENERATE_DOCSET = NO | |||
|
904 | ||||
|
905 | # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the | |||
|
906 | # feed. A documentation feed provides an umbrella under which multiple | |||
|
907 | # documentation sets from a single provider (such as a company or product suite) | |||
|
908 | # can be grouped. | |||
|
909 | ||||
|
910 | DOCSET_FEEDNAME = "Doxygen generated docs" | |||
|
911 | ||||
|
912 | # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that | |||
|
913 | # should uniquely identify the documentation set bundle. This should be a | |||
|
914 | # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen | |||
|
915 | # will append .docset to the name. | |||
|
916 | ||||
|
917 | DOCSET_BUNDLE_ID = org.doxygen.Project | |||
|
918 | ||||
|
919 | # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify | |||
|
920 | # the documentation publisher. This should be a reverse domain-name style | |||
|
921 | # string, e.g. com.mycompany.MyDocSet.documentation. | |||
|
922 | ||||
|
923 | DOCSET_PUBLISHER_ID = org.doxygen.Publisher | |||
|
924 | ||||
|
925 | # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. | |||
|
926 | ||||
|
927 | DOCSET_PUBLISHER_NAME = Publisher | |||
|
928 | ||||
|
929 | # If the GENERATE_HTMLHELP tag is set to YES, additional index files | |||
|
930 | # will be generated that can be used as input for tools like the | |||
|
931 | # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) | |||
|
932 | # of the generated HTML documentation. | |||
|
933 | ||||
|
934 | GENERATE_HTMLHELP = NO | |||
|
935 | ||||
|
936 | # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can | |||
|
937 | # be used to specify the file name of the resulting .chm file. You | |||
|
938 | # can add a path in front of the file if the result should not be | |||
|
939 | # written to the html output directory. | |||
|
940 | ||||
|
941 | CHM_FILE = | |||
|
942 | ||||
|
943 | # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can | |||
|
944 | # be used to specify the location (absolute path including file name) of | |||
|
945 | # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run | |||
|
946 | # the HTML help compiler on the generated index.hhp. | |||
|
947 | ||||
|
948 | HHC_LOCATION = | |||
|
949 | ||||
|
950 | # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag | |||
|
951 | # controls if a separate .chi index file is generated (YES) or that | |||
|
952 | # it should be included in the master .chm file (NO). | |||
|
953 | ||||
|
954 | GENERATE_CHI = NO | |||
|
955 | ||||
|
956 | # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING | |||
|
957 | # is used to encode HtmlHelp index (hhk), content (hhc) and project file | |||
|
958 | # content. | |||
|
959 | ||||
|
960 | CHM_INDEX_ENCODING = | |||
|
961 | ||||
|
962 | # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag | |||
|
963 | # controls whether a binary table of contents is generated (YES) or a | |||
|
964 | # normal table of contents (NO) in the .chm file. | |||
|
965 | ||||
|
966 | BINARY_TOC = NO | |||
|
967 | ||||
|
968 | # The TOC_EXPAND flag can be set to YES to add extra items for group members | |||
|
969 | # to the contents of the HTML help documentation and to the tree view. | |||
|
970 | ||||
|
971 | TOC_EXPAND = NO | |||
|
972 | ||||
|
973 | # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and | |||
|
974 | # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated | |||
|
975 | # that can be used as input for Qt's qhelpgenerator to generate a | |||
|
976 | # Qt Compressed Help (.qch) of the generated HTML documentation. | |||
|
977 | ||||
|
978 | GENERATE_QHP = NO | |||
|
979 | ||||
|
980 | # If the QHG_LOCATION tag is specified, the QCH_FILE tag can | |||
|
981 | # be used to specify the file name of the resulting .qch file. | |||
|
982 | # The path specified is relative to the HTML output folder. | |||
|
983 | ||||
|
984 | QCH_FILE = | |||
|
985 | ||||
|
986 | # The QHP_NAMESPACE tag specifies the namespace to use when generating | |||
|
987 | # Qt Help Project output. For more information please see | |||
|
988 | # http://doc.trolltech.com/qthelpproject.html#namespace | |||
|
989 | ||||
|
990 | QHP_NAMESPACE = org.doxygen.Project | |||
|
991 | ||||
|
992 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating | |||
|
993 | # Qt Help Project output. For more information please see | |||
|
994 | # http://doc.trolltech.com/qthelpproject.html#virtual-folders | |||
|
995 | ||||
|
996 | QHP_VIRTUAL_FOLDER = doc | |||
|
997 | ||||
|
998 | # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to | |||
|
999 | # add. For more information please see | |||
|
1000 | # http://doc.trolltech.com/qthelpproject.html#custom-filters | |||
|
1001 | ||||
|
1002 | QHP_CUST_FILTER_NAME = | |||
|
1003 | ||||
|
1004 | # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the | |||
|
1005 | # custom filter to add. For more information please see | |||
|
1006 | # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> | |||
|
1007 | # Qt Help Project / Custom Filters</a>. | |||
|
1008 | ||||
|
1009 | QHP_CUST_FILTER_ATTRS = | |||
|
1010 | ||||
|
1011 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this | |||
|
1012 | # project's | |||
|
1013 | # filter section matches. | |||
|
1014 | # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> | |||
|
1015 | # Qt Help Project / Filter Attributes</a>. | |||
|
1016 | ||||
|
1017 | QHP_SECT_FILTER_ATTRS = | |||
|
1018 | ||||
|
1019 | # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can | |||
|
1020 | # be used to specify the location of Qt's qhelpgenerator. | |||
|
1021 | # If non-empty doxygen will try to run qhelpgenerator on the generated | |||
|
1022 | # .qhp file. | |||
|
1023 | ||||
|
1024 | QHG_LOCATION = | |||
|
1025 | ||||
|
1026 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files | |||
|
1027 | # will be generated, which together with the HTML files, form an Eclipse help | |||
|
1028 | # plugin. To install this plugin and make it available under the help contents | |||
|
1029 | # menu in Eclipse, the contents of the directory containing the HTML and XML | |||
|
1030 | # files needs to be copied into the plugins directory of eclipse. The name of | |||
|
1031 | # the directory within the plugins directory should be the same as | |||
|
1032 | # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before | |||
|
1033 | # the help appears. | |||
|
1034 | ||||
|
1035 | GENERATE_ECLIPSEHELP = NO | |||
|
1036 | ||||
|
1037 | # A unique identifier for the eclipse help plugin. When installing the plugin | |||
|
1038 | # the directory name containing the HTML and XML files should also have | |||
|
1039 | # this name. | |||
|
1040 | ||||
|
1041 | ECLIPSE_DOC_ID = org.doxygen.Project | |||
|
1042 | ||||
|
1043 | # The DISABLE_INDEX tag can be used to turn on/off the condensed index at | |||
|
1044 | # top of each HTML page. The value NO (the default) enables the index and | |||
|
1045 | # the value YES disables it. | |||
|
1046 | ||||
|
1047 | DISABLE_INDEX = NO | |||
|
1048 | ||||
|
1049 | # This tag can be used to set the number of enum values (range [1..20]) | |||
|
1050 | # that doxygen will group on one line in the generated HTML documentation. | |||
|
1051 | ||||
|
1052 | ENUM_VALUES_PER_LINE = 4 | |||
|
1053 | ||||
|
1054 | # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index | |||
|
1055 | # structure should be generated to display hierarchical information. | |||
|
1056 | # If the tag value is set to YES, a side panel will be generated | |||
|
1057 | # containing a tree-like index structure (just like the one that | |||
|
1058 | # is generated for HTML Help). For this to work a browser that supports | |||
|
1059 | # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). | |||
|
1060 | # Windows users are probably better off using the HTML help feature. | |||
|
1061 | ||||
|
1062 | GENERATE_TREEVIEW = NO | |||
|
1063 | ||||
|
1064 | # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, | |||
|
1065 | # and Class Hierarchy pages using a tree view instead of an ordered list. | |||
|
1066 | ||||
|
1067 | USE_INLINE_TREES = NO | |||
|
1068 | ||||
|
1069 | # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be | |||
|
1070 | # used to set the initial width (in pixels) of the frame in which the tree | |||
|
1071 | # is shown. | |||
|
1072 | ||||
|
1073 | TREEVIEW_WIDTH = 250 | |||
|
1074 | ||||
|
1075 | # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open | |||
|
1076 | # links to external symbols imported via tag files in a separate window. | |||
|
1077 | ||||
|
1078 | EXT_LINKS_IN_WINDOW = NO | |||
|
1079 | ||||
|
1080 | # Use this tag to change the font size of Latex formulas included | |||
|
1081 | # as images in the HTML documentation. The default is 10. Note that | |||
|
1082 | # when you change the font size after a successful doxygen run you need | |||
|
1083 | # to manually remove any form_*.png images from the HTML output directory | |||
|
1084 | # to force them to be regenerated. | |||
|
1085 | ||||
|
1086 | FORMULA_FONTSIZE = 10 | |||
|
1087 | ||||
|
1088 | # Use the FORMULA_TRANPARENT tag to determine whether or not the images | |||
|
1089 | # generated for formulas are transparent PNGs. Transparent PNGs are | |||
|
1090 | # not supported properly for IE 6.0, but are supported on all modern browsers. | |||
|
1091 | # Note that when changing this option you need to delete any form_*.png files | |||
|
1092 | # in the HTML output before the changes have effect. | |||
|
1093 | ||||
|
1094 | FORMULA_TRANSPARENT = YES | |||
|
1095 | ||||
|
1096 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box | |||
|
1097 | # for the HTML output. The underlying search engine uses javascript | |||
|
1098 | # and DHTML and should work on any modern browser. Note that when using | |||
|
1099 | # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets | |||
|
1100 | # (GENERATE_DOCSET) there is already a search function so this one should | |||
|
1101 | # typically be disabled. For large projects the javascript based search engine | |||
|
1102 | # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. | |||
|
1103 | ||||
|
1104 | SEARCHENGINE = YES | |||
|
1105 | ||||
|
1106 | # When the SERVER_BASED_SEARCH tag is enabled the search engine will be | |||
|
1107 | # implemented using a PHP enabled web server instead of at the web client | |||
|
1108 | # using Javascript. Doxygen will generate the search PHP script and index | |||
|
1109 | # file to put on the web server. The advantage of the server | |||
|
1110 | # based approach is that it scales better to large projects and allows | |||
|
1111 | # full text search. The disadvances is that it is more difficult to setup | |||
|
1112 | # and does not have live searching capabilities. | |||
|
1113 | ||||
|
1114 | SERVER_BASED_SEARCH = NO | |||
|
1115 | ||||
|
1116 | #--------------------------------------------------------------------------- | |||
|
1117 | # configuration options related to the LaTeX output | |||
|
1118 | #--------------------------------------------------------------------------- | |||
|
1119 | ||||
|
1120 | # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will | |||
|
1121 | # generate Latex output. | |||
|
1122 | ||||
|
1123 | GENERATE_LATEX = YES | |||
|
1124 | ||||
|
1125 | # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. | |||
|
1126 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | |||
|
1127 | # put in front of it. If left blank `latex' will be used as the default path. | |||
|
1128 | ||||
|
1129 | LATEX_OUTPUT = latex | |||
|
1130 | ||||
|
1131 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be | |||
|
1132 | # invoked. If left blank `latex' will be used as the default command name. | |||
|
1133 | # Note that when enabling USE_PDFLATEX this option is only used for | |||
|
1134 | # generating bitmaps for formulas in the HTML output, but not in the | |||
|
1135 | # Makefile that is written to the output directory. | |||
|
1136 | ||||
|
1137 | LATEX_CMD_NAME = latex | |||
|
1138 | ||||
|
1139 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to | |||
|
1140 | # generate index for LaTeX. If left blank `makeindex' will be used as the | |||
|
1141 | # default command name. | |||
|
1142 | ||||
|
1143 | MAKEINDEX_CMD_NAME = makeindex | |||
|
1144 | ||||
|
1145 | # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact | |||
|
1146 | # LaTeX documents. This may be useful for small projects and may help to | |||
|
1147 | # save some trees in general. | |||
|
1148 | ||||
|
1149 | COMPACT_LATEX = YES | |||
|
1150 | ||||
|
1151 | # The PAPER_TYPE tag can be used to set the paper type that is used | |||
|
1152 | # by the printer. Possible values are: a4, a4wide, letter, legal and | |||
|
1153 | # executive. If left blank a4wide will be used. | |||
|
1154 | ||||
|
1155 | PAPER_TYPE = a4wide | |||
|
1156 | ||||
|
1157 | # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX | |||
|
1158 | # packages that should be included in the LaTeX output. | |||
|
1159 | ||||
|
1160 | EXTRA_PACKAGES = | |||
|
1161 | ||||
|
1162 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for | |||
|
1163 | # the generated latex document. The header should contain everything until | |||
|
1164 | # the first chapter. If it is left blank doxygen will generate a | |||
|
1165 | # standard header. Notice: only use this tag if you know what you are doing! | |||
|
1166 | ||||
|
1167 | LATEX_HEADER = | |||
|
1168 | ||||
|
1169 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated | |||
|
1170 | # is prepared for conversion to pdf (using ps2pdf). The pdf file will | |||
|
1171 | # contain links (just like the HTML output) instead of page references | |||
|
1172 | # This makes the output suitable for online browsing using a pdf viewer. | |||
|
1173 | ||||
|
1174 | PDF_HYPERLINKS = YES | |||
|
1175 | ||||
|
1176 | # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of | |||
|
1177 | # plain latex in the generated Makefile. Set this option to YES to get a | |||
|
1178 | # higher quality PDF documentation. | |||
|
1179 | ||||
|
1180 | USE_PDFLATEX = YES | |||
|
1181 | ||||
|
1182 | # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. | |||
|
1183 | # command to the generated LaTeX files. This will instruct LaTeX to keep | |||
|
1184 | # running if errors occur, instead of asking the user for help. | |||
|
1185 | # This option is also used when generating formulas in HTML. | |||
|
1186 | ||||
|
1187 | LATEX_BATCHMODE = NO | |||
|
1188 | ||||
|
1189 | # If LATEX_HIDE_INDICES is set to YES then doxygen will not | |||
|
1190 | # include the index chapters (such as File Index, Compound Index, etc.) | |||
|
1191 | # in the output. | |||
|
1192 | ||||
|
1193 | LATEX_HIDE_INDICES = NO | |||
|
1194 | ||||
|
1195 | # If LATEX_SOURCE_CODE is set to YES then doxygen will include | |||
|
1196 | # source code with syntax highlighting in the LaTeX output. | |||
|
1197 | # Note that which sources are shown also depends on other settings | |||
|
1198 | # such as SOURCE_BROWSER. | |||
|
1199 | ||||
|
1200 | LATEX_SOURCE_CODE = NO | |||
|
1201 | ||||
|
1202 | #--------------------------------------------------------------------------- | |||
|
1203 | # configuration options related to the RTF output | |||
|
1204 | #--------------------------------------------------------------------------- | |||
|
1205 | ||||
|
1206 | # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output | |||
|
1207 | # The RTF output is optimized for Word 97 and may not look very pretty with | |||
|
1208 | # other RTF readers or editors. | |||
|
1209 | ||||
|
1210 | GENERATE_RTF = NO | |||
|
1211 | ||||
|
1212 | # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. | |||
|
1213 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | |||
|
1214 | # put in front of it. If left blank `rtf' will be used as the default path. | |||
|
1215 | ||||
|
1216 | RTF_OUTPUT = rtf | |||
|
1217 | ||||
|
1218 | # If the COMPACT_RTF tag is set to YES Doxygen generates more compact | |||
|
1219 | # RTF documents. This may be useful for small projects and may help to | |||
|
1220 | # save some trees in general. | |||
|
1221 | ||||
|
1222 | COMPACT_RTF = NO | |||
|
1223 | ||||
|
1224 | # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated | |||
|
1225 | # will contain hyperlink fields. The RTF file will | |||
|
1226 | # contain links (just like the HTML output) instead of page references. | |||
|
1227 | # This makes the output suitable for online browsing using WORD or other | |||
|
1228 | # programs which support those fields. | |||
|
1229 | # Note: wordpad (write) and others do not support links. | |||
|
1230 | ||||
|
1231 | RTF_HYPERLINKS = NO | |||
|
1232 | ||||
|
1233 | # Load stylesheet definitions from file. Syntax is similar to doxygen's | |||
|
1234 | # config file, i.e. a series of assignments. You only have to provide | |||
|
1235 | # replacements, missing definitions are set to their default value. | |||
|
1236 | ||||
|
1237 | RTF_STYLESHEET_FILE = | |||
|
1238 | ||||
|
1239 | # Set optional variables used in the generation of an rtf document. | |||
|
1240 | # Syntax is similar to doxygen's config file. | |||
|
1241 | ||||
|
1242 | RTF_EXTENSIONS_FILE = | |||
|
1243 | ||||
|
1244 | #--------------------------------------------------------------------------- | |||
|
1245 | # configuration options related to the man page output | |||
|
1246 | #--------------------------------------------------------------------------- | |||
|
1247 | ||||
|
1248 | # If the GENERATE_MAN tag is set to YES (the default) Doxygen will | |||
|
1249 | # generate man pages | |||
|
1250 | ||||
|
1251 | GENERATE_MAN = NO | |||
|
1252 | ||||
|
1253 | # The MAN_OUTPUT tag is used to specify where the man pages will be put. | |||
|
1254 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | |||
|
1255 | # put in front of it. If left blank `man' will be used as the default path. | |||
|
1256 | ||||
|
1257 | MAN_OUTPUT = man | |||
|
1258 | ||||
|
1259 | # The MAN_EXTENSION tag determines the extension that is added to | |||
|
1260 | # the generated man pages (default is the subroutine's section .3) | |||
|
1261 | ||||
|
1262 | MAN_EXTENSION = .3 | |||
|
1263 | ||||
|
1264 | # If the MAN_LINKS tag is set to YES and Doxygen generates man output, | |||
|
1265 | # then it will generate one additional man file for each entity | |||
|
1266 | # documented in the real man page(s). These additional files | |||
|
1267 | # only source the real man page, but without them the man command | |||
|
1268 | # would be unable to find the correct page. The default is NO. | |||
|
1269 | ||||
|
1270 | MAN_LINKS = NO | |||
|
1271 | ||||
|
1272 | #--------------------------------------------------------------------------- | |||
|
1273 | # configuration options related to the XML output | |||
|
1274 | #--------------------------------------------------------------------------- | |||
|
1275 | ||||
|
1276 | # If the GENERATE_XML tag is set to YES Doxygen will | |||
|
1277 | # generate an XML file that captures the structure of | |||
|
1278 | # the code including all documentation. | |||
|
1279 | ||||
|
1280 | GENERATE_XML = NO | |||
|
1281 | ||||
|
1282 | # The XML_OUTPUT tag is used to specify where the XML pages will be put. | |||
|
1283 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | |||
|
1284 | # put in front of it. If left blank `xml' will be used as the default path. | |||
|
1285 | ||||
|
1286 | XML_OUTPUT = xml | |||
|
1287 | ||||
|
1288 | # The XML_SCHEMA tag can be used to specify an XML schema, | |||
|
1289 | # which can be used by a validating XML parser to check the | |||
|
1290 | # syntax of the XML files. | |||
|
1291 | ||||
|
1292 | XML_SCHEMA = | |||
|
1293 | ||||
|
1294 | # The XML_DTD tag can be used to specify an XML DTD, | |||
|
1295 | # which can be used by a validating XML parser to check the | |||
|
1296 | # syntax of the XML files. | |||
|
1297 | ||||
|
1298 | XML_DTD = | |||
|
1299 | ||||
|
1300 | # If the XML_PROGRAMLISTING tag is set to YES Doxygen will | |||
|
1301 | # dump the program listings (including syntax highlighting | |||
|
1302 | # and cross-referencing information) to the XML output. Note that | |||
|
1303 | # enabling this will significantly increase the size of the XML output. | |||
|
1304 | ||||
|
1305 | XML_PROGRAMLISTING = YES | |||
|
1306 | ||||
|
1307 | #--------------------------------------------------------------------------- | |||
|
1308 | # configuration options for the AutoGen Definitions output | |||
|
1309 | #--------------------------------------------------------------------------- | |||
|
1310 | ||||
|
1311 | # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will | |||
|
1312 | # generate an AutoGen Definitions (see autogen.sf.net) file | |||
|
1313 | # that captures the structure of the code including all | |||
|
1314 | # documentation. Note that this feature is still experimental | |||
|
1315 | # and incomplete at the moment. | |||
|
1316 | ||||
|
1317 | GENERATE_AUTOGEN_DEF = NO | |||
|
1318 | ||||
|
1319 | #--------------------------------------------------------------------------- | |||
|
1320 | # configuration options related to the Perl module output | |||
|
1321 | #--------------------------------------------------------------------------- | |||
|
1322 | ||||
|
1323 | # If the GENERATE_PERLMOD tag is set to YES Doxygen will | |||
|
1324 | # generate a Perl module file that captures the structure of | |||
|
1325 | # the code including all documentation. Note that this | |||
|
1326 | # feature is still experimental and incomplete at the | |||
|
1327 | # moment. | |||
|
1328 | ||||
|
1329 | GENERATE_PERLMOD = NO | |||
|
1330 | ||||
|
1331 | # If the PERLMOD_LATEX tag is set to YES Doxygen will generate | |||
|
1332 | # the necessary Makefile rules, Perl scripts and LaTeX code to be able | |||
|
1333 | # to generate PDF and DVI output from the Perl module output. | |||
|
1334 | ||||
|
1335 | PERLMOD_LATEX = NO | |||
|
1336 | ||||
|
1337 | # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be | |||
|
1338 | # nicely formatted so it can be parsed by a human reader. This is useful | |||
|
1339 | # if you want to understand what is going on. On the other hand, if this | |||
|
1340 | # tag is set to NO the size of the Perl module output will be much smaller | |||
|
1341 | # and Perl will parse it just the same. | |||
|
1342 | ||||
|
1343 | PERLMOD_PRETTY = YES | |||
|
1344 | ||||
|
1345 | # The names of the make variables in the generated doxyrules.make file | |||
|
1346 | # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. | |||
|
1347 | # This is useful so different doxyrules.make files included by the same | |||
|
1348 | # Makefile don't overwrite each other's variables. | |||
|
1349 | ||||
|
1350 | PERLMOD_MAKEVAR_PREFIX = | |||
|
1351 | ||||
|
1352 | #--------------------------------------------------------------------------- | |||
|
1353 | # Configuration options related to the preprocessor | |||
|
1354 | #--------------------------------------------------------------------------- | |||
|
1355 | ||||
|
1356 | # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will | |||
|
1357 | # evaluate all C-preprocessor directives found in the sources and include | |||
|
1358 | # files. | |||
|
1359 | ||||
|
1360 | ENABLE_PREPROCESSING = YES | |||
|
1361 | ||||
|
1362 | # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro | |||
|
1363 | # names in the source code. If set to NO (the default) only conditional | |||
|
1364 | # compilation will be performed. Macro expansion can be done in a controlled | |||
|
1365 | # way by setting EXPAND_ONLY_PREDEF to YES. | |||
|
1366 | ||||
|
1367 | MACRO_EXPANSION = NO | |||
|
1368 | ||||
|
1369 | # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES | |||
|
1370 | # then the macro expansion is limited to the macros specified with the | |||
|
1371 | # PREDEFINED and EXPAND_AS_DEFINED tags. | |||
|
1372 | ||||
|
1373 | EXPAND_ONLY_PREDEF = NO | |||
|
1374 | ||||
|
1375 | # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files | |||
|
1376 | # in the INCLUDE_PATH (see below) will be search if a #include is found. | |||
|
1377 | ||||
|
1378 | SEARCH_INCLUDES = YES | |||
|
1379 | ||||
|
1380 | # The INCLUDE_PATH tag can be used to specify one or more directories that | |||
|
1381 | # contain include files that are not input files but should be processed by | |||
|
1382 | # the preprocessor. | |||
|
1383 | ||||
|
1384 | INCLUDE_PATH = | |||
|
1385 | ||||
|
1386 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard | |||
|
1387 | # patterns (like *.h and *.hpp) to filter out the header-files in the | |||
|
1388 | # directories. If left blank, the patterns specified with FILE_PATTERNS will | |||
|
1389 | # be used. | |||
|
1390 | ||||
|
1391 | INCLUDE_FILE_PATTERNS = | |||
|
1392 | ||||
|
1393 | # The PREDEFINED tag can be used to specify one or more macro names that | |||
|
1394 | # are defined before the preprocessor is started (similar to the -D option of | |||
|
1395 | # gcc). The argument of the tag is a list of macros of the form: name | |||
|
1396 | # or name=definition (no spaces). If the definition and the = are | |||
|
1397 | # omitted =1 is assumed. To prevent a macro definition from being | |||
|
1398 | # undefined via #undef or recursively expanded use the := operator | |||
|
1399 | # instead of the = operator. | |||
|
1400 | ||||
|
1401 | PREDEFINED = | |||
|
1402 | ||||
|
1403 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then | |||
|
1404 | # this tag can be used to specify a list of macro names that should be expanded. | |||
|
1405 | # The macro definition that is found in the sources will be used. | |||
|
1406 | # Use the PREDEFINED tag if you want to use a different macro definition. | |||
|
1407 | ||||
|
1408 | EXPAND_AS_DEFINED = | |||
|
1409 | ||||
|
1410 | # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then | |||
|
1411 | # doxygen's preprocessor will remove all function-like macros that are alone | |||
|
1412 | # on a line, have an all uppercase name, and do not end with a semicolon. Such | |||
|
1413 | # function macros are typically used for boiler-plate code, and will confuse | |||
|
1414 | # the parser if not removed. | |||
|
1415 | ||||
|
1416 | SKIP_FUNCTION_MACROS = YES | |||
|
1417 | ||||
|
1418 | #--------------------------------------------------------------------------- | |||
|
1419 | # Configuration::additions related to external references | |||
|
1420 | #--------------------------------------------------------------------------- | |||
|
1421 | ||||
|
1422 | # The TAGFILES option can be used to specify one or more tagfiles. | |||
|
1423 | # Optionally an initial location of the external documentation | |||
|
1424 | # can be added for each tagfile. The format of a tag file without | |||
|
1425 | # this location is as follows: | |||
|
1426 | # TAGFILES = file1 file2 ... | |||
|
1427 | # Adding location for the tag files is done as follows: | |||
|
1428 | # TAGFILES = file1=loc1 "file2 = loc2" ... | |||
|
1429 | # where "loc1" and "loc2" can be relative or absolute paths or | |||
|
1430 | # URLs. If a location is present for each tag, the installdox tool | |||
|
1431 | # does not have to be run to correct the links. | |||
|
1432 | # Note that each tag file must have a unique name | |||
|
1433 | # (where the name does NOT include the path) | |||
|
1434 | # If a tag file is not located in the directory in which doxygen | |||
|
1435 | # is run, you must also specify the path to the tagfile here. | |||
|
1436 | ||||
|
1437 | TAGFILES = | |||
|
1438 | ||||
|
1439 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create | |||
|
1440 | # a tag file that is based on the input files it reads. | |||
|
1441 | ||||
|
1442 | GENERATE_TAGFILE = | |||
|
1443 | ||||
|
1444 | # If the ALLEXTERNALS tag is set to YES all external classes will be listed | |||
|
1445 | # in the class index. If set to NO only the inherited external classes | |||
|
1446 | # will be listed. | |||
|
1447 | ||||
|
1448 | ALLEXTERNALS = NO | |||
|
1449 | ||||
|
1450 | # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed | |||
|
1451 | # in the modules index. If set to NO, only the current project's groups will | |||
|
1452 | # be listed. | |||
|
1453 | ||||
|
1454 | EXTERNAL_GROUPS = YES | |||
|
1455 | ||||
|
1456 | # The PERL_PATH should be the absolute path and name of the perl script | |||
|
1457 | # interpreter (i.e. the result of `which perl'). | |||
|
1458 | ||||
|
1459 | PERL_PATH = /usr/bin/perl | |||
|
1460 | ||||
|
1461 | #--------------------------------------------------------------------------- | |||
|
1462 | # Configuration options related to the dot tool | |||
|
1463 | #--------------------------------------------------------------------------- | |||
|
1464 | ||||
|
1465 | # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will | |||
|
1466 | # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base | |||
|
1467 | # or super classes. Setting the tag to NO turns the diagrams off. Note that | |||
|
1468 | # this option is superseded by the HAVE_DOT option below. This is only a | |||
|
1469 | # fallback. It is recommended to install and use dot, since it yields more | |||
|
1470 | # powerful graphs. | |||
|
1471 | ||||
|
1472 | CLASS_DIAGRAMS = YES | |||
|
1473 | ||||
|
1474 | # You can define message sequence charts within doxygen comments using the \msc | |||
|
1475 | # command. Doxygen will then run the mscgen tool (see | |||
|
1476 | # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the | |||
|
1477 | # documentation. The MSCGEN_PATH tag allows you to specify the directory where | |||
|
1478 | # the mscgen tool resides. If left empty the tool is assumed to be found in the | |||
|
1479 | # default search path. | |||
|
1480 | ||||
|
1481 | MSCGEN_PATH = | |||
|
1482 | ||||
|
1483 | # If set to YES, the inheritance and collaboration graphs will hide | |||
|
1484 | # inheritance and usage relations if the target is undocumented | |||
|
1485 | # or is not a class. | |||
|
1486 | ||||
|
1487 | HIDE_UNDOC_RELATIONS = YES | |||
|
1488 | ||||
|
1489 | # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is | |||
|
1490 | # available from the path. This tool is part of Graphviz, a graph visualization | |||
|
1491 | # toolkit from AT&T and Lucent Bell Labs. The other options in this section | |||
|
1492 | # have no effect if this option is set to NO (the default) | |||
|
1493 | ||||
|
1494 | HAVE_DOT = NO | |||
|
1495 | ||||
|
1496 | # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is | |||
|
1497 | # allowed to run in parallel. When set to 0 (the default) doxygen will | |||
|
1498 | # base this on the number of processors available in the system. You can set it | |||
|
1499 | # explicitly to a value larger than 0 to get control over the balance | |||
|
1500 | # between CPU load and processing speed. | |||
|
1501 | ||||
|
1502 | DOT_NUM_THREADS = 0 | |||
|
1503 | ||||
|
1504 | # By default doxygen will write a font called FreeSans.ttf to the output | |||
|
1505 | # directory and reference it in all dot files that doxygen generates. This | |||
|
1506 | # font does not include all possible unicode characters however, so when you need | |||
|
1507 | # these (or just want a differently looking font) you can specify the font name | |||
|
1508 | # using DOT_FONTNAME. You need need to make sure dot is able to find the font, | |||
|
1509 | # which can be done by putting it in a standard location or by setting the | |||
|
1510 | # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory | |||
|
1511 | # containing the font. | |||
|
1512 | ||||
|
1513 | DOT_FONTNAME = FreeSans.ttf | |||
|
1514 | ||||
|
1515 | # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. | |||
|
1516 | # The default size is 10pt. | |||
|
1517 | ||||
|
1518 | DOT_FONTSIZE = 10 | |||
|
1519 | ||||
|
1520 | # By default doxygen will tell dot to use the output directory to look for the | |||
|
1521 | # FreeSans.ttf font (which doxygen will put there itself). If you specify a | |||
|
1522 | # different font using DOT_FONTNAME you can set the path where dot | |||
|
1523 | # can find it using this tag. | |||
|
1524 | ||||
|
1525 | DOT_FONTPATH = | |||
|
1526 | ||||
|
1527 | # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen | |||
|
1528 | # will generate a graph for each documented class showing the direct and | |||
|
1529 | # indirect inheritance relations. Setting this tag to YES will force the | |||
|
1530 | # the CLASS_DIAGRAMS tag to NO. | |||
|
1531 | ||||
|
1532 | CLASS_GRAPH = YES | |||
|
1533 | ||||
|
1534 | # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen | |||
|
1535 | # will generate a graph for each documented class showing the direct and | |||
|
1536 | # indirect implementation dependencies (inheritance, containment, and | |||
|
1537 | # class references variables) of the class with other documented classes. | |||
|
1538 | ||||
|
1539 | COLLABORATION_GRAPH = YES | |||
|
1540 | ||||
|
1541 | # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen | |||
|
1542 | # will generate a graph for groups, showing the direct groups dependencies | |||
|
1543 | ||||
|
1544 | GROUP_GRAPHS = YES | |||
|
1545 | ||||
|
1546 | # If the UML_LOOK tag is set to YES doxygen will generate inheritance and | |||
|
1547 | # collaboration diagrams in a style similar to the OMG's Unified Modeling | |||
|
1548 | # Language. | |||
|
1549 | ||||
|
1550 | UML_LOOK = NO | |||
|
1551 | ||||
|
1552 | # If set to YES, the inheritance and collaboration graphs will show the | |||
|
1553 | # relations between templates and their instances. | |||
|
1554 | ||||
|
1555 | TEMPLATE_RELATIONS = NO | |||
|
1556 | ||||
|
1557 | # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT | |||
|
1558 | # tags are set to YES then doxygen will generate a graph for each documented | |||
|
1559 | # file showing the direct and indirect include dependencies of the file with | |||
|
1560 | # other documented files. | |||
|
1561 | ||||
|
1562 | INCLUDE_GRAPH = YES | |||
|
1563 | ||||
|
1564 | # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and | |||
|
1565 | # HAVE_DOT tags are set to YES then doxygen will generate a graph for each | |||
|
1566 | # documented header file showing the documented files that directly or | |||
|
1567 | # indirectly include this file. | |||
|
1568 | ||||
|
1569 | INCLUDED_BY_GRAPH = YES | |||
|
1570 | ||||
|
1571 | # If the CALL_GRAPH and HAVE_DOT options are set to YES then | |||
|
1572 | # doxygen will generate a call dependency graph for every global function | |||
|
1573 | # or class method. Note that enabling this option will significantly increase | |||
|
1574 | # the time of a run. So in most cases it will be better to enable call graphs | |||
|
1575 | # for selected functions only using the \callgraph command. | |||
|
1576 | ||||
|
1577 | CALL_GRAPH = NO | |||
|
1578 | ||||
|
1579 | # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then | |||
|
1580 | # doxygen will generate a caller dependency graph for every global function | |||
|
1581 | # or class method. Note that enabling this option will significantly increase | |||
|
1582 | # the time of a run. So in most cases it will be better to enable caller | |||
|
1583 | # graphs for selected functions only using the \callergraph command. | |||
|
1584 | ||||
|
1585 | CALLER_GRAPH = NO | |||
|
1586 | ||||
|
1587 | # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen | |||
|
1588 | # will graphical hierarchy of all classes instead of a textual one. | |||
|
1589 | ||||
|
1590 | GRAPHICAL_HIERARCHY = YES | |||
|
1591 | ||||
|
1592 | # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES | |||
|
1593 | # then doxygen will show the dependencies a directory has on other directories | |||
|
1594 | # in a graphical way. The dependency relations are determined by the #include | |||
|
1595 | # relations between the files in the directories. | |||
|
1596 | ||||
|
1597 | DIRECTORY_GRAPH = YES | |||
|
1598 | ||||
|
1599 | # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images | |||
|
1600 | # generated by dot. Possible values are png, jpg, or gif | |||
|
1601 | # If left blank png will be used. | |||
|
1602 | ||||
|
1603 | DOT_IMAGE_FORMAT = png | |||
|
1604 | ||||
|
1605 | # The tag DOT_PATH can be used to specify the path where the dot tool can be | |||
|
1606 | # found. If left blank, it is assumed the dot tool can be found in the path. | |||
|
1607 | ||||
|
1608 | DOT_PATH = | |||
|
1609 | ||||
|
1610 | # The DOTFILE_DIRS tag can be used to specify one or more directories that | |||
|
1611 | # contain dot files that are included in the documentation (see the | |||
|
1612 | # \dotfile command). | |||
|
1613 | ||||
|
1614 | DOTFILE_DIRS = | |||
|
1615 | ||||
|
1616 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of | |||
|
1617 | # nodes that will be shown in the graph. If the number of nodes in a graph | |||
|
1618 | # becomes larger than this value, doxygen will truncate the graph, which is | |||
|
1619 | # visualized by representing a node as a red box. Note that doxygen if the | |||
|
1620 | # number of direct children of the root node in a graph is already larger than | |||
|
1621 | # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note | |||
|
1622 | # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. | |||
|
1623 | ||||
|
1624 | DOT_GRAPH_MAX_NODES = 50 | |||
|
1625 | ||||
|
1626 | # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the | |||
|
1627 | # graphs generated by dot. A depth value of 3 means that only nodes reachable | |||
|
1628 | # from the root by following a path via at most 3 edges will be shown. Nodes | |||
|
1629 | # that lay further from the root node will be omitted. Note that setting this | |||
|
1630 | # option to 1 or 2 may greatly reduce the computation time needed for large | |||
|
1631 | # code bases. Also note that the size of a graph can be further restricted by | |||
|
1632 | # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. | |||
|
1633 | ||||
|
1634 | MAX_DOT_GRAPH_DEPTH = 0 | |||
|
1635 | ||||
|
1636 | # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent | |||
|
1637 | # background. This is disabled by default, because dot on Windows does not | |||
|
1638 | # seem to support this out of the box. Warning: Depending on the platform used, | |||
|
1639 | # enabling this option may lead to badly anti-aliased labels on the edges of | |||
|
1640 | # a graph (i.e. they become hard to read). | |||
|
1641 | ||||
|
1642 | DOT_TRANSPARENT = NO | |||
|
1643 | ||||
|
1644 | # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output | |||
|
1645 | # files in one run (i.e. multiple -o and -T options on the command line). This | |||
|
1646 | # makes dot run faster, but since only newer versions of dot (>1.8.10) | |||
|
1647 | # support this, this feature is disabled by default. | |||
|
1648 | ||||
|
1649 | DOT_MULTI_TARGETS = NO | |||
|
1650 | ||||
|
1651 | # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will | |||
|
1652 | # generate a legend page explaining the meaning of the various boxes and | |||
|
1653 | # arrows in the dot generated graphs. | |||
|
1654 | ||||
|
1655 | GENERATE_LEGEND = YES | |||
|
1656 | ||||
|
1657 | # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will | |||
|
1658 | # remove the intermediate dot files that are used to generate | |||
|
1659 | # the various graphs. | |||
|
1660 | ||||
|
1661 | DOT_CLEANUP = YES |
@@ -0,0 +1,42 | |||||
|
1 | #------------------------------------------------------------------------------ | |||
|
2 | #-- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | #-- Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | #-- | |||
|
5 | #-- This program is free software; you can redistribute it and/or modify | |||
|
6 | #-- it under the terms of the GNU General Public License as published by | |||
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | #-- (at your option) any later version. | |||
|
9 | #-- | |||
|
10 | #-- This program is distributed in the hope that it will be useful, | |||
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | #-- GNU General Public License for more details. | |||
|
14 | #-- | |||
|
15 | #-- You should have received a copy of the GNU General Public License | |||
|
16 | #-- along with this program; if not, write to the Free Software | |||
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | #------------------------------------------------------------------------------ | |||
|
19 | ||||
|
20 | include ../../../rules.mk | |||
|
21 | LIBDIR = ../../../lib/ | |||
|
22 | INCPATH = ../../../includes/ | |||
|
23 | SCRIPTDIR=../../../scripts/ | |||
|
24 | LIBS=-lapb_lcd_driver -llpp_apb_functions | |||
|
25 | INPUTFILE=main.c | |||
|
26 | EXEC=main.bin | |||
|
27 | OUTBINDIR=bin/ | |||
|
28 | ||||
|
29 | ||||
|
30 | all:bin | |||
|
31 | @echo $(EXEC)" file created" | |||
|
32 | ||||
|
33 | clean: | |||
|
34 | rm -f *.{o,a} | |||
|
35 | ||||
|
36 | ||||
|
37 | ||||
|
38 | help:ruleshelp | |||
|
39 | @echo " all : makes an executable file called "$(EXEC) | |||
|
40 | @echo " in "$(OUTBINDIR) | |||
|
41 | @echo " clean : removes temporary files" | |||
|
42 |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,1 | |||||
|
1 | load driver_APB_lcd_ctrlr |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,42 | |||||
|
1 | <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||
|
2 | <CodeBlocks_project_file> | |||
|
3 | <FileVersion major="1" minor="6" /> | |||
|
4 | <Project> | |||
|
5 | <Option title="driver_APB_lcd_ctrlr" /> | |||
|
6 | <Option pch_mode="2" /> | |||
|
7 | <Option compiler="sparc_gcc" /> | |||
|
8 | <Build> | |||
|
9 | <Target title="Debug"> | |||
|
10 | <Option output="bin/Debug/driver_APB_lcd_ctrlr" prefix_auto="1" extension_auto="1" /> | |||
|
11 | <Option object_output="obj/Debug/" /> | |||
|
12 | <Option type="1" /> | |||
|
13 | <Option compiler="sparc_gcc" /> | |||
|
14 | <Compiler> | |||
|
15 | <Add option="-g" /> | |||
|
16 | </Compiler> | |||
|
17 | </Target> | |||
|
18 | <Target title="Release"> | |||
|
19 | <Option output="bin/Release/driver_APB_lcd_ctrlr" prefix_auto="1" extension_auto="1" /> | |||
|
20 | <Option object_output="obj/Release/" /> | |||
|
21 | <Option type="1" /> | |||
|
22 | <Option compiler="sparc_gcc" /> | |||
|
23 | <Compiler> | |||
|
24 | <Add option="-O2" /> | |||
|
25 | </Compiler> | |||
|
26 | <Linker> | |||
|
27 | <Add option="-s" /> | |||
|
28 | </Linker> | |||
|
29 | </Target> | |||
|
30 | </Build> | |||
|
31 | <Compiler> | |||
|
32 | <Add option="-Wall" /> | |||
|
33 | </Compiler> | |||
|
34 | <Unit filename="main.c"> | |||
|
35 | <Option compilerVar="CC" /> | |||
|
36 | </Unit> | |||
|
37 | <Extensions> | |||
|
38 | <code_completion /> | |||
|
39 | <debugger /> | |||
|
40 | </Extensions> | |||
|
41 | </Project> | |||
|
42 | </CodeBlocks_project_file> |
@@ -0,0 +1,25 | |||||
|
1 | # depslib dependency file v1.0 | |||
|
2 | 1290187550 source:/home/alexis/Prog/Leon3/APB_lcd_ctrlr/driver_APB_lcd_ctrlr/main.c | |||
|
3 | "stdio.h" | |||
|
4 | "lpp_apb_functions.h" | |||
|
5 | "apb_lcd_driver.h" | |||
|
6 | ||||
|
7 | 1290183144 /home/alexis/Prog/Leon3/APB_lcd_ctrlr/driver_APB_lcd_ctrlr/apb_lcd_driver.h | |||
|
8 | ||||
|
9 | 1290183058 source:/home/alexis/Prog/Leon3/APB_lcd_ctrlr/driver_APB_lcd_ctrlr/apb_lcd_driver.c | |||
|
10 | "apb_lcd_driver.h" | |||
|
11 | "lpp_apb_functions.h" | |||
|
12 | "lpp_apb_functions.h" | |||
|
13 | <stdio.h> | |||
|
14 | ||||
|
15 | 1290413299 /home/alexis/Prog/Leon3/APB_lcd_ctrlr/driver_APB_lcd_ctrlr/lpp_apb_functions.h | |||
|
16 | ||||
|
17 | 1290416373 source:/home/alexis/Prog/Leon3/APB_lcd_ctrlr/driver_APB_lcd_ctrlr/lpp_apb_functions.c | |||
|
18 | "lpp_apb_functions.h" | |||
|
19 | <stdio.h> | |||
|
20 | ||||
|
21 | 1291013871 source:/home/alexis/Prog/Leon3/exemples/APB_lcd_ctrlr/driver_APB_lcd_ctrlr/main.c | |||
|
22 | "stdio.h" | |||
|
23 | "lpp_apb_functions.h" | |||
|
24 | "apb_lcd_driver.h" | |||
|
25 |
@@ -0,0 +1,7 | |||||
|
1 | <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||
|
2 | <CodeBlocks_layout_file> | |||
|
3 | <ActiveTarget name="Release" /> | |||
|
4 | <File name="main.c" open="1" top="1" tabpos="0"> | |||
|
5 | <Cursor position="79" topLine="0" /> | |||
|
6 | </File> | |||
|
7 | </CodeBlocks_layout_file> |
@@ -0,0 +1,59 | |||||
|
1 | #include "stdio.h" | |||
|
2 | #include "lpp_apb_functions.h" | |||
|
3 | #include "apb_lcd_driver.h" | |||
|
4 | ||||
|
5 | ||||
|
6 | ||||
|
7 | int main() | |||
|
8 | { | |||
|
9 | lcd_device* lcd0; | |||
|
10 | struct apbdevinfo lcd0info; | |||
|
11 | lcd0 = lcdopen(0); | |||
|
12 | char message[lcdCharCnt+1]; | |||
|
13 | if(lcd0!= NULL) | |||
|
14 | { | |||
|
15 | apbgetdeviceinfofromid(LPP_LCD_CTRLR,VENDOR_LPP,0,&lcd0info); | |||
|
16 | printf("find lcd device @ %8x\n",(int)lcd0); | |||
|
17 | apbprintdeviceinfo(lcd0info); | |||
|
18 | } | |||
|
19 | ||||
|
20 | printf("hello\n"); | |||
|
21 | lcdclear(lcd0); | |||
|
22 | int d=0; | |||
|
23 | while(d!=10) | |||
|
24 | { | |||
|
25 | scanf("%d",&d); | |||
|
26 | switch(d) | |||
|
27 | { | |||
|
28 | case 0: | |||
|
29 | lcdsendcmd(lcd0,CursorOFF&lcd_100us); | |||
|
30 | printf("cursor OFF \n"); | |||
|
31 | sprintf(message,"cursor OFF %d",d); | |||
|
32 | lcdprint(lcd0,0,message); | |||
|
33 | break; | |||
|
34 | case 1: | |||
|
35 | lcdsendcmd(lcd0,CursorON&lcd_100us); | |||
|
36 | printf("cursor ON \n"); | |||
|
37 | sprintf(message,"cursor ON %d ",d); | |||
|
38 | lcdprint(lcd0,0,message); | |||
|
39 | break; | |||
|
40 | case 2: | |||
|
41 | sprintf(message,"Test line 2_%d\nline2",d); | |||
|
42 | lcdprint(lcd0,0,message); | |||
|
43 | break; | |||
|
44 | case 3: | |||
|
45 | apbprintdeviceslist(); | |||
|
46 | break; | |||
|
47 | case 10: | |||
|
48 | sprintf(message,"QUIT %d ",d); | |||
|
49 | lcdprint(lcd0,0,message); | |||
|
50 | return 0; | |||
|
51 | break; | |||
|
52 | default: | |||
|
53 | sprintf(message,"Not a CMD %d ",d); | |||
|
54 | lcdprint(lcd0,0,message); | |||
|
55 | break; | |||
|
56 | } | |||
|
57 | } | |||
|
58 | return 0; | |||
|
59 | } |
@@ -0,0 +1,95 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ | |||
|
19 | #ifndef APB_LCD_DRIVER_H | |||
|
20 | #define APB_LCD_DRIVER_H | |||
|
21 | ||||
|
22 | #define readyFlag 1024 | |||
|
23 | #define lcdCharCnt 80 | |||
|
24 | ||||
|
25 | ||||
|
26 | /** @todo implemente some shift functions */ | |||
|
27 | ||||
|
28 | ||||
|
29 | /*=================================================== | |||
|
30 | T Y P E S D E F | |||
|
31 | ====================================================*/ | |||
|
32 | ||||
|
33 | ||||
|
34 | ||||
|
35 | /** error type used for most of lcd functions */ | |||
|
36 | typedef int lcd_err; | |||
|
37 | ||||
|
38 | /** lcd error ennum for higher abstraction level when error decoding */ | |||
|
39 | enum lcd_error | |||
|
40 | { | |||
|
41 | lcd_error_no_error, /**< no error append while function execution */ | |||
|
42 | lcd_error_not_ready, /**< the lcd isn't available*/ | |||
|
43 | lcd_error_not_openned, /**< the device guiven to the function isn't opened*/ | |||
|
44 | lcd_error_too_long /**< the string guiven to the lcd is bigger than the lcd frame buffer memory */ | |||
|
45 | }; | |||
|
46 | ||||
|
47 | ||||
|
48 | /** for each command sended to the lcd driver a time should be guiven according to the lcd datasheet */ | |||
|
49 | enum lcd_CMD_time | |||
|
50 | { | |||
|
51 | lcd_4us = 0x0FF, | |||
|
52 | lcd_100us = 0x1FF, | |||
|
53 | lcd_4ms = 0x2FF, | |||
|
54 | lcd_20ms = 0x3FF | |||
|
55 | }; | |||
|
56 | ||||
|
57 | /** list of availiable lcd commands use whith an AND mask whith cmd time */ | |||
|
58 | enum lcd_CMD | |||
|
59 | { | |||
|
60 | CursorON = 0xF0E, | |||
|
61 | CursorOFF = 0xF0C | |||
|
62 | }; | |||
|
63 | ||||
|
64 | /** structure representing the lcd registers */ | |||
|
65 | struct lcd_driver | |||
|
66 | { | |||
|
67 | int cfg_reg; /**< Configuration register composed of Ready flag [10], CMD time Value [9:8], CMD to send [7:0]*/ | |||
|
68 | int Frame_buff[lcdCharCnt]; /**< Frame Buffer space each address corresponds to a char on the lcd screen */ | |||
|
69 | }; | |||
|
70 | ||||
|
71 | typedef struct lcd_driver lcd_device; | |||
|
72 | ||||
|
73 | /*=================================================== | |||
|
74 | F U N C T I O N S | |||
|
75 | ====================================================*/ | |||
|
76 | ||||
|
77 | /** says if the lcd is busy */ | |||
|
78 | int lcdbusy(lcd_device * lcd); | |||
|
79 | ||||
|
80 | /** Opens and returns the counth lcd found on APB bus else NULL */ | |||
|
81 | lcd_device* lcdopen(int count); | |||
|
82 | ||||
|
83 | /** Sends a command to the given device, don't forget to guive the time of the cmd */ | |||
|
84 | lcd_err lcdsendcmd(lcd_device* lcd,int cmd); | |||
|
85 | ||||
|
86 | /** Sets a char on the given device at given position */ | |||
|
87 | lcd_err lcdsetchar(lcd_device* lcd,int position,const char value); | |||
|
88 | ||||
|
89 | /** Prints a message on the given device at given position, "\n" is understood but for others use sprintf before */ | |||
|
90 | lcd_err lcdprint(lcd_device* lcd,int position,const char* value); | |||
|
91 | ||||
|
92 | /** Writes space character on each adress of the lcd screen */ | |||
|
93 | lcd_err lcdclear(lcd_device* lcd); | |||
|
94 | ||||
|
95 | #endif |
@@ -0,0 +1,65 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ | |||
|
19 | #ifndef LPP_APB_FUNCTIONS_H | |||
|
20 | #define LPP_APB_FUNCTIONS_H | |||
|
21 | ||||
|
22 | #define APB_TBL_HEAD 0x800FF000 | |||
|
23 | #define APB_BASE_ADDRS 0x80000000 | |||
|
24 | #define APB_MAX_DEVICES 256 | |||
|
25 | ||||
|
26 | #define VENDOR_LPP 0x19 | |||
|
27 | ||||
|
28 | #define ROCKET_TM 0x001 | |||
|
29 | #define otherCore 0x002 | |||
|
30 | #define LPP_SIMPLE_DIODE 0x003 | |||
|
31 | #define LPP_MULTI_DIODE 0x004 | |||
|
32 | #define LPP_LCD_CTRLR 0x005 | |||
|
33 | ||||
|
34 | /** @todo implemente a descriptor structure for any APB device */ | |||
|
35 | ||||
|
36 | ||||
|
37 | /** Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature */ | |||
|
38 | struct apbPnPreg | |||
|
39 | { | |||
|
40 | int idReg; /**< id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */ | |||
|
41 | int bar; /**< Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */ | |||
|
42 | }; | |||
|
43 | ||||
|
44 | struct apbdevinfo | |||
|
45 | { | |||
|
46 | int vendorID; | |||
|
47 | int productID; | |||
|
48 | int version; | |||
|
49 | int irq; | |||
|
50 | int address; | |||
|
51 | int mask; | |||
|
52 | }; | |||
|
53 | ||||
|
54 | /** This Function scans APB devices table and returns counth device according to VID and PID */ | |||
|
55 | int* apbgetdevice(int PID,int VID,int count); | |||
|
56 | /** This Function scans APB devices table and returns counth device informations according VID and PID */ | |||
|
57 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo); | |||
|
58 | ||||
|
59 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo); | |||
|
60 | ||||
|
61 | ||||
|
62 | void apbprintdeviceinfo(struct apbdevinfo devinfo); | |||
|
63 | ||||
|
64 | void apbprintdeviceslist(); | |||
|
65 | #endif // LPP_APB_FUNCTIONS_H |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,26 | |||||
|
1 | #------------------------------------------------------------------------------ | |||
|
2 | #-- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | #-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | #-- | |||
|
5 | #-- This program is free software; you can redistribute it and/or modify | |||
|
6 | #-- it under the terms of the GNU General Public License as published by | |||
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | #-- (at your option) any later version. | |||
|
9 | #-- | |||
|
10 | #-- This program is distributed in the hope that it will be useful, | |||
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | #-- GNU General Public License for more details. | |||
|
14 | #-- | |||
|
15 | #-- You should have received a copy of the GNU General Public License | |||
|
16 | #-- along with this program; if not, write to the Free Software | |||
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | #------------------------------------------------------------------------------ | |||
|
19 | FILE = lpp_apb_functions | |||
|
20 | LIB = liblpp_apb_functions.a | |||
|
21 | ||||
|
22 | ||||
|
23 | include ../../rules.mk | |||
|
24 | ||||
|
25 | all: $(FILE).a | |||
|
26 | @echo $(FILE)".a created" |
@@ -0,0 +1,119 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ | |||
|
19 | #include "lpp_apb_functions.h" | |||
|
20 | #include <stdio.h> | |||
|
21 | ||||
|
22 | ||||
|
23 | ||||
|
24 | int* apbgetdevice(int PID,int VID,int count) | |||
|
25 | { | |||
|
26 | struct apbPnPreg* dev = (struct apbPnPreg*)(APB_TBL_HEAD + sizeof(struct apbPnPreg)); | |||
|
27 | int id; | |||
|
28 | id = (PID<<12) | (VID<<24); | |||
|
29 | while(dev != (struct apbPnPreg*)(APB_TBL_HEAD|0xFFF)) | |||
|
30 | { | |||
|
31 | if((dev->idReg & 0xFFFFF000) == id) | |||
|
32 | { | |||
|
33 | if(count == 0) | |||
|
34 | { | |||
|
35 | return (int*) (APB_BASE_ADDRS | (dev->bar&0xFFF00000)>>12); | |||
|
36 | } | |||
|
37 | count-=1; | |||
|
38 | } | |||
|
39 | dev += 1; | |||
|
40 | } | |||
|
41 | return NULL; | |||
|
42 | } | |||
|
43 | ||||
|
44 | ||||
|
45 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo) | |||
|
46 | { | |||
|
47 | ||||
|
48 | devinfo->productID = (dev->idReg>>12) & 0xFFF; | |||
|
49 | devinfo->vendorID = (dev->idReg>>24) & 0xFF; | |||
|
50 | devinfo->address = ((dev->bar>>12) & 0xFFF00)|APB_BASE_ADDRS; | |||
|
51 | devinfo->irq = dev->idReg & 0x1F; | |||
|
52 | devinfo->mask = (dev->bar>>4)&0xFFF; | |||
|
53 | devinfo->version = (dev->idReg>>5)&0x1F; | |||
|
54 | } | |||
|
55 | ||||
|
56 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo) | |||
|
57 | { | |||
|
58 | struct apbPnPreg* dev = (struct apbPnPreg*)(APB_TBL_HEAD + sizeof(struct apbPnPreg)); | |||
|
59 | int id; | |||
|
60 | id = (PID<<12) | (VID<<24); | |||
|
61 | while(dev != (struct apbPnPreg*)(APB_TBL_HEAD|0xFFF)) | |||
|
62 | { | |||
|
63 | if((dev->idReg & 0xFFFFF000) == id) | |||
|
64 | { | |||
|
65 | if(count == 0) | |||
|
66 | { | |||
|
67 | devinfo->productID = PID; | |||
|
68 | devinfo->vendorID = VID; | |||
|
69 | devinfo->address = ((dev->bar>>12) & 0xFFF00)|APB_BASE_ADDRS; | |||
|
70 | devinfo->irq = dev->idReg & 0x1F; | |||
|
71 | devinfo->mask = (dev->bar>>4)&0xFFF; | |||
|
72 | devinfo->version = (dev->idReg>>5)&0x1F; | |||
|
73 | return; | |||
|
74 | } | |||
|
75 | count-=1; | |||
|
76 | } | |||
|
77 | dev += 1; | |||
|
78 | } | |||
|
79 | } | |||
|
80 | ||||
|
81 | ||||
|
82 | ||||
|
83 | void apbprintdeviceinfo(struct apbdevinfo devinfo) | |||
|
84 | { | |||
|
85 | printf("Vendor ID = 0x%x\n",devinfo.vendorID); | |||
|
86 | printf("Product ID = 0x%x\n",devinfo.productID); | |||
|
87 | printf("Device address = 0x%x\n",devinfo.address); | |||
|
88 | printf("Device Irq = %d\n",devinfo.irq); | |||
|
89 | printf("Device mask = 0x%x\n",devinfo.mask); | |||
|
90 | printf("Device Version = %d\n",devinfo.version); | |||
|
91 | } | |||
|
92 | ||||
|
93 | ||||
|
94 | void apbprintdeviceslist() | |||
|
95 | { | |||
|
96 | struct apbdevinfo devinfo; | |||
|
97 | struct apbPnPreg* dev = (struct apbPnPreg*)(APB_TBL_HEAD );//+ sizeof(struct apbPnPreg)); | |||
|
98 | int i =0; | |||
|
99 | int fisrtBAR; | |||
|
100 | while((dev->idReg == 0) && (i<APB_MAX_DEVICES)) | |||
|
101 | { | |||
|
102 | dev += 1; | |||
|
103 | i+=1; | |||
|
104 | } | |||
|
105 | fisrtBAR = dev->bar; | |||
|
106 | for(i=i;i<APB_MAX_DEVICES;i++) | |||
|
107 | { | |||
|
108 | if((dev->idReg != 0 )) | |||
|
109 | { | |||
|
110 | apbgetdeviceinfofromdevptr(dev,&devinfo); | |||
|
111 | printf("\n\n======= new device found========\n"); | |||
|
112 | apbprintdeviceinfo(devinfo); | |||
|
113 | } | |||
|
114 | dev += 1; | |||
|
115 | if(dev->bar == fisrtBAR) | |||
|
116 | break; | |||
|
117 | } | |||
|
118 | } | |||
|
119 |
@@ -0,0 +1,65 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ | |||
|
19 | #ifndef LPP_APB_FUNCTIONS_H | |||
|
20 | #define LPP_APB_FUNCTIONS_H | |||
|
21 | ||||
|
22 | #define APB_TBL_HEAD 0x800FF000 | |||
|
23 | #define APB_BASE_ADDRS 0x80000000 | |||
|
24 | #define APB_MAX_DEVICES 256 | |||
|
25 | ||||
|
26 | #define VENDOR_LPP 0x19 | |||
|
27 | ||||
|
28 | #define ROCKET_TM 0x001 | |||
|
29 | #define otherCore 0x002 | |||
|
30 | #define LPP_SIMPLE_DIODE 0x003 | |||
|
31 | #define LPP_MULTI_DIODE 0x004 | |||
|
32 | #define LPP_LCD_CTRLR 0x005 | |||
|
33 | ||||
|
34 | /** @todo implemente a descriptor structure for any APB device */ | |||
|
35 | ||||
|
36 | ||||
|
37 | /** Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature */ | |||
|
38 | struct apbPnPreg | |||
|
39 | { | |||
|
40 | int idReg; /**< id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */ | |||
|
41 | int bar; /**< Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */ | |||
|
42 | }; | |||
|
43 | ||||
|
44 | struct apbdevinfo | |||
|
45 | { | |||
|
46 | int vendorID; | |||
|
47 | int productID; | |||
|
48 | int version; | |||
|
49 | int irq; | |||
|
50 | int address; | |||
|
51 | int mask; | |||
|
52 | }; | |||
|
53 | ||||
|
54 | /** This Function scans APB devices table and returns counth device according to VID and PID */ | |||
|
55 | int* apbgetdevice(int PID,int VID,int count); | |||
|
56 | /** This Function scans APB devices table and returns counth device informations according VID and PID */ | |||
|
57 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo); | |||
|
58 | ||||
|
59 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo); | |||
|
60 | ||||
|
61 | ||||
|
62 | void apbprintdeviceinfo(struct apbdevinfo devinfo); | |||
|
63 | ||||
|
64 | void apbprintdeviceslist(); | |||
|
65 | #endif // LPP_APB_FUNCTIONS_H |
@@ -0,0 +1,25 | |||||
|
1 | #------------------------------------------------------------------------------ | |||
|
2 | #-- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | #-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | #-- | |||
|
5 | #-- This program is free software; you can redistribute it and/or modify | |||
|
6 | #-- it under the terms of the GNU General Public License as published by | |||
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | #-- (at your option) any later version. | |||
|
9 | #-- | |||
|
10 | #-- This program is distributed in the hope that it will be useful, | |||
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | #-- GNU General Public License for more details. | |||
|
14 | #-- | |||
|
15 | #-- You should have received a copy of the GNU General Public License | |||
|
16 | #-- along with this program; if not, write to the Free Software | |||
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | #------------------------------------------------------------------------------ | |||
|
19 | FILE = apb_lcd_driver | |||
|
20 | LIB = liblpp_lcd_driver.a | |||
|
21 | ||||
|
22 | include ../../rules.mk | |||
|
23 | ||||
|
24 | all: $(FILE).a | |||
|
25 | @echo $(FILE)".a created" |
@@ -0,0 +1,115 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ | |||
|
19 | #include "apb_lcd_driver.h" | |||
|
20 | #include "lpp_apb_functions.h" | |||
|
21 | #include "lpp_apb_functions.h" | |||
|
22 | #include <stdio.h> | |||
|
23 | ||||
|
24 | int lcdbusy(lcd_device* lcd) | |||
|
25 | { | |||
|
26 | return (!(lcd->cfg_reg&readyFlag)==readyFlag); | |||
|
27 | } | |||
|
28 | ||||
|
29 | ||||
|
30 | lcd_device* lcdopen(int count) | |||
|
31 | { | |||
|
32 | lcd_device* dev; | |||
|
33 | dev = (lcd_device*) apbgetdevice(LPP_LCD_CTRLR,VENDOR_LPP,count); | |||
|
34 | return dev; | |||
|
35 | //* scan APB bus an return the count(th) lcd controler */ | |||
|
36 | ||||
|
37 | } | |||
|
38 | ||||
|
39 | ||||
|
40 | ||||
|
41 | lcd_err lcdsendcmd(lcd_device* lcd,int cmd) | |||
|
42 | { | |||
|
43 | lcd_err err; | |||
|
44 | err = lcd_error_no_error; | |||
|
45 | if (lcd!=NULL) | |||
|
46 | { | |||
|
47 | while(lcdbusy(lcd)); | |||
|
48 | lcd->cfg_reg = cmd; | |||
|
49 | return err; | |||
|
50 | } | |||
|
51 | else | |||
|
52 | { | |||
|
53 | err = lcd_error_not_openned ; | |||
|
54 | return err; | |||
|
55 | } | |||
|
56 | } | |||
|
57 | ||||
|
58 | ||||
|
59 | ||||
|
60 | lcd_err lcdsetchar(lcd_device* lcd,int position,const char value) | |||
|
61 | { | |||
|
62 | lcd_err err; | |||
|
63 | err = lcd_error_no_error; | |||
|
64 | return err; | |||
|
65 | } | |||
|
66 | ||||
|
67 | ||||
|
68 | ||||
|
69 | lcd_err lcdprint(lcd_device* lcd,int position,const char* value) | |||
|
70 | { | |||
|
71 | lcd_err err; | |||
|
72 | err = lcd_error_no_error; | |||
|
73 | if (lcd!=NULL) | |||
|
74 | { | |||
|
75 | int i = position; | |||
|
76 | int n = 0; | |||
|
77 | while(value[n]!= '\0' && i<lcdCharCnt) | |||
|
78 | { | |||
|
79 | if(value[n] == '\n') | |||
|
80 | { | |||
|
81 | i=40;n++; | |||
|
82 | } | |||
|
83 | lcd->Frame_buff[i++] = value[n++]; | |||
|
84 | } | |||
|
85 | return err; | |||
|
86 | } | |||
|
87 | else | |||
|
88 | { | |||
|
89 | err = lcd_error_not_openned ; | |||
|
90 | return err; | |||
|
91 | } | |||
|
92 | } | |||
|
93 | ||||
|
94 | ||||
|
95 | ||||
|
96 | lcd_err lcdclear(lcd_device* lcd) | |||
|
97 | { | |||
|
98 | lcd_err err; | |||
|
99 | err = lcd_error_no_error; | |||
|
100 | if (lcd!=NULL) | |||
|
101 | { | |||
|
102 | int i=0; | |||
|
103 | for(i=0;i<lcdCharCnt;i++) | |||
|
104 | { | |||
|
105 | lcd->Frame_buff[i] = ' '; | |||
|
106 | } | |||
|
107 | return err; | |||
|
108 | } | |||
|
109 | err = lcd_error_not_openned ; | |||
|
110 | return err; | |||
|
111 | } | |||
|
112 | ||||
|
113 | ||||
|
114 | ||||
|
115 |
@@ -0,0 +1,95 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ | |||
|
19 | #ifndef APB_LCD_DRIVER_H | |||
|
20 | #define APB_LCD_DRIVER_H | |||
|
21 | ||||
|
22 | #define readyFlag 1024 | |||
|
23 | #define lcdCharCnt 80 | |||
|
24 | ||||
|
25 | ||||
|
26 | /** @todo implemente some shift functions */ | |||
|
27 | ||||
|
28 | ||||
|
29 | /*=================================================== | |||
|
30 | T Y P E S D E F | |||
|
31 | ====================================================*/ | |||
|
32 | ||||
|
33 | ||||
|
34 | ||||
|
35 | /** error type used for most of lcd functions */ | |||
|
36 | typedef int lcd_err; | |||
|
37 | ||||
|
38 | /** lcd error ennum for higher abstraction level when error decoding */ | |||
|
39 | enum lcd_error | |||
|
40 | { | |||
|
41 | lcd_error_no_error, /**< no error append while function execution */ | |||
|
42 | lcd_error_not_ready, /**< the lcd isn't available*/ | |||
|
43 | lcd_error_not_openned, /**< the device guiven to the function isn't opened*/ | |||
|
44 | lcd_error_too_long /**< the string guiven to the lcd is bigger than the lcd frame buffer memory */ | |||
|
45 | }; | |||
|
46 | ||||
|
47 | ||||
|
48 | /** for each command sended to the lcd driver a time should be guiven according to the lcd datasheet */ | |||
|
49 | enum lcd_CMD_time | |||
|
50 | { | |||
|
51 | lcd_4us = 0x0FF, | |||
|
52 | lcd_100us = 0x1FF, | |||
|
53 | lcd_4ms = 0x2FF, | |||
|
54 | lcd_20ms = 0x3FF | |||
|
55 | }; | |||
|
56 | ||||
|
57 | /** list of availiable lcd commands use whith an AND mask whith cmd time */ | |||
|
58 | enum lcd_CMD | |||
|
59 | { | |||
|
60 | CursorON = 0xF0E, | |||
|
61 | CursorOFF = 0xF0C | |||
|
62 | }; | |||
|
63 | ||||
|
64 | /** structure representing the lcd registers */ | |||
|
65 | struct lcd_driver | |||
|
66 | { | |||
|
67 | int cfg_reg; /**< Configuration register composed of Ready flag [10], CMD time Value [9:8], CMD to send [7:0]*/ | |||
|
68 | int Frame_buff[lcdCharCnt]; /**< Frame Buffer space each address corresponds to a char on the lcd screen */ | |||
|
69 | }; | |||
|
70 | ||||
|
71 | typedef struct lcd_driver lcd_device; | |||
|
72 | ||||
|
73 | /*=================================================== | |||
|
74 | F U N C T I O N S | |||
|
75 | ====================================================*/ | |||
|
76 | ||||
|
77 | /** says if the lcd is busy */ | |||
|
78 | int lcdbusy(lcd_device * lcd); | |||
|
79 | ||||
|
80 | /** Opens and returns the counth lcd found on APB bus else NULL */ | |||
|
81 | lcd_device* lcdopen(int count); | |||
|
82 | ||||
|
83 | /** Sends a command to the given device, don't forget to guive the time of the cmd */ | |||
|
84 | lcd_err lcdsendcmd(lcd_device* lcd,int cmd); | |||
|
85 | ||||
|
86 | /** Sets a char on the given device at given position */ | |||
|
87 | lcd_err lcdsetchar(lcd_device* lcd,int position,const char value); | |||
|
88 | ||||
|
89 | /** Prints a message on the given device at given position, "\n" is understood but for others use sprintf before */ | |||
|
90 | lcd_err lcdprint(lcd_device* lcd,int position,const char* value); | |||
|
91 | ||||
|
92 | /** Writes space character on each adress of the lcd screen */ | |||
|
93 | lcd_err lcdclear(lcd_device* lcd); | |||
|
94 | ||||
|
95 | #endif |
@@ -0,0 +1,30 | |||||
|
1 | #------------------------------------------------------------------------------ | |||
|
2 | #-- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | #-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | #-- | |||
|
5 | #-- This program is free software; you can redistribute it and/or modify | |||
|
6 | #-- it under the terms of the GNU General Public License as published by | |||
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | #-- (at your option) any later version. | |||
|
9 | #-- | |||
|
10 | #-- This program is distributed in the hope that it will be useful, | |||
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | #-- GNU General Public License for more details. | |||
|
14 | #-- | |||
|
15 | #-- You should have received a copy of the GNU General Public License | |||
|
16 | #-- along with this program; if not, write to the Free Software | |||
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | #------------------------------------------------------------------------------ | |||
|
19 | ||||
|
20 | include ../rules.mk | |||
|
21 | ||||
|
22 | ||||
|
23 | ||||
|
24 | all: | |||
|
25 | make all -C AMBA | |||
|
26 | make all -C LCD | |||
|
27 | ||||
|
28 | cleanall: | |||
|
29 | make clean -C AMBA | |||
|
30 | make clean -C LCD |
@@ -0,0 +1,44 | |||||
|
1 | #------------------------------------------------------------------------------ | |||
|
2 | #-- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | #-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | #-- | |||
|
5 | #-- This program is free software; you can redistribute it and/or modify | |||
|
6 | #-- it under the terms of the GNU General Public License as published by | |||
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | #-- (at your option) any later version. | |||
|
9 | #-- | |||
|
10 | #-- This program is distributed in the hope that it will be useful, | |||
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | #-- GNU General Public License for more details. | |||
|
14 | #-- | |||
|
15 | #-- You should have received a copy of the GNU General Public License | |||
|
16 | #-- along with this program; if not, write to the Free Software | |||
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | #------------------------------------------------------------------------------ | |||
|
19 | ||||
|
20 | CC = sparc-elf-gcc | |||
|
21 | AR = sparc-elf-ar | |||
|
22 | LIBDIR = ../../lib/ | |||
|
23 | INCPATH = ../../includes/ | |||
|
24 | ||||
|
25 | ||||
|
26 | $(FILE): $(FILE).a | |||
|
27 | @echo "library ""lib"$(FILE)" created" | |||
|
28 | ||||
|
29 | ||||
|
30 | $(FILE).o: | |||
|
31 | mkdir tmp | |||
|
32 | $(CC) -c $(FILE).c -I $(INCPATH) -o tmp/$(FILE).o | |||
|
33 | ||||
|
34 | $(FILE).a: $(FILE).o | |||
|
35 | $(AR) rs $(LIBDIR)"lib"$(FILE).a tmp/$(FILE).o | |||
|
36 | cp *.h $(INCPATH) | |||
|
37 | rm -R tmp | |||
|
38 | ||||
|
39 | clean: | |||
|
40 | rm -f -R tmp | |||
|
41 | rm -f *.{o,a} | |||
|
42 | rm -f $(INCPATH)*.h | |||
|
43 | rm -f $(LIBDIR)*.{o,a} | |||
|
44 |
@@ -0,0 +1,63 | |||||
|
1 | #------------------------------------------------------------------------------ | |||
|
2 | #-- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | #-- Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | #-- | |||
|
5 | #-- This program is free software; you can redistribute it and/or modify | |||
|
6 | #-- it under the terms of the GNU General Public License as published by | |||
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | #-- (at your option) any later version. | |||
|
9 | #-- | |||
|
10 | #-- This program is distributed in the hope that it will be useful, | |||
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | #-- GNU General Public License for more details. | |||
|
14 | #-- | |||
|
15 | #-- You should have received a copy of the GNU General Public License | |||
|
16 | #-- along with this program; if not, write to the Free Software | |||
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | #------------------------------------------------------------------------------ | |||
|
19 | ||||
|
20 | CC = sparc-elf-gcc | |||
|
21 | AR = sparc-elf-ar | |||
|
22 | LIBDIR = ../../lib/ | |||
|
23 | INCPATH = ../../includes/ | |||
|
24 | SCRIPTDIR=../../scripts/ | |||
|
25 | OUTBINDIR=bin/ | |||
|
26 | EXEC=exec.bin | |||
|
27 | INPUTFILE=main.c | |||
|
28 | ||||
|
29 | $(FILE): $(FILE).a | |||
|
30 | @echo "library ""lib"$(FILE)" created" | |||
|
31 | ||||
|
32 | ||||
|
33 | $(FILE).o: | |||
|
34 | mkdir tmp | |||
|
35 | $(CC) -c $(FILE).c -I $(INCPATH) -o tmp/$(FILE).o | |||
|
36 | ||||
|
37 | $(FILE).a: $(FILE).o | |||
|
38 | $(AR) rs $(LIBDIR)"lib"$(FILE).a tmp/$(FILE).o | |||
|
39 | cp *.h $(INCPATH) | |||
|
40 | rm -R tmp | |||
|
41 | ||||
|
42 | load: all | |||
|
43 | @echo "load "$(OUTBINDIR)$(EXEC)>$(SCRIPTDIR)load.txt | |||
|
44 | grmon-eval -uart $(PORT) -u -c $(SCRIPTDIR)load.txt | |||
|
45 | ||||
|
46 | bin: | |||
|
47 | mkdir -p $(OUTBINDIR) | |||
|
48 | $(CC) $(INPUTFILE) -o $(OUTBINDIR)/$(EXEC) -I $(INCPATH) -L $(LIBDIR) -static $(LIBS) | |||
|
49 | ||||
|
50 | clean: | |||
|
51 | rm -f -R tmp | |||
|
52 | rm -f *.{o,a} | |||
|
53 | rm -f $(INCPATH)*.h | |||
|
54 | rm -f $(LIBDIR)*.{o,a} | |||
|
55 | ||||
|
56 | ruleshelp: | |||
|
57 | @echo "" | |||
|
58 | @echo "" | |||
|
59 | @echo "" | |||
|
60 | @echo " load : call grmon-eval and loads "$(EXEC)" in the leon" | |||
|
61 | @echo " usage: make PORT=/dev/ttyUSBx load" | |||
|
62 | ||||
|
63 |
@@ -0,0 +1,1 | |||||
|
1 | load bin/main.bin |
@@ -0,0 +1,5 | |||||
|
1 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/lpp_ad_Conv.vhd" | |||
|
2 | vhdl lpp "../../lib/lpp/general_purpose/general_purpose.vhd" | |||
|
3 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/AD7688_spi_if.vhd" | |||
|
4 | vhdl lpp "../../lib/lpp/general_purpose/Clk_divider.vhd" | |||
|
5 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/AD7688_drvr.vhd" |
@@ -0,0 +1,12 | |||||
|
1 | vhdl grlib "../../lib/grlib/stdlib/version.vhd" | |||
|
2 | vhdl grlib "../../lib/grlib/stdlib/stdlib.vhd" | |||
|
3 | vhdl grlib "../../lib/grlib/stdlib/config.vhd" | |||
|
4 | vhdl grlib "../../lib/grlib/amba/amba.vhd" | |||
|
5 | vhdl grlib "../../lib/grlib/amba/devices.vhd" | |||
|
6 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/lpp_ad_Conv.vhd" | |||
|
7 | vhdl lpp "../../lib/lpp/general_purpose/general_purpose.vhd" | |||
|
8 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/AD7688_spi_if.vhd" | |||
|
9 | vhdl lpp "../../lib/lpp/general_purpose/Clk_divider.vhd" | |||
|
10 | vhdl lpp "../../lib/lpp/lpp_amba/lpp_amba.vhd" | |||
|
11 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/AD7688_drvr.vhd" | |||
|
12 | vhdl lpp "../../lib/lpp/lpp_ad_Conv/lpp_apb_ad_conv.vhd" |
@@ -0,0 +1,12 | |||||
|
1 | vhdl grlib "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/grlib/stdlib/version.vhd" | |||
|
2 | vhdl grlib "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/grlib/stdlib/stdlib.vhd" | |||
|
3 | vhdl grlib "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/grlib/stdlib/config.vhd" | |||
|
4 | vhdl grlib "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/grlib/amba/amba.vhd" | |||
|
5 | vhdl grlib "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/grlib/amba/devices.vhd" | |||
|
6 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/lpp_ad_Conv/lpp_ad_Conv.vhd" | |||
|
7 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/general_purpose/general_purpose.vhd" | |||
|
8 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/lpp_ad_Conv/AD7688_spi_if.vhd" | |||
|
9 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/general_purpose/Clk_divider.vhd" | |||
|
10 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/lpp_amba/lpp_amba.vhd" | |||
|
11 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/lpp_ad_Conv/AD7688_drvr.vhd" | |||
|
12 | vhdl lpp "/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/lpp_ad_Conv/lpp_apb_ad_conv.vhd" |
@@ -0,0 +1,12 | |||||
|
1 | <?xml version="1.0" encoding="UTF-8"?> | |||
|
2 | <drawing version="7"> | |||
|
3 | <attr value="spartan3e" name="DeviceFamilyName"> | |||
|
4 | <trait delete="all:0" /> | |||
|
5 | <trait editname="all:0" /> | |||
|
6 | <trait edittrait="all:0" /> | |||
|
7 | </attr> | |||
|
8 | <netlist> | |||
|
9 | </netlist> | |||
|
10 | <sheet sheetnum="1" width="3520" height="2720"> | |||
|
11 | </sheet> | |||
|
12 | </drawing> No newline at end of file |
@@ -0,0 +1,64 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |||
|
21 | ||||
|
22 | ||||
|
23 | entity Clk_divider is | |||
|
24 | generic(OSC_freqHz : integer := 50000000; | |||
|
25 | TargetFreq_Hz : integer := 50000); | |||
|
26 | Port ( clk : in STD_LOGIC; | |||
|
27 | reset : in STD_LOGIC; | |||
|
28 | clk_divided : out STD_LOGIC); | |||
|
29 | end Clk_divider; | |||
|
30 | ||||
|
31 | architecture ar_Clk_divider of Clk_divider is | |||
|
32 | ||||
|
33 | Constant clk_TRIGER : integer := (OSC_freqHz/(2*TargetFreq_Hz))+1; | |||
|
34 | ||||
|
35 | ||||
|
36 | signal cpt1 : integer; | |||
|
37 | ||||
|
38 | signal clk_int : std_logic := '0'; | |||
|
39 | ||||
|
40 | ||||
|
41 | begin | |||
|
42 | ||||
|
43 | clk_divided <= clk_int; | |||
|
44 | ||||
|
45 | ||||
|
46 | process(reset,clk) | |||
|
47 | begin | |||
|
48 | if reset = '0' then | |||
|
49 | cpt1 <= 0; | |||
|
50 | clk_int <= '0'; | |||
|
51 | elsif clk'event and clk = '1' then | |||
|
52 | if cpt1 = clk_TRIGER then | |||
|
53 | clk_int <= not clk_int; | |||
|
54 | cpt1 <= 0; | |||
|
55 | else | |||
|
56 | cpt1 <= cpt1 + 1; | |||
|
57 | end if; | |||
|
58 | end if; | |||
|
59 | end process; | |||
|
60 | ||||
|
61 | ||||
|
62 | end ar_Clk_divider; | |||
|
63 | ||||
|
64 |
@@ -0,0 +1,118 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | library ieee; | |||
|
14 | use ieee.std_logic_1164.all; | |||
|
15 | library grlib; | |||
|
16 | use grlib.amba.all; | |||
|
17 | use grlib.stdlib.all; | |||
|
18 | use grlib.devices.all; | |||
|
19 | library lpp; | |||
|
20 | use lpp.lpp_CNA_amba.all; | |||
|
21 | ||||
|
22 | ||||
|
23 | entity APB_CNA is | |||
|
24 | generic ( | |||
|
25 | pindex : integer := 0; | |||
|
26 | paddr : integer := 0; | |||
|
27 | pmask : integer := 16#fff#; | |||
|
28 | pirq : integer := 0; | |||
|
29 | abits : integer := 8); | |||
|
30 | port ( | |||
|
31 | clk : in std_logic; | |||
|
32 | rst : in std_logic; | |||
|
33 | apbi : in apb_slv_in_type; | |||
|
34 | apbo : out apb_slv_out_type; | |||
|
35 | SYNC : out std_logic; | |||
|
36 | SCLK : out std_logic; | |||
|
37 | DATA : out std_logic | |||
|
38 | ); | |||
|
39 | end APB_CNA; | |||
|
40 | ||||
|
41 | ||||
|
42 | architecture ar_APB_CNA of APB_CNA is | |||
|
43 | ||||
|
44 | constant REVISION : integer := 1; | |||
|
45 | ||||
|
46 | constant pconfig : apb_config_type := ( | |||
|
47 | 0 => ahb_device_reg (VENDOR_LPP, LPP_CNA, 0, REVISION, 0), | |||
|
48 | 1 => apb_iobar(paddr, pmask)); | |||
|
49 | ||||
|
50 | signal flag_nw : std_logic; | |||
|
51 | signal bp : std_logic; | |||
|
52 | signal Rz : std_logic; | |||
|
53 | signal flag_sd : std_logic; | |||
|
54 | signal Rdata : std_logic_vector(31 downto 0); | |||
|
55 | ||||
|
56 | type CNA_ctrlr_Reg is record | |||
|
57 | CNA_Cfg : std_logic_vector(3 downto 0); | |||
|
58 | CNA_Data : std_logic_vector(15 downto 0); | |||
|
59 | end record; | |||
|
60 | ||||
|
61 | signal Rec : CNA_ctrlr_Reg; | |||
|
62 | --signal ConfigREG : std_logic_vector(3 downto 0); | |||
|
63 | --signal DataREG : std_logic_vector(15 downto 0); | |||
|
64 | ||||
|
65 | begin | |||
|
66 | ||||
|
67 | bp <= Rec.CNA_Cfg(0); | |||
|
68 | flag_nw <= Rec.CNA_Cfg(1); | |||
|
69 | Rec.CNA_Cfg(2) <= flag_sd; | |||
|
70 | Rec.CNA_Cfg(3) <= Rz; | |||
|
71 | ||||
|
72 | ||||
|
73 | ||||
|
74 | CONVERTER : entity Work.CNA_TabloC | |||
|
75 | port map(clk,rst,flag_nw,bp,Rec.CNA_Data,SYNC,SCLK,Rz,flag_sd,Data); | |||
|
76 | ||||
|
77 | ||||
|
78 | ||||
|
79 | process(rst,clk) | |||
|
80 | begin | |||
|
81 | if(rst='0')then | |||
|
82 | Rec.CNA_Data <= (others => '0'); | |||
|
83 | ||||
|
84 | elsif(clk'event and clk='1')then | |||
|
85 | ||||
|
86 | ||||
|
87 | --APB Write OP | |||
|
88 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | |||
|
89 | case apbi.paddr(abits-1 downto 2) is | |||
|
90 | when "000000" => | |||
|
91 | Rec.CNA_Cfg(1 downto 0) <= apbi.pwdata(1 downto 0); | |||
|
92 | when "000001" => | |||
|
93 | Rec.CNA_Data <= apbi.pwdata(15 downto 0); | |||
|
94 | when others => | |||
|
95 | null; | |||
|
96 | end case; | |||
|
97 | end if; | |||
|
98 | ||||
|
99 | --APB READ OP | |||
|
100 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then | |||
|
101 | case apbi.paddr(abits-1 downto 2) is | |||
|
102 | when "000000" => | |||
|
103 | Rdata(31 downto 4) <= X"ABCDEF5"; | |||
|
104 | Rdata(3 downto 0) <= Rec.CNA_Cfg; | |||
|
105 | when "000001" => | |||
|
106 | Rdata(31 downto 16) <= X"FD18"; | |||
|
107 | Rdata(15 downto 0) <= Rec.CNA_Data; | |||
|
108 | when others => | |||
|
109 | Rdata <= (others => '0'); | |||
|
110 | end case; | |||
|
111 | end if; | |||
|
112 | ||||
|
113 | end if; | |||
|
114 | apbo.pconfig <= pconfig; | |||
|
115 | end process; | |||
|
116 | ||||
|
117 | apbo.prdata <= Rdata when apbi.penable = '1'; | |||
|
118 | end ar_APB_CNA; |
@@ -0,0 +1,88 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.std_logic_1164.all; | |||
|
21 | use IEEE.numeric_std.all; | |||
|
22 | use work.Convertisseur_config.all; | |||
|
23 | ||||
|
24 | entity CNA_TabloC is | |||
|
25 | port( | |||
|
26 | clock : in std_logic; | |||
|
27 | rst : in std_logic; | |||
|
28 | flag_nw : in std_logic; | |||
|
29 | bp : in std_logic; | |||
|
30 | Data_C : in std_logic_vector(15 downto 0); | |||
|
31 | SYNC : out std_logic; | |||
|
32 | SCLK : out std_logic; | |||
|
33 | Rz : out std_logic; | |||
|
34 | flag_sd : out std_logic; | |||
|
35 | Data : out std_logic | |||
|
36 | ); | |||
|
37 | end CNA_TabloC; | |||
|
38 | ||||
|
39 | ||||
|
40 | architecture ar_CNA_TabloC of CNA_TabloC is | |||
|
41 | ||||
|
42 | component CLKINT | |||
|
43 | port( A : in std_logic := 'U'; | |||
|
44 | Y : out std_logic); | |||
|
45 | end component; | |||
|
46 | ||||
|
47 | signal clk : std_logic; | |||
|
48 | --signal reset : std_logic; | |||
|
49 | ||||
|
50 | signal raz : std_logic; | |||
|
51 | signal sys_clk : std_logic; | |||
|
52 | signal Data_int : std_logic_vector(15 downto 0); | |||
|
53 | signal OKAI_send : std_logic; | |||
|
54 | ||||
|
55 | begin | |||
|
56 | ||||
|
57 | ||||
|
58 | CLKINT_0 : CLKINT | |||
|
59 | port map(A => clock, Y => clk); | |||
|
60 | ||||
|
61 | CLKINT_1 : CLKINT | |||
|
62 | port map(A => rst, Y => raz); | |||
|
63 | ||||
|
64 | ||||
|
65 | SystemCLK : entity work.Clock_Serie | |||
|
66 | generic map (nb_serial) | |||
|
67 | port map (clk,raz,sys_clk); | |||
|
68 | ||||
|
69 | ||||
|
70 | Signal_sync : entity work.GeneSYNC_flag | |||
|
71 | port map (clk,raz,flag_nw,sys_clk,OKAI_send,SYNC); | |||
|
72 | ||||
|
73 | ||||
|
74 | Serial : entity work.serialize | |||
|
75 | port map (clk,raz,sys_clk,Data_int,OKAI_send,flag_sd,Data); | |||
|
76 | ||||
|
77 | ||||
|
78 | --raz <= not reset; | |||
|
79 | Rz <= raz; | |||
|
80 | SCLK <= not sys_clk; | |||
|
81 | --Data_Cvec <= std_logic_vector(to_unsigned(Data_C,12)); | |||
|
82 | --Data_TOT <= "0001" & Data_Cvec; | |||
|
83 | ||||
|
84 | with bp select | |||
|
85 | Data_int <= X"9555" when '1', | |||
|
86 | Data_C when others; | |||
|
87 | ||||
|
88 | end ar_CNA_TabloC; |
@@ -0,0 +1,41 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.std_logic_1164.all; | |||
|
21 | use IEEE.numeric_std.all; | |||
|
22 | ||||
|
23 | Package Convertisseur_config is | |||
|
24 | ||||
|
25 | ||||
|
26 | --===========================================================| | |||
|
27 | --================= Valeurs Sinus 1Khz ======================| | |||
|
28 | --===========================================================| | |||
|
29 | type Tbl is array(natural range <>) of std_logic_vector(11 downto 0); | |||
|
30 | constant Tablo : Tbl (0 to 49):= (X"800",X"901",X"9FD",X"AF2",X"BDB",X"CB4",X"D7A",X"E2A",X"EC1",X"F3D",X"F9C",X"FDC",X"FFC",X"FFC",X"FDC",X"F9C",X"F3D",X"EC1",X"E2A",X"D7A",X"CB4",X"BDB",X"AF2",X"9FD",X"901",X"800",X"6FF",X"603",X"50E",X"425",X"34C",X"286",X"1D6",X"13F",X"0C3",X"064",X"024",X"004",X"004",X"024",X"064",X"0C3",X"13F",X"1D6",X"286",X"34C",X"425",X"50E",X"603",X"6FF"); | |||
|
31 | ||||
|
32 | --constant Tablo : Tbl (0 to 49):= (X"C00",X"C80",X"CFF",X"D79",X"DED",X"E5A",X"EBD",X"F15",X"F61",X"F9F",X"FCE",X"FEE",X"FFE",X"FFE",X"FEE",X"FCE",X"F9F",X"F61",X"F15",X"EBD",X"E5A",X"DED",X"D79",X"CFF",X"C80",X"C00",X"B80",X"B01",X"A87",X"A13",X"9A6",X"943",X"8EB",X"89F",X"861",X"832",X"812",X"802",X"802",X"812",X"832",X"861",X"89F",X"8EB",X"943",X"9A6",X"A13",X"A87",X"B01",X"B80"); | |||
|
33 | ||||
|
34 | ||||
|
35 | --===========================================================| | |||
|
36 | --============= Fr�quence de s�rialisation ==================| | |||
|
37 | --===========================================================| | |||
|
38 | constant Freq_serial : integer := 1_000_000; | |||
|
39 | constant nb_serial : integer := 40_000_000 / Freq_serial; | |||
|
40 | ||||
|
41 | end; |
@@ -0,0 +1,111 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.std_logic_1164.all; | |||
|
21 | use IEEE.numeric_std.all; | |||
|
22 | ||||
|
23 | entity GeneSYNC_flag is | |||
|
24 | ||||
|
25 | port( | |||
|
26 | clk,raz : in std_logic; | |||
|
27 | flag_nw : in std_logic; | |||
|
28 | Sysclk : in std_logic; | |||
|
29 | OKAI_send : out std_logic; | |||
|
30 | SYNC : out std_logic | |||
|
31 | ); | |||
|
32 | ||||
|
33 | end GeneSYNC_flag; | |||
|
34 | ||||
|
35 | ||||
|
36 | architecture ar_GeneSYNC_flag of GeneSYNC_flag is | |||
|
37 | ||||
|
38 | signal Sysclk_reg : std_logic; | |||
|
39 | signal flag_nw_reg : std_logic; | |||
|
40 | signal count : integer; | |||
|
41 | ||||
|
42 | type etat is (e0,e1,e2,eX); | |||
|
43 | signal ect : etat; | |||
|
44 | ||||
|
45 | begin | |||
|
46 | process (clk,raz) | |||
|
47 | begin | |||
|
48 | if(raz='0')then | |||
|
49 | SYNC <= '0'; | |||
|
50 | Sysclk_reg <= '0'; | |||
|
51 | flag_nw_reg <= '0'; | |||
|
52 | count <= 14; | |||
|
53 | OKAI_send <= '0'; | |||
|
54 | ect <= e0; | |||
|
55 | ||||
|
56 | elsif(clk' event and clk='1')then | |||
|
57 | Sysclk_reg <= Sysclk; | |||
|
58 | flag_nw_reg <= flag_nw; | |||
|
59 | ||||
|
60 | case ect is | |||
|
61 | when e0 => | |||
|
62 | if(flag_nw_reg='0' and flag_nw='1')then | |||
|
63 | ect <= e1; | |||
|
64 | else | |||
|
65 | count <= 14; | |||
|
66 | ect <= e0; | |||
|
67 | end if; | |||
|
68 | ||||
|
69 | ||||
|
70 | when e1 => | |||
|
71 | if(Sysclk_reg='1' and Sysclk='0')then | |||
|
72 | if(count=15)then | |||
|
73 | SYNC <= '1'; | |||
|
74 | count <= count+1; | |||
|
75 | ect <= e2; | |||
|
76 | elsif(count=16)then | |||
|
77 | count <= 0; | |||
|
78 | OKAI_send <= '1'; | |||
|
79 | ect <= eX; | |||
|
80 | else | |||
|
81 | count <= count+1; | |||
|
82 | OKAI_send <= '0'; | |||
|
83 | ect <= e1; | |||
|
84 | end if; | |||
|
85 | end if; | |||
|
86 | ||||
|
87 | ||||
|
88 | when e2 => | |||
|
89 | if(Sysclk_reg='0' and Sysclk='1')then | |||
|
90 | if(count=16)then | |||
|
91 | SYNC <= '0'; | |||
|
92 | ect <= e1; | |||
|
93 | end if; | |||
|
94 | end if; | |||
|
95 | ||||
|
96 | when eX => | |||
|
97 | if(Sysclk_reg='0' and Sysclk='1')then | |||
|
98 | if(count=15)then | |||
|
99 | OKAI_send <= '0'; | |||
|
100 | ect <= e0; | |||
|
101 | else | |||
|
102 | count <= count+1; | |||
|
103 | ect <= eX; | |||
|
104 | end if; | |||
|
105 | end if; | |||
|
106 | ||||
|
107 | end case; | |||
|
108 | end if; | |||
|
109 | ||||
|
110 | end process; | |||
|
111 | end ar_GeneSYNC_flag; |
@@ -0,0 +1,103 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.numeric_std.all; | |||
|
21 | use IEEE.std_logic_1164.all; | |||
|
22 | ||||
|
23 | entity Serialize is | |||
|
24 | ||||
|
25 | port( | |||
|
26 | clk,raz : in std_logic; | |||
|
27 | sclk : in std_logic; | |||
|
28 | vectin : in std_logic_vector(15 downto 0); | |||
|
29 | send : in std_logic; | |||
|
30 | sended : out std_logic; | |||
|
31 | Data : out std_logic); | |||
|
32 | ||||
|
33 | end Serialize; | |||
|
34 | ||||
|
35 | ||||
|
36 | architecture ar_Serialize of Serialize is | |||
|
37 | ||||
|
38 | type etat is (attente,serialize); | |||
|
39 | signal ect : etat; | |||
|
40 | ||||
|
41 | signal vector_int : std_logic_vector(16 downto 0); | |||
|
42 | signal vectin_reg : std_logic_vector(15 downto 0); | |||
|
43 | signal load : std_logic; | |||
|
44 | signal N : integer range 0 to 16; | |||
|
45 | signal CPT_ended : std_logic:='0'; | |||
|
46 | ||||
|
47 | begin | |||
|
48 | process(clk,raz) | |||
|
49 | begin | |||
|
50 | if(raz='0')then | |||
|
51 | ect <= attente; | |||
|
52 | vectin_reg <= (others=> '0'); | |||
|
53 | load <= '0'; | |||
|
54 | sended <= '1'; | |||
|
55 | ||||
|
56 | elsif(clk'event and clk='1')then | |||
|
57 | vectin_reg <= vectin; | |||
|
58 | ||||
|
59 | case ect is | |||
|
60 | when attente => | |||
|
61 | if (send='1') then | |||
|
62 | sended <= '0'; | |||
|
63 | load <= '1'; | |||
|
64 | ect <= serialize; | |||
|
65 | else | |||
|
66 | ect <= attente; | |||
|
67 | end if; | |||
|
68 | ||||
|
69 | when serialize => | |||
|
70 | load <= '0'; | |||
|
71 | if(CPT_ended='1')then | |||
|
72 | ect <= attente; | |||
|
73 | sended <= '1'; | |||
|
74 | end if; | |||
|
75 | ||||
|
76 | end case; | |||
|
77 | end if; | |||
|
78 | end process; | |||
|
79 | ||||
|
80 | process(sclk,load,raz) | |||
|
81 | begin | |||
|
82 | if (raz='0')then | |||
|
83 | vector_int <= (others=> '0'); | |||
|
84 | N <= 16; | |||
|
85 | elsif(load='1')then | |||
|
86 | vector_int <= vectin & '0'; | |||
|
87 | N <= 0; | |||
|
88 | elsif(sclk'event and sclk='0')then | |||
|
89 | if (CPT_ended='0') then | |||
|
90 | vector_int <= vector_int(15 downto 0) & '0'; | |||
|
91 | N <= N+1; | |||
|
92 | end if; | |||
|
93 | end if; | |||
|
94 | end process; | |||
|
95 | ||||
|
96 | CPT_ended <= '1' when N = 16 else '0'; | |||
|
97 | ||||
|
98 | with ect select | |||
|
99 | Data <= vector_int(16) when serialize, | |||
|
100 | '0' when others; | |||
|
101 | ||||
|
102 | end ar_Serialize; | |||
|
103 |
@@ -0,0 +1,58 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.std_logic_1164.all; | |||
|
21 | use IEEE.numeric_std.all; | |||
|
22 | ||||
|
23 | ||||
|
24 | entity Clock_Serie is | |||
|
25 | ||||
|
26 | generic(N :integer := 695); | |||
|
27 | ||||
|
28 | port( | |||
|
29 | clk, raz : in std_logic ; | |||
|
30 | clock : out std_logic); | |||
|
31 | ||||
|
32 | end Clock_Serie; | |||
|
33 | ||||
|
34 | ||||
|
35 | architecture ar_Clock_Serie of Clock_Serie is | |||
|
36 | ||||
|
37 | signal clockint : std_logic; | |||
|
38 | signal countint : integer range 0 to N/2-1; | |||
|
39 | ||||
|
40 | begin | |||
|
41 | process (clk,raz) | |||
|
42 | begin | |||
|
43 | if(raz = '0') then | |||
|
44 | countint <= 0; | |||
|
45 | clockint <= '0'; | |||
|
46 | elsif (clk' event and clk='1') then | |||
|
47 | if (countint = N/2-1) then | |||
|
48 | countint <= 0; | |||
|
49 | clockint <= not clockint; | |||
|
50 | else | |||
|
51 | countint <= countint+1; | |||
|
52 | end if; | |||
|
53 | end if; | |||
|
54 | end process; | |||
|
55 | ||||
|
56 | clock <= clockint; | |||
|
57 | ||||
|
58 | end ar_Clock_Serie; |
@@ -0,0 +1,51 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library ieee; | |||
|
20 | use ieee.std_logic_1164.all; | |||
|
21 | library grlib; | |||
|
22 | use grlib.amba.all; | |||
|
23 | -- pragma translate_off | |||
|
24 | use std.textio.all; | |||
|
25 | -- pragma translate_on | |||
|
26 | library lpp; | |||
|
27 | use lpp.lpp_amba.all; | |||
|
28 | ||||
|
29 | ||||
|
30 | package lpp_CNA_amba is | |||
|
31 | ||||
|
32 | ||||
|
33 | component APB_CNA is | |||
|
34 | generic ( | |||
|
35 | pindex : integer := 0; | |||
|
36 | paddr : integer := 0; | |||
|
37 | pmask : integer := 16#fff#; | |||
|
38 | pirq : integer := 0; | |||
|
39 | abits : integer := 8); | |||
|
40 | port ( | |||
|
41 | clk : in std_logic; | |||
|
42 | rst : in std_logic; | |||
|
43 | apbi : in apb_slv_in_type; | |||
|
44 | apbo : out apb_slv_out_type; | |||
|
45 | SYNC : out std_logic; | |||
|
46 | SCLK : out std_logic; | |||
|
47 | DATA : out std_logic | |||
|
48 | ); | |||
|
49 | end component; | |||
|
50 | ||||
|
51 | end; |
@@ -0,0 +1,98 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |||
|
21 | library lpp; | |||
|
22 | use lpp.lpp_ad_conv.all; | |||
|
23 | use lpp.general_purpose.Clk_divider; | |||
|
24 | ||||
|
25 | entity AD7688_drvr is | |||
|
26 | generic(ChanelCount : integer; | |||
|
27 | clkkHz : integer); | |||
|
28 | Port ( clk : in STD_LOGIC; | |||
|
29 | reset : in STD_LOGIC; | |||
|
30 | smplClk: in STD_LOGIC; | |||
|
31 | DataReady : out std_logic; | |||
|
32 | smpout : out Samples_out(ChanelCount-1 downto 0); | |||
|
33 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |||
|
34 | AD_out : out AD7688_out); | |||
|
35 | end AD7688_drvr; | |||
|
36 | ||||
|
37 | architecture ar_AD7688_drvr of AD7688_drvr is | |||
|
38 | ||||
|
39 | constant convTrigger : integer:= clkkHz*16/10000; --tconv = 1.6µs | |||
|
40 | ||||
|
41 | signal i : integer range 0 to convTrigger :=0; | |||
|
42 | signal clk_int : std_logic; | |||
|
43 | signal smplClk_reg : std_logic; | |||
|
44 | signal cnv_int : std_logic; | |||
|
45 | ||||
|
46 | begin | |||
|
47 | ||||
|
48 | clkdiv: if clkkHz>=66000 generate | |||
|
49 | clkdivider: Clk_divider | |||
|
50 | generic map(clkkHz*1000,60000000) | |||
|
51 | Port map( clk ,reset,clk_int); | |||
|
52 | end generate; | |||
|
53 | ||||
|
54 | clknodiv: if clkkHz<66000 generate | |||
|
55 | nodiv: clk_int <= clk; | |||
|
56 | end generate; | |||
|
57 | ||||
|
58 | AD_out.CNV <= cnv_int; | |||
|
59 | AD_out.SCK <= clk_int; | |||
|
60 | ||||
|
61 | ||||
|
62 | sckgen: process(clk,reset) | |||
|
63 | begin | |||
|
64 | if reset = '0' then | |||
|
65 | i <= 0; | |||
|
66 | cnv_int <= '0'; | |||
|
67 | smplClk_reg <= '0'; | |||
|
68 | elsif clk'event and clk = '1' then | |||
|
69 | if smplClk = '1' and smplClk_reg = '0' then | |||
|
70 | if i = convTrigger then | |||
|
71 | smplClk_reg <= '1'; | |||
|
72 | i <= 0; | |||
|
73 | cnv_int <= '0'; | |||
|
74 | else | |||
|
75 | i <= i+1; | |||
|
76 | cnv_int <= '1'; | |||
|
77 | end if; | |||
|
78 | elsif smplClk = '0' and smplClk_reg = '1' then | |||
|
79 | smplClk_reg <= '0'; | |||
|
80 | end if; | |||
|
81 | end if; | |||
|
82 | end process; | |||
|
83 | ||||
|
84 | ||||
|
85 | ||||
|
86 | spidrvr: AD7688_spi_if | |||
|
87 | generic map(ChanelCount) | |||
|
88 | Port map(clk_int,reset,cnv_int,DataReady,AD_in,smpout); | |||
|
89 | ||||
|
90 | ||||
|
91 | ||||
|
92 | end ar_AD7688_drvr; | |||
|
93 | ||||
|
94 | ||||
|
95 | ||||
|
96 | ||||
|
97 | ||||
|
98 |
@@ -0,0 +1,75 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |||
|
21 | library lpp; | |||
|
22 | use lpp.lpp_ad_conv.all; | |||
|
23 | use lpp.general_purpose.Clk_divider; | |||
|
24 | ||||
|
25 | entity AD7688_spi_if is | |||
|
26 | generic(ChanelCount : integer); | |||
|
27 | Port( clk : in STD_LOGIC; | |||
|
28 | reset : in STD_LOGIC; | |||
|
29 | cnv : in STD_LOGIC; | |||
|
30 | DataReady: out std_logic; | |||
|
31 | sdi : in AD7688_in(ChanelCount-1 downto 0); | |||
|
32 | smpout : out Samples_out(ChanelCount-1 downto 0) | |||
|
33 | ); | |||
|
34 | end AD7688_spi_if; | |||
|
35 | ||||
|
36 | architecture ar_AD7688_spi_if of AD7688_spi_if is | |||
|
37 | ||||
|
38 | signal shift_reg : Samples_out(ChanelCount-1 downto 0); | |||
|
39 | signal i : integer range 0 to 15 :=0; | |||
|
40 | signal cnv_reg : std_logic := '0'; | |||
|
41 | ||||
|
42 | begin | |||
|
43 | ||||
|
44 | ||||
|
45 | ||||
|
46 | process(clk,reset) | |||
|
47 | begin | |||
|
48 | if reset = '0' then | |||
|
49 | for l in 0 to ChanelCount-1 loop | |||
|
50 | shift_reg(l) <= (others => '0'); | |||
|
51 | end loop; | |||
|
52 | i <= 0; | |||
|
53 | cnv_reg <= '0'; | |||
|
54 | elsif clk'event and clk = '1' then | |||
|
55 | if cnv = '0' and cnv_reg = '0' then | |||
|
56 | if i = 15 then | |||
|
57 | i <= 0; | |||
|
58 | cnv_reg <= '1'; | |||
|
59 | else | |||
|
60 | DataReady <= '0'; | |||
|
61 | i <= i+1; | |||
|
62 | for l in 0 to ChanelCount-1 loop | |||
|
63 | shift_reg(l)(0) <= sdi(l).SDI; | |||
|
64 | shift_reg(l)(15 downto 1) <= shift_reg(l)(14 downto 0); | |||
|
65 | end loop; | |||
|
66 | end if; | |||
|
67 | else | |||
|
68 | cnv_reg <= not cnv; | |||
|
69 | smpout <= shift_reg; | |||
|
70 | DataReady <= '1'; | |||
|
71 | end if; | |||
|
72 | end if; | |||
|
73 | end process; | |||
|
74 | ||||
|
75 | end ar_AD7688_spi_if; |
@@ -0,0 +1,102 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |||
|
21 | library lpp; | |||
|
22 | use lpp.lpp_ad_conv.all; | |||
|
23 | use lpp.general_purpose.Clk_divider; | |||
|
24 | ||||
|
25 | entity ADS7886_drvr is | |||
|
26 | generic(ChanelCount : integer; | |||
|
27 | clkkHz : integer); | |||
|
28 | Port ( clk : in STD_LOGIC; | |||
|
29 | reset : in STD_LOGIC; | |||
|
30 | smplClk: in STD_LOGIC; | |||
|
31 | DataReady : out std_logic; | |||
|
32 | smpout : out Samples_out(ChanelCount-1 downto 0); | |||
|
33 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |||
|
34 | AD_out : out AD7688_out); | |||
|
35 | end ADS7886_drvr; | |||
|
36 | ||||
|
37 | architecture ar_ADS7886_drvr of ADS7886_drvr is | |||
|
38 | ||||
|
39 | constant convTrigger : integer:= clkkHz*1/1000; --tconv = 1.6µs | |||
|
40 | ||||
|
41 | signal i : integer range 0 to convTrigger :=0; | |||
|
42 | signal clk_int : std_logic; | |||
|
43 | signal smplClk_reg : std_logic; | |||
|
44 | signal cnv_int : std_logic; | |||
|
45 | signal smpout_int : Samples_out(ChanelCount-1 downto 0); | |||
|
46 | ||||
|
47 | ||||
|
48 | begin | |||
|
49 | ||||
|
50 | ||||
|
51 | clkdiv: if clkkHz>=20000 generate | |||
|
52 | clkdivider: Clk_divider | |||
|
53 | generic map(clkkHz*1000,19000000) | |||
|
54 | Port map( clk ,reset,clk_int); | |||
|
55 | end generate; | |||
|
56 | ||||
|
57 | ||||
|
58 | clknodiv: if clkkHz<20000 generate | |||
|
59 | nodiv: clk_int <= clk; | |||
|
60 | end generate; | |||
|
61 | ||||
|
62 | AD_out.CNV <= cnv_int; | |||
|
63 | AD_out.SCK <= clk_int; | |||
|
64 | ||||
|
65 | ||||
|
66 | sckgen: process(clk,reset) | |||
|
67 | begin | |||
|
68 | if reset = '0' then | |||
|
69 | i <= 0; | |||
|
70 | cnv_int <= '0'; | |||
|
71 | smplClk_reg <= '0'; | |||
|
72 | elsif clk'event and clk = '1' then | |||
|
73 | if smplClk = '1' and smplClk_reg = '0' then | |||
|
74 | if i = convTrigger then | |||
|
75 | smplClk_reg <= '1'; | |||
|
76 | i <= 0; | |||
|
77 | cnv_int <= '0'; | |||
|
78 | else | |||
|
79 | i <= i+1; | |||
|
80 | cnv_int <= '1'; | |||
|
81 | end if; | |||
|
82 | elsif smplClk = '0' and smplClk_reg = '1' then | |||
|
83 | smplClk_reg <= '0'; | |||
|
84 | end if; | |||
|
85 | end if; | |||
|
86 | end process; | |||
|
87 | ||||
|
88 | ||||
|
89 | NDMSK: for i in 0 to ChanelCount-1 | |||
|
90 | generate | |||
|
91 | smpout(i) <= smpout_int(i) and X"0FFF"; | |||
|
92 | end generate; | |||
|
93 | ||||
|
94 | ||||
|
95 | spidrvr: AD7688_spi_if | |||
|
96 | generic map(ChanelCount) | |||
|
97 | Port map(clk_int,reset,cnv_int,DataReady,AD_in,smpout_int); | |||
|
98 | ||||
|
99 | ||||
|
100 | ||||
|
101 | end ar_ADS7886_drvr; | |||
|
102 |
@@ -0,0 +1,112 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | ||||
|
20 | library IEEE; | |||
|
21 | use IEEE.STD_LOGIC_1164.all; | |||
|
22 | library grlib; | |||
|
23 | use grlib.amba.all; | |||
|
24 | use grlib.stdlib.all; | |||
|
25 | use grlib.devices.all; | |||
|
26 | ||||
|
27 | ||||
|
28 | package lpp_ad_conv is | |||
|
29 | ||||
|
30 | ||||
|
31 | constant AD7688 : integer := 0; | |||
|
32 | constant ADS7886 : integer := 1; | |||
|
33 | ||||
|
34 | ||||
|
35 | type AD7688_out is | |||
|
36 | record | |||
|
37 | CNV : std_logic; | |||
|
38 | SCK : std_logic; | |||
|
39 | end record; | |||
|
40 | ||||
|
41 | type AD7688_in_element is | |||
|
42 | record | |||
|
43 | SDI : std_logic; | |||
|
44 | end record; | |||
|
45 | ||||
|
46 | type AD7688_in is array(natural range <>) of AD7688_in_element; | |||
|
47 | ||||
|
48 | type Samples_out is array(natural range <>) of std_logic_vector(15 downto 0); | |||
|
49 | ||||
|
50 | component AD7688_drvr is | |||
|
51 | generic(ChanelCount : integer; | |||
|
52 | clkkHz : integer); | |||
|
53 | Port ( clk : in STD_LOGIC; | |||
|
54 | reset : in STD_LOGIC; | |||
|
55 | smplClk: in STD_LOGIC; | |||
|
56 | DataReady : out std_logic; | |||
|
57 | smpout : out Samples_out(ChanelCount-1 downto 0); | |||
|
58 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |||
|
59 | AD_out : out AD7688_out); | |||
|
60 | end component; | |||
|
61 | ||||
|
62 | ||||
|
63 | component AD7688_spi_if is | |||
|
64 | generic(ChanelCount : integer); | |||
|
65 | Port( clk : in STD_LOGIC; | |||
|
66 | reset : in STD_LOGIC; | |||
|
67 | cnv : in STD_LOGIC; | |||
|
68 | DataReady: out std_logic; | |||
|
69 | sdi : in AD7688_in(ChanelCount-1 downto 0); | |||
|
70 | smpout : out Samples_out(ChanelCount-1 downto 0) | |||
|
71 | ); | |||
|
72 | end component; | |||
|
73 | ||||
|
74 | ||||
|
75 | component lpp_apb_ad_conv | |||
|
76 | generic( | |||
|
77 | pindex : integer := 0; | |||
|
78 | paddr : integer := 0; | |||
|
79 | pmask : integer := 16#fff#; | |||
|
80 | pirq : integer := 0; | |||
|
81 | abits : integer := 8; | |||
|
82 | ChanelCount : integer := 1; | |||
|
83 | clkkHz : integer := 50000; | |||
|
84 | smpClkHz : integer := 100; | |||
|
85 | ADCref : integer := AD7688); | |||
|
86 | Port ( | |||
|
87 | clk : in STD_LOGIC; | |||
|
88 | reset : in STD_LOGIC; | |||
|
89 | apbi : in apb_slv_in_type; | |||
|
90 | apbo : out apb_slv_out_type; | |||
|
91 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |||
|
92 | AD_out : out AD7688_out); | |||
|
93 | end component; | |||
|
94 | ||||
|
95 | component ADS7886_drvr is | |||
|
96 | generic(ChanelCount : integer; | |||
|
97 | clkkHz : integer); | |||
|
98 | Port ( | |||
|
99 | clk : in STD_LOGIC; | |||
|
100 | reset : in STD_LOGIC; | |||
|
101 | smplClk : in STD_LOGIC; | |||
|
102 | DataReady : out std_logic; | |||
|
103 | smpout : out Samples_out(ChanelCount-1 downto 0); | |||
|
104 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |||
|
105 | AD_out : out AD7688_out | |||
|
106 | ); | |||
|
107 | end component; | |||
|
108 | ||||
|
109 | ||||
|
110 | end lpp_ad_conv; | |||
|
111 | ||||
|
112 |
@@ -0,0 +1,142 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | library IEEE; | |||
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |||
|
21 | use ieee.numeric_std.all; | |||
|
22 | library grlib; | |||
|
23 | use grlib.amba.all; | |||
|
24 | use grlib.stdlib.all; | |||
|
25 | use grlib.devices.all; | |||
|
26 | library lpp; | |||
|
27 | use lpp.lpp_ad_conv.all; | |||
|
28 | use lpp.lpp_amba.all; | |||
|
29 | use lpp.general_purpose.Clk_divider; | |||
|
30 | ||||
|
31 | entity lpp_apb_ad_conv is | |||
|
32 | generic( | |||
|
33 | pindex : integer := 0; | |||
|
34 | paddr : integer := 0; | |||
|
35 | pmask : integer := 16#fff#; | |||
|
36 | pirq : integer := 0; | |||
|
37 | abits : integer := 8; | |||
|
38 | ChanelCount : integer := 1; | |||
|
39 | clkkHz : integer := 50000; | |||
|
40 | smpClkHz : integer := 100; | |||
|
41 | ADCref : integer := AD7688); | |||
|
42 | Port ( | |||
|
43 | clk : in STD_LOGIC; | |||
|
44 | reset : in STD_LOGIC; | |||
|
45 | apbi : in apb_slv_in_type; | |||
|
46 | apbo : out apb_slv_out_type; | |||
|
47 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |||
|
48 | AD_out : out AD7688_out); | |||
|
49 | end lpp_apb_ad_conv; | |||
|
50 | ||||
|
51 | ||||
|
52 | architecture ar_lpp_apb_ad_conv of lpp_apb_ad_conv is | |||
|
53 | constant REVISION : integer := 1; | |||
|
54 | ||||
|
55 | constant pconfig : apb_config_type := ( | |||
|
56 | 0 => ahb_device_reg (VENDOR_LPP, LPP_ADC_7688, 0, REVISION, 0), | |||
|
57 | 1 => apb_iobar(paddr, pmask)); | |||
|
58 | ||||
|
59 | signal Rdata : std_logic_vector(31 downto 0); | |||
|
60 | signal smpout : Samples_out(ChanelCount-1 downto 0); | |||
|
61 | signal smplClk : STD_LOGIC; | |||
|
62 | signal DataReady : STD_LOGIC; | |||
|
63 | ||||
|
64 | type lpp_apb_ad_conv_Reg is record | |||
|
65 | CTRL_Reg : std_logic_vector(31 downto 0); | |||
|
66 | sample : Samples_out(ChanelCount-1 downto 0); | |||
|
67 | end record; | |||
|
68 | ||||
|
69 | signal r : lpp_apb_ad_conv_Reg; | |||
|
70 | ||||
|
71 | begin | |||
|
72 | ||||
|
73 | ||||
|
74 | caseAD7688: if ADCref = AD7688 generate | |||
|
75 | AD7688: AD7688_drvr | |||
|
76 | generic map(ChanelCount,clkkHz) | |||
|
77 | Port map(clk,reset,smplClk,DataReady,smpout,AD_in,AD_out); | |||
|
78 | end generate; | |||
|
79 | ||||
|
80 | caseADS786: if ADCref = ADS7886 generate | |||
|
81 | ADS7886: ADS7886_drvr | |||
|
82 | generic map(ChanelCount,clkkHz) | |||
|
83 | Port map(clk,reset,smplClk,DataReady,smpout,AD_in,AD_out); | |||
|
84 | end generate; | |||
|
85 | ||||
|
86 | ||||
|
87 | clkdivider: Clk_divider | |||
|
88 | generic map(clkkHz*1000,smpClkHz) | |||
|
89 | Port map( clk ,reset,smplClk); | |||
|
90 | ||||
|
91 | ||||
|
92 | ||||
|
93 | r.CTRL_Reg(0) <= DataReady; | |||
|
94 | ||||
|
95 | r.sample <= smpout; | |||
|
96 | ||||
|
97 | ||||
|
98 | process(reset,clk) | |||
|
99 | begin | |||
|
100 | if reset = '0' then | |||
|
101 | --r.CTRL_Reg(9 downto 0) <= (others => '0'); | |||
|
102 | elsif clk'event and clk = '1' then | |||
|
103 | ||||
|
104 | --APB Write OP | |||
|
105 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | |||
|
106 | case apbi.paddr(7 downto 2) is | |||
|
107 | when "000000" => | |||
|
108 | --r.CTRL_Reg(9 downto 0) <= apbi.pwdata(9 downto 0); | |||
|
109 | when others => | |||
|
110 | end case; | |||
|
111 | end if; | |||
|
112 | ||||
|
113 | --APB READ OP | |||
|
114 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then | |||
|
115 | case apbi.paddr(7 downto 2) is | |||
|
116 | when "000000" => | |||
|
117 | Rdata <= r.CTRL_Reg; | |||
|
118 | when others => | |||
|
119 | readC: for i in 1 to ChanelCount loop | |||
|
120 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then | |||
|
121 | Rdata(15 downto 0) <= r.sample(i-1)(15 downto 0); | |||
|
122 | end if; | |||
|
123 | end loop; | |||
|
124 | end case; | |||
|
125 | end if; | |||
|
126 | end if; | |||
|
127 | apbo.pconfig <= pconfig; | |||
|
128 | end process; | |||
|
129 | ||||
|
130 | apbo.prdata <= Rdata when apbi.penable = '1' ; | |||
|
131 | ||||
|
132 | ||||
|
133 | end ar_lpp_apb_ad_conv; | |||
|
134 | ||||
|
135 | ||||
|
136 | ||||
|
137 | ||||
|
138 | ||||
|
139 | ||||
|
140 | ||||
|
141 | ||||
|
142 |
This diff has been collapsed as it changes many lines, (674 lines changed) Show them Hide them | |||||
@@ -0,0 +1,674 | |||||
|
1 | GNU GENERAL PUBLIC LICENSE | |||
|
2 | Version 3, 29 June 2007 | |||
|
3 | ||||
|
4 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | |||
|
5 | Everyone is permitted to copy and distribute verbatim copies | |||
|
6 | of this license document, but changing it is not allowed. | |||
|
7 | ||||
|
8 | Preamble | |||
|
9 | ||||
|
10 | The GNU General Public License is a free, copyleft license for | |||
|
11 | software and other kinds of works. | |||
|
12 | ||||
|
13 | The licenses for most software and other practical works are designed | |||
|
14 | to take away your freedom to share and change the works. By contrast, | |||
|
15 | the GNU General Public License is intended to guarantee your freedom to | |||
|
16 | share and change all versions of a program--to make sure it remains free | |||
|
17 | software for all its users. We, the Free Software Foundation, use the | |||
|
18 | GNU General Public License for most of our software; it applies also to | |||
|
19 | any other work released this way by its authors. You can apply it to | |||
|
20 | your programs, too. | |||
|
21 | ||||
|
22 | When we speak of free software, we are referring to freedom, not | |||
|
23 | price. Our General Public Licenses are designed to make sure that you | |||
|
24 | have the freedom to distribute copies of free software (and charge for | |||
|
25 | them if you wish), that you receive source code or can get it if you | |||
|
26 | want it, that you can change the software or use pieces of it in new | |||
|
27 | free programs, and that you know you can do these things. | |||
|
28 | ||||
|
29 | To protect your rights, we need to prevent others from denying you | |||
|
30 | these rights or asking you to surrender the rights. Therefore, you have | |||
|
31 | certain responsibilities if you distribute copies of the software, or if | |||
|
32 | you modify it: responsibilities to respect the freedom of others. | |||
|
33 | ||||
|
34 | For example, if you distribute copies of such a program, whether | |||
|
35 | gratis or for a fee, you must pass on to the recipients the same | |||
|
36 | freedoms that you received. You must make sure that they, too, receive | |||
|
37 | or can get the source code. And you must show them these terms so they | |||
|
38 | know their rights. | |||
|
39 | ||||
|
40 | Developers that use the GNU GPL protect your rights with two steps: | |||
|
41 | (1) assert copyright on the software, and (2) offer you this License | |||
|
42 | giving you legal permission to copy, distribute and/or modify it. | |||
|
43 | ||||
|
44 | For the developers' and authors' protection, the GPL clearly explains | |||
|
45 | that there is no warranty for this free software. For both users' and | |||
|
46 | authors' sake, the GPL requires that modified versions be marked as | |||
|
47 | changed, so that their problems will not be attributed erroneously to | |||
|
48 | authors of previous versions. | |||
|
49 | ||||
|
50 | Some devices are designed to deny users access to install or run | |||
|
51 | modified versions of the software inside them, although the manufacturer | |||
|
52 | can do so. This is fundamentally incompatible with the aim of | |||
|
53 | protecting users' freedom to change the software. The systematic | |||
|
54 | pattern of such abuse occurs in the area of products for individuals to | |||
|
55 | use, which is precisely where it is most unacceptable. Therefore, we | |||
|
56 | have designed this version of the GPL to prohibit the practice for those | |||
|
57 | products. If such problems arise substantially in other domains, we | |||
|
58 | stand ready to extend this provision to those domains in future versions | |||
|
59 | of the GPL, as needed to protect the freedom of users. | |||
|
60 | ||||
|
61 | Finally, every program is threatened constantly by software patents. | |||
|
62 | States should not allow patents to restrict development and use of | |||
|
63 | software on general-purpose computers, but in those that do, we wish to | |||
|
64 | avoid the special danger that patents applied to a free program could | |||
|
65 | make it effectively proprietary. To prevent this, the GPL assures that | |||
|
66 | patents cannot be used to render the program non-free. | |||
|
67 | ||||
|
68 | The precise terms and conditions for copying, distribution and | |||
|
69 | modification follow. | |||
|
70 | ||||
|
71 | TERMS AND CONDITIONS | |||
|
72 | ||||
|
73 | 0. Definitions. | |||
|
74 | ||||
|
75 | "This License" refers to version 3 of the GNU General Public License. | |||
|
76 | ||||
|
77 | "Copyright" also means copyright-like laws that apply to other kinds of | |||
|
78 | works, such as semiconductor masks. | |||
|
79 | ||||
|
80 | "The Program" refers to any copyrightable work licensed under this | |||
|
81 | License. Each licensee is addressed as "you". "Licensees" and | |||
|
82 | "recipients" may be individuals or organizations. | |||
|
83 | ||||
|
84 | To "modify" a work means to copy from or adapt all or part of the work | |||
|
85 | in a fashion requiring copyright permission, other than the making of an | |||
|
86 | exact copy. The resulting work is called a "modified version" of the | |||
|
87 | earlier work or a work "based on" the earlier work. | |||
|
88 | ||||
|
89 | A "covered work" means either the unmodified Program or a work based | |||
|
90 | on the Program. | |||
|
91 | ||||
|
92 | To "propagate" a work means to do anything with it that, without | |||
|
93 | permission, would make you directly or secondarily liable for | |||
|
94 | infringement under applicable copyright law, except executing it on a | |||
|
95 | computer or modifying a private copy. Propagation includes copying, | |||
|
96 | distribution (with or without modification), making available to the | |||
|
97 | public, and in some countries other activities as well. | |||
|
98 | ||||
|
99 | To "convey" a work means any kind of propagation that enables other | |||
|
100 | parties to make or receive copies. Mere interaction with a user through | |||
|
101 | a computer network, with no transfer of a copy, is not conveying. | |||
|
102 | ||||
|
103 | An interactive user interface displays "Appropriate Legal Notices" | |||
|
104 | to the extent that it includes a convenient and prominently visible | |||
|
105 | feature that (1) displays an appropriate copyright notice, and (2) | |||
|
106 | tells the user that there is no warranty for the work (except to the | |||
|
107 | extent that warranties are provided), that licensees may convey the | |||
|
108 | work under this License, and how to view a copy of this License. If | |||
|
109 | the interface presents a list of user commands or options, such as a | |||
|
110 | menu, a prominent item in the list meets this criterion. | |||
|
111 | ||||
|
112 | 1. Source Code. | |||
|
113 | ||||
|
114 | The "source code" for a work means the preferred form of the work | |||
|
115 | for making modifications to it. "Object code" means any non-source | |||
|
116 | form of a work. | |||
|
117 | ||||
|
118 | A "Standard Interface" means an interface that either is an official | |||
|
119 | standard defined by a recognized standards body, or, in the case of | |||
|
120 | interfaces specified for a particular programming language, one that | |||
|
121 | is widely used among developers working in that language. | |||
|
122 | ||||
|
123 | The "System Libraries" of an executable work include anything, other | |||
|
124 | than the work as a whole, that (a) is included in the normal form of | |||
|
125 | packaging a Major Component, but which is not part of that Major | |||
|
126 | Component, and (b) serves only to enable use of the work with that | |||
|
127 | Major Component, or to implement a Standard Interface for which an | |||
|
128 | implementation is available to the public in source code form. A | |||
|
129 | "Major Component", in this context, means a major essential component | |||
|
130 | (kernel, window system, and so on) of the specific operating system | |||
|
131 | (if any) on which the executable work runs, or a compiler used to | |||
|
132 | produce the work, or an object code interpreter used to run it. | |||
|
133 | ||||
|
134 | The "Corresponding Source" for a work in object code form means all | |||
|
135 | the source code needed to generate, install, and (for an executable | |||
|
136 | work) run the object code and to modify the work, including scripts to | |||
|
137 | control those activities. However, it does not include the work's | |||
|
138 | System Libraries, or general-purpose tools or generally available free | |||
|
139 | programs which are used unmodified in performing those activities but | |||
|
140 | which are not part of the work. For example, Corresponding Source | |||
|
141 | includes interface definition files associated with source files for | |||
|
142 | the work, and the source code for shared libraries and dynamically | |||
|
143 | linked subprograms that the work is specifically designed to require, | |||
|
144 | such as by intimate data communication or control flow between those | |||
|
145 | subprograms and other parts of the work. | |||
|
146 | ||||
|
147 | The Corresponding Source need not include anything that users | |||
|
148 | can regenerate automatically from other parts of the Corresponding | |||
|
149 | Source. | |||
|
150 | ||||
|
151 | The Corresponding Source for a work in source code form is that | |||
|
152 | same work. | |||
|
153 | ||||
|
154 | 2. Basic Permissions. | |||
|
155 | ||||
|
156 | All rights granted under this License are granted for the term of | |||
|
157 | copyright on the Program, and are irrevocable provided the stated | |||
|
158 | conditions are met. This License explicitly affirms your unlimited | |||
|
159 | permission to run the unmodified Program. The output from running a | |||
|
160 | covered work is covered by this License only if the output, given its | |||
|
161 | content, constitutes a covered work. This License acknowledges your | |||
|
162 | rights of fair use or other equivalent, as provided by copyright law. | |||
|
163 | ||||
|
164 | You may make, run and propagate covered works that you do not | |||
|
165 | convey, without conditions so long as your license otherwise remains | |||
|
166 | in force. You may convey covered works to others for the sole purpose | |||
|
167 | of having them make modifications exclusively for you, or provide you | |||
|
168 | with facilities for running those works, provided that you comply with | |||
|
169 | the terms of this License in conveying all material for which you do | |||
|
170 | not control copyright. Those thus making or running the covered works | |||
|
171 | for you must do so exclusively on your behalf, under your direction | |||
|
172 | and control, on terms that prohibit them from making any copies of | |||
|
173 | your copyrighted material outside their relationship with you. | |||
|
174 | ||||
|
175 | Conveying under any other circumstances is permitted solely under | |||
|
176 | the conditions stated below. Sublicensing is not allowed; section 10 | |||
|
177 | makes it unnecessary. | |||
|
178 | ||||
|
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. | |||
|
180 | ||||
|
181 | No covered work shall be deemed part of an effective technological | |||
|
182 | measure under any applicable law fulfilling obligations under article | |||
|
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or | |||
|
184 | similar laws prohibiting or restricting circumvention of such | |||
|
185 | measures. | |||
|
186 | ||||
|
187 | When you convey a covered work, you waive any legal power to forbid | |||
|
188 | circumvention of technological measures to the extent such circumvention | |||
|
189 | is effected by exercising rights under this License with respect to | |||
|
190 | the covered work, and you disclaim any intention to limit operation or | |||
|
191 | modification of the work as a means of enforcing, against the work's | |||
|
192 | users, your or third parties' legal rights to forbid circumvention of | |||
|
193 | technological measures. | |||
|
194 | ||||
|
195 | 4. Conveying Verbatim Copies. | |||
|
196 | ||||
|
197 | You may convey verbatim copies of the Program's source code as you | |||
|
198 | receive it, in any medium, provided that you conspicuously and | |||
|
199 | appropriately publish on each copy an appropriate copyright notice; | |||
|
200 | keep intact all notices stating that this License and any | |||
|
201 | non-permissive terms added in accord with section 7 apply to the code; | |||
|
202 | keep intact all notices of the absence of any warranty; and give all | |||
|
203 | recipients a copy of this License along with the Program. | |||
|
204 | ||||
|
205 | You may charge any price or no price for each copy that you convey, | |||
|
206 | and you may offer support or warranty protection for a fee. | |||
|
207 | ||||
|
208 | 5. Conveying Modified Source Versions. | |||
|
209 | ||||
|
210 | You may convey a work based on the Program, or the modifications to | |||
|
211 | produce it from the Program, in the form of source code under the | |||
|
212 | terms of section 4, provided that you also meet all of these conditions: | |||
|
213 | ||||
|
214 | a) The work must carry prominent notices stating that you modified | |||
|
215 | it, and giving a relevant date. | |||
|
216 | ||||
|
217 | b) The work must carry prominent notices stating that it is | |||
|
218 | released under this License and any conditions added under section | |||
|
219 | 7. This requirement modifies the requirement in section 4 to | |||
|
220 | "keep intact all notices". | |||
|
221 | ||||
|
222 | c) You must license the entire work, as a whole, under this | |||
|
223 | License to anyone who comes into possession of a copy. This | |||
|
224 | License will therefore apply, along with any applicable section 7 | |||
|
225 | additional terms, to the whole of the work, and all its parts, | |||
|
226 | regardless of how they are packaged. This License gives no | |||
|
227 | permission to license the work in any other way, but it does not | |||
|
228 | invalidate such permission if you have separately received it. | |||
|
229 | ||||
|
230 | d) If the work has interactive user interfaces, each must display | |||
|
231 | Appropriate Legal Notices; however, if the Program has interactive | |||
|
232 | interfaces that do not display Appropriate Legal Notices, your | |||
|
233 | work need not make them do so. | |||
|
234 | ||||
|
235 | A compilation of a covered work with other separate and independent | |||
|
236 | works, which are not by their nature extensions of the covered work, | |||
|
237 | and which are not combined with it such as to form a larger program, | |||
|
238 | in or on a volume of a storage or distribution medium, is called an | |||
|
239 | "aggregate" if the compilation and its resulting copyright are not | |||
|
240 | used to limit the access or legal rights of the compilation's users | |||
|
241 | beyond what the individual works permit. Inclusion of a covered work | |||
|
242 | in an aggregate does not cause this License to apply to the other | |||
|
243 | parts of the aggregate. | |||
|
244 | ||||
|
245 | 6. Conveying Non-Source Forms. | |||
|
246 | ||||
|
247 | You may convey a covered work in object code form under the terms | |||
|
248 | of sections 4 and 5, provided that you also convey the | |||
|
249 | machine-readable Corresponding Source under the terms of this License, | |||
|
250 | in one of these ways: | |||
|
251 | ||||
|
252 | a) Convey the object code in, or embodied in, a physical product | |||
|
253 | (including a physical distribution medium), accompanied by the | |||
|
254 | Corresponding Source fixed on a durable physical medium | |||
|
255 | customarily used for software interchange. | |||
|
256 | ||||
|
257 | b) Convey the object code in, or embodied in, a physical product | |||
|
258 | (including a physical distribution medium), accompanied by a | |||
|
259 | written offer, valid for at least three years and valid for as | |||
|
260 | long as you offer spare parts or customer support for that product | |||
|
261 | model, to give anyone who possesses the object code either (1) a | |||
|
262 | copy of the Corresponding Source for all the software in the | |||
|
263 | product that is covered by this License, on a durable physical | |||
|
264 | medium customarily used for software interchange, for a price no | |||
|
265 | more than your reasonable cost of physically performing this | |||
|
266 | conveying of source, or (2) access to copy the | |||
|
267 | Corresponding Source from a network server at no charge. | |||
|
268 | ||||
|
269 | c) Convey individual copies of the object code with a copy of the | |||
|
270 | written offer to provide the Corresponding Source. This | |||
|
271 | alternative is allowed only occasionally and noncommercially, and | |||
|
272 | only if you received the object code with such an offer, in accord | |||
|
273 | with subsection 6b. | |||
|
274 | ||||
|
275 | d) Convey the object code by offering access from a designated | |||
|
276 | place (gratis or for a charge), and offer equivalent access to the | |||
|
277 | Corresponding Source in the same way through the same place at no | |||
|
278 | further charge. You need not require recipients to copy the | |||
|
279 | Corresponding Source along with the object code. If the place to | |||
|
280 | copy the object code is a network server, the Corresponding Source | |||
|
281 | may be on a different server (operated by you or a third party) | |||
|
282 | that supports equivalent copying facilities, provided you maintain | |||
|
283 | clear directions next to the object code saying where to find the | |||
|
284 | Corresponding Source. Regardless of what server hosts the | |||
|
285 | Corresponding Source, you remain obligated to ensure that it is | |||
|
286 | available for as long as needed to satisfy these requirements. | |||
|
287 | ||||
|
288 | e) Convey the object code using peer-to-peer transmission, provided | |||
|
289 | you inform other peers where the object code and Corresponding | |||
|
290 | Source of the work are being offered to the general public at no | |||
|
291 | charge under subsection 6d. | |||
|
292 | ||||
|
293 | A separable portion of the object code, whose source code is excluded | |||
|
294 | from the Corresponding Source as a System Library, need not be | |||
|
295 | included in conveying the object code work. | |||
|
296 | ||||
|
297 | A "User Product" is either (1) a "consumer product", which means any | |||
|
298 | tangible personal property which is normally used for personal, family, | |||
|
299 | or household purposes, or (2) anything designed or sold for incorporation | |||
|
300 | into a dwelling. In determining whether a product is a consumer product, | |||
|
301 | doubtful cases shall be resolved in favor of coverage. For a particular | |||
|
302 | product received by a particular user, "normally used" refers to a | |||
|
303 | typical or common use of that class of product, regardless of the status | |||
|
304 | of the particular user or of the way in which the particular user | |||
|
305 | actually uses, or expects or is expected to use, the product. A product | |||
|
306 | is a consumer product regardless of whether the product has substantial | |||
|
307 | commercial, industrial or non-consumer uses, unless such uses represent | |||
|
308 | the only significant mode of use of the product. | |||
|
309 | ||||
|
310 | "Installation Information" for a User Product means any methods, | |||
|
311 | procedures, authorization keys, or other information required to install | |||
|
312 | and execute modified versions of a covered work in that User Product from | |||
|
313 | a modified version of its Corresponding Source. The information must | |||
|
314 | suffice to ensure that the continued functioning of the modified object | |||
|
315 | code is in no case prevented or interfered with solely because | |||
|
316 | modification has been made. | |||
|
317 | ||||
|
318 | If you convey an object code work under this section in, or with, or | |||
|
319 | specifically for use in, a User Product, and the conveying occurs as | |||
|
320 | part of a transaction in which the right of possession and use of the | |||
|
321 | User Product is transferred to the recipient in perpetuity or for a | |||
|
322 | fixed term (regardless of how the transaction is characterized), the | |||
|
323 | Corresponding Source conveyed under this section must be accompanied | |||
|
324 | by the Installation Information. But this requirement does not apply | |||
|
325 | if neither you nor any third party retains the ability to install | |||
|
326 | modified object code on the User Product (for example, the work has | |||
|
327 | been installed in ROM). | |||
|
328 | ||||
|
329 | The requirement to provide Installation Information does not include a | |||
|
330 | requirement to continue to provide support service, warranty, or updates | |||
|
331 | for a work that has been modified or installed by the recipient, or for | |||
|
332 | the User Product in which it has been modified or installed. Access to a | |||
|
333 | network may be denied when the modification itself materially and | |||
|
334 | adversely affects the operation of the network or violates the rules and | |||
|
335 | protocols for communication across the network. | |||
|
336 | ||||
|
337 | Corresponding Source conveyed, and Installation Information provided, | |||
|
338 | in accord with this section must be in a format that is publicly | |||
|
339 | documented (and with an implementation available to the public in | |||
|
340 | source code form), and must require no special password or key for | |||
|
341 | unpacking, reading or copying. | |||
|
342 | ||||
|
343 | 7. Additional Terms. | |||
|
344 | ||||
|
345 | "Additional permissions" are terms that supplement the terms of this | |||
|
346 | License by making exceptions from one or more of its conditions. | |||
|
347 | Additional permissions that are applicable to the entire Program shall | |||
|
348 | be treated as though they were included in this License, to the extent | |||
|
349 | that they are valid under applicable law. If additional permissions | |||
|
350 | apply only to part of the Program, that part may be used separately | |||
|
351 | under those permissions, but the entire Program remains governed by | |||
|
352 | this License without regard to the additional permissions. | |||
|
353 | ||||
|
354 | When you convey a copy of a covered work, you may at your option | |||
|
355 | remove any additional permissions from that copy, or from any part of | |||
|
356 | it. (Additional permissions may be written to require their own | |||
|
357 | removal in certain cases when you modify the work.) You may place | |||
|
358 | additional permissions on material, added by you to a covered work, | |||
|
359 | for which you have or can give appropriate copyright permission. | |||
|
360 | ||||
|
361 | Notwithstanding any other provision of this License, for material you | |||
|
362 | add to a covered work, you may (if authorized by the copyright holders of | |||
|
363 | that material) supplement the terms of this License with terms: | |||
|
364 | ||||
|
365 | a) Disclaiming warranty or limiting liability differently from the | |||
|
366 | terms of sections 15 and 16 of this License; or | |||
|
367 | ||||
|
368 | b) Requiring preservation of specified reasonable legal notices or | |||
|
369 | author attributions in that material or in the Appropriate Legal | |||
|
370 | Notices displayed by works containing it; or | |||
|
371 | ||||
|
372 | c) Prohibiting misrepresentation of the origin of that material, or | |||
|
373 | requiring that modified versions of such material be marked in | |||
|
374 | reasonable ways as different from the original version; or | |||
|
375 | ||||
|
376 | d) Limiting the use for publicity purposes of names of licensors or | |||
|
377 | authors of the material; or | |||
|
378 | ||||
|
379 | e) Declining to grant rights under trademark law for use of some | |||
|
380 | trade names, trademarks, or service marks; or | |||
|
381 | ||||
|
382 | f) Requiring indemnification of licensors and authors of that | |||
|
383 | material by anyone who conveys the material (or modified versions of | |||
|
384 | it) with contractual assumptions of liability to the recipient, for | |||
|
385 | any liability that these contractual assumptions directly impose on | |||
|
386 | those licensors and authors. | |||
|
387 | ||||
|
388 | All other non-permissive additional terms are considered "further | |||
|
389 | restrictions" within the meaning of section 10. If the Program as you | |||
|
390 | received it, or any part of it, contains a notice stating that it is | |||
|
391 | governed by this License along with a term that is a further | |||
|
392 | restriction, you may remove that term. If a license document contains | |||
|
393 | a further restriction but permits relicensing or conveying under this | |||
|
394 | License, you may add to a covered work material governed by the terms | |||
|
395 | of that license document, provided that the further restriction does | |||
|
396 | not survive such relicensing or conveying. | |||
|
397 | ||||
|
398 | If you add terms to a covered work in accord with this section, you | |||
|
399 | must place, in the relevant source files, a statement of the | |||
|
400 | additional terms that apply to those files, or a notice indicating | |||
|
401 | where to find the applicable terms. | |||
|
402 | ||||
|
403 | Additional terms, permissive or non-permissive, may be stated in the | |||
|
404 | form of a separately written license, or stated as exceptions; | |||
|
405 | the above requirements apply either way. | |||
|
406 | ||||
|
407 | 8. Termination. | |||
|
408 | ||||
|
409 | You may not propagate or modify a covered work except as expressly | |||
|
410 | provided under this License. Any attempt otherwise to propagate or | |||
|
411 | modify it is void, and will automatically terminate your rights under | |||
|
412 | this License (including any patent licenses granted under the third | |||
|
413 | paragraph of section 11). | |||
|
414 | ||||
|
415 | However, if you cease all violation of this License, then your | |||
|
416 | license from a particular copyright holder is reinstated (a) | |||
|
417 | provisionally, unless and until the copyright holder explicitly and | |||
|
418 | finally terminates your license, and (b) permanently, if the copyright | |||
|
419 | holder fails to notify you of the violation by some reasonable means | |||
|
420 | prior to 60 days after the cessation. | |||
|
421 | ||||
|
422 | Moreover, your license from a particular copyright holder is | |||
|
423 | reinstated permanently if the copyright holder notifies you of the | |||
|
424 | violation by some reasonable means, this is the first time you have | |||
|
425 | received notice of violation of this License (for any work) from that | |||
|
426 | copyright holder, and you cure the violation prior to 30 days after | |||
|
427 | your receipt of the notice. | |||
|
428 | ||||
|
429 | Termination of your rights under this section does not terminate the | |||
|
430 | licenses of parties who have received copies or rights from you under | |||
|
431 | this License. If your rights have been terminated and not permanently | |||
|
432 | reinstated, you do not qualify to receive new licenses for the same | |||
|
433 | material under section 10. | |||
|
434 | ||||
|
435 | 9. Acceptance Not Required for Having Copies. | |||
|
436 | ||||
|
437 | You are not required to accept this License in order to receive or | |||
|
438 | run a copy of the Program. Ancillary propagation of a covered work | |||
|
439 | occurring solely as a consequence of using peer-to-peer transmission | |||
|
440 | to receive a copy likewise does not require acceptance. However, | |||
|
441 | nothing other than this License grants you permission to propagate or | |||
|
442 | modify any covered work. These actions infringe copyright if you do | |||
|
443 | not accept this License. Therefore, by modifying or propagating a | |||
|
444 | covered work, you indicate your acceptance of this License to do so. | |||
|
445 | ||||
|
446 | 10. Automatic Licensing of Downstream Recipients. | |||
|
447 | ||||
|
448 | Each time you convey a covered work, the recipient automatically | |||
|
449 | receives a license from the original licensors, to run, modify and | |||
|
450 | propagate that work, subject to this License. You are not responsible | |||
|
451 | for enforcing compliance by third parties with this License. | |||
|
452 | ||||
|
453 | An "entity transaction" is a transaction transferring control of an | |||
|
454 | organization, or substantially all assets of one, or subdividing an | |||
|
455 | organization, or merging organizations. If propagation of a covered | |||
|
456 | work results from an entity transaction, each party to that | |||
|
457 | transaction who receives a copy of the work also receives whatever | |||
|
458 | licenses to the work the party's predecessor in interest had or could | |||
|
459 | give under the previous paragraph, plus a right to possession of the | |||
|
460 | Corresponding Source of the work from the predecessor in interest, if | |||
|
461 | the predecessor has it or can get it with reasonable efforts. | |||
|
462 | ||||
|
463 | You may not impose any further restrictions on the exercise of the | |||
|
464 | rights granted or affirmed under this License. For example, you may | |||
|
465 | not impose a license fee, royalty, or other charge for exercise of | |||
|
466 | rights granted under this License, and you may not initiate litigation | |||
|
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that | |||
|
468 | any patent claim is infringed by making, using, selling, offering for | |||
|
469 | sale, or importing the Program or any portion of it. | |||
|
470 | ||||
|
471 | 11. Patents. | |||
|
472 | ||||
|
473 | A "contributor" is a copyright holder who authorizes use under this | |||
|
474 | License of the Program or a work on which the Program is based. The | |||
|
475 | work thus licensed is called the contributor's "contributor version". | |||
|
476 | ||||
|
477 | A contributor's "essential patent claims" are all patent claims | |||
|
478 | owned or controlled by the contributor, whether already acquired or | |||
|
479 | hereafter acquired, that would be infringed by some manner, permitted | |||
|
480 | by this License, of making, using, or selling its contributor version, | |||
|
481 | but do not include claims that would be infringed only as a | |||
|
482 | consequence of further modification of the contributor version. For | |||
|
483 | purposes of this definition, "control" includes the right to grant | |||
|
484 | patent sublicenses in a manner consistent with the requirements of | |||
|
485 | this License. | |||
|
486 | ||||
|
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free | |||
|
488 | patent license under the contributor's essential patent claims, to | |||
|
489 | make, use, sell, offer for sale, import and otherwise run, modify and | |||
|
490 | propagate the contents of its contributor version. | |||
|
491 | ||||
|
492 | In the following three paragraphs, a "patent license" is any express | |||
|
493 | agreement or commitment, however denominated, not to enforce a patent | |||
|
494 | (such as an express permission to practice a patent or covenant not to | |||
|
495 | sue for patent infringement). To "grant" such a patent license to a | |||
|
496 | party means to make such an agreement or commitment not to enforce a | |||
|
497 | patent against the party. | |||
|
498 | ||||
|
499 | If you convey a covered work, knowingly relying on a patent license, | |||
|
500 | and the Corresponding Source of the work is not available for anyone | |||
|
501 | to copy, free of charge and under the terms of this License, through a | |||
|
502 | publicly available network server or other readily accessible means, | |||
|
503 | then you must either (1) cause the Corresponding Source to be so | |||
|
504 | available, or (2) arrange to deprive yourself of the benefit of the | |||
|
505 | patent license for this particular work, or (3) arrange, in a manner | |||
|
506 | consistent with the requirements of this License, to extend the patent | |||
|
507 | license to downstream recipients. "Knowingly relying" means you have | |||
|
508 | actual knowledge that, but for the patent license, your conveying the | |||
|
509 | covered work in a country, or your recipient's use of the covered work | |||
|
510 | in a country, would infringe one or more identifiable patents in that | |||
|
511 | country that you have reason to believe are valid. | |||
|
512 | ||||
|
513 | If, pursuant to or in connection with a single transaction or | |||
|
514 | arrangement, you convey, or propagate by procuring conveyance of, a | |||
|
515 | covered work, and grant a patent license to some of the parties | |||
|
516 | receiving the covered work authorizing them to use, propagate, modify | |||
|
517 | or convey a specific copy of the covered work, then the patent license | |||
|
518 | you grant is automatically extended to all recipients of the covered | |||
|
519 | work and works based on it. | |||
|
520 | ||||
|
521 | A patent license is "discriminatory" if it does not include within | |||
|
522 | the scope of its coverage, prohibits the exercise of, or is | |||
|
523 | conditioned on the non-exercise of one or more of the rights that are | |||
|
524 | specifically granted under this License. You may not convey a covered | |||
|
525 | work if you are a party to an arrangement with a third party that is | |||
|
526 | in the business of distributing software, under which you make payment | |||
|
527 | to the third party based on the extent of your activity of conveying | |||
|
528 | the work, and under which the third party grants, to any of the | |||
|
529 | parties who would receive the covered work from you, a discriminatory | |||
|
530 | patent license (a) in connection with copies of the covered work | |||
|
531 | conveyed by you (or copies made from those copies), or (b) primarily | |||
|
532 | for and in connection with specific products or compilations that | |||
|
533 | contain the covered work, unless you entered into that arrangement, | |||
|
534 | or that patent license was granted, prior to 28 March 2007. | |||
|
535 | ||||
|
536 | Nothing in this License shall be construed as excluding or limiting | |||
|
537 | any implied license or other defenses to infringement that may | |||
|
538 | otherwise be available to you under applicable patent law. | |||
|
539 | ||||
|
540 | 12. No Surrender of Others' Freedom. | |||
|
541 | ||||
|
542 | If conditions are imposed on you (whether by court order, agreement or | |||
|
543 | otherwise) that contradict the conditions of this License, they do not | |||
|
544 | excuse you from the conditions of this License. If you cannot convey a | |||
|
545 | covered work so as to satisfy simultaneously your obligations under this | |||
|
546 | License and any other pertinent obligations, then as a consequence you may | |||
|
547 | not convey it at all. For example, if you agree to terms that obligate you | |||
|
548 | to collect a royalty for further conveying from those to whom you convey | |||
|
549 | the Program, the only way you could satisfy both those terms and this | |||
|
550 | License would be to refrain entirely from conveying the Program. | |||
|
551 | ||||
|
552 | 13. Use with the GNU Affero General Public License. | |||
|
553 | ||||
|
554 | Notwithstanding any other provision of this License, you have | |||
|
555 | permission to link or combine any covered work with a work licensed | |||
|
556 | under version 3 of the GNU Affero General Public License into a single | |||
|
557 | combined work, and to convey the resulting work. The terms of this | |||
|
558 | License will continue to apply to the part which is the covered work, | |||
|
559 | but the special requirements of the GNU Affero General Public License, | |||
|
560 | section 13, concerning interaction through a network will apply to the | |||
|
561 | combination as such. | |||
|
562 | ||||
|
563 | 14. Revised Versions of this License. | |||
|
564 | ||||
|
565 | The Free Software Foundation may publish revised and/or new versions of | |||
|
566 | the GNU General Public License from time to time. Such new versions will | |||
|
567 | be similar in spirit to the present version, but may differ in detail to | |||
|
568 | address new problems or concerns. | |||
|
569 | ||||
|
570 | Each version is given a distinguishing version number. If the | |||
|
571 | Program specifies that a certain numbered version of the GNU General | |||
|
572 | Public License "or any later version" applies to it, you have the | |||
|
573 | option of following the terms and conditions either of that numbered | |||
|
574 | version or of any later version published by the Free Software | |||
|
575 | Foundation. If the Program does not specify a version number of the | |||
|
576 | GNU General Public License, you may choose any version ever published | |||
|
577 | by the Free Software Foundation. | |||
|
578 | ||||
|
579 | If the Program specifies that a proxy can decide which future | |||
|
580 | versions of the GNU General Public License can be used, that proxy's | |||
|
581 | public statement of acceptance of a version permanently authorizes you | |||
|
582 | to choose that version for the Program. | |||
|
583 | ||||
|
584 | Later license versions may give you additional or different | |||
|
585 | permissions. However, no additional obligations are imposed on any | |||
|
586 | author or copyright holder as a result of your choosing to follow a | |||
|
587 | later version. | |||
|
588 | ||||
|
589 | 15. Disclaimer of Warranty. | |||
|
590 | ||||
|
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | |||
|
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | |||
|
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY | |||
|
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, | |||
|
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |||
|
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM | |||
|
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF | |||
|
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | |||
|
599 | ||||
|
600 | 16. Limitation of Liability. | |||
|
601 | ||||
|
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |||
|
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS | |||
|
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | |||
|
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE | |||
|
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | |||
|
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD | |||
|
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | |||
|
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | |||
|
610 | SUCH DAMAGES. | |||
|
611 | ||||
|
612 | 17. Interpretation of Sections 15 and 16. | |||
|
613 | ||||
|
614 | If the disclaimer of warranty and limitation of liability provided | |||
|
615 | above cannot be given local legal effect according to their terms, | |||
|
616 | reviewing courts shall apply local law that most closely approximates | |||
|
617 | an absolute waiver of all civil liability in connection with the | |||
|
618 | Program, unless a warranty or assumption of liability accompanies a | |||
|
619 | copy of the Program in return for a fee. | |||
|
620 | ||||
|
621 | END OF TERMS AND CONDITIONS | |||
|
622 | ||||
|
623 | How to Apply These Terms to Your New Programs | |||
|
624 | ||||
|
625 | If you develop a new program, and you want it to be of the greatest | |||
|
626 | possible use to the public, the best way to achieve this is to make it | |||
|
627 | free software which everyone can redistribute and change under these terms. | |||
|
628 | ||||
|
629 | To do so, attach the following notices to the program. It is safest | |||
|
630 | to attach them to the start of each source file to most effectively | |||
|
631 | state the exclusion of warranty; and each file should have at least | |||
|
632 | the "copyright" line and a pointer to where the full notice is found. | |||
|
633 | ||||
|
634 | <one line to give the program's name and a brief idea of what it does.> | |||
|
635 | Copyright (C) <year> <name of author> | |||
|
636 | ||||
|
637 | This program is free software: you can redistribute it and/or modify | |||
|
638 | it under the terms of the GNU General Public License as published by | |||
|
639 | the Free Software Foundation, either version 3 of the License, or | |||
|
640 | (at your option) any later version. | |||
|
641 | ||||
|
642 | This program is distributed in the hope that it will be useful, | |||
|
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
645 | GNU General Public License for more details. | |||
|
646 | ||||
|
647 | You should have received a copy of the GNU General Public License | |||
|
648 | along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
|
649 | ||||
|
650 | Also add information on how to contact you by electronic and paper mail. | |||
|
651 | ||||
|
652 | If the program does terminal interaction, make it output a short | |||
|
653 | notice like this when it starts in an interactive mode: | |||
|
654 | ||||
|
655 | <program> Copyright (C) <year> <name of author> | |||
|
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |||
|
657 | This is free software, and you are welcome to redistribute it | |||
|
658 | under certain conditions; type `show c' for details. | |||
|
659 | ||||
|
660 | The hypothetical commands `show w' and `show c' should show the appropriate | |||
|
661 | parts of the General Public License. Of course, your program's commands | |||
|
662 | might be different; for a GUI interface, you would use an "about box". | |||
|
663 | ||||
|
664 | You should also get your employer (if you work as a programmer) or school, | |||
|
665 | if any, to sign a "copyright disclaimer" for the program, if necessary. | |||
|
666 | For more information on this, and how to apply and follow the GNU GPL, see | |||
|
667 | <http://www.gnu.org/licenses/>. | |||
|
668 | ||||
|
669 | The GNU General Public License does not permit incorporating your program | |||
|
670 | into proprietary programs. If your program is a subroutine library, you | |||
|
671 | may consider it more useful to permit linking proprietary applications with | |||
|
672 | the library. If this is what you want to do, use the GNU Lesser General | |||
|
673 | Public License instead of this License. But first, please read | |||
|
674 | <http://www.gnu.org/philosophy/why-not-lgpl.html>. |
@@ -0,0 +1,18 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ |
@@ -0,0 +1,18 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | -------------------------------------------------------------------------------*/ |
@@ -0,0 +1,18 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- |
@@ -0,0 +1,33 | |||||
|
1 | echo "=======================================================================================" | |||
|
2 | echo "---------------------------------------------------------------------------------------" | |||
|
3 | echo " PDF Doc generator " | |||
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |||
|
5 | echo "=======================================================================================" | |||
|
6 | echo '---------------------------------------------------------------------------------------- | |||
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |||
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |||
|
9 | ||||
|
10 | This program is free software; you can redistribute it and/or modify | |||
|
11 | it under the terms of the GNU General Public License as published by | |||
|
12 | the Free Software Foundation; either version 3 of the License, or | |||
|
13 | (at your option) any later version. | |||
|
14 | ||||
|
15 | This program is distributed in the hope that it will be useful, | |||
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
18 | GNU General Public License for more details. | |||
|
19 | ||||
|
20 | You should have received a copy of the GNU General Public License | |||
|
21 | along with this program; if not, write to the Free Software | |||
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
23 | ----------------------------------------------------------------------------------------' | |||
|
24 | echo | |||
|
25 | echo | |||
|
26 | echo | |||
|
27 | ||||
|
28 | ||||
|
29 | ||||
|
30 | ||||
|
31 | cd doc/latex | |||
|
32 | make | |||
|
33 | cp refman.pdf ../../VHD_lib.pdf |
@@ -11,5 +11,16 syntax: glob | |||||
11 | *.eps |
|
11 | *.eps | |
12 |
|
12 | |||
13 | *.toc |
|
13 | *.toc | |
|
14 | *.map | |||
|
15 | *.sty | |||
|
16 | *.3 | |||
|
17 | *.js | |||
|
18 | *.aux | |||
|
19 | *.idx | |||
|
20 | *doc* | |||
|
21 | *Doc* | |||
|
22 | *vhdlsyn.txt | |||
|
23 | *.orig | |||
|
24 | *.o | |||
14 | *~ |
|
25 | *~ | |
15 |
|
26 |
@@ -590,7 +590,7 WARN_LOGFILE = | |||||
590 | # directories like "/usr/src/myproject". Separate the files or directories |
|
590 | # directories like "/usr/src/myproject". Separate the files or directories | |
591 | # with spaces. |
|
591 | # with spaces. | |
592 |
|
592 | |||
593 | INPUT = ./ |
|
593 | INPUT = ./libsrc | |
594 |
|
594 | |||
595 | # This tag can be used to specify the character encoding of the source files |
|
595 | # This tag can be used to specify the character encoding of the source files | |
596 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is |
|
596 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is | |
@@ -643,7 +643,7 FILE_PATTERNS = *.c \ | |||||
643 | # should be searched for input files as well. Possible values are YES and NO. |
|
643 | # should be searched for input files as well. Possible values are YES and NO. | |
644 | # If left blank NO is used. |
|
644 | # If left blank NO is used. | |
645 |
|
645 | |||
646 |
RECURSIVE = |
|
646 | RECURSIVE = YES | |
647 |
|
647 | |||
648 | # The EXCLUDE tag can be used to specify files and/or directories that should |
|
648 | # The EXCLUDE tag can be used to specify files and/or directories that should | |
649 | # excluded from the INPUT source files. This way you can easily exclude a |
|
649 | # excluded from the INPUT source files. This way you can easily exclude a |
@@ -1,50 +1,54 | |||||
1 | SCRIPTSDIR=scripts/ |
|
1 | SCRIPTSDIR=scripts/ | |
2 | LIBDIR=lib/ |
|
2 | LIBDIR=lib/ | |
3 | BOARDSDIR=boards/ |
|
3 | BOARDSDIR=boards/ | |
4 | DESIGNSDIR=designs/ |
|
4 | DESIGNSDIR=designs/ | |
5 |
|
5 | |||
6 |
|
6 | |||
7 |
|
7 | |||
8 |
|
8 | |||
9 |
|
9 | |||
10 |
|
10 | |||
11 | all: help |
|
11 | all: help | |
12 |
|
12 | |||
13 | help: |
|
13 | help: | |
14 | @echo |
|
14 | @echo | |
15 | @echo " batch targets:" |
|
15 | @echo " batch targets:" | |
16 | @echo |
|
16 | @echo | |
17 | @echo " make Patch-GRLIB : install library into GRLIB at : $(GRLIB)" |
|
17 | @echo " make Patch-GRLIB : install library into GRLIB at : $(GRLIB)" | |
18 | @echo " make dist : create a tar file for using into an other computer" |
|
18 | @echo " make dist : create a tar file for using into an other computer" | |
19 | @echo " make Patched-dist : create a tar file for with a patched grlib for using into an other computer" |
|
19 | @echo " make Patched-dist : create a tar file for with a patched grlib for using into an other computer" | |
20 | @echo " make allGPL : add a GPL HEADER in all vhdl Files" |
|
20 | @echo " make allGPL : add a GPL HEADER in all vhdl Files" | |
21 | @echo " make init : add a GPL HEADER in all vhdl Files, init all files" |
|
21 | @echo " make init : add a GPL HEADER in all vhdl Files, init all files" | |
22 | @echo " make doc : make documentation for VHDL IPs" |
|
22 | @echo " make doc : make documentation for VHDL IPs" | |
23 | @echo " make pdf : make pdf documentation for VHDL IPs" |
|
23 | @echo " make pdf : make pdf documentation for VHDL IPs" | |
24 | @echo |
|
24 | @echo | |
25 |
|
25 | |||
26 | allGPL: |
|
26 | allGPL: | |
27 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R |
|
27 | @echo "Scanning VHDL files ..." | |
28 |
|
28 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R vhd lib | ||
29 | init: allGPL |
|
29 | @echo "Scanning C files ..." | |
30 |
|
|
30 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R c LPP_drivers | |
31 | sh $(SCRIPTSDIR)/makeDirs.sh lib/lpp |
|
31 | @echo "Scanning H files ..." | |
32 |
|
32 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R h LPP_drivers | ||
33 |
|
33 | |||
34 | Patch-GRLIB: init doc |
|
34 | init: | |
35 |
sh $(SCRIPTSDIR)/ |
|
35 | sh $(SCRIPTSDIR)/vhdlsynPatcher.sh | |
36 |
|
36 | sh $(SCRIPTSDIR)/makeDirs.sh lib/lpp | ||
37 |
|
37 | |||
38 | dist: init |
|
38 | ||
39 | tar -cvzf ./../lpp-lib.tgz ./../VHD_Lib/* |
|
39 | Patch-GRLIB: init doc | |
40 |
|
40 | sh $(SCRIPTSDIR)/patch.sh $(GRLIB) | ||
41 | Patched-dist: Patch-GRLIB |
|
41 | ||
42 | tar -cvzf ./../lpp-patched-GRLIB.tgz $(GRLIB)/* |
|
42 | ||
43 |
|
43 | dist: init | ||
44 |
|
44 | tar -cvzf ./../lpp-lib.tgz ./../VHD_Lib/* | ||
45 | doc: |
|
45 | ||
46 | doxygen lib/lpp/Doxyfile |
|
46 | Patched-dist: Patch-GRLIB | |
47 |
|
47 | tar -cvzf ./../lpp-patched-GRLIB.tgz $(GRLIB)/* | ||
48 | pdf: |
|
48 | ||
49 | make lib/lpp/doc/latex |
|
49 | ||
50 | cp lib/lpp/doc/latex/refman.pdf lib/lpp/doc/VHD_lib.pdf |
|
50 | doc: | |
|
51 | doxygen lib/lpp/Doxyfile | |||
|
52 | ||||
|
53 | pdf: doc | |||
|
54 | sh $(SCRIPTSDIR)/doc.sh |
@@ -1,6 +1,3 | |||||
1 |
|
||||
2 |
|
||||
3 |
|
||||
4 |
|
|
1 | ----------------------------------------------------------------------------- | |
5 | -- LEON3 Demonstration design test bench configuration |
|
2 | -- LEON3 Demonstration design test bench configuration | |
6 | -- Copyright (C) 2009 Aeroflex Gaisler |
|
3 | -- Copyright (C) 2009 Aeroflex Gaisler |
@@ -8,6 +8,47 | |||||
8 | <ClosedNodes> |
|
8 | <ClosedNodes> | |
9 | <ClosedNodesVersion>2</ClosedNodesVersion> |
|
9 | <ClosedNodesVersion>2</ClosedNodesVersion> | |
10 | <ClosedNode>/Unassigned User Library Modules</ClosedNode> |
|
10 | <ClosedNode>/Unassigned User Library Modules</ClosedNode> | |
|
11 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/LCD0 - apb_lcd_ctrlr - Behavioral</ClosedNode> | |||
|
12 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/addr_pad - outpadv - rtl</ClosedNode> | |||
|
13 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/ahbjtag0 - ahbjtag - struct</ClosedNode> | |||
|
14 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/ahbram0 - ahbram - rtl</ClosedNode> | |||
|
15 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/clk_pad - clkpad - rtl</ClosedNode> | |||
|
16 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/clkgen0 - clkgen - struct</ClosedNode> | |||
|
17 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/dcom0 - ahbuart - struct</ClosedNode> | |||
|
18 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/ddrc - ddrspa - rtl</ClosedNode> | |||
|
19 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/dsu0 - dsu3 - rtl</ClosedNode> | |||
|
20 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/dsubre_pad - inpad - rtl</ClosedNode> | |||
|
21 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/dsurx_pad - inpad - rtl</ClosedNode> | |||
|
22 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/dsutx_pad - outpad - rtl</ClosedNode> | |||
|
23 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/e1 - grethm - rtl</ClosedNode> | |||
|
24 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/emdc_pad - outpad - rtl</ClosedNode> | |||
|
25 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/emdio_pad - iopad - rtl</ClosedNode> | |||
|
26 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/error_pad - odpad - rtl</ClosedNode> | |||
|
27 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/erxc_pad - inpad - rtl</ClosedNode> | |||
|
28 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/erxco_pad - inpad - rtl</ClosedNode> | |||
|
29 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/erxcr_pad - inpad - rtl</ClosedNode> | |||
|
30 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/erxd_pad - inpadv - rtl</ClosedNode> | |||
|
31 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/erxdv_pad - inpad - rtl</ClosedNode> | |||
|
32 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/erxer_pad - inpad - rtl</ClosedNode> | |||
|
33 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/etxc_pad - inpad - rtl</ClosedNode> | |||
|
34 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/etxd_pad - outpadv - rtl</ClosedNode> | |||
|
35 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/etxen_pad - outpad - rtl</ClosedNode> | |||
|
36 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/etxer_pad - outpad - rtl</ClosedNode> | |||
|
37 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/horiz_sync_pad - outpad - rtl</ClosedNode> | |||
|
38 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/kbdata_pad - iopad - rtl</ClosedNode> | |||
|
39 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/kbdclk_pad - iopad - rtl</ClosedNode> | |||
|
40 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/oen_pad - outpad - rtl</ClosedNode> | |||
|
41 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/roms_pad - outpad - rtl</ClosedNode> | |||
|
42 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/serrx_pad - inpad - rtl</ClosedNode> | |||
|
43 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/sertx_pad - outpad - rtl</ClosedNode> | |||
|
44 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/sr1 - mctrl - rtl</ClosedNode> | |||
|
45 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/svga0 - svgactrl - rtl</ClosedNode> | |||
|
46 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/u0 - leon3s - rtl</ClosedNode> | |||
|
47 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/vert_sync_pad - outpad - rtl</ClosedNode> | |||
|
48 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/video_out_b_pad - outpad - rtl</ClosedNode> | |||
|
49 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/video_out_g_pad - outpad - rtl</ClosedNode> | |||
|
50 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/video_out_r_pad - outpad - rtl</ClosedNode> | |||
|
51 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-APB_LCD-digilent-xc3s1600e|leon3mp.vhd/wri_pad - outpad - rtl</ClosedNode> | |||
11 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/LCD0 - apb_lcd_ctrlr - Behavioral</ClosedNode> |
|
52 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/LCD0 - apb_lcd_ctrlr - Behavioral</ClosedNode> | |
12 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/addr_pad - outpadv - rtl</ClosedNode> |
|
53 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/addr_pad - outpadv - rtl</ClosedNode> | |
13 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/ahbjtag0 - ahbjtag - struct</ClosedNode> |
|
54 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/ahbjtag0 - ahbjtag - struct</ClosedNode> | |
@@ -52,18 +93,20 | |||||
52 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/wri_pad - outpad - rtl</ClosedNode> |
|
93 | <ClosedNode>/leon3mp - rtl |opt|GRLIB|grlib-gpl-1.1.0-b4104|designs|leon3-digilent-xc3s1600e|leon3mp.vhd/wri_pad - outpad - rtl</ClosedNode> | |
53 | </ClosedNodes> |
|
94 | </ClosedNodes> | |
54 | <SelectedItems> |
|
95 | <SelectedItems> | |
55 |
<SelectedItem> |
|
96 | <SelectedItem>clkdivider - Clk_divider - ar_Clk_divider (/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/general_purpose/Clk_divider.vhd)</SelectedItem> | |
56 | </SelectedItems> |
|
97 | </SelectedItems> | |
57 |
<ScrollbarPosition orientation="vertical" > |
|
98 | <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> | |
58 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> |
|
99 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> | |
59 |
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000202000000010000000100000064000002 |
|
100 | <ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000202000000010000000100000064000002be000000020000000000000000000000000000000064ffffffff000000810000000000000002000002be0000000100000000000000000000000100000000</ViewHeaderState> | |
60 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> |
|
101 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> | |
61 | <CurrentItem>leon3mp - rtl (/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-digilent-xc3s1600e/leon3mp.vhd)</CurrentItem> |
|
102 | <CurrentItem>clkdivider - Clk_divider - ar_Clk_divider (/opt/GRLIB/grlib-gpl-1.1.0-b4104/lib/lpp/general_purpose/Clk_divider.vhd)</CurrentItem> | |
62 | </ItemView> |
|
103 | </ItemView> | |
63 | <ItemView engineview="SynthesisOnly" sourcetype="DESUT_VHDL_ARCHITECTURE" guiview="Process" > |
|
104 | <ItemView engineview="SynthesisOnly" sourcetype="DESUT_VHDL_ARCHITECTURE" guiview="Process" > | |
64 | <ClosedNodes> |
|
105 | <ClosedNodes> | |
65 | <ClosedNodesVersion>1</ClosedNodesVersion> |
|
106 | <ClosedNodesVersion>1</ClosedNodesVersion> | |
|
107 | <ClosedNode>Configure Target Device</ClosedNode> | |||
66 | <ClosedNode>Design Utilities</ClosedNode> |
|
108 | <ClosedNode>Design Utilities</ClosedNode> | |
|
109 | <ClosedNode>Implement Design</ClosedNode> | |||
67 | <ClosedNode>Implement Design/Map</ClosedNode> |
|
110 | <ClosedNode>Implement Design/Map</ClosedNode> | |
68 | <ClosedNode>Implement Design/Place & Route</ClosedNode> |
|
111 | <ClosedNode>Implement Design/Place & Route</ClosedNode> | |
69 | <ClosedNode>Implement Design/Translate</ClosedNode> |
|
112 | <ClosedNode>Implement Design/Translate</ClosedNode> | |
@@ -71,24 +114,26 | |||||
71 | <ClosedNode>User Constraints</ClosedNode> |
|
114 | <ClosedNode>User Constraints</ClosedNode> | |
72 | </ClosedNodes> |
|
115 | </ClosedNodes> | |
73 | <SelectedItems> |
|
116 | <SelectedItems> | |
74 |
<SelectedItem> |
|
117 | <SelectedItem></SelectedItem> | |
75 | </SelectedItems> |
|
118 | </SelectedItems> | |
76 |
<ScrollbarPosition orientation="vertical" > |
|
119 | <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> | |
77 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> |
|
120 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> | |
78 |
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000001 |
|
121 | <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000163000000010000000100000000000000000000000064ffffffff000000810000000000000001000001630000000100000000</ViewHeaderState> | |
79 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> |
|
122 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> | |
80 |
<CurrentItem> |
|
123 | <CurrentItem></CurrentItem> | |
81 | </ItemView> |
|
124 | </ItemView> | |
82 | <ItemView guiview="File" > |
|
125 | <ItemView guiview="File" > | |
83 | <ClosedNodes> |
|
126 | <ClosedNodes> | |
84 | <ClosedNodesVersion>1</ClosedNodesVersion> |
|
127 | <ClosedNodesVersion>1</ClosedNodesVersion> | |
85 | </ClosedNodes> |
|
128 | </ClosedNodes> | |
86 |
<SelectedItems |
|
129 | <SelectedItems> | |
87 | <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> |
|
130 | <SelectedItem>../../lib/lpp/lpp_ad_Conv/AD7688_drvr.vhd</SelectedItem> | |
|
131 | </SelectedItems> | |||
|
132 | <ScrollbarPosition orientation="vertical" >178</ScrollbarPosition> | |||
88 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> |
|
133 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> | |
89 | <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000000000000010000000000000000000000000000000000000598000000040101000100000000000000000000000064ffffffff000000810000000000000004000001970000000100000000000000d60000000100000000000000840000000100000000000002a70000000100000000</ViewHeaderState> |
|
134 | <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000000000000010000000000000000000000000000000000000598000000040101000100000000000000000000000064ffffffff000000810000000000000004000001970000000100000000000000d60000000100000000000000840000000100000000000002a70000000100000000</ViewHeaderState> | |
90 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> |
|
135 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> | |
91 |
<CurrentItem>../../lib/ |
|
136 | <CurrentItem>../../lib/lpp/lpp_ad_Conv/AD7688_drvr.vhd</CurrentItem> | |
92 | </ItemView> |
|
137 | </ItemView> | |
93 | <ItemView guiview="Library" > |
|
138 | <ItemView guiview="Library" > | |
94 | <ClosedNodes> |
|
139 | <ClosedNodes> | |
@@ -107,13 +152,13 | |||||
107 | <ClosedNode>unisim</ClosedNode> |
|
152 | <ClosedNode>unisim</ClosedNode> | |
108 | </ClosedNodes> |
|
153 | </ClosedNodes> | |
109 | <SelectedItems> |
|
154 | <SelectedItems> | |
110 |
<SelectedItem>../../lib/lpp/lpp_a |
|
155 | <SelectedItem>../../lib/lpp/lpp_ad_Conv/lpp_apb_ad_conv.vhd</SelectedItem> | |
111 | </SelectedItems> |
|
156 | </SelectedItems> | |
112 |
<ScrollbarPosition orientation="vertical" > |
|
157 | <ScrollbarPosition orientation="vertical" >66</ScrollbarPosition> | |
113 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> |
|
158 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> | |
114 |
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000000000000000100000000000000000000000000000000000001 |
|
159 | <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000000000000010000000000000000000000000000000000000119000000010001000100000000000000000000000064ffffffff000000810000000000000001000001190000000100000000</ViewHeaderState> | |
115 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> |
|
160 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> | |
116 |
<CurrentItem>../../lib/lpp/lpp_a |
|
161 | <CurrentItem>../../lib/lpp/lpp_ad_Conv/lpp_apb_ad_conv.vhd</CurrentItem> | |
117 | </ItemView> |
|
162 | </ItemView> | |
118 | <SourceProcessView>000000ff0000000000000002000001f4000000b001000000060100000002</SourceProcessView> |
|
163 | <SourceProcessView>000000ff0000000000000002000001f4000000b001000000060100000002</SourceProcessView> | |
119 | <CurrentView>Implementation</CurrentView> |
|
164 | <CurrentView>Implementation</CurrentView> | |
@@ -127,7 +172,7 | |||||
127 | </SelectedItems> |
|
172 | </SelectedItems> | |
128 | <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> |
|
173 | <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> | |
129 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> |
|
174 | <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> | |
130 |
<ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000 |
|
175 | <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000138000000010000000100000000000000000000000064ffffffff000000810000000000000001000001380000000100000000</ViewHeaderState> | |
131 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> |
|
176 | <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> | |
132 | <CurrentItem/> |
|
177 | <CurrentItem/> | |
133 | </ItemView> |
|
178 | </ItemView> |
@@ -1,11 +1,11 | |||||
1 | <?xml version='1.0' encoding='UTF-8'?> |
|
1 | <?xml version='1.0' encoding='UTF-8'?> | |
2 | <report-views version="2.0" > |
|
2 | <report-views version="2.0" > | |
3 | <header> |
|
3 | <header> | |
4 |
<DateModified>2010-1 |
|
4 | <DateModified>2010-12-02T07:02:18</DateModified> | |
5 | <ModuleName>leon3mp</ModuleName> |
|
5 | <ModuleName>leon3mp</ModuleName> | |
6 | <SummaryTimeStamp>Unknown</SummaryTimeStamp> |
|
6 | <SummaryTimeStamp>Unknown</SummaryTimeStamp> | |
7 | <SavedFilePath>/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-digilent-xc3s1600e/iseconfig/leon3mp.xreport</SavedFilePath> |
|
7 | <SavedFilePath>/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-APB_LCD-digilent-xc3s1600e/iseconfig/leon3mp.xreport</SavedFilePath> | |
8 | <ImplementationReportsDirectory>/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-digilent-xc3s1600e/</ImplementationReportsDirectory> |
|
8 | <ImplementationReportsDirectory>/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-APB_LCD-digilent-xc3s1600e/</ImplementationReportsDirectory> | |
9 | <DateInitialized>2010-11-19T08:25:19</DateInitialized> |
|
9 | <DateInitialized>2010-11-19T08:25:19</DateInitialized> | |
10 | <EnableMessageFiltering>false</EnableMessageFiltering> |
|
10 | <EnableMessageFiltering>false</EnableMessageFiltering> | |
11 | </header> |
|
11 | </header> |
@@ -239,4 +239,17 NET "LCD_E" LOC = "M18" | IOSTANDARD = L | |||||
239 | NET "LCD_RET" LOC = "E3" | IOSTANDARD = SSTL2_I ; |
|
239 | NET "LCD_RET" LOC = "E3" | IOSTANDARD = SSTL2_I ; | |
240 | NET "LCD_CS1" LOC = "P3" | IOSTANDARD = SSTL2_I ; |
|
240 | NET "LCD_CS1" LOC = "P3" | IOSTANDARD = SSTL2_I ; | |
241 | NET "LCD_CS2" LOC = "P4" | IOSTANDARD = SSTL2_I ; |
|
241 | NET "LCD_CS2" LOC = "P4" | IOSTANDARD = SSTL2_I ; | |
|
242 | NET "ADC_SCK" LOC = "P13" | IOSTANDARD = LVTTL ; | |||
|
243 | NET "ADC_CNV" LOC = "T14" | IOSTANDARD = LVTTL ; | |||
|
244 | NET "ADC_SDI" LOC = "R13" | IOSTANDARD = LVTTL ; | |||
242 |
|
245 | |||
|
246 | ||||
|
247 | ||||
|
248 | ||||
|
249 | ||||
|
250 | ||||
|
251 | ||||
|
252 | ||||
|
253 | ||||
|
254 | ||||
|
255 |
@@ -43,6 +43,8 use work.config.all; | |||||
43 | library lpp; |
|
43 | library lpp; | |
44 | use lpp.amba_lcd_16x2_ctrlr.all; |
|
44 | use lpp.amba_lcd_16x2_ctrlr.all; | |
45 | use lpp.LCD_16x2_CFG.all; |
|
45 | use lpp.LCD_16x2_CFG.all; | |
|
46 | use lpp.lpp_ad_conv.all; | |||
|
47 | ||||
46 |
|
48 | |||
47 | entity leon3mp is |
|
49 | entity leon3mp is | |
48 | generic ( |
|
50 | generic ( | |
@@ -133,7 +135,10 entity leon3mp is | |||||
133 | LCD_CS2 : out STD_LOGIC; |
|
135 | LCD_CS2 : out STD_LOGIC; | |
134 | SF_CE0 : out std_logic; |
|
136 | SF_CE0 : out std_logic; | |
135 | BTN_NORTH : in std_ulogic; |
|
137 | BTN_NORTH : in std_ulogic; | |
136 | BTN_WEST : in std_ulogic |
|
138 | BTN_WEST : in std_ulogic; | |
|
139 | ADC_SCK : out std_logic; | |||
|
140 | ADC_CNV : out std_logic; | |||
|
141 | ADC_SDI : in std_logic | |||
137 | ); |
|
142 | ); | |
138 | end; |
|
143 | end; | |
139 |
|
144 | |||
@@ -204,6 +209,9 architecture rtl of leon3mp is | |||||
204 | signal ddr_csb : std_logic_vector(1 downto 0); |
|
209 | signal ddr_csb : std_logic_vector(1 downto 0); | |
205 | signal ddr_adl : std_logic_vector(13 downto 0); -- ddr address |
|
210 | signal ddr_adl : std_logic_vector(13 downto 0); -- ddr address | |
206 |
|
211 | |||
|
212 | signal AD_in : AD7688_in(0 downto 0); | |||
|
213 | signal AD_out : AD7688_out; | |||
|
214 | ||||
207 | attribute keep : boolean; |
|
215 | attribute keep : boolean; | |
208 | attribute syn_keep : boolean; |
|
216 | attribute syn_keep : boolean; | |
209 | attribute syn_preserve : boolean; |
|
217 | attribute syn_preserve : boolean; | |
@@ -478,6 +486,17 LCD0 : apb_lcd_ctrlr | |||||
478 | Port map( rstn,clkm,apbi, apbo(8),data(15 downto 8),LCD_RS,LCD_RW,LCD_E,LCD_RET,LCD_CS1,LCD_CS2,SF_CE0); |
|
486 | Port map( rstn,clkm,apbi, apbo(8),data(15 downto 8),LCD_RS,LCD_RW,LCD_E,LCD_RET,LCD_CS1,LCD_CS2,SF_CE0); | |
479 |
|
487 | |||
480 | ----------------------------------------------------------------------- |
|
488 | ----------------------------------------------------------------------- | |
|
489 | --- ADS7886 ---------------------------------------------------- | |||
|
490 | ----------------------------------------------------------------------- | |||
|
491 | ||||
|
492 | ADC0 : lpp_apb_ad_conv | |||
|
493 | generic map(9,9,16#fff#,0,8,1,50000,100,ADS7886) | |||
|
494 | Port map(clkm,rstn,apbi, apbo(9),AD_in,AD_out); | |||
|
495 | ||||
|
496 | AD_in(0).SDI <= ADC_SDI; | |||
|
497 | ADC_CNV <= AD_out.CNV; | |||
|
498 | ADC_SCK <= AD_out.SCK; | |||
|
499 | ----------------------------------------------------------------------- | |||
481 | --- ETHERNET --------------------------------------------------------- |
|
500 | --- ETHERNET --------------------------------------------------------- | |
482 | ----------------------------------------------------------------------- |
|
501 | ----------------------------------------------------------------------- | |
483 |
|
502 |
@@ -3,12 +3,12 | |||||
3 | <!--The data in this file is primarily intended for consumption by Xilinx tools. |
|
3 | <!--The data in this file is primarily intended for consumption by Xilinx tools. | |
4 | The structure and the elements are likely to change over the next few releases. |
|
4 | The structure and the elements are likely to change over the next few releases. | |
5 | This means code written to parse this file will need to be revisited each subsequent release.--> |
|
5 | This means code written to parse this file will need to be revisited each subsequent release.--> | |
6 |
<application name="pn" timeStamp=" |
|
6 | <application name="pn" timeStamp="Wed Dec 1 15:45:26 2010"> | |
7 | <section name="Project Information" visible="false"> |
|
7 | <section name="Project Information" visible="false"> | |
8 |
<property name="ProjectID" value=" |
|
8 | <property name="ProjectID" value="144BAC8BCC020358A10E3C9EB2A797A8" type="project"/> | |
9 |
<property name="ProjectIteration" value=" |
|
9 | <property name="ProjectIteration" value="9" type="project"/> | |
10 | <property name="ProjectFile" value="/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-digilent-xc3s1600e/leon3mp.xise" type="project"/> |
|
10 | <property name="ProjectFile" value="/opt/GRLIB/grlib-gpl-1.1.0-b4104/designs/leon3-APB_LCD-digilent-xc3s1600e/leon3mp.xise" type="project"/> | |
11 |
<property name="ProjectCreationTimestamp" value="2010-1 |
|
11 | <property name="ProjectCreationTimestamp" value="2010-12-01T11:32:09" type="project"/> | |
12 | </section> |
|
12 | </section> | |
13 | <section name="Project Statistics" visible="true"> |
|
13 | <section name="Project Statistics" visible="true"> | |
14 | <property name="PROP_Enable_Message_Filtering" value="false" type="design"/> |
|
14 | <property name="PROP_Enable_Message_Filtering" value="false" type="design"/> | |
@@ -23,9 +23,9 This means code written to parse this fi | |||||
23 | <property name="PROP_Top_Level_Module_Type" value="HDL" type="design"/> |
|
23 | <property name="PROP_Top_Level_Module_Type" value="HDL" type="design"/> | |
24 | <property name="PROP_UseSmartGuide" value="false" type="design"/> |
|
24 | <property name="PROP_UseSmartGuide" value="false" type="design"/> | |
25 | <property name="PROP_UserConstraintEditorPreference" value="Text Editor" type="process"/> |
|
25 | <property name="PROP_UserConstraintEditorPreference" value="Text Editor" type="process"/> | |
26 |
<property name="PROP_intProjectCreationTimestamp" value="2010-1 |
|
26 | <property name="PROP_intProjectCreationTimestamp" value="2010-12-01T11:32:09" type="design"/> | |
27 |
<property name="PROP_intWbtProjectID" value=" |
|
27 | <property name="PROP_intWbtProjectID" value="144BAC8BCC020358A10E3C9EB2A797A8" type="design"/> | |
28 |
<property name="PROP_intWbtProjectIteration" value=" |
|
28 | <property name="PROP_intWbtProjectIteration" value="9" type="process"/> | |
29 | <property name="PROP_intWorkingDirLocWRTProjDir" value="Same" type="design"/> |
|
29 | <property name="PROP_intWorkingDirLocWRTProjDir" value="Same" type="design"/> | |
30 | <property name="PROP_intWorkingDirUsed" value="No" type="design"/> |
|
30 | <property name="PROP_intWorkingDirUsed" value="No" type="design"/> | |
31 | <property name="PROP_map_otherCmdLineOptions" value="-timing" type="process"/> |
|
31 | <property name="PROP_map_otherCmdLineOptions" value="-timing" type="process"/> | |
@@ -40,6 +40,7 This means code written to parse this fi | |||||
40 | <property name="PROP_xst_otherCmdLineOptions" value="-uc leon3mp.xcf" type="process"/> |
|
40 | <property name="PROP_xst_otherCmdLineOptions" value="-uc leon3mp.xcf" type="process"/> | |
41 | <property name="PROP_AutoTop" value="false" type="design"/> |
|
41 | <property name="PROP_AutoTop" value="false" type="design"/> | |
42 | <property name="PROP_DevFamily" value="Spartan3E" type="design"/> |
|
42 | <property name="PROP_DevFamily" value="Spartan3E" type="design"/> | |
|
43 | <property name="PROP_WriteDefaultPropToSourceProject" value="false" type="process"/> | |||
43 | <property name="PROP_xilxBitgCfg_GenOpt_MaskFile" value="true" type="process"/> |
|
44 | <property name="PROP_xilxBitgCfg_GenOpt_MaskFile" value="true" type="process"/> | |
44 | <property name="PROP_DevDevice" value="xc3s1600e" type="design"/> |
|
45 | <property name="PROP_DevDevice" value="xc3s1600e" type="design"/> | |
45 | <property name="PROP_DevFamilyPMName" value="spartan3e" type="design"/> |
|
46 | <property name="PROP_DevFamilyPMName" value="spartan3e" type="design"/> | |
@@ -48,7 +49,7 This means code written to parse this fi | |||||
48 | <property name="PROP_DevSpeed" value="-4" type="design"/> |
|
49 | <property name="PROP_DevSpeed" value="-4" type="design"/> | |
49 | <property name="PROP_PreferredLanguage" value="VHDL" type="design"/> |
|
50 | <property name="PROP_PreferredLanguage" value="VHDL" type="design"/> | |
50 | <property name="FILE_UCF" value="1" type="source"/> |
|
51 | <property name="FILE_UCF" value="1" type="source"/> | |
51 |
<property name="FILE_VHDL" value="2 |
|
52 | <property name="FILE_VHDL" value="302" type="source"/> | |
52 | </section> |
|
53 | </section> | |
53 | </application> |
|
54 | </application> | |
54 | </document> |
|
55 | </document> |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,25 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | ---------------------------------------------------------------------------------- |
|
|||
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 09:21:03 10/19/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: FRAME_CLK_GEN - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 | library IEEE; |
|
19 | library IEEE; | |
39 | use IEEE.STD_LOGIC_1164.ALL; |
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |
40 | use IEEE.NUMERIC_STD.ALL; |
|
21 | use IEEE.NUMERIC_STD.ALL; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,12 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Package File Template |
|
|||
20 | -- |
|
|||
21 | -- Purpose: This package defines supplemental types, subtypes, |
|
|||
22 | -- constants, and functions |
|
|||
23 |
|
||||
24 |
|
||||
25 | library IEEE; |
|
19 | library IEEE; | |
26 | use IEEE.STD_LOGIC_1164.all; |
|
20 | use IEEE.STD_LOGIC_1164.all; | |
27 | library lpp; |
|
21 | library lpp; |
@@ -1,10 +1,10 | |||||
1 |
|
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,25 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | ---------------------------------------------------------------------------------- |
|
|||
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 10:09:57 10/13/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: LCD_2x16_DRIVER - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 |
|
19 | |||
39 | ---TDODO => Clean Enable pulse FSM |
|
20 | ---TDODO => Clean Enable pulse FSM | |
40 | library IEEE; |
|
21 | library IEEE; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,25 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | ---------------------------------------------------------------------------------- |
|
|||
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 08:32:21 10/19/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: LCD_16x2_ENGINE - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 | library IEEE; |
|
19 | library IEEE; | |
39 | use IEEE.STD_LOGIC_1164.ALL; |
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |
40 | use IEEE.NUMERIC_STD.ALL; |
|
21 | use IEEE.NUMERIC_STD.ALL; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,25 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | ---------------------------------------------------------------------------------- |
|
|||
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 10:09:57 10/13/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: LCD_2x16_DRIVER - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 | library IEEE; |
|
19 | library IEEE; | |
39 | use IEEE.STD_LOGIC_1164.ALL; |
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |
40 | use IEEE.NUMERIC_STD.all; |
|
21 | use IEEE.NUMERIC_STD.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,25 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | ---------------------------------------------------------------------------------- |
|
|||
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 08:52:25 10/18/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: LCD_CLK_GENERATOR - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 | library IEEE; |
|
19 | library IEEE; | |
39 | use IEEE.STD_LOGIC_1164.ALL; |
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |
40 | use IEEE.NUMERIC_STD.ALL; |
|
21 | use IEEE.NUMERIC_STD.ALL; |
@@ -16,25 +16,7 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 |
------------------------------------------------------------------------------ |
|
19 | ------------------------------------------------------------------------------ | |
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 08:44:41 10/14/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: Top_LCD - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 | library IEEE; |
|
20 | library IEEE; | |
39 | use IEEE.STD_LOGIC_1164.ALL; |
|
21 | use IEEE.STD_LOGIC_1164.ALL; | |
40 |
|
22 |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,12 +16,11 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 |
|
||||
20 | library ieee; |
|
19 | library ieee; | |
21 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
22 | library grlib; |
|
21 | library grlib; | |
23 | use grlib.amba.all; |
|
22 | use grlib.amba.all; | |
24 | use grlib.stdlib.all; |
|
23 | use grlib.stdlib.all; | |
25 | use grlib.devices.all; |
|
24 | use grlib.devices.all; | |
26 |
|
25 | |||
27 |
|
26 | |||
@@ -143,17 +142,17 end component; | |||||
143 |
|
142 | |||
144 |
|
143 | |||
145 | component apb_lcd_ctrlr is |
|
144 | component apb_lcd_ctrlr is | |
146 | generic ( |
|
145 | generic ( | |
147 | pindex : integer := 0; |
|
146 | pindex : integer := 0; | |
148 | paddr : integer := 0; |
|
147 | paddr : integer := 0; | |
149 | pmask : integer := 16#fff#; |
|
148 | pmask : integer := 16#fff#; | |
150 | pirq : integer := 0; |
|
149 | pirq : integer := 0; | |
151 | abits : integer := 8); |
|
150 | abits : integer := 8); | |
152 | port ( |
|
151 | port ( | |
153 | rst : in std_ulogic; |
|
152 | rst : in std_ulogic; | |
154 | clk : in std_ulogic; |
|
153 | clk : in std_ulogic; | |
155 | apbi : in apb_slv_in_type; |
|
154 | apbi : in apb_slv_in_type; | |
156 | apbo : out apb_slv_out_type; |
|
155 | apbo : out apb_slv_out_type; | |
157 | LCD_data : out STD_LOGIC_VECTOR (7 downto 0); |
|
156 | LCD_data : out STD_LOGIC_VECTOR (7 downto 0); | |
158 | LCD_RS : out STD_LOGIC; |
|
157 | LCD_RS : out STD_LOGIC; | |
159 | LCD_RW : out STD_LOGIC; |
|
158 | LCD_RW : out STD_LOGIC; | |
@@ -161,7 +160,7 component apb_lcd_ctrlr is | |||||
161 | LCD_RET : out STD_LOGIC; |
|
160 | LCD_RET : out STD_LOGIC; | |
162 | LCD_CS1 : out STD_LOGIC; |
|
161 | LCD_CS1 : out STD_LOGIC; | |
163 | LCD_CS2 : out STD_LOGIC; |
|
162 | LCD_CS2 : out STD_LOGIC; | |
164 | SF_CE0 : out std_logic |
|
163 | SF_CE0 : out std_logic | |
165 | ); |
|
164 | ); | |
166 | end component; |
|
165 | end component; | |
167 |
|
166 |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,31 +16,12 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | ---------------------------------------------------------------------------------- |
|
|||
20 | -- Company: |
|
|||
21 | -- Engineer: |
|
|||
22 | -- |
|
|||
23 | -- Create Date: 08:44:41 10/14/2010 |
|
|||
24 | -- Design Name: |
|
|||
25 | -- Module Name: Top_LCD - Behavioral |
|
|||
26 | -- Project Name: |
|
|||
27 | -- Target Devices: |
|
|||
28 | -- Tool versions: |
|
|||
29 | -- Description: |
|
|||
30 | -- |
|
|||
31 | -- Dependencies: |
|
|||
32 | -- |
|
|||
33 | -- Revision: |
|
|||
34 | -- Revision 0.01 - File Created |
|
|||
35 | -- Additional Comments: |
|
|||
36 | -- |
|
|||
37 | ---------------------------------------------------------------------------------- |
|
|||
38 | library IEEE; |
|
19 | library IEEE; | |
39 | use IEEE.STD_LOGIC_1164.ALL; |
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |
40 | use ieee.numeric_std.all; |
|
21 | use ieee.numeric_std.all; | |
41 | library grlib; |
|
22 | library grlib; | |
42 | use grlib.amba.all; |
|
23 | use grlib.amba.all; | |
43 | use grlib.stdlib.all; |
|
24 | use grlib.stdlib.all; | |
44 | use grlib.devices.all; |
|
25 | use grlib.devices.all; | |
45 | library lpp; |
|
26 | library lpp; | |
46 | use lpp.amba_lcd_16x2_ctrlr.all; |
|
27 | use lpp.amba_lcd_16x2_ctrlr.all; | |
@@ -48,17 +29,17 use lpp.LCD_16x2_CFG.all; | |||||
48 | use lpp.lpp_amba.all; |
|
29 | use lpp.lpp_amba.all; | |
49 |
|
30 | |||
50 | entity apb_lcd_ctrlr is |
|
31 | entity apb_lcd_ctrlr is | |
51 | generic ( |
|
32 | generic ( | |
52 | pindex : integer := 0; |
|
33 | pindex : integer := 0; | |
53 | paddr : integer := 0; |
|
34 | paddr : integer := 0; | |
54 | pmask : integer := 16#fff#; |
|
35 | pmask : integer := 16#fff#; | |
55 | pirq : integer := 0; |
|
36 | pirq : integer := 0; | |
56 | abits : integer := 8); |
|
37 | abits : integer := 8); | |
57 | port ( |
|
38 | port ( | |
58 | rst : in std_ulogic; |
|
39 | rst : in std_ulogic; | |
59 | clk : in std_ulogic; |
|
40 | clk : in std_ulogic; | |
60 | apbi : in apb_slv_in_type; |
|
41 | apbi : in apb_slv_in_type; | |
61 | apbo : out apb_slv_out_type; |
|
42 | apbo : out apb_slv_out_type; | |
62 | LCD_data : out STD_LOGIC_VECTOR (7 downto 0); |
|
43 | LCD_data : out STD_LOGIC_VECTOR (7 downto 0); | |
63 | LCD_RS : out STD_LOGIC; |
|
44 | LCD_RS : out STD_LOGIC; | |
64 | LCD_RW : out STD_LOGIC; |
|
45 | LCD_RW : out STD_LOGIC; | |
@@ -66,7 +47,7 entity apb_lcd_ctrlr is | |||||
66 | LCD_RET : out STD_LOGIC; |
|
47 | LCD_RET : out STD_LOGIC; | |
67 | LCD_CS1 : out STD_LOGIC; |
|
48 | LCD_CS1 : out STD_LOGIC; | |
68 | LCD_CS2 : out STD_LOGIC; |
|
49 | LCD_CS2 : out STD_LOGIC; | |
69 | SF_CE0 : out std_logic |
|
50 | SF_CE0 : out std_logic | |
70 | ); |
|
51 | ); | |
71 | end apb_lcd_ctrlr; |
|
52 | end apb_lcd_ctrlr; | |
72 |
|
53 | |||
@@ -80,27 +61,27 signal LCD_CTRL : LCD_DRVR_CTRL_BUSS; | |||||
80 |
|
61 | |||
81 |
|
62 | |||
82 |
|
63 | |||
83 | constant REVISION : integer := 1; |
|
64 | constant REVISION : integer := 1; | |
84 |
|
65 | |||
85 | constant pconfig : apb_config_type := ( |
|
66 | constant pconfig : apb_config_type := ( | |
86 | 0 => ahb_device_reg (VENDOR_LPP, LPP_LCD_CTRLR, 0, REVISION, 0), |
|
67 | 0 => ahb_device_reg (VENDOR_LPP, LPP_LCD_CTRLR, 0, REVISION, 0), | |
87 | 1 => apb_iobar(paddr, pmask)); |
|
68 | 1 => apb_iobar(paddr, pmask)); | |
88 |
|
69 | |||
89 |
|
70 | |||
90 | --type FRM_Buff_El is std_logic_vector(31 downto 0); |
|
71 | --type FRM_Buff_El is std_logic_vector(31 downto 0); | |
91 | type FRM_Buff_Reg is array(lcd_space_size-1 downto 0) of std_logic_vector(31 downto 0); |
|
72 | type FRM_Buff_Reg is array(lcd_space_size-1 downto 0) of std_logic_vector(31 downto 0); | |
92 |
|
73 | |||
93 |
|
74 | |||
94 | type LCD_ctrlr_Reg is record |
|
75 | type LCD_ctrlr_Reg is record | |
95 | CTRL_Reg : std_logic_vector(31 downto 0); |
|
76 | CTRL_Reg : std_logic_vector(31 downto 0); | |
96 | FRAME_BUFF : FRM_Buff_Reg; |
|
77 | FRAME_BUFF : FRM_Buff_Reg; | |
97 | end record; |
|
78 | end record; | |
98 |
|
||||
99 | signal r : LCD_ctrlr_Reg; |
|
|||
100 |
|
79 | |||
101 | signal Rdata : std_logic_vector(31 downto 0); |
|
80 | signal r : LCD_ctrlr_Reg; | |
102 |
|
81 | |||
103 | begin |
|
82 | signal Rdata : std_logic_vector(31 downto 0); | |
|
83 | ||||
|
84 | begin | |||
104 |
|
85 | |||
105 | LCD_data <= LCD_CTRL.LCD_DATA; |
|
86 | LCD_data <= LCD_CTRL.LCD_DATA; | |
106 | LCD_RS <= LCD_CTRL.LCD_RS; |
|
87 | LCD_RS <= LCD_CTRL.LCD_RS; | |
@@ -121,54 +102,54 r.CTRL_Reg(10) <= Ready; | |||||
121 |
|
102 | |||
122 | Driver0 : LCD_16x2_ENGINE |
|
103 | Driver0 : LCD_16x2_ENGINE | |
123 | generic map(50000) |
|
104 | generic map(50000) | |
124 | Port map(clk,rst,FramBUFF,CMD,Exec,Ready,LCD_CTRL); |
|
105 | Port map(clk,rst,FramBUFF,CMD,Exec,Ready,LCD_CTRL); | |
125 |
|
106 | |||
126 | FRM_BF : for i in 0 to lcd_space_size-1 generate |
|
107 | FRM_BF : for i in 0 to lcd_space_size-1 generate | |
127 | FramBUFF(i) <= r.FRAME_BUFF(i)(7 downto 0); |
|
108 | FramBUFF(i) <= r.FRAME_BUFF(i)(7 downto 0); | |
128 | end generate; |
|
109 | end generate; | |
|
110 | ||||
129 |
|
111 | |||
130 |
|
112 | process(rst,clk) | ||
131 | process(rst,clk) |
|
113 | begin | |
132 | begin |
|
114 | if rst = '0' then | |
133 | if rst = '0' then |
|
|||
134 | r.CTRL_Reg(9 downto 0) <= (others => '0'); |
|
115 | r.CTRL_Reg(9 downto 0) <= (others => '0'); | |
135 | Exec <= '0'; |
|
116 | Exec <= '0'; | |
136 | elsif clk'event and clk = '1' then |
|
117 | elsif clk'event and clk = '1' then | |
137 |
|
118 | |||
138 | --APB Write OP |
|
119 | --APB Write OP | |
139 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then |
|
120 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | |
140 | case apbi.paddr(7 downto 2) is |
|
121 | case apbi.paddr(7 downto 2) is | |
141 | when "000000" => |
|
122 | when "000000" => | |
142 | r.CTRL_Reg(9 downto 0) <= apbi.pwdata(9 downto 0); |
|
123 | r.CTRL_Reg(9 downto 0) <= apbi.pwdata(9 downto 0); | |
143 | Exec <= '1'; |
|
124 | Exec <= '1'; | |
144 | when others => |
|
125 | when others => | |
145 | writeC: for i in 1 to lcd_space_size loop |
|
126 | writeC: for i in 1 to lcd_space_size loop | |
146 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then |
|
127 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then | |
147 | r.FRAME_BUFF(i-1) <= apbi.pwdata; |
|
128 | r.FRAME_BUFF(i-1) <= apbi.pwdata; | |
148 | end if; |
|
129 | end if; | |
149 | Exec <= '0'; |
|
130 | Exec <= '0'; | |
150 | end loop; |
|
131 | end loop; | |
151 | end case; |
|
132 | end case; | |
152 | else |
|
133 | else | |
153 | Exec <= '0'; |
|
134 | Exec <= '0'; | |
154 | end if; |
|
135 | end if; | |
155 |
|
136 | |||
156 | --APB READ OP |
|
137 | --APB READ OP | |
157 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then |
|
138 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then | |
158 | case apbi.paddr(7 downto 2) is |
|
139 | case apbi.paddr(7 downto 2) is | |
159 | when "000000" => |
|
140 | when "000000" => | |
160 | Rdata <= r.CTRL_Reg; |
|
141 | Rdata <= r.CTRL_Reg; | |
161 | when others => |
|
142 | when others => | |
162 | readC: for i in 1 to lcd_space_size loop |
|
143 | readC: for i in 1 to lcd_space_size loop | |
163 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then |
|
144 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then | |
164 | Rdata(7 downto 0) <= r.FRAME_BUFF(i-1)(7 downto 0); |
|
145 | Rdata(7 downto 0) <= r.FRAME_BUFF(i-1)(7 downto 0); | |
165 | end if; |
|
146 | end if; | |
166 | end loop; |
|
147 | end loop; | |
167 | end case; |
|
148 | end case; | |
168 | end if; |
|
149 | end if; | |
169 |
|
150 | |||
170 | end if; |
|
151 | end if; | |
171 | apbo.pconfig <= pconfig; |
|
152 | apbo.pconfig <= pconfig; | |
172 | end process; |
|
153 | end process; | |
173 |
|
154 | |||
174 | apbo.prdata <= Rdata when apbi.penable = '1' ; |
|
155 | apbo.prdata <= Rdata when apbi.penable = '1' ; |
@@ -1,3 +1,5 | |||||
|
1 | amba_lcd_16x2_ctrlr.vhd | |||
|
2 | apb_lcd_ctrlr.vhd | |||
1 | FRAME_CLK.vhd |
|
3 | FRAME_CLK.vhd | |
2 | LCD_16x2_CFG.vhd |
|
4 | LCD_16x2_CFG.vhd | |
3 | LCD_16x2_DRVR.vhd |
|
5 | LCD_16x2_DRVR.vhd | |
@@ -5,5 +7,3 LCD_16x2_ENGINE.vhd | |||||
5 | LCD_2x16_DRIVER.vhd |
|
7 | LCD_2x16_DRIVER.vhd | |
6 | LCD_CLK_GENERATOR.vhd |
|
8 | LCD_CLK_GENERATOR.vhd | |
7 | Top_LCD.vhd |
|
9 | Top_LCD.vhd | |
8 | amba_lcd_16x2_ctrlr.vhd |
|
|||
9 | apb_lcd_ctrlr.vhd |
|
@@ -1,6 +1,7 | |||||
1 | ./amba_lcd_16x2_ctrlr |
|
1 | ./general_purpose | |
|
2 | ./lpp_ad_Conv | |||
|
3 | ./lpp_CNA_amba | |||
|
4 | ./lpp_uart | |||
|
5 | ./lpp_amba | |||
2 | ./dsp/iir_filter |
|
6 | ./dsp/iir_filter | |
3 | ./general_purpose |
|
7 | ./amba_lcd_16x2_ctrlr | |
4 | ./lpp_amba |
|
|||
5 | ./lpp_cna |
|
|||
6 | ./lpp_uart |
|
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- APB_IIR_CEL.vhd |
|
|||
20 | library ieee; |
|
19 | library ieee; | |
21 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
22 | use ieee.numeric_std.all; |
|
21 | use ieee.numeric_std.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,87 +16,86 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- FILTER.vhd |
|
19 | library IEEE; | |
20 | library IEEE; |
|
20 | use IEEE.numeric_std.all; | |
21 |
use IEEE. |
|
21 | use IEEE.std_logic_1164.all; | |
22 | use IEEE.std_logic_1164.all; |
|
22 | library lpp; | |
23 | library lpp; |
|
23 | use lpp.iir_filter.all; | |
24 |
use lpp. |
|
24 | use lpp.FILTERcfg.all; | |
25 | use lpp.FILTERcfg.all; |
|
25 | use lpp.general_purpose.all; | |
26 | use lpp.general_purpose.all; |
|
26 | --Maximum filter speed(smps/s) = Fclk/(Nchanels*Ncoefs) | |
27 | --Maximum filter speed(smps/s) = Fclk/(Nchanels*Ncoefs) |
|
27 | --exemple 26MHz sys clock and 6 chanels @ 110ksmps/s | |
28 | --exemple 26MHz sys clock and 6 chanels @ 110ksmps/s |
|
28 | --Ncoefs = 26 000 000 /(6 * 110 000) = 39 coefs | |
29 | --Ncoefs = 26 000 000 /(6 * 110 000) = 39 coefs |
|
29 | ||
30 |
|
30 | entity FILTER is | ||
31 | entity FILTER is |
|
31 | port( | |
32 | port( |
|
32 | ||
33 |
|
33 | reset : in std_logic; | ||
34 |
|
|
34 | clk : in std_logic; | |
35 |
clk |
|
35 | sample_clk : in std_logic; | |
36 | sample_clk : in std_logic; |
|
36 | Sample_IN : in std_logic_vector(Smpl_SZ*ChanelsCNT-1 downto 0); | |
37 |
Sample_ |
|
37 | Sample_OUT : out std_logic_vector(Smpl_SZ*ChanelsCNT-1 downto 0) | |
38 | Sample_OUT : out std_logic_vector(Smpl_SZ*ChanelsCNT-1 downto 0) |
|
38 | ); | |
39 | ); |
|
39 | end entity; | |
40 | end entity; |
|
40 | ||
41 |
|
41 | |||
42 |
|
42 | |||
43 |
|
43 | |||
44 |
|
44 | |||
45 |
|
45 | architecture ar_FILTER of FILTER is | ||
46 | architecture ar_FILTER of FILTER is |
|
46 | ||
47 |
|
47 | |||
48 |
|
48 | |||
49 |
|
49 | |||
50 |
|
50 | signal ALU_ctrl : std_logic_vector(3 downto 0); | ||
51 |
signal |
|
51 | signal Sample : std_logic_vector(Smpl_SZ-1 downto 0); | |
52 |
signal |
|
52 | signal Coef : std_logic_vector(Coef_SZ-1 downto 0); | |
53 |
signal |
|
53 | signal ALU_OUT : std_logic_vector(Smpl_SZ+Coef_SZ-1 downto 0); | |
54 | signal ALU_OUT : std_logic_vector(Smpl_SZ+Coef_SZ-1 downto 0); |
|
54 | ||
55 |
|
55 | begin | ||
56 | begin |
|
56 | ||
57 |
|
57 | --============================================================== | ||
58 | --============================================================== |
|
58 | --=========================A L U================================ | |
59 | --=========================A L U================================ |
|
59 | --============================================================== | |
60 | --============================================================== |
|
60 | ALU1 : entity ALU | |
61 | ALU1 : entity ALU |
|
61 | generic map( | |
62 | generic map( |
|
62 | Arith_en => 1, | |
63 |
|
|
63 | Logic_en => 0, | |
64 | Logic_en => 0, |
|
64 | Input_SZ_1 => Smpl_SZ, | |
65 |
Input_SZ_ |
|
65 | Input_SZ_2 => Coef_SZ | |
66 | Input_SZ_2 => Coef_SZ |
|
66 | ||
67 |
|
67 | ) | ||
68 | ) |
|
68 | port map( | |
69 | port map( |
|
69 | clk => clk, | |
70 | clk => clk, |
|
70 | reset => reset, | |
71 | reset => reset, |
|
71 | ctrl => ALU_ctrl, | |
72 | ctrl => ALU_ctrl, |
|
72 | OP1 => Sample, | |
73 |
OP |
|
73 | OP2 => Coef, | |
74 | OP2 => Coef, |
|
74 | RES => ALU_OUT | |
75 | RES => ALU_OUT |
|
75 | ); | |
76 | ); |
|
76 | --============================================================== | |
77 | --============================================================== |
|
77 | ||
78 |
|
78 | --============================================================== | ||
79 | --============================================================== |
|
79 | --===============F I L T E R C O N T R O L E R================ | |
80 | --===============F I L T E R C O N T R O L E R================ |
|
80 | --============================================================== | |
81 | --============================================================== |
|
81 | filterctrlr1 : FilterCTRLR | |
82 | filterctrlr1 : FilterCTRLR |
|
82 | port map( | |
83 | port map( |
|
83 | reset => reset, | |
84 |
|
|
84 | clk => clk, | |
85 |
clk |
|
85 | sample_clk => sample_clk, | |
86 | sample_clk => sample_clk, |
|
86 | ALU_Ctrl => ALU_ctrl, | |
87 | ALU_Ctrl => ALU_ctrl, |
|
87 | sample_in => sample_Tbl, | |
88 | sample_in => sample_Tbl, |
|
88 | coef => Coef, | |
89 |
|
|
89 | sample => Sample | |
90 | sample => Sample |
|
90 | ); | |
91 | ); |
|
91 | --============================================================== | |
92 | --============================================================== |
|
92 | ||
93 |
|
93 | chanelCut : for i in 0 to ChanelsCNT-1 generate | ||
94 | chanelCut : for i in 0 to ChanelsCNT-1 generate |
|
94 | sample_Tbl(i) <= Sample_IN((i+1)*Smpl_SZ-1 downto i*Smpl_SZ); | |
95 | sample_Tbl(i) <= Sample_IN((i+1)*Smpl_SZ-1 downto i*Smpl_SZ); |
|
95 | end generate; | |
96 | end generate; |
|
96 | ||
97 |
|
97 | |||
98 |
|
98 | |||
99 |
|
99 | |||
100 |
|
100 | end ar_FILTER; | ||
101 | end ar_FILTER; |
|
101 | ||
102 |
|
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- FILTER_RAM_CTRLR.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- FILTERcfg.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- FilterCTRLR.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,10 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- IIR_CEL_CTRLR.vhd |
|
19 | ------------------------------------------------------------------------------ | |
|
20 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
21 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
22 | -- | |||
20 | library IEEE; |
|
23 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
24 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
25 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,75 +16,73 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- IIR_CEL_FILTER.vhd |
|
19 | library IEEE; | |
20 |
|
20 | use IEEE.numeric_std.all; | ||
21 | library IEEE; |
|
21 | use IEEE.std_logic_1164.all; | |
22 | use IEEE.numeric_std.all; |
|
22 | library lpp; | |
23 | use IEEE.std_logic_1164.all; |
|
23 | use lpp.iir_filter.all; | |
24 | library lpp; |
|
24 | use lpp.FILTERcfg.all; | |
25 | use lpp.iir_filter.all; |
|
25 | use lpp.general_purpose.all; | |
26 | use lpp.FILTERcfg.all; |
|
26 | ||
27 | use lpp.general_purpose.all; |
|
27 | --TODO am�liorer la gestion de la RAM et de la flexibilit� du filtre | |
28 |
|
28 | |||
29 | --TODO am�liorer la gestion de la RAM et de la flexibilit� du filtre |
|
29 | entity IIR_CEL_FILTER is | |
30 |
|
30 | generic(Sample_SZ : integer := 16); | ||
31 | entity IIR_CEL_FILTER is |
|
31 | port( | |
32 | generic(Sample_SZ : integer := 16); |
|
32 | reset : in std_logic; | |
33 | port( |
|
33 | clk : in std_logic; | |
34 |
|
|
34 | sample_clk : in std_logic; | |
35 | clk : in std_logic; |
|
35 | regs_in : in in_IIR_CEL_reg; | |
36 | sample_clk : in std_logic; |
|
36 | regs_out : in out_IIR_CEL_reg; | |
37 | regs_in : in in_IIR_CEL_reg; |
|
37 | sample_in : in samplT; | |
38 | regs_out : in out_IIR_CEL_reg; |
|
38 | sample_out : out samplT | |
39 | sample_in : in samplT; |
|
39 | ||
40 | sample_out : out samplT |
|
40 | ); | |
41 |
|
41 | end IIR_CEL_FILTER; | ||
42 | ); |
|
42 | ||
43 | end IIR_CEL_FILTER; |
|
43 | ||
44 |
|
44 | |||
45 |
|
45 | |||
46 |
|
46 | architecture ar_IIR_CEL_FILTER of IIR_CEL_FILTER is | ||
47 |
|
47 | |||
48 | architecture ar_IIR_CEL_FILTER of IIR_CEL_FILTER is |
|
48 | signal virg_pos : integer; | |
49 |
|
49 | begin | ||
50 | signal virg_pos : integer; |
|
50 | ||
51 | begin |
|
51 | virg_pos <= to_integer(unsigned(regs_in.virgPos)); | |
52 |
|
52 | |||
53 | virg_pos <= to_integer(unsigned(regs_in.virgPos)); |
|
53 | ||
54 |
|
54 | CTRLR : IIR_CEL_CTRLR | ||
55 |
|
55 | generic map (Sample_SZ => Sample_SZ) | ||
56 | CTRLR : IIR_CEL_CTRLR |
|
56 | port map( | |
57 | generic map (Sample_SZ => Sample_SZ) |
|
57 | reset => reset, | |
58 | port map( |
|
58 | clk => clk, | |
59 | reset => reset, |
|
59 | sample_clk => sample_clk, | |
60 | clk => clk, |
|
60 | sample_in => sample_in, | |
61 |
sample_ |
|
61 | sample_out => sample_out, | |
62 | sample_in => sample_in, |
|
62 | virg_pos => virg_pos, | |
63 | sample_out => sample_out, |
|
63 | coefs => regs_in.coefsTB | |
64 | virg_pos => virg_pos, |
|
64 | ); | |
65 | coefs => regs_in.coefsTB |
|
65 | ||
66 | ); |
|
66 | ||
67 |
|
67 | |||
68 |
|
68 | |||
69 |
|
69 | |||
70 |
|
70 | end ar_IIR_CEL_FILTER; | ||
71 |
|
71 | |||
72 | end ar_IIR_CEL_FILTER; |
|
72 | ||
73 |
|
73 | |||
74 |
|
74 | |||
75 |
|
75 | |||
76 |
|
76 | |||
77 |
|
77 | |||
78 |
|
78 | |||
79 |
|
79 | |||
80 |
|
80 | |||
81 |
|
81 | |||
82 |
|
82 | |||
83 |
|
83 | |||
84 |
|
84 | |||
85 |
|
85 | |||
86 |
|
86 | |||
87 |
|
87 | |||
88 |
|
88 | |||
89 |
|
||||
90 |
|
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- RAM.vhd |
|
|||
20 | library ieee; |
|
19 | library ieee; | |
21 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
22 | use IEEE.numeric_std.all; |
|
21 | use IEEE.numeric_std.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- RAM_CEL.vhd |
|
|||
20 | library ieee; |
|
19 | library ieee; | |
21 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
22 | use IEEE.numeric_std.all; |
|
21 | use IEEE.numeric_std.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- RAM_CTRLR2.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,99 +16,98 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- TestbenshMAC.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; | |
23 |
|
22 | |||
24 |
|
23 | |||
25 |
|
24 | |||
26 | entity TestbenshMAC is |
|
25 | entity TestbenshMAC is | |
27 | end TestbenshMAC; |
|
26 | end TestbenshMAC; | |
28 |
|
27 | |||
29 |
|
28 | |||
30 |
|
29 | |||
31 |
|
30 | |||
32 | architecture ar_TestbenshMAC of TestbenshMAC is |
|
31 | architecture ar_TestbenshMAC of TestbenshMAC is | |
33 |
|
32 | |||
34 |
|
33 | |||
35 |
|
34 | |||
36 | constant OP1sz : integer := 16; |
|
35 | constant OP1sz : integer := 16; | |
37 | constant OP2sz : integer := 12; |
|
36 | constant OP2sz : integer := 12; | |
38 | --IDLE =00 MAC =01 MULT =10 ADD =11 |
|
37 | --IDLE =00 MAC =01 MULT =10 ADD =11 | |
39 | constant IDLE : std_logic_vector(1 downto 0) := "00"; |
|
38 | constant IDLE : std_logic_vector(1 downto 0) := "00"; | |
40 | constant MAC : std_logic_vector(1 downto 0) := "01"; |
|
39 | constant MAC : std_logic_vector(1 downto 0) := "01"; | |
41 | constant MULT : std_logic_vector(1 downto 0) := "10"; |
|
40 | constant MULT : std_logic_vector(1 downto 0) := "10"; | |
42 | constant ADD : std_logic_vector(1 downto 0) := "11"; |
|
41 | constant ADD : std_logic_vector(1 downto 0) := "11"; | |
43 |
|
42 | |||
44 | signal clk : std_logic:='0'; |
|
43 | signal clk : std_logic:='0'; | |
45 | signal reset : std_logic:='0'; |
|
44 | signal reset : std_logic:='0'; | |
46 | signal clrMAC : std_logic:='0'; |
|
45 | signal clrMAC : std_logic:='0'; | |
47 | signal MAC_MUL_ADD : std_logic_vector(1 downto 0):=IDLE; |
|
46 | signal MAC_MUL_ADD : std_logic_vector(1 downto 0):=IDLE; | |
48 | signal Operand1 : std_logic_vector(OP1sz-1 downto 0):=(others => '0'); |
|
47 | signal Operand1 : std_logic_vector(OP1sz-1 downto 0):=(others => '0'); | |
49 | signal Operand2 : std_logic_vector(OP2sz-1 downto 0):=(others => '0'); |
|
48 | signal Operand2 : std_logic_vector(OP2sz-1 downto 0):=(others => '0'); | |
50 | signal Resultat : std_logic_vector(OP1sz+OP2sz-1 downto 0); |
|
49 | signal Resultat : std_logic_vector(OP1sz+OP2sz-1 downto 0); | |
51 |
|
50 | |||
52 |
|
51 | |||
53 |
|
52 | |||
54 |
|
53 | |||
55 | begin |
|
54 | begin | |
56 |
|
55 | |||
57 |
|
56 | |||
58 | MAC1 : entity LPP_IIR_FILTER.MAC |
|
57 | MAC1 : entity LPP_IIR_FILTER.MAC | |
59 | generic map( |
|
58 | generic map( | |
60 | Input_SZ_A => OP1sz, |
|
59 | Input_SZ_A => OP1sz, | |
61 | Input_SZ_B => OP2sz |
|
60 | Input_SZ_B => OP2sz | |
62 |
|
61 | |||
63 | ) |
|
62 | ) | |
64 | port map( |
|
63 | port map( | |
65 | clk => clk, |
|
64 | clk => clk, | |
66 | reset => reset, |
|
65 | reset => reset, | |
67 | clr_MAC => clrMAC, |
|
66 | clr_MAC => clrMAC, | |
68 | MAC_MUL_ADD => MAC_MUL_ADD, |
|
67 | MAC_MUL_ADD => MAC_MUL_ADD, | |
69 | OP1 => Operand1, |
|
68 | OP1 => Operand1, | |
70 | OP2 => Operand2, |
|
69 | OP2 => Operand2, | |
71 | RES => Resultat |
|
70 | RES => Resultat | |
72 | ); |
|
71 | ); | |
73 |
|
72 | |||
74 | clk <= not clk after 25 ns; |
|
73 | clk <= not clk after 25 ns; | |
75 |
|
74 | |||
76 | process |
|
75 | process | |
77 | begin |
|
76 | begin | |
78 | wait for 40 ns; |
|
77 | wait for 40 ns; | |
79 | reset <= '1'; |
|
78 | reset <= '1'; | |
80 | wait for 11 ns; |
|
79 | wait for 11 ns; | |
81 | Operand1 <= X"0001"; |
|
80 | Operand1 <= X"0001"; | |
82 | Operand2 <= X"001"; |
|
81 | Operand2 <= X"001"; | |
83 | MAC_MUL_ADD <= ADD; |
|
82 | MAC_MUL_ADD <= ADD; | |
84 | wait for 50 ns; |
|
83 | wait for 50 ns; | |
85 | Operand1 <= X"0001"; |
|
84 | Operand1 <= X"0001"; | |
86 | Operand2 <= X"100"; |
|
85 | Operand2 <= X"100"; | |
87 | wait for 50 ns; |
|
86 | wait for 50 ns; | |
88 | Operand1 <= X"0001"; |
|
87 | Operand1 <= X"0001"; | |
89 | Operand2 <= X"001"; |
|
88 | Operand2 <= X"001"; | |
90 | MAC_MUL_ADD <= MULT; |
|
89 | MAC_MUL_ADD <= MULT; | |
91 | wait for 50 ns; |
|
90 | wait for 50 ns; | |
92 | Operand1 <= X"0002"; |
|
91 | Operand1 <= X"0002"; | |
93 | Operand2 <= X"002"; |
|
92 | Operand2 <= X"002"; | |
94 | wait for 50 ns; |
|
93 | wait for 50 ns; | |
95 | clrMAC <= '1'; |
|
94 | clrMAC <= '1'; | |
96 | wait for 50 ns; |
|
95 | wait for 50 ns; | |
97 | clrMAC <= '0'; |
|
96 | clrMAC <= '0'; | |
98 | Operand1 <= X"0001"; |
|
97 | Operand1 <= X"0001"; | |
99 | Operand2 <= X"003"; |
|
98 | Operand2 <= X"003"; | |
100 | MAC_MUL_ADD <= MAC; |
|
99 | MAC_MUL_ADD <= MAC; | |
101 | wait; |
|
100 | wait; | |
102 | end process; |
|
101 | end process; | |
103 | end ar_TestbenshMAC; |
|
102 | end ar_TestbenshMAC; | |
104 |
|
103 | |||
105 |
|
104 | |||
106 |
|
105 | |||
107 |
|
106 | |||
108 |
|
107 | |||
109 |
|
108 | |||
110 |
|
109 | |||
111 |
|
110 | |||
112 |
|
111 | |||
113 |
|
112 | |||
114 |
|
113 |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,4 +16,3 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Top_Filtre_IIR.vhd No newline at end of file |
|
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,6 +16,7 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
|
19 | ------------------------------------------------------------------------------ | |||
19 | library ieee; |
|
20 | library ieee; | |
20 | use ieee.std_logic_1164.all; |
|
21 | use ieee.std_logic_1164.all; | |
21 | library grlib; |
|
22 | library grlib; |
@@ -1,12 +1,12 | |||||
1 | APB_IIR_CEL.vhd |
|
1 | APB_IIR_CEL.vhd | |
2 | FILTER.vhd |
|
|||
3 | FILTER_RAM_CTRLR.vhd |
|
|||
4 | FILTERcfg.vhd |
|
2 | FILTERcfg.vhd | |
5 | FilterCTRLR.vhd |
|
3 | FilterCTRLR.vhd | |
|
4 | FILTER_RAM_CTRLR.vhd | |||
|
5 | FILTER.vhd | |||
6 | IIR_CEL_CTRLR.vhd |
|
6 | IIR_CEL_CTRLR.vhd | |
7 | IIR_CEL_FILTER.vhd |
|
7 | IIR_CEL_FILTER.vhd | |
8 | RAM.vhd |
|
8 | iir_filter.vhd | |
9 | RAM_CEL.vhd |
|
9 | RAM_CEL.vhd | |
10 | RAM_CTRLR2.vhd |
|
10 | RAM_CTRLR2.vhd | |
|
11 | RAM.vhd | |||
11 | Top_Filtre_IIR.vhd |
|
12 | Top_Filtre_IIR.vhd | |
12 | iir_filter.vhd |
|
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- ADDRcntr.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,9 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- ALU.vhd |
|
19 | ------------------------------------------------------------------------------ | |
|
20 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
21 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
20 | library IEEE; |
|
22 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
23 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
24 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Adder.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -3,20 +3,6 | |||||
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
|||
7 | -- the Free Software Foundation; either version 2 of the License, or |
|
|||
8 | -- (at your option) any later version. |
|
|||
9 | -- |
|
|||
10 | -- This program is distributed in the hope that it will be useful, |
|
|||
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|||
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|||
13 | -- GNU General Public License for more details. |
|
|||
14 | -- |
|
|||
15 | -- You should have received a copy of the GNU General Public License |
|
|||
16 | -- along with this program; if not, write to the Free Software |
|
|||
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
|||
18 | ------------------------------------------------------------------------------- |
|
|||
19 | -- MAC.vhd |
|
|||
20 | library IEEE; |
|
6 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
7 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
8 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,7 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- MAC_CONTROLER.vhd |
|
19 | ------------------------------------------------------------------------------ | |
20 | library IEEE; |
|
20 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
21 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
22 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- MAC_MUX.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- MAC_MUX2.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- MAC_REG.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- MUX2.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Multiplier.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- REG.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Shifter.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,121 +16,120 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- TestbenshALU.vhd |
|
|||
20 | library IEEE; |
|
19 | library IEEE; | |
21 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
22 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; | |
23 |
|
22 | |||
24 |
|
23 | |||
25 |
|
24 | |||
26 | entity TestbenshALU is |
|
25 | entity TestbenshALU is | |
27 | end TestbenshALU; |
|
26 | end TestbenshALU; | |
28 |
|
27 | |||
29 |
|
28 | |||
30 |
|
29 | |||
31 |
|
30 | |||
32 | architecture ar_TestbenshALU of TestbenshALU is |
|
31 | architecture ar_TestbenshALU of TestbenshALU is | |
33 |
|
32 | |||
34 |
|
33 | |||
35 |
|
34 | |||
36 | constant OP1sz : integer := 16; |
|
35 | constant OP1sz : integer := 16; | |
37 | constant OP2sz : integer := 12; |
|
36 | constant OP2sz : integer := 12; | |
38 | --IDLE =00 MAC =01 MULT =10 ADD =11 |
|
37 | --IDLE =00 MAC =01 MULT =10 ADD =11 | |
39 | constant IDLE : std_logic_vector(3 downto 0) := "0000"; |
|
38 | constant IDLE : std_logic_vector(3 downto 0) := "0000"; | |
40 | constant MAC : std_logic_vector(3 downto 0) := "0001"; |
|
39 | constant MAC : std_logic_vector(3 downto 0) := "0001"; | |
41 | constant MULT : std_logic_vector(3 downto 0) := "0010"; |
|
40 | constant MULT : std_logic_vector(3 downto 0) := "0010"; | |
42 | constant ADD : std_logic_vector(3 downto 0) := "0011"; |
|
41 | constant ADD : std_logic_vector(3 downto 0) := "0011"; | |
43 | constant clr_mac : std_logic_vector(3 downto 0) := "0100"; |
|
42 | constant clr_mac : std_logic_vector(3 downto 0) := "0100"; | |
44 |
|
43 | |||
45 | signal clk : std_logic:='0'; |
|
44 | signal clk : std_logic:='0'; | |
46 | signal reset : std_logic:='0'; |
|
45 | signal reset : std_logic:='0'; | |
47 | signal ctrl : std_logic_vector(3 downto 0):=IDLE; |
|
46 | signal ctrl : std_logic_vector(3 downto 0):=IDLE; | |
48 | signal Operand1 : std_logic_vector(OP1sz-1 downto 0):=(others => '0'); |
|
47 | signal Operand1 : std_logic_vector(OP1sz-1 downto 0):=(others => '0'); | |
49 | signal Operand2 : std_logic_vector(OP2sz-1 downto 0):=(others => '0'); |
|
48 | signal Operand2 : std_logic_vector(OP2sz-1 downto 0):=(others => '0'); | |
50 | signal Resultat : std_logic_vector(OP1sz+OP2sz-1 downto 0); |
|
49 | signal Resultat : std_logic_vector(OP1sz+OP2sz-1 downto 0); | |
51 |
|
50 | |||
52 |
|
51 | |||
53 |
|
52 | |||
54 |
|
53 | |||
55 | begin |
|
54 | begin | |
56 |
|
55 | |||
57 | ALU1 : entity LPP_IIR_FILTER.ALU |
|
56 | ALU1 : entity LPP_IIR_FILTER.ALU | |
58 | generic map( |
|
57 | generic map( | |
59 | Arith_en => 1, |
|
58 | Arith_en => 1, | |
60 | Logic_en => 0, |
|
59 | Logic_en => 0, | |
61 | Input_SZ_1 => OP1sz, |
|
60 | Input_SZ_1 => OP1sz, | |
62 | Input_SZ_2 => OP2sz |
|
61 | Input_SZ_2 => OP2sz | |
63 |
|
62 | |||
64 | ) |
|
63 | ) | |
65 | port map( |
|
64 | port map( | |
66 | clk => clk, |
|
65 | clk => clk, | |
67 | reset => reset, |
|
66 | reset => reset, | |
68 | ctrl => ctrl, |
|
67 | ctrl => ctrl, | |
69 | OP1 => Operand1, |
|
68 | OP1 => Operand1, | |
70 | OP2 => Operand2, |
|
69 | OP2 => Operand2, | |
71 | RES => Resultat |
|
70 | RES => Resultat | |
72 | ); |
|
71 | ); | |
73 |
|
72 | |||
74 |
|
73 | |||
75 |
|
74 | |||
76 |
|
75 | |||
77 | clk <= not clk after 25 ns; |
|
76 | clk <= not clk after 25 ns; | |
78 |
|
77 | |||
79 | process |
|
78 | process | |
80 | begin |
|
79 | begin | |
81 | wait for 40 ns; |
|
80 | wait for 40 ns; | |
82 | reset <= '1'; |
|
81 | reset <= '1'; | |
83 | wait for 11 ns; |
|
82 | wait for 11 ns; | |
84 | Operand1 <= X"0001"; |
|
83 | Operand1 <= X"0001"; | |
85 | Operand2 <= X"001"; |
|
84 | Operand2 <= X"001"; | |
86 | ctrl <= ADD; |
|
85 | ctrl <= ADD; | |
87 | wait for 50 ns; |
|
86 | wait for 50 ns; | |
88 | Operand1 <= X"0001"; |
|
87 | Operand1 <= X"0001"; | |
89 | Operand2 <= X"100"; |
|
88 | Operand2 <= X"100"; | |
90 | wait for 50 ns; |
|
89 | wait for 50 ns; | |
91 | Operand1 <= X"0001"; |
|
90 | Operand1 <= X"0001"; | |
92 | Operand2 <= X"001"; |
|
91 | Operand2 <= X"001"; | |
93 | ctrl <= MULT; |
|
92 | ctrl <= MULT; | |
94 | wait for 50 ns; |
|
93 | wait for 50 ns; | |
95 | Operand1 <= X"0002"; |
|
94 | Operand1 <= X"0002"; | |
96 | Operand2 <= X"002"; |
|
95 | Operand2 <= X"002"; | |
97 | wait for 50 ns; |
|
96 | wait for 50 ns; | |
98 | ctrl <= clr_mac; |
|
97 | ctrl <= clr_mac; | |
99 | wait for 50 ns; |
|
98 | wait for 50 ns; | |
100 | Operand1 <= X"0001"; |
|
99 | Operand1 <= X"0001"; | |
101 | Operand2 <= X"003"; |
|
100 | Operand2 <= X"003"; | |
102 | ctrl <= MAC; |
|
101 | ctrl <= MAC; | |
103 | wait for 50 ns; |
|
102 | wait for 50 ns; | |
104 | Operand1 <= X"0001"; |
|
103 | Operand1 <= X"0001"; | |
105 | Operand2 <= X"001"; |
|
104 | Operand2 <= X"001"; | |
106 | wait for 50 ns; |
|
105 | wait for 50 ns; | |
107 | Operand1 <= X"0011"; |
|
106 | Operand1 <= X"0011"; | |
108 | Operand2 <= X"003"; |
|
107 | Operand2 <= X"003"; | |
109 | wait for 50 ns; |
|
108 | wait for 50 ns; | |
110 | Operand1 <= X"1001"; |
|
109 | Operand1 <= X"1001"; | |
111 | Operand2 <= X"003"; |
|
110 | Operand2 <= X"003"; | |
112 | wait for 50 ns; |
|
111 | wait for 50 ns; | |
113 | Operand1 <= X"0001"; |
|
112 | Operand1 <= X"0001"; | |
114 | Operand2 <= X"000"; |
|
113 | Operand2 <= X"000"; | |
115 | wait for 50 ns; |
|
114 | wait for 50 ns; | |
116 | Operand1 <= X"0001"; |
|
115 | Operand1 <= X"0001"; | |
117 | Operand2 <= X"003"; |
|
116 | Operand2 <= X"003"; | |
118 | wait for 50 ns; |
|
117 | wait for 50 ns; | |
119 | Operand1 <= X"0101"; |
|
118 | Operand1 <= X"0101"; | |
120 | Operand2 <= X"053"; |
|
119 | Operand2 <= X"053"; | |
121 | wait for 50 ns; |
|
120 | wait for 50 ns; | |
122 | ctrl <= clr_mac; |
|
121 | ctrl <= clr_mac; | |
123 | wait; |
|
122 | wait; | |
124 | end process; |
|
123 | end process; | |
125 | end ar_TestbenshALU; |
|
124 | end ar_TestbenshALU; | |
126 |
|
125 | |||
127 |
|
126 | |||
128 |
|
127 | |||
129 |
|
128 | |||
130 |
|
129 | |||
131 |
|
130 | |||
132 |
|
131 | |||
133 |
|
132 | |||
134 |
|
133 | |||
135 |
|
134 | |||
136 |
|
135 |
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 |
|
||||
20 | library ieee; |
|
19 | library ieee; | |
21 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
22 |
|
21 | |||
@@ -24,6 +23,20 use ieee.std_logic_1164.all; | |||||
24 |
|
23 | |||
25 | package general_purpose is |
|
24 | package general_purpose is | |
26 |
|
25 | |||
|
26 | ||||
|
27 | ||||
|
28 | component Clk_divider is | |||
|
29 | generic(OSC_freqHz : integer := 50000000; | |||
|
30 | TargetFreq_Hz : integer := 50000); | |||
|
31 | Port ( clk : in STD_LOGIC; | |||
|
32 | reset : in STD_LOGIC; | |||
|
33 | clk_divided : out STD_LOGIC); | |||
|
34 | end component; | |||
|
35 | ||||
|
36 | ||||
|
37 | ||||
|
38 | ||||
|
39 | ||||
27 | component Adder is |
|
40 | component Adder is | |
28 | generic( |
|
41 | generic( | |
29 | Input_SZ_A : integer := 16; |
|
42 | Input_SZ_A : integer := 16; |
@@ -1,13 +1,14 | |||||
|
1 | Adder.vhd | |||
1 | ADDRcntr.vhd |
|
2 | ADDRcntr.vhd | |
2 | ALU.vhd |
|
3 | ALU.vhd | |
3 |
|
|
4 | Clk_divider.vhd | |
4 | MAC.vhd |
|
5 | general_purpose.vhd | |
5 | MAC_CONTROLER.vhd |
|
6 | MAC_CONTROLER.vhd | |
|
7 | MAC_MUX2.vhd | |||
6 | MAC_MUX.vhd |
|
8 | MAC_MUX.vhd | |
7 | MAC_MUX2.vhd |
|
|||
8 | MAC_REG.vhd |
|
9 | MAC_REG.vhd | |
|
10 | MAC.vhd | |||
|
11 | Multiplier.vhd | |||
9 | MUX2.vhd |
|
12 | MUX2.vhd | |
10 | Multiplier.vhd |
|
|||
11 | REG.vhd |
|
13 | REG.vhd | |
12 | Shifter.vhd |
|
14 | Shifter.vhd | |
13 | general_purpose.vhd |
|
@@ -1,106 +1,104 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- APB_MULTI_DIODE.vhd |
|
19 | library ieee; | |
20 |
|
20 | use ieee.std_logic_1164.all; | ||
21 | library ieee; |
|
21 | --use ieee.numeric_std.all; | |
22 | use ieee.std_logic_1164.all; |
|
22 | library grlib; | |
23 | --use ieee.numeric_std.all; |
|
23 | use grlib.amba.all; | |
24 | library grlib; |
|
24 | use grlib.stdlib.all; | |
25 |
use grlib. |
|
25 | use grlib.devices.all; | |
26 | use grlib.stdlib.all; |
|
26 | library lpp; | |
27 | use grlib.devices.all; |
|
27 | use lpp.lpp_amba.all; | |
28 | library lpp; |
|
28 | ||
29 | use lpp.lpp_amba.all; |
|
29 | ||
30 |
|
30 | entity APB_MULTI_DIODE is | ||
31 |
|
31 | generic ( | ||
32 | entity APB_MULTI_DIODE is |
|
32 | pindex : integer := 0; | |
33 | generic ( |
|
33 | paddr : integer := 0; | |
34 |
p |
|
34 | pmask : integer := 16#fff#; | |
35 |
p |
|
35 | pirq : integer := 0; | |
36 |
|
|
36 | abits : integer := 8); | |
37 | pirq : integer := 0; |
|
37 | port ( | |
38 | abits : integer := 8); |
|
38 | rst : in std_ulogic; | |
39 | port ( |
|
39 | clk : in std_ulogic; | |
40 | rst : in std_ulogic; |
|
40 | apbi : in apb_slv_in_type; | |
41 | clk : in std_ulogic; |
|
41 | apbo : out apb_slv_out_type; | |
42 | apbi : in apb_slv_in_type; |
|
42 | LED : out std_logic_vector(2 downto 0) | |
43 | apbo : out apb_slv_out_type; |
|
43 | ); | |
44 | LED : out std_logic_vector(2 downto 0) |
|
44 | end; | |
45 | ); |
|
45 | ||
46 | end; |
|
46 | ||
47 |
|
47 | architecture AR_APB_MULTI_DIODE of APB_MULTI_DIODE is | ||
48 |
|
|
48 | ||
49 | architecture AR_APB_MULTI_DIODE of APB_MULTI_DIODE is |
|
49 | constant REVISION : integer := 1; | |
50 |
|
50 | |||
51 | constant REVISION : integer := 1; |
|
51 | constant pconfig : apb_config_type := ( | |
52 |
|
52 | 0 => ahb_device_reg (VENDOR_LPP, LPP_MULTI_DIODE, 0, REVISION, 0), | ||
53 | constant pconfig : apb_config_type := ( |
|
53 | 1 => apb_iobar(paddr, pmask)); | |
54 | 0 => ahb_device_reg (VENDOR_LPP, LPP_MULTI_DIODE, 0, REVISION, 0), |
|
54 | ||
55 | 1 => apb_iobar(paddr, pmask)); |
|
55 | ||
56 |
|
56 | |||
57 |
|
57 | type LEDregs is record | ||
58 |
|
58 | DATAin : std_logic_vector(31 downto 0); | ||
59 | type LEDregs is record |
|
59 | DATAout : std_logic_vector(31 downto 0); | |
60 | DATAin : std_logic_vector(31 downto 0); |
|
60 | end record; | |
61 | DATAout : std_logic_vector(31 downto 0); |
|
61 | ||
62 | end record; |
|
62 | signal r : LEDregs; | |
63 |
|
63 | |||
64 | signal r : LEDregs; |
|
64 | ||
65 | signal Rdata : std_logic_vector(31 downto 0); |
|
65 | begin | |
66 |
|
66 | |||
67 |
|
67 | r.DATAout <= r.DATAin xor X"FFFFFFFF"; | ||
68 | begin |
|
68 | ||
69 |
|
69 | process(rst,clk) | ||
70 | r.DATAout <= r.DATAin xor X"FFFFFFFF"; |
|
70 | begin | |
71 |
|
71 | if rst = '0' then | ||
72 | process(rst,clk) |
|
72 | LED <= "000"; | |
73 | begin |
|
73 | r.DATAin <= (others => '0'); | |
74 | if rst = '0' then |
|
74 | apbo.prdata <= (others => '0'); | |
75 | LED <= "000"; |
|
75 | elsif clk'event and clk = '1' then | |
76 | r.DATAin <= (others => '0'); |
|
76 | ||
77 | elsif clk'event and clk = '1' then |
|
77 | LED <= r.DATAin(2 downto 0); | |
78 |
|
78 | |||
79 | LED <= r.DATAin(2 downto 0); |
|
79 | --APB Write OP | |
80 |
|
80 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | ||
81 | --APB Write OP |
|
81 | case apbi.paddr(abits-1 downto 2) is | |
82 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then |
|
82 | when "000000" => | |
83 | case apbi.paddr(abits-1 downto 2) is |
|
83 | r.DATAin <= apbi.pwdata; | |
84 |
when |
|
84 | when others => | |
85 |
|
|
85 | null; | |
86 |
|
|
86 | end case; | |
87 | null; |
|
87 | end if; | |
88 | end case; |
|
88 | ||
89 | end if; |
|
89 | --APB READ OP | |
90 |
|
90 | if (apbi.psel(pindex) and apbi.penable and (not apbi.pwrite)) = '1' then | ||
91 | --APB READ OP |
|
91 | case apbi.paddr(abits-1 downto 2) is | |
92 | if (apbi.psel(pindex) and apbi.penable and (not apbi.pwrite)) = '1' then |
|
92 | when "000000" => | |
93 | case apbi.paddr(abits-1 downto 2) is |
|
93 | apbo.prdata <= r.DATAin; | |
94 |
when |
|
94 | when others => | |
95 |
|
|
95 | apbo.prdata <= r.DATAout; | |
96 |
|
|
96 | end case; | |
97 | Rdata <= r.DATAout; |
|
97 | end if; | |
98 | end case; |
|
98 | ||
99 |
|
|
99 | end if; | |
100 |
|
100 | apbo.pconfig <= pconfig; | ||
101 | end if; |
|
101 | end process; | |
102 | apbo.pconfig <= pconfig; |
|
102 | ||
103 | end process; |
|
103 | ||
104 |
|
104 | end ar_APB_MULTI_DIODE; | ||
105 | apbo.prdata <= Rdata when apbi.penable = '1'; |
|
|||
106 | end ar_APB_MULTI_DIODE; No newline at end of file |
|
@@ -1,129 +1,127 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- APB_SIMPLE_DIODE.vhd |
|
19 | library ieee; | |
20 |
|
20 | use ieee.std_logic_1164.all; | ||
21 | library ieee; |
|
21 | --use ieee.numeric_std.all; | |
22 | use ieee.std_logic_1164.all; |
|
22 | library grlib; | |
23 | --use ieee.numeric_std.all; |
|
23 | use grlib.amba.all; | |
24 | library grlib; |
|
24 | use grlib.stdlib.all; | |
25 |
use grlib. |
|
25 | use grlib.devices.all; | |
26 | use grlib.stdlib.all; |
|
26 | library lpp; | |
27 | use grlib.devices.all; |
|
27 | use lpp.lpp_amba.all; | |
28 | library lpp; |
|
28 | ||
29 | use lpp.lpp_amba.all; |
|
29 | ||
30 |
|
30 | entity APB_SIMPLE_DIODE is | ||
31 |
|
31 | generic ( | ||
32 | entity APB_SIMPLE_DIODE is |
|
32 | pindex : integer := 0; | |
33 | generic ( |
|
33 | paddr : integer := 0; | |
34 |
p |
|
34 | pmask : integer := 16#fff#; | |
35 |
p |
|
35 | pirq : integer := 0; | |
36 |
|
|
36 | abits : integer := 8); | |
37 | pirq : integer := 0; |
|
37 | port ( | |
38 | abits : integer := 8); |
|
38 | rst : in std_ulogic; | |
39 | port ( |
|
39 | clk : in std_ulogic; | |
40 | rst : in std_ulogic; |
|
40 | apbi : in apb_slv_in_type; | |
41 | clk : in std_ulogic; |
|
41 | apbo : out apb_slv_out_type; | |
42 | apbi : in apb_slv_in_type; |
|
42 | LED : out std_ulogic | |
43 | apbo : out apb_slv_out_type; |
|
43 | ); | |
44 | LED : out std_ulogic |
|
44 | end; | |
45 | ); |
|
45 | ||
46 | end; |
|
46 | ||
47 |
|
47 | architecture AR_APB_SIMPLE_DIODE of APB_SIMPLE_DIODE is | ||
48 |
|
|
48 | ||
49 | architecture AR_APB_SIMPLE_DIODE of APB_SIMPLE_DIODE is |
|
49 | constant REVISION : integer := 1; | |
50 |
|
50 | |||
51 | constant REVISION : integer := 1; |
|
51 | constant pconfig : apb_config_type := ( | |
52 |
|
52 | 0 => ahb_device_reg (VENDOR_LPP, LPP_SIMPLE_DIODE, 0, REVISION, 0), | ||
53 | constant pconfig : apb_config_type := ( |
|
53 | 1 => apb_iobar(paddr, pmask)); | |
54 | 0 => ahb_device_reg (VENDOR_LPP, LPP_SIMPLE_DIODE, 0, REVISION, 0), |
|
54 | ||
55 | 1 => apb_iobar(paddr, pmask)); |
|
55 | ||
56 |
|
56 | |||
57 |
|
57 | type LEDregs is record | ||
58 |
|
58 | DATAin : std_logic_vector(31 downto 0); | ||
59 | type LEDregs is record |
|
59 | DATAout : std_logic_vector(31 downto 0); | |
60 | DATAin : std_logic_vector(31 downto 0); |
|
60 | end record; | |
61 | DATAout : std_logic_vector(31 downto 0); |
|
61 | ||
62 | end record; |
|
62 | signal r : LEDregs; | |
63 |
|
63 | |||
64 | signal r : LEDregs; |
|
64 | ||
65 | signal Rdata : std_logic_vector(31 downto 0); |
|
65 | begin | |
66 |
|
66 | |||
67 |
|
67 | r.DATAout <= r.DATAin xor X"FFFFFFFF"; | ||
68 | begin |
|
68 | ||
69 |
|
69 | process(rst,clk) | ||
70 | r.DATAout <= r.DATAin xor X"FFFFFFFF"; |
|
70 | begin | |
71 |
|
71 | if rst = '0' then | ||
72 | process(rst,clk) |
|
72 | LED <= '0'; | |
73 | begin |
|
73 | r.DATAin <= (others => '0'); | |
74 | if rst = '0' then |
|
74 | apbo.prdata <= (others => '0'); | |
75 | LED <= '0'; |
|
75 | elsif clk'event and clk = '1' then | |
76 | r.DATAin <= (others => '0'); |
|
76 | ||
77 | elsif clk'event and clk = '1' then |
|
77 | LED <= r.DATAin(0); | |
78 |
|
78 | |||
79 | LED <= r.DATAin(0); |
|
79 | --APB Write OP | |
80 |
|
80 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | ||
81 | --APB Write OP |
|
81 | case apbi.paddr(abits-1 downto 2) is | |
82 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then |
|
82 | when "000000" => | |
83 | case apbi.paddr(abits-1 downto 2) is |
|
83 | r.DATAin <= apbi.pwdata; | |
84 |
when |
|
84 | when others => | |
85 |
|
|
85 | null; | |
86 |
|
|
86 | end case; | |
87 | null; |
|
87 | end if; | |
88 | end case; |
|
88 | ||
89 | end if; |
|
89 | --APB READ OP | |
90 |
|
90 | if (apbi.psel(pindex) and apbi.penable and (not apbi.pwrite)) = '1' then | ||
91 | --APB READ OP |
|
91 | case apbi.paddr(abits-1 downto 2) is | |
92 | if (apbi.psel(pindex) and apbi.penable and (not apbi.pwrite)) = '1' then |
|
92 | when "000000" => | |
93 | case apbi.paddr(abits-1 downto 2) is |
|
93 | apbo.prdata <= r.DATAin; | |
94 |
when |
|
94 | when others => | |
95 |
|
|
95 | apbo.prdata <= r.DATAout; | |
96 |
|
|
96 | end case; | |
97 | Rdata <= r.DATAout; |
|
97 | end if; | |
98 | end case; |
|
98 | ||
99 |
|
|
99 | end if; | |
100 |
|
100 | apbo.pconfig <= pconfig; | ||
101 | end if; |
|
101 | end process; | |
102 | apbo.pconfig <= pconfig; |
|
102 | ||
103 | end process; |
|
103 | ||
104 |
|
104 | |||
105 | apbo.prdata <= Rdata when apbi.penable = '1'; |
|
105 | -- pragma translate_off | |
106 |
|
106 | -- bootmsg : report_version | ||
107 | -- pragma translate_off |
|
107 | -- generic map ("apbuart" & tost(pindex) & | |
108 | -- bootmsg : report_version |
|
108 | -- ": Generic UART rev " & tost(REVISION) & ", fifo " & tost(fifosize) & | |
109 | -- generic map ("apbuart" & tost(pindex) & |
|
109 | -- ", irq " & tost(pirq)); | |
110 | -- ": Generic UART rev " & tost(REVISION) & ", fifo " & tost(fifosize) & |
|
110 | -- pragma translate_on | |
111 | -- ", irq " & tost(pirq)); |
|
111 | ||
112 | -- pragma translate_on |
|
112 | ||
113 |
|
113 | |||
114 |
|
114 | end ar_APB_SIMPLE_DIODE; | ||
115 |
|
115 | |||
116 | end ar_APB_SIMPLE_DIODE; |
|
116 | ||
117 |
|
117 | |||
118 |
|
118 | |||
119 |
|
119 | |||
120 |
|
120 | |||
121 |
|
121 | |||
122 |
|
122 | |||
123 |
|
123 | |||
124 |
|
124 | |||
125 |
|
125 | |||
126 |
|
126 | |||
127 |
|
127 | |||
128 |
|
||||
129 |
|
@@ -4,7 +4,7 | |||||
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
@@ -16,7 +16,6 | |||||
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 |
|
||||
20 | library ieee; |
|
19 | library ieee; | |
21 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
22 | library grlib; |
|
21 | library grlib; | |
@@ -40,7 +39,7 constant LPP_MULTI_DIODE : amba_ | |||||
40 | constant LPP_LCD_CTRLR : amba_device_type := 16#005#; |
|
39 | constant LPP_LCD_CTRLR : amba_device_type := 16#005#; | |
41 | constant LPP_UART : amba_device_type := 16#006#; |
|
40 | constant LPP_UART : amba_device_type := 16#006#; | |
42 | constant LPP_CNA : amba_device_type := 16#007#; |
|
41 | constant LPP_CNA : amba_device_type := 16#007#; | |
43 |
|
42 | constant LPP_ADC_7688 : amba_device_type := 16#008#; | ||
44 |
|
43 | |||
45 | component APB_SIMPLE_DIODE is |
|
44 | component APB_SIMPLE_DIODE is | |
46 | generic ( |
|
45 | generic ( |
@@ -1,129 +1,126 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
-- the Free Software Foundation; either version |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- APB_UART.vhd |
|
19 | library ieee; | |
20 |
|
20 | use ieee.std_logic_1164.all; | ||
21 |
library |
|
21 | library grlib; | |
22 | use ieee.std_logic_1164.all; |
|
22 | use grlib.amba.all; | |
23 | library grlib; |
|
23 | use grlib.stdlib.all; | |
24 |
use grlib. |
|
24 | use grlib.devices.all; | |
25 | use grlib.stdlib.all; |
|
25 | library lpp; | |
26 | use grlib.devices.all; |
|
26 | use lpp.lpp_amba.all; | |
27 | library lpp; |
|
27 | use lpp.lpp_uart.all; | |
28 | use lpp.lpp_amba.all; |
|
28 | ||
29 | use lpp.lpp_uart.all; |
|
29 | entity APB_UART is | |
30 |
|
30 | generic ( | ||
31 | entity APB_UART is |
|
31 | pindex : integer := 0; | |
32 | generic ( |
|
32 | paddr : integer := 0; | |
33 |
p |
|
33 | pmask : integer := 16#fff#; | |
34 |
p |
|
34 | pirq : integer := 0; | |
35 |
|
|
35 | abits : integer := 8; | |
36 |
|
|
36 | Data_sz : integer := 8); | |
37 | abits : integer := 8; |
|
37 | port ( | |
38 | Data_sz : integer := 8); |
|
38 | clk : in std_logic; | |
39 | port ( |
|
39 | rst : in std_logic; | |
40 | clk : in std_logic; |
|
40 | apbi : in apb_slv_in_type; | |
41 | rst : in std_logic; |
|
41 | apbo : out apb_slv_out_type; | |
42 | apbi : in apb_slv_in_type; |
|
42 | TXD : out std_logic; | |
43 | apbo : out apb_slv_out_type; |
|
43 | RXD : in std_logic | |
44 | TXD : out std_logic; |
|
44 | ); | |
45 | RXD : in std_logic |
|
45 | end APB_UART; | |
46 | ); |
|
46 | ||
47 | end APB_UART; |
|
47 | ||
48 |
|
48 | architecture ar_APB_UART of APB_UART is | ||
49 |
|
49 | |||
50 | architecture ar_APB_UART of APB_UART is |
|
50 | constant REVISION : integer := 1; | |
51 |
|
51 | |||
52 | constant REVISION : integer := 1; |
|
52 | constant pconfig : apb_config_type := ( | |
53 |
|
53 | 0 => ahb_device_reg (VENDOR_LPP, LPP_UART, 0, REVISION, 0), | ||
54 | constant pconfig : apb_config_type := ( |
|
54 | 1 => apb_iobar(paddr, pmask)); | |
55 | 0 => ahb_device_reg (VENDOR_LPP, LPP_UART, 0, REVISION, 0), |
|
55 | ||
56 | 1 => apb_iobar(paddr, pmask)); |
|
56 | signal NwData : std_logic; | |
57 |
|
57 | signal ACK : std_logic; | ||
58 |
signal |
|
58 | signal Capture : std_logic; | |
59 |
signal |
|
59 | signal Send : std_logic; | |
60 |
signal |
|
60 | signal Sended : std_logic; | |
61 | signal Send : std_logic; |
|
61 | ||
62 | signal Sended : std_logic; |
|
62 | type UART_ctrlr_Reg is record | |
63 |
|
63 | UART_Cfg : std_logic_vector(4 downto 0); | ||
64 | type UART_ctrlr_Reg is record |
|
64 | UART_Wdata : std_logic_vector(7 downto 0); | |
65 |
UART_ |
|
65 | UART_Rdata : std_logic_vector(7 downto 0); | |
66 |
UART_ |
|
66 | UART_BTrig : std_logic_vector(11 downto 0); | |
67 | UART_Rdata : std_logic_vector(7 downto 0); |
|
67 | end record; | |
68 | UART_BTrig : std_logic_vector(11 downto 0); |
|
68 | ||
69 | end record; |
|
69 | signal Rec : UART_ctrlr_Reg; | |
70 |
|
70 | |||
71 | signal Rec : UART_ctrlr_Reg; |
|
71 | begin | |
72 | signal Rdata : std_logic_vector(31 downto 0); |
|
72 | ||
73 |
|
73 | Capture <= Rec.UART_Cfg(0); | ||
74 | begin |
|
74 | ACK <= Rec.UART_Cfg(1); | |
75 |
|
75 | Send <= Rec.UART_Cfg(2); | ||
76 | Capture <= Rec.UART_Cfg(0); |
|
76 | Rec.UART_Cfg(3) <= Sended; | |
77 |
|
|
77 | Rec.UART_Cfg(4) <= NwData; | |
78 | Send <= Rec.UART_Cfg(2); |
|
78 | ||
79 | Rec.UART_Cfg(3) <= Sended; |
|
79 | ||
80 | Rec.UART_Cfg(4) <= NwData; |
|
80 | COM0 : entity work.UART | |
81 |
|
81 | generic map (Data_sz) | ||
82 |
|
82 | port map (clk,rst,TXD,RXD,Capture,NwData,ACK,Send,Sended,Rec.UART_BTrig,Rec.UART_Rdata,Rec.UART_Wdata); | ||
83 | COM0 : entity work.UART |
|
83 | ||
84 | generic map (Data_sz) |
|
84 | ||
85 | port map (clk,rst,TXD,RXD,Capture,NwData,ACK,Send,Sended,Rec.UART_BTrig,Rec.UART_Rdata,Rec.UART_Wdata); |
|
85 | process(rst,clk) | |
86 |
|
86 | begin | ||
87 |
|
87 | if(rst='0')then | ||
88 | process(rst,clk) |
|
88 | Rec.UART_Wdata <= (others => '0'); | |
89 | begin |
|
89 | apbo.prdata <= (others => '0'); | |
90 | if(rst='0')then |
|
90 | ||
91 | Rec.UART_Wdata <= (others => '0'); |
|
91 | elsif(clk'event and clk='1')then | |
92 |
|
92 | |||
93 | elsif(clk'event and clk='1')then |
|
93 | ||
94 |
|
94 | --APB Write OP | ||
95 |
|
95 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | ||
96 | --APB Write OP |
|
96 | case apbi.paddr(abits-1 downto 2) is | |
97 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then |
|
97 | when "000000" => | |
98 | case apbi.paddr(abits-1 downto 2) is |
|
98 | Rec.UART_Cfg(2 downto 0) <= apbi.pwdata(2 downto 0); | |
99 |
when "00000 |
|
99 | when "000001" => | |
100 |
Rec.UART_ |
|
100 | Rec.UART_Wdata <= apbi.pwdata(7 downto 0); | |
101 |
when |
|
101 | when others => | |
102 | Rec.UART_Wdata <= apbi.pwdata(7 downto 0); |
|
102 | null; | |
103 |
|
|
103 | end case; | |
104 | null; |
|
104 | end if; | |
105 | end case; |
|
105 | ||
106 | end if; |
|
106 | --APB READ OP | |
107 |
|
107 | if (apbi.psel(pindex) and apbi.penable and (not apbi.pwrite)) = '1' then | ||
108 | --APB READ OP |
|
108 | case apbi.paddr(abits-1 downto 2) is | |
109 | if (apbi.psel(pindex) and apbi.penable and (not apbi.pwrite)) = '1' then |
|
109 | when "000000" => | |
110 |
|
|
110 | apbo.prdata(31 downto 27) <= Rec.UART_Cfg; | |
111 | when "000000" => |
|
111 | apbo.prdata(26 downto 12) <= (others => '0'); | |
112 |
|
|
112 | apbo.prdata(11 downto 0) <= Rec.UART_BTrig; | |
113 | Rdata(26 downto 12) <= (others => '0'); |
|
113 | when "000001" => | |
114 |
|
|
114 | apbo.prdata(7 downto 0) <= Rec.UART_Wdata; | |
115 |
when "0000 |
|
115 | when "000010" => | |
116 |
|
|
116 | apbo.prdata(7 downto 0) <= Rec.UART_Rdata; | |
117 |
when |
|
117 | when others => | |
118 | Rdata(7 downto 0) <= Rec.UART_Rdata; |
|
118 | apbo.prdata <= (others => '0'); | |
119 |
|
|
119 | end case; | |
120 | Rdata <= (others => '0'); |
|
120 | end if; | |
121 | end case; |
|
121 | ||
122 |
|
|
122 | end if; | |
123 |
|
123 | apbo.pconfig <= pconfig; | ||
124 | end if; |
|
124 | end process; | |
125 | apbo.pconfig <= pconfig; |
|
125 | ||
126 | end process; |
|
126 | end ar_APB_UART; | |
127 |
|
||||
128 | apbo.prdata <= Rdata when apbi.penable = '1'; |
|
|||
129 | end ar_APB_UART; No newline at end of file |
|
@@ -1,82 +1,99 | |||||
1 | -- BaudGen.vhd |
|
1 | ------------------------------------------------------------------------------ | |
2 | library IEEE; |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | use IEEE.numeric_std.all; |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | use IEEE.std_logic_1164.all; |
|
4 | -- | |
5 |
|
5 | -- This program is free software; you can redistribute it and/or modify | ||
6 | --! Generateur de Bauds |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | ||
8 | entity BaudGen is |
|
8 | -- (at your option) any later version. | |
9 |
|
9 | -- | ||
10 | port( |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | clk : in std_logic; |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | reset : in std_logic; |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | Capture : in std_logic; |
|
13 | -- GNU General Public License for more details. | |
14 | Bclk : out std_logic; |
|
14 | -- | |
15 | RXD : in std_logic; |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | BTrigger : out std_logic_vector(11 downto 0) |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | ); |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | end BaudGen; |
|
18 | ------------------------------------------------------------------------------- | |
19 |
|
19 | library IEEE; | ||
20 |
|
20 | use IEEE.numeric_std.all; | ||
21 | architecture ar_BaudGen of BaudGen is |
|
21 | use IEEE.std_logic_1164.all; | |
22 | signal cpt : std_logic_vector(11 downto 0) := (others => '0'); |
|
22 | ||
23 | signal errorFlag : std_logic; |
|
23 | --! Generateur de Bauds | |
24 | signal triger : std_logic_vector(11 downto 0) := (others => '0'); |
|
24 | ||
25 | signal RX_reg : std_logic:='1'; |
|
25 | entity BaudGen is | |
26 |
|
26 | |||
27 | begin |
|
27 | port( | |
28 |
|
28 | clk : in std_logic; | ||
29 |
|
29 | reset : in std_logic; | ||
30 | BTrigger <= triger; |
|
30 | Capture : in std_logic; | |
31 |
|
31 | Bclk : out std_logic; | ||
32 |
|
32 | RXD : in std_logic; | ||
33 | BaudGeneration: |
|
33 | BTrigger : out std_logic_vector(11 downto 0) | |
34 | process(clk,reset) |
|
34 | ); | |
35 | begin |
|
35 | end BaudGen; | |
36 | if reset = '0' then |
|
36 | ||
37 | cpt <= (others => '0'); |
|
37 | ||
38 | triger <= (others => '1'); |
|
38 | architecture ar_BaudGen of BaudGen is | |
39 | errorFlag <= '0'; |
|
39 | signal cpt : std_logic_vector(11 downto 0) := (others => '0'); | |
40 | elsif clk'event and clk = '1'then |
|
40 | signal errorFlag : std_logic; | |
41 | RX_reg <= RXD; |
|
41 | signal triger : std_logic_vector(11 downto 0) := (others => '0'); | |
42 | if capture = '1' then |
|
42 | signal RX_reg : std_logic:='1'; | |
43 | cpt <= (others => '0'); |
|
43 | ||
44 | triger <= (others => '1'); |
|
44 | begin | |
45 | errorFlag <= '0'; |
|
45 | ||
46 | else |
|
46 | ||
47 | if RX_reg /= RXD then |
|
47 | BTrigger <= triger; | |
48 | cpt <= (others => '0'); |
|
48 | ||
49 | if cpt = std_logic_vector(TO_UNSIGNED(0,12)) then |
|
49 | ||
50 | errorFlag <= '1'; |
|
50 | BaudGeneration: | |
51 | elsif errorFlag = '1' then |
|
51 | process(clk,reset) | |
52 | triger <= cpt; |
|
52 | begin | |
53 | errorFlag <= '0'; |
|
53 | if reset = '0' then | |
54 | else |
|
54 | cpt <= (others => '0'); | |
55 | errorFlag <= '1'; |
|
55 | triger <= (others => '1'); | |
56 | end if; |
|
56 | errorFlag <= '0'; | |
57 | else |
|
57 | elsif clk'event and clk = '1'then | |
58 | if cpt = triger then |
|
58 | RX_reg <= RXD; | |
59 | cpt <= (others => '0'); |
|
59 | if capture = '1' then | |
60 |
|
|
60 | cpt <= (others => '0'); | |
61 |
|
|
61 | triger <= (others => '1'); | |
62 | cpt <= std_logic_vector(unsigned(cpt) + 1); |
|
62 | errorFlag <= '0'; | |
63 | end if; |
|
63 | else | |
64 | end if; |
|
64 | if RX_reg /= RXD then | |
65 | end if; |
|
65 | cpt <= (others => '0'); | |
66 | end if; |
|
66 | if cpt = std_logic_vector(TO_UNSIGNED(0,12)) then | |
67 | end process; |
|
67 | errorFlag <= '1'; | |
68 |
|
68 | elsif errorFlag = '1' then | ||
69 |
|
69 | triger <= cpt; | ||
70 | process(clk) |
|
70 | errorFlag <= '0'; | |
71 | begin |
|
71 | else | |
72 | if clk'event and clk = '1' then |
|
72 | errorFlag <= '1'; | |
73 | if cpt = std_logic_vector(TO_UNSIGNED(0,12)) then |
|
73 | end if; | |
74 | Bclk <= '0'; |
|
74 | else | |
75 |
|
|
75 | if cpt = triger then | |
76 |
|
|
76 | cpt <= (others => '0'); | |
77 | end if; |
|
77 | errorFlag <= '0'; | |
78 | end if; |
|
78 | else | |
79 | end process; |
|
79 | cpt <= std_logic_vector(unsigned(cpt) + 1); | |
80 |
|
80 | end if; | ||
81 |
|
81 | end if; | ||
82 | end ar_BaudGen; No newline at end of file |
|
82 | end if; | |
|
83 | end if; | |||
|
84 | end process; | |||
|
85 | ||||
|
86 | ||||
|
87 | process(clk) | |||
|
88 | begin | |||
|
89 | if clk'event and clk = '1' then | |||
|
90 | if cpt = std_logic_vector(TO_UNSIGNED(0,12)) then | |||
|
91 | Bclk <= '0'; | |||
|
92 | elsif cpt = '0' & triger(11 downto 1) then | |||
|
93 | Bclk <= '1'; | |||
|
94 | end if; | |||
|
95 | end if; | |||
|
96 | end process; | |||
|
97 | ||||
|
98 | ||||
|
99 | end ar_BaudGen; |
@@ -1,94 +1,111 | |||||
1 | -- Shift_REG.vhd |
|
1 | ------------------------------------------------------------------------------ | |
2 | library IEEE; |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | use IEEE.numeric_std.all; |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | use IEEE.std_logic_1164.all; |
|
4 | -- | |
5 |
|
5 | -- This program is free software; you can redistribute it and/or modify | ||
6 | --! Gestion Reception/Transmission |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | ||
8 | entity Shift_REG is |
|
8 | -- (at your option) any later version. | |
9 | generic(Data_sz : integer := 10); |
|
9 | -- | |
10 | port( |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | clk : in std_logic; |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | Sclk : in std_logic; |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | reset : in std_logic; |
|
13 | -- GNU General Public License for more details. | |
14 | SIN : in std_logic; |
|
14 | -- | |
15 | SOUT : out std_logic; |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | Serialize : in std_logic; |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | Serialized : out std_logic; |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | D : in std_logic_vector(Data_sz-1 downto 0); |
|
18 | ------------------------------------------------------------------------------- | |
19 | Q : out std_logic_vector(Data_sz-1 downto 0) |
|
19 | library IEEE; | |
20 |
|
20 | use IEEE.numeric_std.all; | ||
21 | ); |
|
21 | use IEEE.std_logic_1164.all; | |
22 | end entity; |
|
22 | ||
23 |
|
23 | --! Gestion Reception/Transmission | ||
24 |
|
24 | |||
25 | architecture ar_Shift_REG of Shift_REG is |
|
25 | entity Shift_REG is | |
26 |
|
26 | generic(Data_sz : integer := 10); | ||
27 | signal REG : std_logic_vector(Data_sz-1 downto 0); |
|
27 | port( | |
28 |
|
|
28 | clk : in std_logic; | |
29 |
|
|
29 | Sclk : in std_logic; | |
30 | signal CptBits : std_logic_vector(Data_sz-1 downto 0); |
|
30 | reset : in std_logic; | |
31 | constant CptBits_trig : std_logic_vector(Data_sz-1 downto 0) := (others => '1'); |
|
31 | SIN : in std_logic; | |
32 |
|
|
32 | SOUT : out std_logic; | |
33 |
|
|
33 | Serialize : in std_logic; | |
34 |
|
34 | Serialized : out std_logic; | ||
35 | begin |
|
35 | D : in std_logic_vector(Data_sz-1 downto 0); | |
36 |
|
36 | Q : out std_logic_vector(Data_sz-1 downto 0) | ||
37 | Serialized <= Serialized_int; |
|
37 | ||
38 | CptBits_flag <= '1' when CptBits = CptBits_trig else '0'; |
|
38 | ); | |
39 |
|
39 | end entity; | ||
40 | process(reset,clk) |
|
40 | ||
41 | begin |
|
41 | ||
42 | if reset = '0' then |
|
42 | architecture ar_Shift_REG of Shift_REG is | |
43 | Serialized_int <= '1'; |
|
43 | ||
44 | CptBits_flag_reg <= '0'; |
|
44 | signal REG : std_logic_vector(Data_sz-1 downto 0); | |
45 | Q <= (others => '0'); |
|
45 | signal Serialized_int : std_logic; | |
46 | elsif clk'event and clk = '1' then |
|
46 | signal Serialize_reg : std_logic; | |
47 | CptBits_flag_reg <= CptBits_flag; |
|
47 | signal CptBits : std_logic_vector(Data_sz-1 downto 0); | |
48 |
|
48 | constant CptBits_trig : std_logic_vector(Data_sz-1 downto 0) := (others => '1'); | ||
49 | if CptBits_flag = '1' and CptBits_flag_reg = '0' then |
|
49 | signal CptBits_flag : std_logic; | |
50 | Serialized_int <= '1'; |
|
50 | signal CptBits_flag_reg : std_logic; | |
51 | Q <= REG; |
|
51 | ||
52 | elsif Serialize = '1' then |
|
52 | begin | |
53 | Serialized_int <= '0'; |
|
53 | ||
54 | end if; |
|
54 | Serialized <= Serialized_int; | |
55 | end if; |
|
55 | CptBits_flag <= '1' when CptBits = CptBits_trig else '0'; | |
56 | end process; |
|
56 | ||
57 |
|
57 | process(reset,clk) | ||
58 |
|
58 | begin | ||
59 | process(reset,Sclk) |
|
59 | if reset = '0' then | |
60 | begin |
|
60 | Serialized_int <= '1'; | |
61 | if reset = '0' then |
|
61 | CptBits_flag_reg <= '0'; | |
62 |
|
|
62 | Q <= (others => '0'); | |
63 | REG <= (others => '0'); |
|
63 | elsif clk'event and clk = '1' then | |
64 | SOUT <= '1'; |
|
64 | CptBits_flag_reg <= CptBits_flag; | |
65 | Serialize_reg <= '0'; |
|
65 | ||
66 | elsif Sclk'event and Sclk = '1' then |
|
66 | if CptBits_flag = '1' and CptBits_flag_reg = '0' then | |
67 |
Serialize |
|
67 | Serialized_int <= '1'; | |
68 | if (Serialized_int = '0' and Serialize_reg ='1') then |
|
68 | Q <= REG; | |
69 | REG <= SIN & D(Data_sz-1 downto 1); |
|
69 | elsif Serialize = '1' then | |
70 |
S |
|
70 | Serialized_int <= '0'; | |
71 | elsif CptBits_flag ='1' then |
|
71 | end if; | |
72 | REG <= SIN & D(Data_sz-1 downto 1); |
|
72 | end if; | |
73 | SOUT <= D(0); |
|
73 | end process; | |
74 | elsif Serialized_int = '0' then |
|
74 | ||
75 | REG <= SIN & REG(Data_sz-1 downto 1); |
|
75 | ||
76 | SOUT <= REG(0); |
|
76 | process(reset,Sclk) | |
77 | else |
|
77 | begin | |
78 | SOUT <= '1'; |
|
78 | if reset = '0' then | |
79 | end if; |
|
79 | CptBits <= (others => '0'); | |
80 | if Serialized_int = '0' then |
|
80 | REG <= (others => '0'); | |
81 | if CptBits_flag = '1' then |
|
81 | SOUT <= '1'; | |
82 | CptBits <= (others => '0'); |
|
82 | Serialize_reg <= '0'; | |
83 | else |
|
83 | elsif Sclk'event and Sclk = '1' then | |
84 | CptBits <= '1' & CptBits(Data_sz-1 downto 1); |
|
84 | Serialize_reg <= Serialized_int; | |
85 | end if; |
|
85 | if (Serialized_int = '0' and Serialize_reg ='1') then | |
86 |
|
86 | REG <= SIN & D(Data_sz-1 downto 1); | ||
87 | else |
|
87 | SOUT <= D(0); | |
88 | CptBits <= (others => '0'); |
|
88 | elsif CptBits_flag ='1' then | |
89 | end if; |
|
89 | REG <= SIN & D(Data_sz-1 downto 1); | |
90 |
|
90 | SOUT <= D(0); | ||
91 | end if; |
|
91 | elsif Serialized_int = '0' then | |
92 | end process; |
|
92 | REG <= SIN & REG(Data_sz-1 downto 1); | |
93 |
|
93 | SOUT <= REG(0); | ||
94 | end ar_Shift_REG; No newline at end of file |
|
94 | else | |
|
95 | SOUT <= '1'; | |||
|
96 | end if; | |||
|
97 | if Serialized_int = '0' then | |||
|
98 | if CptBits_flag = '1' then | |||
|
99 | CptBits <= (others => '0'); | |||
|
100 | else | |||
|
101 | CptBits <= '1' & CptBits(Data_sz-1 downto 1); | |||
|
102 | end if; | |||
|
103 | ||||
|
104 | else | |||
|
105 | CptBits <= (others => '0'); | |||
|
106 | end if; | |||
|
107 | ||||
|
108 | end if; | |||
|
109 | end process; | |||
|
110 | ||||
|
111 | end ar_Shift_REG; |
@@ -1,81 +1,98 | |||||
1 | -- UART.vhd |
|
1 | ------------------------------------------------------------------------------ | |
2 | library IEEE; |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | use IEEE.numeric_std.all; |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | use IEEE.std_logic_1164.all; |
|
4 | -- | |
5 | library lpp; |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | use lpp.lpp_uart.all; |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | ||
8 | --! Programme qui va gerer toute la communication entre le PC et le FPGA |
|
8 | -- (at your option) any later version. | |
9 |
|
9 | -- | ||
10 | entity UART is |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | generic(Data_sz : integer := 8); --! Constante de taille pour un mot de donnee |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | port( |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | clk : in std_logic; --! Horloge a 25Mhz du systeme |
|
13 | -- GNU General Public License for more details. | |
14 | reset : in std_logic; --! Reset du systeme |
|
14 | -- | |
15 | TXD : out std_logic; --! Transmission, cote PC |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | RXD : in std_logic; --! Reception, cote PC |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | Capture : in std_logic; --! "Reset" cible pour le generateur de bauds, ici indissocie du reset global |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | NwDat : out std_logic; --! Flag, Nouvelle donnee presente |
|
18 | ------------------------------------------------------------------------------- | |
19 | ACK : in std_logic; --! Flag, Reponse au flag precedent |
|
19 | library IEEE; | |
20 | Send : in std_logic; --! Flag, Demande d'envoi sur le bus |
|
20 | use IEEE.numeric_std.all; | |
21 | Sended : out std_logic; --! Flag, Envoi termine |
|
21 | use IEEE.std_logic_1164.all; | |
22 | BTrigger : out std_logic_vector(11 downto 0); --! Registre contenant la valeur du diviseur de frequence pour la transmission |
|
22 | library lpp; | |
23 | RDATA : out std_logic_vector(Data_sz-1 downto 0); --! Mot de donnee en provenance de l'utilisateur |
|
23 | use lpp.lpp_uart.all; | |
24 | WDATA : in std_logic_vector(Data_sz-1 downto 0) --! Mot de donnee a transmettre a l'utilisateur |
|
24 | ||
25 | ); |
|
25 | --! Programme qui va gerer toute la communication entre le PC et le FPGA | |
26 | end entity; |
|
26 | ||
27 |
|
27 | entity UART is | ||
28 |
|
28 | generic(Data_sz : integer := 8); --! Constante de taille pour un mot de donnee | ||
29 | --! @details Gestion de la Reception/Transmission donc de la Vectorisation/Serialisation |
|
29 | port( | |
30 | --! ainsi que la detection et le reglage de le frequence de transmission optimale sur le bus (Generateur de Bauds) |
|
30 | clk : in std_logic; --! Horloge a 25Mhz du systeme | |
31 | architecture ar_UART of UART is |
|
31 | reset : in std_logic; --! Reset du systeme | |
32 | signal Bclk : std_logic; |
|
32 | TXD : out std_logic; --! Transmission, cote PC | |
33 |
|
33 | RXD : in std_logic; --! Reception, cote PC | ||
34 | signal RDATA_int : std_logic_vector(Data_sz+1 downto 0); |
|
34 | Capture : in std_logic; --! "Reset" cible pour le generateur de bauds, ici indissocie du reset global | |
35 | signal WDATA_int : std_logic_vector(Data_sz+1 downto 0); |
|
35 | NwDat : out std_logic; --! Flag, Nouvelle donnee presente | |
36 |
|
36 | ACK : in std_logic; --! Flag, Reponse au flag precedent | ||
37 | signal TXD_Dummy : std_logic; |
|
37 | Send : in std_logic; --! Flag, Demande d'envoi sur le bus | |
38 | signal NwDat_int : std_logic; |
|
38 | Sended : out std_logic; --! Flag, Envoi termine | |
39 | signal NwDat_int_reg : std_logic; |
|
39 | BTrigger : out std_logic_vector(11 downto 0); --! Registre contenant la valeur du diviseur de frequence pour la transmission | |
40 | signal receive : std_logic; |
|
40 | RDATA : out std_logic_vector(Data_sz-1 downto 0); --! Mot de donnee en provenance de l'utilisateur | |
41 |
|
41 | WDATA : in std_logic_vector(Data_sz-1 downto 0) --! Mot de donnee a transmettre a l'utilisateur | ||
42 | begin |
|
42 | ); | |
43 |
|
43 | end entity; | ||
44 |
|
44 | |||
45 | RDATA <= RDATA_int(8 downto 1); |
|
45 | ||
46 | WDATA_int <= '1' & WDATA & '0'; |
|
46 | --! @details Gestion de la Reception/Transmission donc de la Vectorisation/Serialisation | |
47 |
|
47 | --! ainsi que la detection et le reglage de le frequence de transmission optimale sur le bus (Generateur de Bauds) | ||
48 | BaudGenerator : BaudGen |
|
48 | architecture ar_UART of UART is | |
49 | port map(clk,reset,Capture,Bclk,RXD,BTrigger); |
|
49 | signal Bclk : std_logic; | |
50 |
|
50 | |||
51 |
|
51 | signal RDATA_int : std_logic_vector(Data_sz+1 downto 0); | ||
52 | RX_REG : Shift_REG |
|
52 | signal WDATA_int : std_logic_vector(Data_sz+1 downto 0); | |
53 | generic map(Data_sz+2) |
|
53 | ||
54 | port map(clk,Bclk,reset,RXD,TXD_Dummy,receive,NwDat_int,(others => '0'),RDATA_int); |
|
54 | signal TXD_Dummy : std_logic; | |
55 |
|
55 | signal NwDat_int : std_logic; | ||
56 | TX_REG : Shift_REG |
|
56 | signal NwDat_int_reg : std_logic; | |
57 | generic map(Data_sz+2) |
|
57 | signal receive : std_logic; | |
58 | port map(clk,Bclk,reset,'1',TXD,Send,Sended,WDATA_int); |
|
58 | ||
59 |
|
59 | begin | ||
60 |
|
60 | |||
61 |
|
61 | |||
62 | process(clk,reset) |
|
62 | RDATA <= RDATA_int(8 downto 1); | |
63 | begin |
|
63 | WDATA_int <= '1' & WDATA & '0'; | |
64 | if reset = '0' then |
|
64 | ||
65 | NwDat <= '0'; |
|
65 | BaudGenerator : BaudGen | |
66 | elsif clk'event and clk = '1' then |
|
66 | port map(clk,reset,Capture,Bclk,RXD,BTrigger); | |
67 | NwDat_int_reg <= NwDat_int; |
|
67 | ||
68 | if RXD = '1' and NwDat_int = '1' then |
|
68 | ||
69 | receive <= '0'; |
|
69 | RX_REG : Shift_REG | |
70 | elsif RXD = '0' then |
|
70 | generic map(Data_sz+2) | |
71 | receive <= '1'; |
|
71 | port map(clk,Bclk,reset,RXD,TXD_Dummy,receive,NwDat_int,(others => '0'),RDATA_int); | |
72 | end if; |
|
72 | ||
73 | if NwDat_int_reg = '0' and NwDat_int = '1' then |
|
73 | TX_REG : Shift_REG | |
74 | NwDat <= '1'; |
|
74 | generic map(Data_sz+2) | |
75 | elsif ack = '1' then |
|
75 | port map(clk,Bclk,reset,'1',TXD,Send,Sended,WDATA_int); | |
76 | NwDat <= '0'; |
|
76 | ||
77 | end if; |
|
77 | ||
78 | end if; |
|
78 | ||
79 | end process; |
|
79 | process(clk,reset) | |
80 |
|
80 | begin | ||
81 | end ar_UART; No newline at end of file |
|
81 | if reset = '0' then | |
|
82 | NwDat <= '0'; | |||
|
83 | elsif clk'event and clk = '1' then | |||
|
84 | NwDat_int_reg <= NwDat_int; | |||
|
85 | if RXD = '1' and NwDat_int = '1' then | |||
|
86 | receive <= '0'; | |||
|
87 | elsif RXD = '0' then | |||
|
88 | receive <= '1'; | |||
|
89 | end if; | |||
|
90 | if NwDat_int_reg = '0' and NwDat_int = '1' then | |||
|
91 | NwDat <= '1'; | |||
|
92 | elsif ack = '1' then | |||
|
93 | NwDat <= '0'; | |||
|
94 | end if; | |||
|
95 | end if; | |||
|
96 | end process; | |||
|
97 | ||||
|
98 | end ar_UART; |
@@ -1,81 +1,97 | |||||
1 | library ieee; |
|
1 | ------------------------------------------------------------------------------ | |
2 | use ieee.std_logic_1164.all; |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | library grlib; |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | use grlib.amba.all; |
|
4 | -- | |
5 | -- pragma translate_off |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | use std.textio.all; |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- pragma translate_on |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | library lpp; |
|
8 | -- (at your option) any later version. | |
9 | use lpp.lpp_amba.all; |
|
9 | -- | |
10 |
|
10 | -- This program is distributed in the hope that it will be useful, | ||
11 | package lpp_uart is |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 |
|
13 | -- GNU General Public License for more details. | ||
14 | component APB_UART is |
|
14 | -- | |
15 | generic ( |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | pindex : integer := 0; |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | paddr : integer := 0; |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | pmask : integer := 16#fff#; |
|
18 | ------------------------------------------------------------------------------- | |
19 | pirq : integer := 0; |
|
19 | library ieee; | |
20 | abits : integer := 8; |
|
20 | use ieee.std_logic_1164.all; | |
21 | Data_sz : integer := 8); |
|
21 | library grlib; | |
22 | port ( |
|
22 | use grlib.amba.all; | |
23 | clk : in std_logic; |
|
23 | -- pragma translate_off | |
24 | rst : in std_logic; |
|
24 | use std.textio.all; | |
25 | apbi : in apb_slv_in_type; |
|
25 | -- pragma translate_on | |
26 | apbo : out apb_slv_out_type; |
|
26 | library lpp; | |
27 | TXD : out std_logic; |
|
27 | use lpp.lpp_amba.all; | |
28 | RXD : in std_logic |
|
28 | ||
29 | ); |
|
29 | package lpp_uart is | |
30 | end component; |
|
30 | ||
31 |
|
31 | component UART is | ||
32 |
|
32 | generic(Data_sz : integer := 8); --! Constante de taille pour un mot de donnee | ||
33 | component UART is |
|
33 | port( | |
34 | generic(Data_sz : integer := 8); --! Constante de taille pour un mot de donnee |
|
34 | clk : in std_logic; --! Horloge a 25Mhz du systeme | |
35 | port( |
|
35 | reset : in std_logic; --! Reset du systeme | |
36 |
|
|
36 | TXD : out std_logic; --! Transmission, cote PC | |
37 |
|
|
37 | RXD : in std_logic; --! Reception, cote PC | |
38 | TXD : out std_logic; --! Transmission, cote PC |
|
38 | Capture : in std_logic; --! "Reset" cible pour le generateur de bauds, ici indissocie du reset global | |
39 |
|
|
39 | NwDat : out std_logic; --! Flag, Nouvelle donnee presente | |
40 |
|
|
40 | ACK : in std_logic; --! Flag, Reponse au flag precedent | |
41 |
|
|
41 | Send : in std_logic; --! Flag, Demande d'envoi sur le bus | |
42 |
|
|
42 | Sended : out std_logic; --! Flag, Envoi termine | |
43 | Send : in std_logic; --! Flag, Demande d'envoi sur le bus |
|
43 | BTrigger : out std_logic_vector(11 downto 0); --! Registre contenant la valeur du diviseur de frequence pour la transmission | |
44 | Sended : out std_logic; --! Flag, Envoi termine |
|
44 | RDATA : out std_logic_vector(Data_sz-1 downto 0); --! Mot de donnee en provenance de l'utilisateur | |
45 | BTrigger : out std_logic_vector(11 downto 0); --! Registre contenant la valeur du diviseur de frequence pour la transmission |
|
45 | WDATA : in std_logic_vector(Data_sz-1 downto 0) --! Mot de donnee a transmettre a l'utilisateur | |
46 | RDATA : out std_logic_vector(Data_sz-1 downto 0); --! Mot de donnee en provenance de l'utilisateur |
|
46 | ); | |
47 | WDATA : in std_logic_vector(Data_sz-1 downto 0) --! Mot de donnee a transmettre a l'utilisateur |
|
47 | end component; | |
48 | ); |
|
48 | ||
49 | end component; |
|
49 | ||
50 |
|
50 | component Shift_REG is | ||
51 |
|
51 | generic(Data_sz : integer := 10); | ||
52 | component Shift_REG is |
|
52 | port( | |
53 | generic(Data_sz : integer := 10); |
|
53 | clk : in std_logic; | |
54 | port( |
|
54 | Sclk : in std_logic; | |
55 |
|
|
55 | reset : in std_logic; | |
56 |
S |
|
56 | SIN : in std_logic; | |
57 |
|
|
57 | SOUT : out std_logic; | |
58 |
S |
|
58 | Serialize : in std_logic; | |
59 |
S |
|
59 | Serialized : out std_logic; | |
60 | Serialize : in std_logic; |
|
60 | D : in std_logic_vector(Data_sz-1 downto 0); | |
61 | Serialized : out std_logic; |
|
61 | Q : out std_logic_vector(Data_sz-1 downto 0) | |
62 | D : in std_logic_vector(Data_sz-1 downto 0); |
|
62 | ||
63 | Q : out std_logic_vector(Data_sz-1 downto 0) |
|
63 | ); | |
64 |
|
64 | end component; | ||
65 | ); |
|
65 | ||
66 | end component; |
|
66 | ||
67 |
|
67 | component BaudGen is | ||
68 |
|
68 | port( | ||
69 | component BaudGen is |
|
69 | clk : in std_logic; | |
70 | port( |
|
70 | reset : in std_logic; | |
71 |
|
|
71 | Capture : in std_logic; | |
72 |
|
|
72 | Bclk : out std_logic; | |
73 |
|
|
73 | RXD : in std_logic; | |
74 | Bclk : out std_logic; |
|
74 | BTrigger : out std_logic_vector(11 downto 0) | |
75 | RXD : in std_logic; |
|
75 | ); | |
76 | BTrigger : out std_logic_vector(11 downto 0) |
|
76 | end component; | |
77 | ); |
|
77 | ||
78 | end component; |
|
78 | component APB_UART is | |
79 |
|
79 | generic ( | ||
80 |
|
80 | pindex : integer := 0; | ||
81 | end lpp_uart; No newline at end of file |
|
81 | paddr : integer := 0; | |
|
82 | pmask : integer := 16#fff#; | |||
|
83 | pirq : integer := 0; | |||
|
84 | abits : integer := 8; | |||
|
85 | Data_sz : integer := 8); | |||
|
86 | port ( | |||
|
87 | clk : in std_logic; | |||
|
88 | rst : in std_logic; | |||
|
89 | apbi : in apb_slv_in_type; | |||
|
90 | apbo : out apb_slv_out_type; | |||
|
91 | TXD : out std_logic; | |||
|
92 | RXD : in std_logic | |||
|
93 | ); | |||
|
94 | end component; | |||
|
95 | ||||
|
96 | ||||
|
97 | end lpp_uart; |
This diff has been collapsed as it changes many lines, (833 lines changed) Show them Hide them | |||||
@@ -1,622 +1,281 | |||||
1 | GNU GENERAL PUBLIC LICENSE |
|
1 | GNU GENERAL PUBLIC LICENSE | |
2 |
Version |
|
2 | Version 2, June 1991 | |
3 |
|
3 | |||
4 |
Copyright (C) |
|
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., | |
|
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
5 | Everyone is permitted to copy and distribute verbatim copies |
|
6 | Everyone is permitted to copy and distribute verbatim copies | |
6 | of this license document, but changing it is not allowed. |
|
7 | of this license document, but changing it is not allowed. | |
7 |
|
8 | |||
8 | Preamble |
|
9 | Preamble | |
9 |
|
10 | |||
10 | The GNU General Public License is a free, copyleft license for |
|
11 | The licenses for most software are designed to take away your | |
11 | software and other kinds of works. |
|
12 | freedom to share and change it. By contrast, the GNU General Public | |
12 |
|
13 | License is intended to guarantee your freedom to share and change free | ||
13 | The licenses for most software and other practical works are designed |
|
14 | software--to make sure the software is free for all its users. This | |
14 | to take away your freedom to share and change the works. By contrast, |
|
15 | General Public License applies to most of the Free Software | |
15 | the GNU General Public License is intended to guarantee your freedom to |
|
16 | Foundation's software and to any other program whose authors commit to | |
16 | share and change all versions of a program--to make sure it remains free |
|
17 | using it. (Some other Free Software Foundation software is covered by | |
17 | software for all its users. We, the Free Software Foundation, use the |
|
18 | the GNU Lesser General Public License instead.) You can apply it to | |
18 | GNU General Public License for most of our software; it applies also to |
|
|||
19 | any other work released this way by its authors. You can apply it to |
|
|||
20 | your programs, too. |
|
19 | your programs, too. | |
21 |
|
20 | |||
22 | When we speak of free software, we are referring to freedom, not |
|
21 | When we speak of free software, we are referring to freedom, not | |
23 | price. Our General Public Licenses are designed to make sure that you |
|
22 | price. Our General Public Licenses are designed to make sure that you | |
24 | have the freedom to distribute copies of free software (and charge for |
|
23 | have the freedom to distribute copies of free software (and charge for | |
25 |
th |
|
24 | this service if you wish), that you receive source code or can get it | |
26 |
want it, that you can change the software or use pieces of it |
|
25 | if you want it, that you can change the software or use pieces of it | |
27 |
free programs |
|
26 | in new free programs; and that you know you can do these things. | |
28 |
|
27 | |||
29 |
To protect your rights, we need to |
|
28 | To protect your rights, we need to make restrictions that forbid | |
30 |
these rights or ask |
|
29 | anyone to deny you these rights or to ask you to surrender the rights. | |
31 | certain responsibilities if you distribute copies of the software, or if |
|
30 | These restrictions translate to certain responsibilities for you if you | |
32 | you modify it: responsibilities to respect the freedom of others. |
|
31 | distribute copies of the software, or if you modify it. | |
33 |
|
32 | |||
34 | For example, if you distribute copies of such a program, whether |
|
33 | For example, if you distribute copies of such a program, whether | |
35 |
gratis or for a fee, you must |
|
34 | gratis or for a fee, you must give the recipients all the rights that | |
36 |
|
|
35 | you have. You must make sure that they, too, receive or can get the | |
37 |
|
|
36 | source code. And you must show them these terms so they know their | |
38 | know their rights. |
|
37 | rights. | |
39 |
|
38 | |||
40 | Developers that use the GNU GPL protect your rights with two steps: |
|
39 | We protect your rights with two steps: (1) copyright the software, and | |
41 | (1) assert copyright on the software, and (2) offer you this License |
|
40 | (2) offer you this license which gives you legal permission to copy, | |
42 | giving you legal permission to copy, distribute and/or modify it. |
|
41 | distribute and/or modify the software. | |
43 |
|
||||
44 | For the developers' and authors' protection, the GPL clearly explains |
|
|||
45 | that there is no warranty for this free software. For both users' and |
|
|||
46 | authors' sake, the GPL requires that modified versions be marked as |
|
|||
47 | changed, so that their problems will not be attributed erroneously to |
|
|||
48 | authors of previous versions. |
|
|||
49 |
|
42 | |||
50 | Some devices are designed to deny users access to install or run |
|
43 | Also, for each author's protection and ours, we want to make certain | |
51 | modified versions of the software inside them, although the manufacturer |
|
44 | that everyone understands that there is no warranty for this free | |
52 | can do so. This is fundamentally incompatible with the aim of |
|
45 | software. If the software is modified by someone else and passed on, we | |
53 | protecting users' freedom to change the software. The systematic |
|
46 | want its recipients to know that what they have is not the original, so | |
54 | pattern of such abuse occurs in the area of products for individuals to |
|
47 | that any problems introduced by others will not reflect on the original | |
55 | use, which is precisely where it is most unacceptable. Therefore, we |
|
48 | authors' reputations. | |
56 | have designed this version of the GPL to prohibit the practice for those |
|
|||
57 | products. If such problems arise substantially in other domains, we |
|
|||
58 | stand ready to extend this provision to those domains in future versions |
|
|||
59 | of the GPL, as needed to protect the freedom of users. |
|
|||
60 |
|
49 | |||
61 |
Finally, e |
|
50 | Finally, any free program is threatened constantly by software | |
62 | States should not allow patents to restrict development and use of |
|
51 | patents. We wish to avoid the danger that redistributors of a free | |
63 | software on general-purpose computers, but in those that do, we wish to |
|
52 | program will individually obtain patent licenses, in effect making the | |
64 | avoid the special danger that patents applied to a free program could |
|
53 | program proprietary. To prevent this, we have made it clear that any | |
65 | make it effectively proprietary. To prevent this, the GPL assures that |
|
54 | patent must be licensed for everyone's free use or not licensed at all. | |
66 | patents cannot be used to render the program non-free. |
|
|||
67 |
|
55 | |||
68 | The precise terms and conditions for copying, distribution and |
|
56 | The precise terms and conditions for copying, distribution and | |
69 | modification follow. |
|
57 | modification follow. | |
70 |
|
58 | |||
71 |
|
|
59 | GNU GENERAL PUBLIC LICENSE | |
72 |
|
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
73 | 0. Definitions. |
|
|||
74 |
|
||||
75 | "This License" refers to version 3 of the GNU General Public License. |
|
|||
76 |
|
||||
77 | "Copyright" also means copyright-like laws that apply to other kinds of |
|
|||
78 | works, such as semiconductor masks. |
|
|||
79 |
|
||||
80 | "The Program" refers to any copyrightable work licensed under this |
|
|||
81 | License. Each licensee is addressed as "you". "Licensees" and |
|
|||
82 | "recipients" may be individuals or organizations. |
|
|||
83 |
|
||||
84 | To "modify" a work means to copy from or adapt all or part of the work |
|
|||
85 | in a fashion requiring copyright permission, other than the making of an |
|
|||
86 | exact copy. The resulting work is called a "modified version" of the |
|
|||
87 | earlier work or a work "based on" the earlier work. |
|
|||
88 |
|
||||
89 | A "covered work" means either the unmodified Program or a work based |
|
|||
90 | on the Program. |
|
|||
91 |
|
61 | |||
92 | To "propagate" a work means to do anything with it that, without |
|
62 | 0. This License applies to any program or other work which contains | |
93 | permission, would make you directly or secondarily liable for |
|
63 | a notice placed by the copyright holder saying it may be distributed | |
94 | infringement under applicable copyright law, except executing it on a |
|
64 | under the terms of this General Public License. The "Program", below, | |
95 | computer or modifying a private copy. Propagation includes copying, |
|
65 | refers to any such program or work, and a "work based on the Program" | |
96 | distribution (with or without modification), making available to the |
|
66 | means either the Program or any derivative work under copyright law: | |
97 | public, and in some countries other activities as well. |
|
67 | that is to say, a work containing the Program or a portion of it, | |
98 |
|
68 | either verbatim or with modifications and/or translated into another | ||
99 | To "convey" a work means any kind of propagation that enables other |
|
69 | language. (Hereinafter, translation is included without limitation in | |
100 | parties to make or receive copies. Mere interaction with a user through |
|
70 | the term "modification".) Each licensee is addressed as "you". | |
101 | a computer network, with no transfer of a copy, is not conveying. |
|
|||
102 |
|
||||
103 | An interactive user interface displays "Appropriate Legal Notices" |
|
|||
104 | to the extent that it includes a convenient and prominently visible |
|
|||
105 | feature that (1) displays an appropriate copyright notice, and (2) |
|
|||
106 | tells the user that there is no warranty for the work (except to the |
|
|||
107 | extent that warranties are provided), that licensees may convey the |
|
|||
108 | work under this License, and how to view a copy of this License. If |
|
|||
109 | the interface presents a list of user commands or options, such as a |
|
|||
110 | menu, a prominent item in the list meets this criterion. |
|
|||
111 |
|
||||
112 | 1. Source Code. |
|
|||
113 |
|
71 | |||
114 | The "source code" for a work means the preferred form of the work |
|
72 | Activities other than copying, distribution and modification are not | |
115 | for making modifications to it. "Object code" means any non-source |
|
73 | covered by this License; they are outside its scope. The act of | |
116 | form of a work. |
|
74 | running the Program is not restricted, and the output from the Program | |
117 |
|
75 | is covered only if its contents constitute a work based on the | ||
118 | A "Standard Interface" means an interface that either is an official |
|
76 | Program (independent of having been made by running the Program). | |
119 | standard defined by a recognized standards body, or, in the case of |
|
77 | Whether that is true depends on what the Program does. | |
120 | interfaces specified for a particular programming language, one that |
|
|||
121 | is widely used among developers working in that language. |
|
|||
122 |
|
||||
123 | The "System Libraries" of an executable work include anything, other |
|
|||
124 | than the work as a whole, that (a) is included in the normal form of |
|
|||
125 | packaging a Major Component, but which is not part of that Major |
|
|||
126 | Component, and (b) serves only to enable use of the work with that |
|
|||
127 | Major Component, or to implement a Standard Interface for which an |
|
|||
128 | implementation is available to the public in source code form. A |
|
|||
129 | "Major Component", in this context, means a major essential component |
|
|||
130 | (kernel, window system, and so on) of the specific operating system |
|
|||
131 | (if any) on which the executable work runs, or a compiler used to |
|
|||
132 | produce the work, or an object code interpreter used to run it. |
|
|||
133 |
|
78 | |||
134 | The "Corresponding Source" for a work in object code form means all |
|
79 | 1. You may copy and distribute verbatim copies of the Program's | |
135 | the source code needed to generate, install, and (for an executable |
|
80 | source code as you receive it, in any medium, provided that you | |
136 | work) run the object code and to modify the work, including scripts to |
|
81 | conspicuously and appropriately publish on each copy an appropriate | |
137 | control those activities. However, it does not include the work's |
|
82 | copyright notice and disclaimer of warranty; keep intact all the | |
138 | System Libraries, or general-purpose tools or generally available free |
|
83 | notices that refer to this License and to the absence of any warranty; | |
139 | programs which are used unmodified in performing those activities but |
|
84 | and give any other recipients of the Program a copy of this License | |
140 | which are not part of the work. For example, Corresponding Source |
|
85 | along with the Program. | |
141 | includes interface definition files associated with source files for |
|
|||
142 | the work, and the source code for shared libraries and dynamically |
|
|||
143 | linked subprograms that the work is specifically designed to require, |
|
|||
144 | such as by intimate data communication or control flow between those |
|
|||
145 | subprograms and other parts of the work. |
|
|||
146 |
|
86 | |||
147 | The Corresponding Source need not include anything that users |
|
87 | You may charge a fee for the physical act of transferring a copy, and | |
148 | can regenerate automatically from other parts of the Corresponding |
|
88 | you may at your option offer warranty protection in exchange for a fee. | |
149 | Source. |
|
|||
150 |
|
||||
151 | The Corresponding Source for a work in source code form is that |
|
|||
152 | same work. |
|
|||
153 |
|
||||
154 | 2. Basic Permissions. |
|
|||
155 |
|
||||
156 | All rights granted under this License are granted for the term of |
|
|||
157 | copyright on the Program, and are irrevocable provided the stated |
|
|||
158 | conditions are met. This License explicitly affirms your unlimited |
|
|||
159 | permission to run the unmodified Program. The output from running a |
|
|||
160 | covered work is covered by this License only if the output, given its |
|
|||
161 | content, constitutes a covered work. This License acknowledges your |
|
|||
162 | rights of fair use or other equivalent, as provided by copyright law. |
|
|||
163 |
|
89 | |||
164 | You may make, run and propagate covered works that you do not |
|
90 | 2. You may modify your copy or copies of the Program or any portion | |
165 | convey, without conditions so long as your license otherwise remains |
|
91 | of it, thus forming a work based on the Program, and copy and | |
166 | in force. You may convey covered works to others for the sole purpose |
|
92 | distribute such modifications or work under the terms of Section 1 | |
167 | of having them make modifications exclusively for you, or provide you |
|
93 | above, provided that you also meet all of these conditions: | |
168 | with facilities for running those works, provided that you comply with |
|
|||
169 | the terms of this License in conveying all material for which you do |
|
|||
170 | not control copyright. Those thus making or running the covered works |
|
|||
171 | for you must do so exclusively on your behalf, under your direction |
|
|||
172 | and control, on terms that prohibit them from making any copies of |
|
|||
173 | your copyrighted material outside their relationship with you. |
|
|||
174 |
|
||||
175 | Conveying under any other circumstances is permitted solely under |
|
|||
176 | the conditions stated below. Sublicensing is not allowed; section 10 |
|
|||
177 | makes it unnecessary. |
|
|||
178 |
|
||||
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. |
|
|||
180 |
|
||||
181 | No covered work shall be deemed part of an effective technological |
|
|||
182 | measure under any applicable law fulfilling obligations under article |
|
|||
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or |
|
|||
184 | similar laws prohibiting or restricting circumvention of such |
|
|||
185 | measures. |
|
|||
186 |
|
94 | |||
187 | When you convey a covered work, you waive any legal power to forbid |
|
95 | a) You must cause the modified files to carry prominent notices | |
188 | circumvention of technological measures to the extent such circumvention |
|
96 | stating that you changed the files and the date of any change. | |
189 | is effected by exercising rights under this License with respect to |
|
|||
190 | the covered work, and you disclaim any intention to limit operation or |
|
|||
191 | modification of the work as a means of enforcing, against the work's |
|
|||
192 | users, your or third parties' legal rights to forbid circumvention of |
|
|||
193 | technological measures. |
|
|||
194 |
|
||||
195 | 4. Conveying Verbatim Copies. |
|
|||
196 |
|
97 | |||
197 | You may convey verbatim copies of the Program's source code as you |
|
98 | b) You must cause any work that you distribute or publish, that in | |
198 | receive it, in any medium, provided that you conspicuously and |
|
99 | whole or in part contains or is derived from the Program or any | |
199 | appropriately publish on each copy an appropriate copyright notice; |
|
100 | part thereof, to be licensed as a whole at no charge to all third | |
200 | keep intact all notices stating that this License and any |
|
101 | parties under the terms of this License. | |
201 | non-permissive terms added in accord with section 7 apply to the code; |
|
|||
202 | keep intact all notices of the absence of any warranty; and give all |
|
|||
203 | recipients a copy of this License along with the Program. |
|
|||
204 |
|
||||
205 | You may charge any price or no price for each copy that you convey, |
|
|||
206 | and you may offer support or warranty protection for a fee. |
|
|||
207 |
|
||||
208 | 5. Conveying Modified Source Versions. |
|
|||
209 |
|
||||
210 | You may convey a work based on the Program, or the modifications to |
|
|||
211 | produce it from the Program, in the form of source code under the |
|
|||
212 | terms of section 4, provided that you also meet all of these conditions: |
|
|||
213 |
|
||||
214 | a) The work must carry prominent notices stating that you modified |
|
|||
215 | it, and giving a relevant date. |
|
|||
216 |
|
102 | |||
217 | b) The work must carry prominent notices stating that it is |
|
103 | c) If the modified program normally reads commands interactively | |
218 | released under this License and any conditions added under section |
|
104 | when run, you must cause it, when started running for such | |
219 | 7. This requirement modifies the requirement in section 4 to |
|
105 | interactive use in the most ordinary way, to print or display an | |
220 | "keep intact all notices". |
|
106 | announcement including an appropriate copyright notice and a | |
221 |
|
107 | notice that there is no warranty (or else, saying that you provide | ||
222 | c) You must license the entire work, as a whole, under this |
|
108 | a warranty) and that users may redistribute the program under | |
223 | License to anyone who comes into possession of a copy. This |
|
109 | these conditions, and telling the user how to view a copy of this | |
224 | License will therefore apply, along with any applicable section 7 |
|
110 | License. (Exception: if the Program itself is interactive but | |
225 | additional terms, to the whole of the work, and all its parts, |
|
111 | does not normally print such an announcement, your work based on | |
226 | regardless of how they are packaged. This License gives no |
|
112 | the Program is not required to print an announcement.) | |
227 | permission to license the work in any other way, but it does not |
|
|||
228 | invalidate such permission if you have separately received it. |
|
|||
229 |
|
||||
230 | d) If the work has interactive user interfaces, each must display |
|
|||
231 | Appropriate Legal Notices; however, if the Program has interactive |
|
|||
232 | interfaces that do not display Appropriate Legal Notices, your |
|
|||
233 | work need not make them do so. |
|
|||
234 |
|
||||
235 | A compilation of a covered work with other separate and independent |
|
|||
236 | works, which are not by their nature extensions of the covered work, |
|
|||
237 | and which are not combined with it such as to form a larger program, |
|
|||
238 | in or on a volume of a storage or distribution medium, is called an |
|
|||
239 | "aggregate" if the compilation and its resulting copyright are not |
|
|||
240 | used to limit the access or legal rights of the compilation's users |
|
|||
241 | beyond what the individual works permit. Inclusion of a covered work |
|
|||
242 | in an aggregate does not cause this License to apply to the other |
|
|||
243 | parts of the aggregate. |
|
|||
244 |
|
113 | |||
245 | 6. Conveying Non-Source Forms. |
|
114 | These requirements apply to the modified work as a whole. If | |
246 |
|
115 | identifiable sections of that work are not derived from the Program, | ||
247 | You may convey a covered work in object code form under the terms |
|
116 | and can be reasonably considered independent and separate works in | |
248 | of sections 4 and 5, provided that you also convey the |
|
117 | themselves, then this License, and its terms, do not apply to those | |
249 | machine-readable Corresponding Source under the terms of this License, |
|
118 | sections when you distribute them as separate works. But when you | |
250 | in one of these ways: |
|
119 | distribute the same sections as part of a whole which is a work based | |
251 |
|
120 | on the Program, the distribution of the whole must be on the terms of | ||
252 | a) Convey the object code in, or embodied in, a physical product |
|
121 | this License, whose permissions for other licensees extend to the | |
253 | (including a physical distribution medium), accompanied by the |
|
122 | entire whole, and thus to each and every part regardless of who wrote it. | |
254 | Corresponding Source fixed on a durable physical medium |
|
|||
255 | customarily used for software interchange. |
|
|||
256 |
|
||||
257 | b) Convey the object code in, or embodied in, a physical product |
|
|||
258 | (including a physical distribution medium), accompanied by a |
|
|||
259 | written offer, valid for at least three years and valid for as |
|
|||
260 | long as you offer spare parts or customer support for that product |
|
|||
261 | model, to give anyone who possesses the object code either (1) a |
|
|||
262 | copy of the Corresponding Source for all the software in the |
|
|||
263 | product that is covered by this License, on a durable physical |
|
|||
264 | medium customarily used for software interchange, for a price no |
|
|||
265 | more than your reasonable cost of physically performing this |
|
|||
266 | conveying of source, or (2) access to copy the |
|
|||
267 | Corresponding Source from a network server at no charge. |
|
|||
268 |
|
||||
269 | c) Convey individual copies of the object code with a copy of the |
|
|||
270 | written offer to provide the Corresponding Source. This |
|
|||
271 | alternative is allowed only occasionally and noncommercially, and |
|
|||
272 | only if you received the object code with such an offer, in accord |
|
|||
273 | with subsection 6b. |
|
|||
274 |
|
123 | |||
275 | d) Convey the object code by offering access from a designated |
|
124 | Thus, it is not the intent of this section to claim rights or contest | |
276 | place (gratis or for a charge), and offer equivalent access to the |
|
125 | your rights to work written entirely by you; rather, the intent is to | |
277 | Corresponding Source in the same way through the same place at no |
|
126 | exercise the right to control the distribution of derivative or | |
278 | further charge. You need not require recipients to copy the |
|
127 | collective works based on the Program. | |
279 | Corresponding Source along with the object code. If the place to |
|
|||
280 | copy the object code is a network server, the Corresponding Source |
|
|||
281 | may be on a different server (operated by you or a third party) |
|
|||
282 | that supports equivalent copying facilities, provided you maintain |
|
|||
283 | clear directions next to the object code saying where to find the |
|
|||
284 | Corresponding Source. Regardless of what server hosts the |
|
|||
285 | Corresponding Source, you remain obligated to ensure that it is |
|
|||
286 | available for as long as needed to satisfy these requirements. |
|
|||
287 |
|
||||
288 | e) Convey the object code using peer-to-peer transmission, provided |
|
|||
289 | you inform other peers where the object code and Corresponding |
|
|||
290 | Source of the work are being offered to the general public at no |
|
|||
291 | charge under subsection 6d. |
|
|||
292 |
|
128 | |||
293 | A separable portion of the object code, whose source code is excluded |
|
129 | In addition, mere aggregation of another work not based on the Program | |
294 | from the Corresponding Source as a System Library, need not be |
|
130 | with the Program (or with a work based on the Program) on a volume of | |
295 | included in conveying the object code work. |
|
131 | a storage or distribution medium does not bring the other work under | |
|
132 | the scope of this License. | |||
296 |
|
133 | |||
297 | A "User Product" is either (1) a "consumer product", which means any |
|
134 | 3. You may copy and distribute the Program (or a work based on it, | |
298 | tangible personal property which is normally used for personal, family, |
|
135 | under Section 2) in object code or executable form under the terms of | |
299 | or household purposes, or (2) anything designed or sold for incorporation |
|
136 | Sections 1 and 2 above provided that you also do one of the following: | |
300 | into a dwelling. In determining whether a product is a consumer product, |
|
|||
301 | doubtful cases shall be resolved in favor of coverage. For a particular |
|
|||
302 | product received by a particular user, "normally used" refers to a |
|
|||
303 | typical or common use of that class of product, regardless of the status |
|
|||
304 | of the particular user or of the way in which the particular user |
|
|||
305 | actually uses, or expects or is expected to use, the product. A product |
|
|||
306 | is a consumer product regardless of whether the product has substantial |
|
|||
307 | commercial, industrial or non-consumer uses, unless such uses represent |
|
|||
308 | the only significant mode of use of the product. |
|
|||
309 |
|
||||
310 | "Installation Information" for a User Product means any methods, |
|
|||
311 | procedures, authorization keys, or other information required to install |
|
|||
312 | and execute modified versions of a covered work in that User Product from |
|
|||
313 | a modified version of its Corresponding Source. The information must |
|
|||
314 | suffice to ensure that the continued functioning of the modified object |
|
|||
315 | code is in no case prevented or interfered with solely because |
|
|||
316 | modification has been made. |
|
|||
317 |
|
137 | |||
318 | If you convey an object code work under this section in, or with, or |
|
138 | a) Accompany it with the complete corresponding machine-readable | |
319 | specifically for use in, a User Product, and the conveying occurs as |
|
139 | source code, which must be distributed under the terms of Sections | |
320 | part of a transaction in which the right of possession and use of the |
|
140 | 1 and 2 above on a medium customarily used for software interchange; or, | |
321 | User Product is transferred to the recipient in perpetuity or for a |
|
|||
322 | fixed term (regardless of how the transaction is characterized), the |
|
|||
323 | Corresponding Source conveyed under this section must be accompanied |
|
|||
324 | by the Installation Information. But this requirement does not apply |
|
|||
325 | if neither you nor any third party retains the ability to install |
|
|||
326 | modified object code on the User Product (for example, the work has |
|
|||
327 | been installed in ROM). |
|
|||
328 |
|
||||
329 | The requirement to provide Installation Information does not include a |
|
|||
330 | requirement to continue to provide support service, warranty, or updates |
|
|||
331 | for a work that has been modified or installed by the recipient, or for |
|
|||
332 | the User Product in which it has been modified or installed. Access to a |
|
|||
333 | network may be denied when the modification itself materially and |
|
|||
334 | adversely affects the operation of the network or violates the rules and |
|
|||
335 | protocols for communication across the network. |
|
|||
336 |
|
||||
337 | Corresponding Source conveyed, and Installation Information provided, |
|
|||
338 | in accord with this section must be in a format that is publicly |
|
|||
339 | documented (and with an implementation available to the public in |
|
|||
340 | source code form), and must require no special password or key for |
|
|||
341 | unpacking, reading or copying. |
|
|||
342 |
|
||||
343 | 7. Additional Terms. |
|
|||
344 |
|
141 | |||
345 | "Additional permissions" are terms that supplement the terms of this |
|
142 | b) Accompany it with a written offer, valid for at least three | |
346 | License by making exceptions from one or more of its conditions. |
|
143 | years, to give any third party, for a charge no more than your | |
347 | Additional permissions that are applicable to the entire Program shall |
|
144 | cost of physically performing source distribution, a complete | |
348 | be treated as though they were included in this License, to the extent |
|
145 | machine-readable copy of the corresponding source code, to be | |
349 | that they are valid under applicable law. If additional permissions |
|
146 | distributed under the terms of Sections 1 and 2 above on a medium | |
350 | apply only to part of the Program, that part may be used separately |
|
147 | customarily used for software interchange; or, | |
351 | under those permissions, but the entire Program remains governed by |
|
|||
352 | this License without regard to the additional permissions. |
|
|||
353 |
|
||||
354 | When you convey a copy of a covered work, you may at your option |
|
|||
355 | remove any additional permissions from that copy, or from any part of |
|
|||
356 | it. (Additional permissions may be written to require their own |
|
|||
357 | removal in certain cases when you modify the work.) You may place |
|
|||
358 | additional permissions on material, added by you to a covered work, |
|
|||
359 | for which you have or can give appropriate copyright permission. |
|
|||
360 |
|
148 | |||
361 | Notwithstanding any other provision of this License, for material you |
|
149 | c) Accompany it with the information you received as to the offer | |
362 | add to a covered work, you may (if authorized by the copyright holders of |
|
150 | to distribute corresponding source code. (This alternative is | |
363 | that material) supplement the terms of this License with terms: |
|
151 | allowed only for noncommercial distribution and only if you | |
364 |
|
152 | received the program in object code or executable form with such | ||
365 | a) Disclaiming warranty or limiting liability differently from the |
|
153 | an offer, in accord with Subsection b above.) | |
366 | terms of sections 15 and 16 of this License; or |
|
|||
367 |
|
||||
368 | b) Requiring preservation of specified reasonable legal notices or |
|
|||
369 | author attributions in that material or in the Appropriate Legal |
|
|||
370 | Notices displayed by works containing it; or |
|
|||
371 |
|
||||
372 | c) Prohibiting misrepresentation of the origin of that material, or |
|
|||
373 | requiring that modified versions of such material be marked in |
|
|||
374 | reasonable ways as different from the original version; or |
|
|||
375 |
|
||||
376 | d) Limiting the use for publicity purposes of names of licensors or |
|
|||
377 | authors of the material; or |
|
|||
378 |
|
154 | |||
379 | e) Declining to grant rights under trademark law for use of some |
|
155 | The source code for a work means the preferred form of the work for | |
380 | trade names, trademarks, or service marks; or |
|
156 | making modifications to it. For an executable work, complete source | |
381 |
|
157 | code means all the source code for all modules it contains, plus any | ||
382 | f) Requiring indemnification of licensors and authors of that |
|
158 | associated interface definition files, plus the scripts used to | |
383 | material by anyone who conveys the material (or modified versions of |
|
159 | control compilation and installation of the executable. However, as a | |
384 | it) with contractual assumptions of liability to the recipient, for |
|
160 | special exception, the source code distributed need not include | |
385 | any liability that these contractual assumptions directly impose on |
|
161 | anything that is normally distributed (in either source or binary | |
386 | those licensors and authors. |
|
162 | form) with the major components (compiler, kernel, and so on) of the | |
387 |
|
163 | operating system on which the executable runs, unless that component | ||
388 | All other non-permissive additional terms are considered "further |
|
164 | itself accompanies the executable. | |
389 | restrictions" within the meaning of section 10. If the Program as you |
|
|||
390 | received it, or any part of it, contains a notice stating that it is |
|
|||
391 | governed by this License along with a term that is a further |
|
|||
392 | restriction, you may remove that term. If a license document contains |
|
|||
393 | a further restriction but permits relicensing or conveying under this |
|
|||
394 | License, you may add to a covered work material governed by the terms |
|
|||
395 | of that license document, provided that the further restriction does |
|
|||
396 | not survive such relicensing or conveying. |
|
|||
397 |
|
||||
398 | If you add terms to a covered work in accord with this section, you |
|
|||
399 | must place, in the relevant source files, a statement of the |
|
|||
400 | additional terms that apply to those files, or a notice indicating |
|
|||
401 | where to find the applicable terms. |
|
|||
402 |
|
165 | |||
403 | Additional terms, permissive or non-permissive, may be stated in the |
|
166 | If distribution of executable or object code is made by offering | |
404 | form of a separately written license, or stated as exceptions; |
|
167 | access to copy from a designated place, then offering equivalent | |
405 | the above requirements apply either way. |
|
168 | access to copy the source code from the same place counts as | |
406 |
|
169 | distribution of the source code, even though third parties are not | ||
407 | 8. Termination. |
|
170 | compelled to copy the source along with the object code. | |
408 |
|
||||
409 | You may not propagate or modify a covered work except as expressly |
|
|||
410 | provided under this License. Any attempt otherwise to propagate or |
|
|||
411 | modify it is void, and will automatically terminate your rights under |
|
|||
412 | this License (including any patent licenses granted under the third |
|
|||
413 | paragraph of section 11). |
|
|||
414 |
|
||||
415 | However, if you cease all violation of this License, then your |
|
|||
416 | license from a particular copyright holder is reinstated (a) |
|
|||
417 | provisionally, unless and until the copyright holder explicitly and |
|
|||
418 | finally terminates your license, and (b) permanently, if the copyright |
|
|||
419 | holder fails to notify you of the violation by some reasonable means |
|
|||
420 | prior to 60 days after the cessation. |
|
|||
421 |
|
||||
422 | Moreover, your license from a particular copyright holder is |
|
|||
423 | reinstated permanently if the copyright holder notifies you of the |
|
|||
424 | violation by some reasonable means, this is the first time you have |
|
|||
425 | received notice of violation of this License (for any work) from that |
|
|||
426 | copyright holder, and you cure the violation prior to 30 days after |
|
|||
427 | your receipt of the notice. |
|
|||
428 |
|
171 | |||
429 | Termination of your rights under this section does not terminate the |
|
172 | 4. You may not copy, modify, sublicense, or distribute the Program | |
430 | licenses of parties who have received copies or rights from you under |
|
173 | except as expressly provided under this License. Any attempt | |
431 | this License. If your rights have been terminated and not permanently |
|
174 | otherwise to copy, modify, sublicense or distribute the Program is | |
432 | reinstated, you do not qualify to receive new licenses for the same |
|
175 | void, and will automatically terminate your rights under this License. | |
433 | material under section 10. |
|
176 | However, parties who have received copies, or rights, from you under | |
434 |
|
177 | this License will not have their licenses terminated so long as such | ||
435 | 9. Acceptance Not Required for Having Copies. |
|
178 | parties remain in full compliance. | |
436 |
|
||||
437 | You are not required to accept this License in order to receive or |
|
|||
438 | run a copy of the Program. Ancillary propagation of a covered work |
|
|||
439 | occurring solely as a consequence of using peer-to-peer transmission |
|
|||
440 | to receive a copy likewise does not require acceptance. However, |
|
|||
441 | nothing other than this License grants you permission to propagate or |
|
|||
442 | modify any covered work. These actions infringe copyright if you do |
|
|||
443 | not accept this License. Therefore, by modifying or propagating a |
|
|||
444 | covered work, you indicate your acceptance of this License to do so. |
|
|||
445 |
|
||||
446 | 10. Automatic Licensing of Downstream Recipients. |
|
|||
447 |
|
||||
448 | Each time you convey a covered work, the recipient automatically |
|
|||
449 | receives a license from the original licensors, to run, modify and |
|
|||
450 | propagate that work, subject to this License. You are not responsible |
|
|||
451 | for enforcing compliance by third parties with this License. |
|
|||
452 |
|
179 | |||
453 | An "entity transaction" is a transaction transferring control of an |
|
180 | 5. You are not required to accept this License, since you have not | |
454 | organization, or substantially all assets of one, or subdividing an |
|
181 | signed it. However, nothing else grants you permission to modify or | |
455 | organization, or merging organizations. If propagation of a covered |
|
182 | distribute the Program or its derivative works. These actions are | |
456 | work results from an entity transaction, each party to that |
|
183 | prohibited by law if you do not accept this License. Therefore, by | |
457 | transaction who receives a copy of the work also receives whatever |
|
184 | modifying or distributing the Program (or any work based on the | |
458 | licenses to the work the party's predecessor in interest had or could |
|
185 | Program), you indicate your acceptance of this License to do so, and | |
459 | give under the previous paragraph, plus a right to possession of the |
|
186 | all its terms and conditions for copying, distributing or modifying | |
460 | Corresponding Source of the work from the predecessor in interest, if |
|
187 | the Program or works based on it. | |
461 | the predecessor has it or can get it with reasonable efforts. |
|
|||
462 |
|
188 | |||
463 | You may not impose any further restrictions on the exercise of the |
|
189 | 6. Each time you redistribute the Program (or any work based on the | |
464 | rights granted or affirmed under this License. For example, you may |
|
190 | Program), the recipient automatically receives a license from the | |
465 | not impose a license fee, royalty, or other charge for exercise of |
|
191 | original licensor to copy, distribute or modify the Program subject to | |
466 | rights granted under this License, and you may not initiate litigation |
|
192 | these terms and conditions. You may not impose any further | |
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that |
|
193 | restrictions on the recipients' exercise of the rights granted herein. | |
468 | any patent claim is infringed by making, using, selling, offering for |
|
194 | You are not responsible for enforcing compliance by third parties to | |
469 | sale, or importing the Program or any portion of it. |
|
|||
470 |
|
||||
471 | 11. Patents. |
|
|||
472 |
|
||||
473 | A "contributor" is a copyright holder who authorizes use under this |
|
|||
474 | License of the Program or a work on which the Program is based. The |
|
|||
475 | work thus licensed is called the contributor's "contributor version". |
|
|||
476 |
|
||||
477 | A contributor's "essential patent claims" are all patent claims |
|
|||
478 | owned or controlled by the contributor, whether already acquired or |
|
|||
479 | hereafter acquired, that would be infringed by some manner, permitted |
|
|||
480 | by this License, of making, using, or selling its contributor version, |
|
|||
481 | but do not include claims that would be infringed only as a |
|
|||
482 | consequence of further modification of the contributor version. For |
|
|||
483 | purposes of this definition, "control" includes the right to grant |
|
|||
484 | patent sublicenses in a manner consistent with the requirements of |
|
|||
485 | this License. |
|
195 | this License. | |
486 |
|
196 | |||
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free |
|
197 | 7. If, as a consequence of a court judgment or allegation of patent | |
488 | patent license under the contributor's essential patent claims, to |
|
198 | infringement or for any other reason (not limited to patent issues), | |
489 | make, use, sell, offer for sale, import and otherwise run, modify and |
|
199 | conditions are imposed on you (whether by court order, agreement or | |
490 | propagate the contents of its contributor version. |
|
200 | otherwise) that contradict the conditions of this License, they do not | |
491 |
|
201 | excuse you from the conditions of this License. If you cannot | ||
492 | In the following three paragraphs, a "patent license" is any express |
|
202 | distribute so as to satisfy simultaneously your obligations under this | |
493 | agreement or commitment, however denominated, not to enforce a patent |
|
203 | License and any other pertinent obligations, then as a consequence you | |
494 | (such as an express permission to practice a patent or covenant not to |
|
204 | may not distribute the Program at all. For example, if a patent | |
495 | sue for patent infringement). To "grant" such a patent license to a |
|
205 | license would not permit royalty-free redistribution of the Program by | |
496 | party means to make such an agreement or commitment not to enforce a |
|
206 | all those who receive copies directly or indirectly through you, then | |
497 | patent against the party. |
|
207 | the only way you could satisfy both it and this License would be to | |
|
208 | refrain entirely from distribution of the Program. | |||
498 |
|
209 | |||
499 | If you convey a covered work, knowingly relying on a patent license, |
|
210 | If any portion of this section is held invalid or unenforceable under | |
500 | and the Corresponding Source of the work is not available for anyone |
|
211 | any particular circumstance, the balance of the section is intended to | |
501 | to copy, free of charge and under the terms of this License, through a |
|
212 | apply and the section as a whole is intended to apply in other | |
502 | publicly available network server or other readily accessible means, |
|
213 | circumstances. | |
503 | then you must either (1) cause the Corresponding Source to be so |
|
|||
504 | available, or (2) arrange to deprive yourself of the benefit of the |
|
|||
505 | patent license for this particular work, or (3) arrange, in a manner |
|
|||
506 | consistent with the requirements of this License, to extend the patent |
|
|||
507 | license to downstream recipients. "Knowingly relying" means you have |
|
|||
508 | actual knowledge that, but for the patent license, your conveying the |
|
|||
509 | covered work in a country, or your recipient's use of the covered work |
|
|||
510 | in a country, would infringe one or more identifiable patents in that |
|
|||
511 | country that you have reason to believe are valid. |
|
|||
512 |
|
||||
513 | If, pursuant to or in connection with a single transaction or |
|
|||
514 | arrangement, you convey, or propagate by procuring conveyance of, a |
|
|||
515 | covered work, and grant a patent license to some of the parties |
|
|||
516 | receiving the covered work authorizing them to use, propagate, modify |
|
|||
517 | or convey a specific copy of the covered work, then the patent license |
|
|||
518 | you grant is automatically extended to all recipients of the covered |
|
|||
519 | work and works based on it. |
|
|||
520 |
|
214 | |||
521 | A patent license is "discriminatory" if it does not include within |
|
215 | It is not the purpose of this section to induce you to infringe any | |
522 | the scope of its coverage, prohibits the exercise of, or is |
|
216 | patents or other property right claims or to contest validity of any | |
523 | conditioned on the non-exercise of one or more of the rights that are |
|
217 | such claims; this section has the sole purpose of protecting the | |
524 | specifically granted under this License. You may not convey a covered |
|
218 | integrity of the free software distribution system, which is | |
525 | work if you are a party to an arrangement with a third party that is |
|
219 | implemented by public license practices. Many people have made | |
526 | in the business of distributing software, under which you make payment |
|
220 | generous contributions to the wide range of software distributed | |
527 | to the third party based on the extent of your activity of conveying |
|
221 | through that system in reliance on consistent application of that | |
528 | the work, and under which the third party grants, to any of the |
|
222 | system; it is up to the author/donor to decide if he or she is willing | |
529 | parties who would receive the covered work from you, a discriminatory |
|
223 | to distribute software through any other system and a licensee cannot | |
530 | patent license (a) in connection with copies of the covered work |
|
224 | impose that choice. | |
531 | conveyed by you (or copies made from those copies), or (b) primarily |
|
|||
532 | for and in connection with specific products or compilations that |
|
|||
533 | contain the covered work, unless you entered into that arrangement, |
|
|||
534 | or that patent license was granted, prior to 28 March 2007. |
|
|||
535 |
|
||||
536 | Nothing in this License shall be construed as excluding or limiting |
|
|||
537 | any implied license or other defenses to infringement that may |
|
|||
538 | otherwise be available to you under applicable patent law. |
|
|||
539 |
|
||||
540 | 12. No Surrender of Others' Freedom. |
|
|||
541 |
|
225 | |||
542 | If conditions are imposed on you (whether by court order, agreement or |
|
226 | This section is intended to make thoroughly clear what is believed to | |
543 | otherwise) that contradict the conditions of this License, they do not |
|
227 | be a consequence of the rest of this License. | |
544 | excuse you from the conditions of this License. If you cannot convey a |
|
|||
545 | covered work so as to satisfy simultaneously your obligations under this |
|
|||
546 | License and any other pertinent obligations, then as a consequence you may |
|
|||
547 | not convey it at all. For example, if you agree to terms that obligate you |
|
|||
548 | to collect a royalty for further conveying from those to whom you convey |
|
|||
549 | the Program, the only way you could satisfy both those terms and this |
|
|||
550 | License would be to refrain entirely from conveying the Program. |
|
|||
551 |
|
||||
552 | 13. Use with the GNU Affero General Public License. |
|
|||
553 |
|
228 | |||
554 | Notwithstanding any other provision of this License, you have |
|
229 | 8. If the distribution and/or use of the Program is restricted in | |
555 | permission to link or combine any covered work with a work licensed |
|
230 | certain countries either by patents or by copyrighted interfaces, the | |
556 | under version 3 of the GNU Affero General Public License into a single |
|
231 | original copyright holder who places the Program under this License | |
557 | combined work, and to convey the resulting work. The terms of this |
|
232 | may add an explicit geographical distribution limitation excluding | |
558 | License will continue to apply to the part which is the covered work, |
|
233 | those countries, so that distribution is permitted only in or among | |
559 | but the special requirements of the GNU Affero General Public License, |
|
234 | countries not thus excluded. In such case, this License incorporates | |
560 | section 13, concerning interaction through a network will apply to the |
|
235 | the limitation as if written in the body of this License. | |
561 | combination as such. |
|
|||
562 |
|
236 | |||
563 | 14. Revised Versions of this License. |
|
237 | 9. The Free Software Foundation may publish revised and/or new versions | |
564 |
|
238 | of the General Public License from time to time. Such new versions will | ||
565 | The Free Software Foundation may publish revised and/or new versions of |
|
|||
566 | the GNU General Public License from time to time. Such new versions will |
|
|||
567 | be similar in spirit to the present version, but may differ in detail to |
|
239 | be similar in spirit to the present version, but may differ in detail to | |
568 | address new problems or concerns. |
|
240 | address new problems or concerns. | |
569 |
|
241 | |||
570 |
|
|
242 | Each version is given a distinguishing version number. If the Program | |
571 | Program specifies that a certain numbered version of the GNU General |
|
243 | specifies a version number of this License which applies to it and "any | |
572 | Public License "or any later version" applies to it, you have the |
|
244 | later version", you have the option of following the terms and conditions | |
573 | option of following the terms and conditions either of that numbered |
|
245 | either of that version or of any later version published by the Free | |
574 | version or of any later version published by the Free Software |
|
246 | Software Foundation. If the Program does not specify a version number of | |
575 | Foundation. If the Program does not specify a version number of the |
|
247 | this License, you may choose any version ever published by the Free Software | |
576 | GNU General Public License, you may choose any version ever published |
|
248 | Foundation. | |
577 | by the Free Software Foundation. |
|
|||
578 |
|
249 | |||
579 | If the Program specifies that a proxy can decide which future |
|
250 | 10. If you wish to incorporate parts of the Program into other free | |
580 | versions of the GNU General Public License can be used, that proxy's |
|
251 | programs whose distribution conditions are different, write to the author | |
581 | public statement of acceptance of a version permanently authorizes you |
|
252 | to ask for permission. For software which is copyrighted by the Free | |
582 | to choose that version for the Program. |
|
253 | Software Foundation, write to the Free Software Foundation; we sometimes | |
|
254 | make exceptions for this. Our decision will be guided by the two goals | |||
|
255 | of preserving the free status of all derivatives of our free software and | |||
|
256 | of promoting the sharing and reuse of software generally. | |||
583 |
|
257 | |||
584 | Later license versions may give you additional or different |
|
258 | NO WARRANTY | |
585 | permissions. However, no additional obligations are imposed on any |
|
|||
586 | author or copyright holder as a result of your choosing to follow a |
|
|||
587 | later version. |
|
|||
588 |
|
||||
589 | 15. Disclaimer of Warranty. |
|
|||
590 |
|
259 | |||
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
|
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | |
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
|
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | |
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY |
|
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | |
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, |
|
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | |
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM |
|
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | |
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF |
|
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | |
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | |
599 |
|
268 | REPAIR OR CORRECTION. | ||
600 | 16. Limitation of Liability. |
|
|||
601 |
|
269 | |||
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |
603 |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO M |
|
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |
604 |
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |
605 |
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | |
606 |
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | |
607 |
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | |
608 |
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | |
609 |
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | |
610 | SUCH DAMAGES. |
|
278 | POSSIBILITY OF SUCH DAMAGES. | |
611 |
|
||||
612 | 17. Interpretation of Sections 15 and 16. |
|
|||
613 |
|
||||
614 | If the disclaimer of warranty and limitation of liability provided |
|
|||
615 | above cannot be given local legal effect according to their terms, |
|
|||
616 | reviewing courts shall apply local law that most closely approximates |
|
|||
617 | an absolute waiver of all civil liability in connection with the |
|
|||
618 | Program, unless a warranty or assumption of liability accompanies a |
|
|||
619 | copy of the Program in return for a fee. |
|
|||
620 |
|
279 | |||
621 | END OF TERMS AND CONDITIONS |
|
280 | END OF TERMS AND CONDITIONS | |
622 |
|
281 | |||
@@ -628,15 +287,15 free software which everyone can redistr | |||||
628 |
|
287 | |||
629 | To do so, attach the following notices to the program. It is safest |
|
288 | To do so, attach the following notices to the program. It is safest | |
630 | to attach them to the start of each source file to most effectively |
|
289 | to attach them to the start of each source file to most effectively | |
631 |
|
|
290 | convey the exclusion of warranty; and each file should have at least | |
632 | the "copyright" line and a pointer to where the full notice is found. |
|
291 | the "copyright" line and a pointer to where the full notice is found. | |
633 |
|
292 | |||
634 | <one line to give the program's name and a brief idea of what it does.> |
|
293 | <one line to give the program's name and a brief idea of what it does.> | |
635 | Copyright (C) <year> <name of author> |
|
294 | Copyright (C) <year> <name of author> | |
636 |
|
295 | |||
637 |
This program is free software |
|
296 | This program is free software; you can redistribute it and/or modify | |
638 | it under the terms of the GNU General Public License as published by |
|
297 | it under the terms of the GNU General Public License as published by | |
639 |
the Free Software Foundation |
|
298 | the Free Software Foundation; either version 2 of the License, or | |
640 | (at your option) any later version. |
|
299 | (at your option) any later version. | |
641 |
|
300 | |||
642 | This program is distributed in the hope that it will be useful, |
|
301 | This program is distributed in the hope that it will be useful, | |
@@ -644,31 +303,37 the "copyright" line and a pointer to wh | |||||
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
645 | GNU General Public License for more details. |
|
304 | GNU General Public License for more details. | |
646 |
|
305 | |||
647 | You should have received a copy of the GNU General Public License |
|
306 | You should have received a copy of the GNU General Public License along | |
648 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
307 | with this program; if not, write to the Free Software Foundation, Inc., | |
|
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |||
649 |
|
309 | |||
650 | Also add information on how to contact you by electronic and paper mail. |
|
310 | Also add information on how to contact you by electronic and paper mail. | |
651 |
|
311 | |||
652 |
|
|
312 | If the program is interactive, make it output a short notice like this | |
653 |
|
|
313 | when it starts in an interactive mode: | |
654 |
|
314 | |||
655 |
|
|
315 | Gnomovision version 69, Copyright (C) year name of author | |
656 |
|
|
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |
657 | This is free software, and you are welcome to redistribute it |
|
317 | This is free software, and you are welcome to redistribute it | |
658 | under certain conditions; type `show c' for details. |
|
318 | under certain conditions; type `show c' for details. | |
659 |
|
319 | |||
660 | The hypothetical commands `show w' and `show c' should show the appropriate |
|
320 | The hypothetical commands `show w' and `show c' should show the appropriate | |
661 |
parts of the General Public License. Of course, |
|
321 | parts of the General Public License. Of course, the commands you use may | |
662 | might be different; for a GUI interface, you would use an "about box". |
|
322 | be called something other than `show w' and `show c'; they could even be | |
|
323 | mouse-clicks or menu items--whatever suits your program. | |||
|
324 | ||||
|
325 | You should also get your employer (if you work as a programmer) or your | |||
|
326 | school, if any, to sign a "copyright disclaimer" for the program, if | |||
|
327 | necessary. Here is a sample; alter the names: | |||
663 |
|
328 | |||
664 | You should also get your employer (if you work as a programmer) or school, |
|
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program | |
665 | if any, to sign a "copyright disclaimer" for the program, if necessary. |
|
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. | |
666 | For more information on this, and how to apply and follow the GNU GPL, see |
|
331 | ||
667 | <http://www.gnu.org/licenses/>. |
|
332 | <signature of Ty Coon>, 1 April 1989 | |
|
333 | Ty Coon, President of Vice | |||
668 |
|
334 | |||
669 |
|
|
335 | This General Public License does not permit incorporating your program into | |
670 |
|
|
336 | proprietary programs. If your program is a subroutine library, you may | |
671 |
|
|
337 | consider it more useful to permit linking proprietary applications with the | |
672 |
|
|
338 | library. If this is what you want to do, use the GNU Lesser General | |
673 |
Public License instead of this License. |
|
339 | Public License instead of this License. | |
674 | <http://www.gnu.org/philosophy/why-not-lgpl.html>. |
|
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
@@ -33,15 +33,20 echo | |||||
33 | LPP_PATCHPATH=`pwd -L` |
|
33 | LPP_PATCHPATH=`pwd -L` | |
34 |
|
34 | |||
35 |
|
35 | |||
|
36 | cd $LPP_PATCHPATH/$3 | |||
|
37 | ||||
|
38 | echo $LPP_PATCHPATH/$3 | |||
|
39 | echo $LPP_PATCHPATH | |||
|
40 | ||||
36 | case $1 in |
|
41 | case $1 in | |
37 | -R | --recursive ) |
|
42 | -R | --recursive ) | |
38 |
for file in $(find . -name |
|
43 | for file in $(find . -name *.$2) | |
39 | do |
|
44 | do | |
40 | if(grep -q "This program is free software" $file); then |
|
45 | if(grep -q "This program is free software" $file); then | |
41 | echo "$file already contains GPL HEADER" |
|
46 | echo "$file already contains GPL HEADER" | |
42 | else |
|
47 | else | |
43 | echo "Modifying file : $file" |
|
48 | echo "Modifying file : $file" | |
44 |
more $LPP_PATCHPATH/licenses/GPL_V |
|
49 | more $LPP_PATCHPATH/licenses/GPL_V3/${2}HEADER >> $file.tmp | |
45 | cat $file >> $file.tmp |
|
50 | cat $file >> $file.tmp | |
46 | mv $file.tmp $file |
|
51 | mv $file.tmp $file | |
47 | fi |
|
52 | fi | |
@@ -50,18 +55,22 case $1 in | |||||
50 | -h | --help | --h | -help) |
|
55 | -h | --help | --h | -help) | |
51 | echo 'Help: |
|
56 | echo 'Help: | |
52 | This script add a GPL HEADER in all vhdl files. |
|
57 | This script add a GPL HEADER in all vhdl files. | |
53 |
|
58 | usage: sh GPL_Patcher.sh [-R] [extension] [path] | ||
54 | -R or --recurcive: |
|
59 | -R or --recurcive: | |
55 |
Analyse recurcively folders starting from $LPP_PATCHPATH |
|
60 | Analyse recurcively folders starting from $LPP_PATCHPATH | |
|
61 | extension | |||
|
62 | for example vhd,h,c | |||
|
63 | path | |||
|
64 | starting path' | |||
56 | ;; |
|
65 | ;; | |
57 | * ) |
|
66 | * ) | |
58 |
for file in $(ls *. |
|
67 | for file in $(ls *.$2) | |
59 | do |
|
68 | do | |
60 | if(grep -q "This program is free software" $file); then |
|
69 | if(grep -q "This program is free software" $file); then | |
61 | echo "$file already contains GPL HEADER" |
|
70 | echo "$file already contains GPL HEADER" | |
62 | else |
|
71 | else | |
63 | echo "Modifying file : $file" |
|
72 | echo "Modifying file : $file" | |
64 |
more $LPP_PATCHPATH/licenses/GPL_V |
|
73 | more $LPP_PATCHPATH/licenses/GPL_V3/${2}HEADER >> $file.tmp | |
65 | cat $file >> $file.tmp |
|
74 | cat $file >> $file.tmp | |
66 | mv $file.tmp $file |
|
75 | mv $file.tmp $file | |
67 | fi |
|
76 | fi | |
@@ -70,3 +79,4 case $1 in | |||||
70 |
|
79 | |||
71 | esac |
|
80 | esac | |
72 |
|
81 | |||
|
82 | cd $LPP_PATCHPATH |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 | -- |
|
9 | -- | |
10 | -- This program is free software; you can redistribute it and/or modify |
|
10 | -- This program is free software; you can redistribute it and/or modify | |
11 | -- it under the terms of the GNU General Public License as published by |
|
11 | -- it under the terms of the GNU General Public License as published by | |
12 |
-- the Free Software Foundation; either version |
|
12 | -- the Free Software Foundation; either version 3 of the License, or | |
13 | -- (at your option) any later version. |
|
13 | -- (at your option) any later version. | |
14 | -- |
|
14 | -- | |
15 | -- This program is distributed in the hope that it will be useful, |
|
15 | -- This program is distributed in the hope that it will be useful, |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, |
@@ -9,7 +9,7 echo '---------------------------------- | |||||
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 |
the Free Software Foundation; either version |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (854 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (1719 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now