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

Subversion Repositories tv80

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

Go to most recent revision | 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 35 ghutchis
<html lang="en"><head><title>$Revision: 1.2 $: tv80 Core Documentation</title>
3
<meta http-equiv="Expires" content="Wed, 03 Nov 2004 21:11:35 +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 35 ghutchis
<tr><td class="header">$Revision: 1.2 $</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
Verification Environment<br />
131
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor3">2.1</a>&nbsp;
132
Memory Map<br />
133
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor4">2.2</a>&nbsp;
134
Control Registers<br />
135
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">2.2.1</a>&nbsp;
136
Simulation control (0x80)<br />
137
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">2.2.2</a>&nbsp;
138
Message output (0x81)<br />
139
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">2.2.3</a>&nbsp;
140
Timeout control (0x82)<br />
141
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor8">2.2.4</a>&nbsp;
142
Max timeout (0x84, 0x83)<br />
143
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor9">2.2.5</a>&nbsp;
144
Interrupt countdown (0x90)<br />
145 35 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor10">2.2.6</a>&nbsp;
146
Checksum value (0x91)<br />
147
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">2.2.7</a>&nbsp;
148
Checksum accumulate (0x92)<br />
149
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">2.2.8</a>&nbsp;
150
Increment on read (0x93)<br />
151
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">2.3</a>&nbsp;
152 30 ghutchis
Tool Chain<br />
153 35 ghutchis
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">2.4</a>&nbsp;
154 30 ghutchis
Tests<br />
155
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tvs80">2.4.1</a>&nbsp;
156
tvs80 test<br />
157
<a href="#rfc.references1">3.</a>&nbsp;
158
References<br />
159
<a href="#rfc.authors">&#167;</a>&nbsp;
160
Author's Address<br />
161
</p>
162
<br clear="all" />
163
 
164
<a name="anchor1"></a><br /><hr />
165
<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>
166
<a name="rfc.section.1"></a><h3>1.&nbsp;Background</h3>
167
 
168
<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.
169
            The tv80 has been modified since then for better synthesis
170
            timing/area results, and to incorporate several bug-fixes.
171
</p>
172
<p>The T80, and the tv80 derived from it, attempt to maintain the
173
            original cycle timings of the Z80, but have radically different
174
            internal designs and timings.  With its target being ASIC and
175
            embedded applications, the tv80 does not attempt to maintain
176
            the original pinout of the Z80.
177
</p>
178
<a name="anchor2"></a><br /><hr />
179
<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>
180
<a name="rfc.section.2"></a><h3>2.&nbsp;Verification Environment</h3>
181
 
182
<a name="rfc.section.2.1"></a><h4><a name="anchor3">2.1</a>&nbsp;Memory Map</h4>
183
 
184
<p>
185
Environment memory space is divided into a 32k ROM region and a 32k RAM
186
region, as follows:
187
 
188
</p>
189
<pre>
190
  0000-7FFF:  ROM
191
  8000-FFFF:  RAM
192
</pre>
193
<p>
194
 
195
<p>Environment I/O space is allocated as follows:
196
</p><pre>
197
  00-0F:  Unused
198
  10-1F:  Test devices
199
  20-7F:  Unused
200
  80-9F:  Environment control
201
  A0-FF:  Unused
202
</pre>
203
 
204
 
205
<a name="rfc.section.2.2"></a><h4><a name="anchor4">2.2</a>&nbsp;Control Registers</h4>
206
 
207
<a name="rfc.section.2.2.1"></a><h4><a name="anchor5">2.2.1</a>&nbsp;Simulation control (0x80)</h4>
208
 
209
<ul class="text">
210
<li>   Write '01' to end simulation with test passed
211
</li>
212
<li>   Write '02' to end with test failed
213
</li>
214
<li>   Write '03' to turn on dumping
215
</li>
216
<li>   Write '04' to turn off dumping
217
</li>
218
</ul>
219
<a name="rfc.section.2.2.2"></a><h4><a name="anchor6">2.2.2</a>&nbsp;Message output (0x81)</h4>
220
 
221
<p>
222
        Write characters to this port one at a time.  When the
223
        newline ('\n', ASCII 0x0A) character is written, the
224
        environment will print out the collected string.
225
 
226
</p>
227
<a name="rfc.section.2.2.3"></a><h4><a name="anchor7">2.2.3</a>&nbsp;Timeout control (0x82)</h4>
228
 
229
<p>
230
        Bit[0] enables the timeout counter,
231
        Bit[1] resets the counter to 0.
232
        Timeout counter defaults to enabled at simulation start.
233
 
234
</p>
235
<a name="rfc.section.2.2.4"></a><h4><a name="anchor8">2.2.4</a>&nbsp;Max timeout (0x84, 0x83)</h4>
236
 
237
<p>
238
        Holds 16-bit timeout value (amount of time in clocks before
239
        timeout error occurs).
240
 
241
</p>
242
<a name="rfc.section.2.2.5"></a><h4><a name="anchor9">2.2.5</a>&nbsp;Interrupt countdown (0x90)</h4>
243
 
244
<p>
245
        When set, starts a countdown (in clocks) until assertion of
246
        the INT_N signal.
247
 
248
</p>
249 35 ghutchis
<a name="rfc.section.2.2.6"></a><h4><a name="anchor10">2.2.6</a>&nbsp;Checksum value (0x91)</h4>
250 30 ghutchis
 
251 35 ghutchis
<p>This register holds the checksum value of all data
252
       written to the accumulate register.  The checksum is a simple
253
       twos-complement checksum, so it can be compared with a CPU-generated
254
       checksum.
255
</p>
256
<p>This register is readable and writeable.  Writing the register sets
257
       the current checksum value.
258
</p>
259
<a name="rfc.section.2.2.7"></a><h4><a name="anchor11">2.2.7</a>&nbsp;Checksum accumulate (0x92)</h4>
260
 
261
<p>This write-only register adds the written value to the value
262
       contained in the Checksum Value register.
263
</p>
264
<a name="rfc.section.2.2.8"></a><h4><a name="anchor12">2.2.8</a>&nbsp;Increment on read (0x93)</h4>
265
 
266
<p>This register increments every time it is read, so reading it
267
       repeatedly generates an incrementing sequence.  It can be reset
268
       by writing it to a new starting value.
269
</p>
270
<a name="rfc.section.2.3"></a><h4><a name="anchor13">2.3</a>&nbsp;Tool Chain</h4>
271
 
272 30 ghutchis
<p>The minimum toolchain required to simulate the tv80 is the
273
         <a class="info" href="#cver">CVer<span>Vanvick, A., GPL Cver Simulator, .</span></a>[3] Verilog simulator, and the
274
         <a class="info" href="#sdcc">SDCC<span>, Small Device C Compiler, .</span></a>[2] compiler/assembler/linker.  In
275
         addition, to run the <a class="info" href="#tvs80">tvs80<span>tvs80 test</span></a> instruction
276
         test suite, the <a class="info" href="#dosbox">DOSBox<span>, DOSBox, .</span></a>[4] DOS emulator
277
         is required.
278
 
279
</p>
280 35 ghutchis
<a name="rfc.section.2.4"></a><h4><a name="anchor14">2.4</a>&nbsp;Tests</h4>
281 30 ghutchis
 
282
<p>Most of the tests in the tv80 environment are written in C, and should
283
       be compiled with the <a class="info" href="#sdcc">sdcc<span>, Small Device C Compiler, .</span></a>[2] compiler.
284
 
285
</p>
286
<a name="rfc.section.2.4.1"></a><h4><a name="tvs80">2.4.1</a>&nbsp;tvs80 test</h4>
287
 
288
<p>The tvs80 test is different than the rest of the tests, and is
289
         written in its own flavor of assembly language.  This test provides
290
         a fairly comprehensive Z80 instruction test.
291
</p>
292
<p>The assembler for this test only runs under DOS.  To assemble
293
          under Unix/Linux, the <a class="info" href="#dosbox">"dosbox" DOS emulator<span>, DOSBox, .</span></a>[4] is required.  A script
294
         to run the assembler under dosbox, as well as the tvs80.asm source,
295
         is checked in under the "tests/tvs80" directory.
296
</p>
297
<a name="rfc.references1"></a><br /><hr />
298
<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>
299
<h3>3&nbsp;References</h3>
300
<table width="99%" border="0">
301
<tr><td class="author-text" valign="top"><a name="t80">[1]</a></td>
302
<td class="author-text">Wallner, D., "<a href="http://www.opencores.org/projects.cgi/web/t80/overview">VHDL T80 Core</a>".</td></tr>
303
<tr><td class="author-text" valign="top"><a name="sdcc">[2]</a></td>
304
<td class="author-text">"<a href="http://sdcc.sourceforge.net">Small Device C Compiler</a>".</td></tr>
305
<tr><td class="author-text" valign="top"><a name="cver">[3]</a></td>
306
<td class="author-text">Vanvick, A., "<a href="http://www.pragmatic-c.com/gpl-cver">GPL Cver Simulator</a>".</td></tr>
307
<tr><td class="author-text" valign="top"><a name="dosbox">[4]</a></td>
308
<td class="author-text">"<a href="http://dosbox.sourceforge.net">DOSBox</a>".</td></tr>
309
</table>
310
 
311
<a name="rfc.authors"></a><br /><hr />
312
<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>
313
<h3>Author's Address</h3>
314
<table width="99%" border="0" cellpadding="0" cellspacing="0">
315
<tr><td class="author-text">&nbsp;</td>
316
<td class="author-text">Guy Hutchison</td></tr>
317
<tr><td class="author-text">&nbsp;</td>
318
<td class="author-text">OpenCores.org</td></tr>
319
<tr><td class="author" align="right">EMail:&nbsp;</td>
320
<td class="author-text"><a href="mailto:ghutchis@opencores.org">ghutchis@opencores.org</a></td></tr>
321
</table>
322
</body></html>

powered by: WebSVN 2.1.0

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