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

Subversion Repositories tv80

[/] [tv80/] [trunk/] [doc/] [tv80_docs.html] - Blame information for rev 84

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 ghutchis
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 55 ghutchis
<html lang="en"><head><title>$Revision: 1.3 $: tv80 Core Documentation</title>
3
<meta http-equiv="Expires" content="Fri, 17 Dec 2004 22:11:11 +0000">
4 30 ghutchis
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
<meta name="description" content="tv80 Core Documentation">
6
<meta name="keywords" content="private, XML, Extensible Markup Language">
7
<meta name="generator" content="xml2rfc v1.26 (http://xml.resource.org/)">
8
<style type='text/css'>
9
<!--
10
    body {
11
        font-family: verdana, charcoal, helvetica, arial, sans-serif;
12
        margin: 2em;
13
        font-size: small ; color: #000000 ; background-color: #ffffff ; }
14
    .title { color: #990000; font-size: x-large ;
15
        font-weight: bold; text-align: right;
16
        font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
17
        background-color: transparent; }
18
    .filename { color: #666666; font-size: 18px; line-height: 28px;
19
        font-weight: bold; text-align: right;
20
        font-family: helvetica, arial, sans-serif;
21
        background-color: transparent; }
22
    td.rfcbug { background-color: #000000 ; width: 30px ; height: 30px ;
23
        text-align: justify; vertical-align: middle ; padding-top: 2px ; }
24
    td.rfcbug span.RFC { color: #666666; font-weight: bold; text-decoration: none;
25
        background-color: #000000 ;
26
        font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
27
        font-size: x-small ; }
28
    td.rfcbug span.hotText { color: #ffffff; font-weight: normal; text-decoration: none;
29
        text-align: center ;
30
        font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
31
        font-size: x-small ; background-color: #000000; }
32
/* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
33
    div#counter{margin-top: 100px}
34
 
35
    a.info{
36
        position:relative; /*this is the key*/
37
        z-index:24;
38
        text-decoration:none}
39
 
40
    a.info:hover{z-index:25; background-color:#990000 ; color: #ffffff ;}
41
 
42
    a.info span{display: none}
43
 
44
    a.info:hover span{ /*the span will display just on :hover state*/
45
        display:block;
46
        position:absolute;
47
        font-size: smaller ;
48
        top:2em; left:2em; width:15em;
49
        padding: 2px ;
50
        border:1px solid #333333;
51
        background-color:#eeeeee; color:#990000;
52
        text-align: left ;}
53
 
54
     A { font-weight: bold; }
55
     A:link { color: #990000; background-color: transparent ; }
56
     A:visited { color: #333333; background-color: transparent ; }
57
     A:active { color: #333333; background-color: transparent ; }
58
 
59
    p { margin-left: 2em; margin-right: 2em; }
60
    p.copyright { font-size: x-small ; }
61
    p.toc { font-size: small ; font-weight: bold ; margin-left: 3em ;}
62
 
63
    span.emph { font-style: italic; }
64
    span.strong { font-weight: bold; }
65
    span.verb { font-family: "Courier New", Courier, monospace ; }
66
 
67
    ol.text { margin-left: 2em; margin-right: 2em; }
68
    ul.text { margin-left: 2em; margin-right: 2em; }
69
    li { margin-left: 3em;  }
70
 
71
    pre { margin-left: 3em; color: #333333;  background-color: transparent;
72
        font-family: "Courier New", Courier, monospace ; font-size: small ;
73
        }
74
 
75
    h3 { color: #333333; font-size: medium ;
76
        font-family: helvetica, arial, sans-serif ;
77
        background-color: transparent; }
78
    h4 { font-size: small; font-family: helvetica, arial, sans-serif ; }
79
 
80
    table.bug { width: 30px ; height: 15px ; }
81
    td.bug { color: #ffffff ; background-color: #990000 ;
82
        text-align: center ; width: 30px ; height: 15px ;
83
         }
84
    td.bug A.link2 { color: #ffffff ; font-weight: bold;
85
        text-decoration: none;
86
        font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
87
        font-size: x-small ; background-color: transparent }
88
 
89
    td.header { color: #ffffff; font-size: x-small ;
90
        font-family: arial, helvetica, sans-serif; vertical-align: top;
91
        background-color: #666666 ; width: 33% ; }
92
    td.author { font-weight: bold; margin-left: 4em; font-size: x-small ; }
93
    td.author-text { font-size: x-small; }
94
    table.data { vertical-align: top ; border-collapse: collapse ;
95
        border-style: solid solid solid solid ;
96
        border-color: black black black black ;
97
        font-size: small ; text-align: center ; }
98
    table.data th { font-weight: bold ;
99
        border-style: solid solid solid solid ;
100
        border-color: black black black black ; }
101
    table.data td {
102
        border-style: solid solid solid solid ;
103
        border-color: #333333 #333333 #333333 #333333 ; }
104
 
105
    hr { height: 1px }
106
-->
107
</style>
108
</head>
109
<body>
110
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
111
<table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
112 55 ghutchis
<tr><td class="header">$Revision: 1.3 $</td><td class="header">G. Hutchison</td></tr>
113 30 ghutchis
<tr><td class="header">&nbsp;</td><td class="header">OpenCores.org</td></tr>
114 35 ghutchis
<tr><td class="header">&nbsp;</td><td class="header">October 2004</td></tr>
115 30 ghutchis
</table></td></tr></table>
116
<div align="right"><span class="title"><br />tv80 Core Documentation</span></div>
117
 
118
<h3>Abstract</h3>
119
 
120
<p>
121
A synthesizable 8-bit microprocessor which is instruction-set compatable
122
with the Z80, targetted at embedded and system-on-a-chip designs.
123
 
124
</p><a name="toc"></a><br /><hr />
125
<h3>Table of Contents</h3>
126
<p class="toc">
127
<a href="#anchor1">1.</a>&nbsp;
128
Background<br />
129
<a href="#anchor2">2.</a>&nbsp;
130 55 ghutchis
Core Area and Technology Mapping<br />
131
<a href="#anchor3">3.</a>&nbsp;
132
TV80 Peripherals<br />
133
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor4">3.1</a>&nbsp;
134
Simple GMII Interface<br />
135
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">3.1.1</a>&nbsp;
136
Register Interface<br />
137
<a href="#anchor12">4.</a>&nbsp;
138 30 ghutchis
Verification Environment<br />
139 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">4.1</a>&nbsp;
140 30 ghutchis
Memory Map<br />
141 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">4.2</a>&nbsp;
142 30 ghutchis
Control Registers<br />
143 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor15">4.2.1</a>&nbsp;
144 30 ghutchis
Simulation control (0x80)<br />
145 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor16">4.2.2</a>&nbsp;
146 30 ghutchis
Message output (0x81)<br />
147 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor17">4.2.3</a>&nbsp;
148 30 ghutchis
Timeout control (0x82)<br />
149 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor18">4.2.4</a>&nbsp;
150 30 ghutchis
Max timeout (0x84, 0x83)<br />
151 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor19">4.2.5</a>&nbsp;
152 30 ghutchis
Interrupt countdown (0x90)<br />
153 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor20">4.2.6</a>&nbsp;
154 35 ghutchis
Checksum value (0x91)<br />
155 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor21">4.2.7</a>&nbsp;
156 35 ghutchis
Checksum accumulate (0x92)<br />
157 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor22">4.2.8</a>&nbsp;
158 35 ghutchis
Increment on read (0x93)<br />
159 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor23">4.3</a>&nbsp;
160 30 ghutchis
Tool Chain<br />
161 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor24">4.4</a>&nbsp;
162 30 ghutchis
Tests<br />
163 55 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tvs80">4.4.1</a>&nbsp;
164 30 ghutchis
tvs80 test<br />
165 55 ghutchis
<a href="#rfc.references1">5.</a>&nbsp;
166 30 ghutchis
References<br />
167
<a href="#rfc.authors">&#167;</a>&nbsp;
168
Author's Address<br />
169
</p>
170
<br clear="all" />
171
 
172
<a name="anchor1"></a><br /><hr />
173
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
174
<a name="rfc.section.1"></a><h3>1.&nbsp;Background</h3>
175
 
176
<p>The tv80 core was created as a Verilog port of the <a class="info" href="#t80">VHDL T80 core<span>Wallner, D., VHDL T80 Core, .</span></a>[1], for use as a maintenence processor inside an ASIC.
177
            The tv80 has been modified since then for better synthesis
178
            timing/area results, and to incorporate several bug-fixes.
179
</p>
180
<p>The T80, and the tv80 derived from it, attempt to maintain the
181
            original cycle timings of the Z80, but have radically different
182
            internal designs and timings.  With its target being ASIC and
183
            embedded applications, the tv80 does not attempt to maintain
184
            the original pinout of the Z80.
185
</p>
186
<a name="anchor2"></a><br /><hr />
187
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
188 55 ghutchis
<a name="rfc.section.2"></a><h3>2.&nbsp;Core Area and Technology Mapping</h3>
189 30 ghutchis
 
190 55 ghutchis
<p> This section tracks synthesis results in various technologies.  LSI 10K technology is
191
       used as a baseline because the library ships with Design Compiler.
192
</p><pre>
193
    Component         Clock Speed    Area     Technology (units)
194
    ================  ===========  ========  =====================
195
      tv80              33 Mhz     10733      lsi_10k (gates)
196
      simple_gmii       33 Mhz      1247      lsi_10k (gates)
197
  </pre>
198 30 ghutchis
 
199 55 ghutchis
<a name="anchor3"></a><br /><hr />
200
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
201
<a name="rfc.section.3"></a><h3>3.&nbsp;TV80 Peripherals</h3>
202
 
203
<p>The TV80 design includes a number (one, at this point) of peripherals.  These peripherals
204
      are hardware-synthesizable, but may not be fully tested or functional.
205
</p>
206
<a name="rfc.section.3.1"></a><h4><a name="anchor4">3.1</a>&nbsp;Simple GMII Interface</h4>
207
 
208
<p>This block presents a GMII interface on one side and a TV80 processor interface on
209
        the other.  The processor-side controls are all mapped into I/O-space.  The block
210
        can only process a single packet in each direction at one time.  This is only really
211
        a limitation on the RX side, where any incoming packets will be dropped until the
212
        processor removes the first packet from the RX buffer.
213
</p>
214
<p>The GMII interface is signalling only, and does not support 10/100 operation, half duplex
215
        mode, flow control, or any other aspects of 802.3.
216
</p>
217
<a name="rfc.section.3.1.1"></a><h4><a name="anchor5">3.1.1</a>&nbsp;Register Interface</h4>
218
 
219
<p>This block consumes 3 bits of I/O address space.  The register addresses below are
220
            relative to the configurable base address of the block, which must be aligned to an
221
            8-byte boundary.  Registers 0x6 and 0x7 are reserved.
222
</p>
223
<a name="rfc.section.3.1.1.1"></a><h4><a name="anchor6">3.1.1.1</a>&nbsp;Status Register (0x0)</h4>
224
 
225
<p>Bit 0 of the status register indicates that a packet is available in the RX buffer.
226
                This bit will be cleared when the last byte of data is read out of the RX buffer.
227
</p>
228
<p>Bit 1 is set when the packet in the TX buffer has finished transmitting.  This bit
229
                will be cleared when the first byte of data of the next packet is written into the
230
                TX buffer.
231
</p>
232
<p>This register is read-only.
233
</p>
234
<a name="rfc.section.3.1.1.2"></a><h4><a name="anchor7">3.1.1.2</a>&nbsp;Control Register (0x1)</h4>
235
 
236
<p>Bit 0 controls sending packets.  When a 1 is written to this bit, the data in
237
                the TX buffer will be sent as a single packet.
238
</p>
239
<p>This register is write-only.
240
</p>
241
<a name="rfc.section.3.1.1.3"></a><h4><a name="anchor8">3.1.1.3</a>&nbsp;RX Length Register (Low, 0x2)</h4>
242
 
243
<p>This register contains the low 8 bits of the length of the packet currently
244
                residing in the RX buffer.
245
</p>
246
<p>This register is read-only.
247
</p>
248
<a name="rfc.section.3.1.1.4"></a><h4><a name="anchor9">3.1.1.4</a>&nbsp;RX Length Register (High, 0x3)</h4>
249
 
250
<p>This register contains the high 8 bits of the length of the packet currently
251
                residing in the RX buffer.
252
</p>
253
<p>This register is read-only.
254
</p>
255
<a name="rfc.section.3.1.1.5"></a><h4><a name="anchor10">3.1.1.5</a>&nbsp;RX Data Register (0x4)</h4>
256
 
257
<p>This register contains the next byte of data in the RX packet buffer.
258
</p>
259
<p>This register is read-only.
260
</p>
261
<a name="rfc.section.3.1.1.6"></a><h4><a name="anchor11">3.1.1.6</a>&nbsp;TX Data Register (0x5)</h4>
262
 
263
<p>Writing to this register puts data in the TX packet buffer.  This register does
264
               not perform bounds checking; it is the program's responsibility not to write more
265
               data than the size of the TX buffer.
266
</p>
267
<p>This register is write-only.
268
</p>
269
<a name="anchor12"></a><br /><hr />
270
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
271
<a name="rfc.section.4"></a><h3>4.&nbsp;Verification Environment</h3>
272
 
273
<a name="rfc.section.4.1"></a><h4><a name="anchor13">4.1</a>&nbsp;Memory Map</h4>
274
 
275 30 ghutchis
<p>
276
Environment memory space is divided into a 32k ROM region and a 32k RAM
277
region, as follows:
278
 
279
</p>
280
<pre>
281
  0000-7FFF:  ROM
282
  8000-FFFF:  RAM
283
</pre>
284
<p>
285
 
286
<p>Environment I/O space is allocated as follows:
287
</p><pre>
288
  00-0F:  Unused
289
  10-1F:  Test devices
290
  20-7F:  Unused
291
  80-9F:  Environment control
292
  A0-FF:  Unused
293
</pre>
294
 
295
 
296 55 ghutchis
<a name="rfc.section.4.2"></a><h4><a name="anchor14">4.2</a>&nbsp;Control Registers</h4>
297 30 ghutchis
 
298 55 ghutchis
<a name="rfc.section.4.2.1"></a><h4><a name="anchor15">4.2.1</a>&nbsp;Simulation control (0x80)</h4>
299 30 ghutchis
 
300
<ul class="text">
301
<li>   Write '01' to end simulation with test passed
302
</li>
303
<li>   Write '02' to end with test failed
304
</li>
305
<li>   Write '03' to turn on dumping
306
</li>
307
<li>   Write '04' to turn off dumping
308
</li>
309
</ul>
310 55 ghutchis
<a name="rfc.section.4.2.2"></a><h4><a name="anchor16">4.2.2</a>&nbsp;Message output (0x81)</h4>
311 30 ghutchis
 
312
<p>
313
        Write characters to this port one at a time.  When the
314
        newline ('\n', ASCII 0x0A) character is written, the
315
        environment will print out the collected string.
316
 
317
</p>
318 55 ghutchis
<a name="rfc.section.4.2.3"></a><h4><a name="anchor17">4.2.3</a>&nbsp;Timeout control (0x82)</h4>
319 30 ghutchis
 
320
<p>
321
        Bit[0] enables the timeout counter,
322
        Bit[1] resets the counter to 0.
323
        Timeout counter defaults to enabled at simulation start.
324
 
325
</p>
326 55 ghutchis
<a name="rfc.section.4.2.4"></a><h4><a name="anchor18">4.2.4</a>&nbsp;Max timeout (0x84, 0x83)</h4>
327 30 ghutchis
 
328
<p>
329
        Holds 16-bit timeout value (amount of time in clocks before
330
        timeout error occurs).
331
 
332
</p>
333 55 ghutchis
<a name="rfc.section.4.2.5"></a><h4><a name="anchor19">4.2.5</a>&nbsp;Interrupt countdown (0x90)</h4>
334 30 ghutchis
 
335
<p>
336
        When set, starts a countdown (in clocks) until assertion of
337
        the INT_N signal.
338
 
339
</p>
340 55 ghutchis
<a name="rfc.section.4.2.6"></a><h4><a name="anchor20">4.2.6</a>&nbsp;Checksum value (0x91)</h4>
341 30 ghutchis
 
342 35 ghutchis
<p>This register holds the checksum value of all data
343
       written to the accumulate register.  The checksum is a simple
344
       twos-complement checksum, so it can be compared with a CPU-generated
345
       checksum.
346
</p>
347
<p>This register is readable and writeable.  Writing the register sets
348
       the current checksum value.
349
</p>
350 55 ghutchis
<a name="rfc.section.4.2.7"></a><h4><a name="anchor21">4.2.7</a>&nbsp;Checksum accumulate (0x92)</h4>
351 35 ghutchis
 
352
<p>This write-only register adds the written value to the value
353
       contained in the Checksum Value register.
354
</p>
355 55 ghutchis
<a name="rfc.section.4.2.8"></a><h4><a name="anchor22">4.2.8</a>&nbsp;Increment on read (0x93)</h4>
356 35 ghutchis
 
357
<p>This register increments every time it is read, so reading it
358
       repeatedly generates an incrementing sequence.  It can be reset
359
       by writing it to a new starting value.
360
</p>
361 55 ghutchis
<a name="rfc.section.4.3"></a><h4><a name="anchor23">4.3</a>&nbsp;Tool Chain</h4>
362 35 ghutchis
 
363 30 ghutchis
<p>The minimum toolchain required to simulate the tv80 is the
364
         <a class="info" href="#cver">CVer<span>Vanvick, A., GPL Cver Simulator, .</span></a>[3] Verilog simulator, and the
365
         <a class="info" href="#sdcc">SDCC<span>, Small Device C Compiler, .</span></a>[2] compiler/assembler/linker.  In
366
         addition, to run the <a class="info" href="#tvs80">tvs80<span>tvs80 test</span></a> instruction
367
         test suite, the <a class="info" href="#dosbox">DOSBox<span>, DOSBox, .</span></a>[4] DOS emulator
368
         is required.
369
 
370
</p>
371 55 ghutchis
<a name="rfc.section.4.4"></a><h4><a name="anchor24">4.4</a>&nbsp;Tests</h4>
372 30 ghutchis
 
373
<p>Most of the tests in the tv80 environment are written in C, and should
374
       be compiled with the <a class="info" href="#sdcc">sdcc<span>, Small Device C Compiler, .</span></a>[2] compiler.
375
 
376
</p>
377 55 ghutchis
<a name="rfc.section.4.4.1"></a><h4><a name="tvs80">4.4.1</a>&nbsp;tvs80 test</h4>
378 30 ghutchis
 
379
<p>The tvs80 test is different than the rest of the tests, and is
380
         written in its own flavor of assembly language.  This test provides
381
         a fairly comprehensive Z80 instruction test.
382
</p>
383
<p>The assembler for this test only runs under DOS.  To assemble
384
          under Unix/Linux, the <a class="info" href="#dosbox">"dosbox" DOS emulator<span>, DOSBox, .</span></a>[4] is required.  A script
385
         to run the assembler under dosbox, as well as the tvs80.asm source,
386
         is checked in under the "tests/tvs80" directory.
387
</p>
388
<a name="rfc.references1"></a><br /><hr />
389
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
390 55 ghutchis
<h3>5&nbsp;References</h3>
391 30 ghutchis
<table width="99%" border="0">
392
<tr><td class="author-text" valign="top"><a name="t80">[1]</a></td>
393
<td class="author-text">Wallner, D., "<a href="http://www.opencores.org/projects.cgi/web/t80/overview">VHDL T80 Core</a>".</td></tr>
394
<tr><td class="author-text" valign="top"><a name="sdcc">[2]</a></td>
395
<td class="author-text">"<a href="http://sdcc.sourceforge.net">Small Device C Compiler</a>".</td></tr>
396
<tr><td class="author-text" valign="top"><a name="cver">[3]</a></td>
397
<td class="author-text">Vanvick, A., "<a href="http://www.pragmatic-c.com/gpl-cver">GPL Cver Simulator</a>".</td></tr>
398
<tr><td class="author-text" valign="top"><a name="dosbox">[4]</a></td>
399
<td class="author-text">"<a href="http://dosbox.sourceforge.net">DOSBox</a>".</td></tr>
400
</table>
401
 
402
<a name="rfc.authors"></a><br /><hr />
403
<table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
404
<h3>Author's Address</h3>
405
<table width="99%" border="0" cellpadding="0" cellspacing="0">
406
<tr><td class="author-text">&nbsp;</td>
407
<td class="author-text">Guy Hutchison</td></tr>
408
<tr><td class="author-text">&nbsp;</td>
409
<td class="author-text">OpenCores.org</td></tr>
410
<tr><td class="author" align="right">EMail:&nbsp;</td>
411
<td class="author-text"><a href="mailto:ghutchis@opencores.org">ghutchis@opencores.org</a></td></tr>
412
</table>
413
</body></html>

powered by: WebSVN 2.1.0

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