OpenCores
URL https://opencores.org/ocsvn/tv80/tv80/trunk

Subversion Repositories tv80

[/] [tv80/] [trunk/] [doc/] [rgen_doc.html] - Blame information for rev 110

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 110 ghutchis
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en"><head>
3
 
4
 
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>rgen.py [TV80 Design]</title>
6
 
7
 
8
  <meta name="generator" content="DokuWiki Release rc2006-10-08">
9
<meta name="robots" content="index,follow">
10
<meta name="date" content="2011-02-24T16:12:15-0800">
11
<meta name="keywords" content="rgen.py">
12
<link rel="start" href="http://192.168.1.1/dokuwiki/">
13
<link rel="contents" href="http://192.168.1.1/dokuwiki/doku.php?id=rgen.py&amp;do=index" title="Index">
14
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="http://192.168.1.1/dokuwiki/feed.php">
15
<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="http://192.168.1.1/dokuwiki/feed.php?mode=list&amp;ns=">
16
<link rel="alternate" type="text/html" title="Plain HTML" href="http://192.168.1.1/dokuwiki/doku.php?do=export_xhtml&amp;id=rgen.py">
17
<link rel="alternate" type="text/plain" title="Wiki Markup" href="http://192.168.1.1/dokuwiki/doku.php?do=export_raw&amp;id=rgen.py">
18
<link rel="stylesheet" media="screen" type="text/css" href="rgen_doc_files/css.php">
19
<link rel="stylesheet" media="print" type="text/css" href="rgen_doc_files/css_002.php">
20
<script type="text/javascript" charset="utf-8" src="rgen_doc_files/js.php"></script>
21
 
22
  <link rel="shortcut icon" href="http://192.168.1.1/dokuwiki/lib/tpl/default/images/favicon.ico"></head><body>
23
<div class="dokuwiki">
24
 
25
  <div class="stylehead">
26
 
27
    <div class="header">
28
      <div class="pagename">
29
        [[<a href="http://192.168.1.1/dokuwiki/doku.php?id=rgen.py&amp;do=backlink">rgen.py</a>]]
30
      </div>
31
      <div class="logo">
32
        <a href="http://192.168.1.1/dokuwiki/doku.php?id=" name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[ALT+H]">TV80 Design</a>      </div>
33
 
34
      <div class="clearer"></div>
35
    </div>
36
 
37
 
38
    <div class="bar" id="bar__top">
39
      <div class="bar-left" id="bar__topleft">
40
        <form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="rev" value="" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit this page" class="button" accesskey="e" title="Edit this page [ALT+E]" type="submit"></div></form>        <form class="button" method="get" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="revisions" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Old revisions" class="button" accesskey="o" title="Old revisions [ALT+O]" type="submit"></div></form>      </div>
41
 
42
      <div class="bar-right" id="bar__topright">
43
        <form class="button" method="get" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="recent" type="hidden"><input name="id" value="" type="hidden"><input value="Recent changes" class="button" accesskey="r" title="Recent changes [ALT+R]" type="submit"></div></form>        <form action="/dokuwiki/doku.php?id=" accept-charset="utf-8" class="search" id="dw__search"><div class="no"><input name="do" value="search" type="hidden"><input id="qsearch__in" accesskey="f" name="id" class="edit" title="[ALT+F]" type="text"><input value="Search" class="button" title="Search" type="submit"><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>&nbsp;
44
      </div>
45
 
46
      <div class="clearer"></div>
47
    </div>
48
 
49
        <div class="breadcrumbs">
50
      Trace: <span class="bcsep">»</span> <a href="http://192.168.1.1/dokuwiki/doku.php?id=start" class="breadcrumbs" title="start">start</a> <span class="bcsep">»</span> <span class="curid"><a href="http://192.168.1.1/dokuwiki/doku.php?id=rgen.py" class="breadcrumbs" title="rgen.py">rgen.py</a></span>          </div>
51
 
52
 
53
  </div>
54
 
55
 
56
  <div class="page">
57
    <!-- wikipage start -->
58
    <div class="toc">
59
<div class="tocheader toctoggle" id="toc__header"><img alt="-" src="rgen_doc_files/arrow_up.gif" id="toc__hide"><img style="display: none;" alt="+" src="rgen_doc_files/arrow_down.gif" id="toc__show">Table of Contents</div>
60
<div id="toc__inside">
61
 
62
<ul class="toc">
63
<li class="level1"><div class="li"><span class="li"><a href="#rgen_register_file_and_decoder_generator" class="toc">rgen Register File and Decoder Generator</a></span></div></li>
64
<li class="level1"><div class="li"><span class="li"><a href="#register_file_generator" class="toc">Register File Generator</a></span></div>
65
<ul class="toc">
66
<li class="level2"><div class="li"><span class="li"><a href="#tag_definitions" class="toc">Tag Definitions</a></span></div>
67
<ul class="toc">
68
<li class="level3"><div class="li"><span class="li"><a href="#config" class="toc">config</a></span></div></li>
69
<li class="level3"><div class="li"><span class="li"><a href="#status" class="toc">status</a></span></div></li>
70
<li class="level3"><div class="li"><span class="li"><a href="#count" class="toc">count</a></span></div></li>
71
<li class="level3"><div class="li"><span class="li"><a href="#int_msk" class="toc">int_msk</a></span></div></li>
72
<li class="level3"><div class="li"><span class="li"><a href="#soft_set" class="toc">soft_set</a></span></div></li>
73
<li class="level3"><div class="li"><span class="li"><a href="#write_stb" class="toc">write_stb</a></span></div></li>
74
<li class="level3"><div class="li"><span class="li"><a href="#read_stb" class="toc">read_stb</a></span></div></li>
75
<li class="level3"><div class="li"><span class="li"><a href="#ext_load" class="toc">ext_load</a></span></div></li>
76
<li class="level3"><div class="li"><span class="li"><a href="#user" class="toc">user</a></span></div></li>
77
</ul>
78
</li>
79
</ul>
80
</li>
81
<li class="level1"><div class="li"><span class="li"><a href="#decoder_generator" class="toc">Decoder Generator</a></span></div></li></ul>
82
</div>
83
</div>
84
 
85
 
86
 
87
<h1><a name="rgen_register_file_and_decoder_generator" id="rgen_register_file_and_decoder_generator">rgen Register File and Decoder Generator</a></h1>
88
<div class="level1">
89
 
90
<p> rgen is a Python script for generating a hierarchical set of
91
register files and address decoders. It supports a variety of register
92
types and multiple levels of address decoding hieararchy.
93
</p>
94
 
95
</div>
96
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="1-248" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="rgen Register File and Decoder Generator" type="submit"></div></form></div>
97
<h1><a name="register_file_generator" id="register_file_generator">Register File Generator</a></h1>
98
<div class="level1">
99
 
100
</div>
101
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="249-286" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="Register File Generator" type="submit"></div></form></div>
102
<h2><a name="tag_definitions" id="tag_definitions">Tag Definitions</a></h2>
103
<div class="level2">
104
<table class="inline">
105
        <tbody><tr>
106
                <th>tag name</th><th>attributes</th><th>description</th>
107
        </tr>
108
        <tr>
109
                <td>tv_registers</td><td>name,addr_sz,data_sz,base_addr,registered_read</td><td>top-level tag for a register file</td>
110
        </tr>
111
        <tr>
112
                <td>register</td><td>name,type,width,default</td><td>tag for a single logical register</td>
113
        </tr>
114
        <tr>
115
                <td>field</td><td>name,width,default</td><td>tag for a bit field within a single register</td>
116
        </tr>
117
</tbody></table>
118
<table class="inline">
119
        <tbody><tr>
120
                <th>register type</th><th>Access</th><th>description</th>
121
        </tr>
122
        <tr>
123
                <td><a href="#config" title="rgen.py ↵" class="wikilink1">config</a></td><td>RW</td><td>General read-write configuration register</td>
124
        </tr>
125
        <tr>
126
                <td><a href="#status" title="rgen.py ↵" class="wikilink1">status</a></td><td>RO</td><td>Read-only status register</td>
127
        </tr>
128
        <tr>
129
                <td><a href="#count" title="rgen.py ↵" class="wikilink1">count</a></td><td>RW</td><td>Incrementing statistics register</td>
130
        </tr>
131
        <tr>
132
                <td><a href="#int_msk" title="rgen.py ↵" class="wikilink1">int_msk</a></td><td>Special</td><td>Interrupt status &amp; mask registers</td>
133
        </tr>
134
        <tr>
135
                <td><a href="#soft_set" title="rgen.py ↵" class="wikilink1">soft_set</a></td><td>RW</td><td>Software set, hardware clear register</td>
136
        </tr>
137
        <tr>
138
                <td><a href="#write_stb" title="rgen.py ↵" class="wikilink1">write_stb</a></td><td>RW</td><td>Configuration register with additional strobe output</td>
139
        </tr>
140
        <tr>
141
                <td><a href="#read_stb" title="rgen.py ↵" class="wikilink1">read_stb</a></td><td>RW</td><td>Configuration register with additional strobe outout</td>
142
        </tr>
143
        <tr>
144
                <td><a href="#ext_load" title="rgen.py ↵" class="wikilink1">ext_load</a></td><td>RW</td><td>External-load register</td>
145
        </tr>
146
        <tr>
147
                <td><a href="#user" title="rgen.py ↵" class="wikilink1">user</a></td><td>Special</td><td>User-defined pass-through register</td>
148
        </tr>
149
</tbody></table>
150
 
151
</div>
152
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="287-1131" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="Tag Definitions" type="submit"></div></form></div>
153
<h3><a name="config" id="config">config</a></h3>
154
<div class="level3">
155
<table class="inline">
156
        <tbody><tr>
157
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
158
        </tr>
159
        <tr>
160
                <td>NAME</td><td>output</td><td>WIDTH</td><td>Read-only value of config bits</td>
161
        </tr>
162
</tbody></table>
163
 
164
<p>
165
 Basic configuration register, read/write by the configuration side, register bits available read-only from the hardware side.
166
</p>
167
 
168
</div>
169
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="1132-1367" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="config" type="submit"></div></form></div>
170
<h3><a name="status" id="status">status</a></h3>
171
<div class="level3">
172
<table class="inline">
173
        <tbody><tr>
174
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
175
        </tr>
176
        <tr>
177
                <td>NAME</td><td>input</td><td>WIDTH</td><td>status input bits</td>
178
        </tr>
179
</tbody></table>
180
 
181
<p>
182
 Status register, read-only by the config side, status bits are combinatorial input from the hardware side.
183
</p>
184
 
185
</div>
186
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="1368-1570" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="status" type="submit"></div></form></div>
187
<h3><a name="count" id="count">count</a></h3>
188
<div class="level3">
189
<table class="inline">
190
        <tbody><tr>
191
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
192
        </tr>
193
        <tr>
194
                <td>NAME</td><td>output</td><td>WIDTH</td><td>current count value</td>
195
        </tr>
196
        <tr>
197
                <td>NAME_inc</td><td>input</td><td>1</td><td>When high, increment count by 1</td>
198
        </tr>
199
</tbody></table>
200
 
201
<p> Basic statistics register. Read/write by config side, count value
202
available read-only from hardware side. Increment value provided for
203
hardware side.
204
</p>
205
 
206
</div>
207
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="1571-1871" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="count" type="submit"></div></form></div>
208
<h3><a name="int_msk" id="int_msk">int_msk</a></h3>
209
<div class="level3">
210
<table class="inline">
211
        <tbody><tr>
212
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
213
        </tr>
214
        <tr>
215
                <td>NAME_set</td><td>input</td><td>WIDTH</td><td>set interrupt</td>
216
        </tr>
217
</tbody></table>
218
 
219
<p> The int_msk register type provides a pair of interrupt registers.
220
The first register is the interrupt status register, and the second is
221
the interrupt mask register. The interrupt status register can be set
222
by hardware and cleared by software by writing a ‘1’ to the bit which
223
should be cleared. Software cannot set any bits in the interrupt
224
register, and writing ‘0’ to a bit has no effect (leave unchanged).
225
</p>
226
 
227
<p>The paired mask register has the same number of bits as the status
228
register, but each bit set in the mask register disables interrupt
229
generation for the corresponding status bit. Note that even if
230
interrupt generation is disabled, the status bit will still be set. The
231
mask register is Read/Write by software.
232
</p>
233
 
234
<p>The default attribute for this register type sets the default value
235
of the mask register; the default value of the status register is
236
always zero.
237
</p>
238
 
239
</div>
240
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="1872-2842" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="int_msk" type="submit"></div></form></div>
241
<h3><a name="soft_set" id="soft_set">soft_set</a></h3>
242
<div class="level3">
243
<table class="inline">
244
        <tbody><tr>
245
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
246
        </tr>
247
        <tr>
248
                <td>NAME</td><td>output</td><td>WIDTH</td><td>Read-only value of config bits</td>
249
        </tr>
250
        <tr>
251
                <td>NAME_clr</td><td>input</td><td>WIDTH</td><td>Read-only value of config bits</td>
252
        </tr>
253
</tbody></table>
254
 
255
</div>
256
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="2843-3007" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="soft_set" type="submit"></div></form></div>
257
<h3><a name="write_stb" id="write_stb">write_stb</a></h3>
258
<div class="level3">
259
<table class="inline">
260
        <tbody><tr>
261
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
262
        </tr>
263
        <tr>
264
                <td>NAME</td><td>output</td><td>WIDTH</td><td>Read-only value of config bits</td>
265
        </tr>
266
        <tr>
267
                <td>NAME_wr_stb</td><td>output</td><td>1</td><td>Pulses on write to this register</td>
268
        </tr>
269
</tbody></table>
270
 
271
</div>
272
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="3008-3175" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="write_stb" type="submit"></div></form></div>
273
<h3><a name="read_stb" id="read_stb">read_stb</a></h3>
274
<div class="level3">
275
<table class="inline">
276
        <tbody><tr>
277
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
278
        </tr>
279
        <tr>
280
                <td>NAME</td><td>output</td><td>WIDTH</td><td>Read-only value of config bits</td>
281
        </tr>
282
        <tr>
283
                <td>NAME_wr_stb</td><td>output</td><td>1</td><td>Pulses on read to this register</td>
284
        </tr>
285
</tbody></table>
286
 
287
</div>
288
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="3176-3341" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="read_stb" type="submit"></div></form></div>
289
<h3><a name="ext_load" id="ext_load">ext_load</a></h3>
290
<div class="level3">
291
<table class="inline">
292
        <tbody><tr>
293
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
294
        </tr>
295
        <tr>
296
                <td>NAME_out</td><td>output</td><td>WIDTH</td><td>Data from config interface</td>
297
        </tr>
298
        <tr>
299
                <td>NAME_in</td><td>input</td><td>WIDTH</td><td>Sample data in to config interface</td>
300
        </tr>
301
        <tr>
302
                <td>NAME_wr_stb</td><td>output</td><td>1</td><td>Pulsed on final write operation</td>
303
        </tr>
304
        <tr>
305
                <td>NAME_rd_stb</td><td>output</td><td>1</td><td>Pulsed on initial read operation</td>
306
        </tr>
307
</tbody></table>
308
 
309
<p> An external-load register is used to sample and cache values which
310
may be changing over time. It is intended to be used for values which
311
are wider than the configuration interface (otherwise, a <a href="#status" title="rgen.py ↵" class="wikilink1">status</a> or <a href="#write_stb" title="rgen.py ↵" class="wikilink1">write_stb</a>
312
register would be more appropriate). The width of an ext_load register
313
can be wider than the data_sz width of the module, and rgen will split
314
the logical register into multiple physical registers.
315
</p>
316
 
317
<p>
318
Current limitations: ext_load registers must be an even multiple of data_size otherwise syntax errors will result.
319
</p>
320
 
321
</div>
322
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="3342-4161" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="ext_load" type="submit"></div></form></div>
323
<h3><a name="user" id="user">user</a></h3>
324
<div class="level3">
325
<table class="inline">
326
        <tbody><tr>
327
                <th>port name</th><th>direction</th><th>size</th><th>description</th>
328
        </tr>
329
        <tr>
330
                <td>NAME_wr_data</td><td>output</td><td>WIDTH</td><td>Data from config on write</td>
331
        </tr>
332
        <tr>
333
                <td>NAME_wr_stb</td><td>output</td><td>1</td><td>Asserted during write operation</td>
334
        </tr>
335
        <tr>
336
                <td>NAME_wr_ack</td><td>input</td><td>1</td><td>Assert by HW side to acknowledge write</td>
337
        </tr>
338
        <tr>
339
                <td>NAME_rd_data</td><td>input</td><td>WIDTH</td><td>Data to config on read</td>
340
        </tr>
341
        <tr>
342
                <td>NAME_rd_stb</td><td>output</td><td>1</td><td>Asserted during read operation</td>
343
        </tr>
344
        <tr>
345
                <td>NAME_rd_ack</td><td>input</td><td>1</td><td>Assert by HW side to acknowledge read</td>
346
        </tr>
347
</tbody></table>
348
 
349
<p> Register with user-defined behavior. Used to implement registers
350
with read-side effects, or where config interface must arbitrate with
351
the HW datapath for access to a resource. Provides full handshake for
352
each of read and write operations.
353
</p>
354
 
355
</div>
356
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="4162-4794" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="user" type="submit"></div></form></div>
357
<h1><a name="decoder_generator" id="decoder_generator">Decoder Generator</a></h1>
358
<div class="level1">
359
 
360
<p>
361
 Decoders are created using a different set of tags from the register file generator.
362
</p>
363
<table class="inline">
364
        <tbody><tr>
365
                <th>tag name</th><th>attributes</th><th>description</th>
366
        </tr>
367
        <tr>
368
                <td>it_decoder</td><td>name,addr_sz,data_sz</td><td>top-level tag for an address decoder</td>
369
        </tr>
370
        <tr>
371
                <td>range</td><td>prefix,base,bits</td><td>tag for an address decode range</td>
372
        </tr>
373
</tbody></table>
374
 
375
</div>
376
<div class="secedit"><form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="lines" value="4795-" type="hidden"><input name="rev" value="1298592735" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit" class="button" title="Decoder Generator" type="submit"></div></form></div>
377
    <!-- wikipage stop -->
378
  </div>
379
 
380
  <div class="clearer">&nbsp;</div>
381
 
382
 
383
  <div class="stylefoot">
384
 
385
    <div class="meta">
386
      <div class="user">
387
              </div>
388
      <div class="doc">
389
        rgen.py.txt · Last modified: 2011/02/24 16:12 by 10.81.24.204      </div>
390
    </div>
391
 
392
 
393
    <div class="bar" id="bar__bottom">
394
      <div class="bar-left" id="bar__bottomleft">
395
        <form class="button" method="post" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="edit" type="hidden"><input name="rev" value="" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Edit this page" class="button" accesskey="e" title="Edit this page [ALT+E]" type="submit"></div></form>        <form class="button" method="get" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="revisions" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Old revisions" class="button" accesskey="o" title="Old revisions [ALT+O]" type="submit"></div></form>      </div>
396
      <div class="bar-right" id="bar__bottomright">
397
                                <form class="button" method="get" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="login" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Login" class="button" title="Login" type="submit"></div></form>        <form class="button" method="get" action="/dokuwiki/doku.php"><div class="no"><input name="do" value="index" type="hidden"><input name="id" value="rgen.py" type="hidden"><input value="Index" class="button" accesskey="x" title="Index [ALT+X]" type="submit"></div></form>        <a class="nolink" href="#dokuwiki__top"><input class="button" value="Back to top" onclick="window.scrollTo(0, 0)" title="Back to top" type="button"></a>&nbsp;
398
      </div>
399
      <div class="clearer"></div>
400
    </div>
401
 
402
  </div>
403
 
404
</div>
405
 
406
<div class="footerinc">
407
  <a href="http://192.168.1.1/dokuwiki/feed.php" title="Recent changes RSS feed"><img src="rgen_doc_files/button-rss.png" alt="Recent changes RSS feed" height="15" width="80"></a>
408
 
409
  <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" rel="license" title="Creative Commons License"><img src="rgen_doc_files/button-cc.gif" alt="Creative Commons License" height="15" width="80"></a>
410
 
411
  <a href="https://www.paypal.com/xclick/business=andi%40splitbrain.org&amp;item_name=DokuWiki+Donation&amp;no_shipping=1&amp;no_note=1&amp;tax=0&amp;currency_code=EUR&amp;lc=US" title="Donate"><img src="rgen_doc_files/button-donate.gif" alt="Donate" height="15" width="80"></a>
412
 
413
  <a href="http://www.php.net/" title="Powered by PHP"><img src="rgen_doc_files/button-php.gif" alt="Powered by PHP" height="15" width="80"></a>
414
 
415
  <a href="http://validator.w3.org/check/referer" title="Valid XHTML 1.0"><img src="rgen_doc_files/button-xhtml.png" alt="Valid XHTML 1.0" height="15" width="80"></a>
416
 
417
  <a href="http://jigsaw.w3.org/css-validator/check/referer" title="Valid CSS"><img src="rgen_doc_files/button-css.png" alt="Valid CSS" height="15" width="80"></a>
418
 
419
  <a href="http://wiki.splitbrain.org/wiki:dokuwiki" title="Driven by DokuWiki"><img src="rgen_doc_files/button-dw.png" alt="Driven by DokuWiki" height="15" width="80"></a>
420
 
421
 
422
 
423
<!--
424
 
425
<rdf:RDF xmlns="http://web.resource.org/cc/"
426
    xmlns:dc="http://purl.org/dc/elements/1.1/"
427
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
428
<Work rdf:about="">
429
   <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
430
   <license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.0/" />
431
</Work>
432
 
433
<License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.0/">
434
   <permits rdf:resource="http://web.resource.org/cc/Reproduction" />
435
   <permits rdf:resource="http://web.resource.org/cc/Distribution" />
436
   <requires rdf:resource="http://web.resource.org/cc/Notice" />
437
   <requires rdf:resource="http://web.resource.org/cc/Attribution" />
438
   <prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
439
   <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
440
   <requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
441
</License>
442
 
443
</rdf:RDF>
444
 
445
-->
446
 
447
 
448
</div>
449
 
450
<div class="no"><img src="rgen_doc_files/indexer.php" alt="" height="1" width="1"></div>
451
</body></html>

powered by: WebSVN 2.1.0

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