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

Subversion Repositories tv80

[/] [tv80/] [trunk/] [doc/] [tv80_docs.xml] - Blame information for rev 112

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

Line No. Rev Author Line
1 25 ghutchis
2
3
4 55 ghutchis
5 25 ghutchis
6
7
8
tv80 Core Documentation
9
10
OpenCores.org
11 26 ghutchis
12 25 ghutchis
ghutchis@opencores.org
13 26 ghutchis
14 25 ghutchis
15
16
General
17
private
18
XML
19
Extensible Markup Language
20
21
A synthesizable 8-bit microprocessor which is instruction-set compatable
22
with the Z80, targetted at embedded and system-on-a-chip designs.
23
24
25
26 26 ghutchis
    
27
        The tv80 core was created as a Verilog port of the VHDL T80 core, for use as a maintenence processor inside an ASIC.
28
            The tv80 has been modified since then for better synthesis
29
            timing/area results, and to incorporate several bug-fixes.
30
        The T80, and the tv80 derived from it, attempt to maintain the
31
            original cycle timings of the Z80, but have radically different
32
            internal designs and timings.  With its target being ASIC and
33
            embedded applications, the tv80 does not attempt to maintain
34
            the original pinout of the Z80.
35
    
36 55 ghutchis
 
37
38
    This section tracks synthesis results in various technologies.  LSI 10K technology is
39
       used as a baseline because the library ships with Design Compiler.  
40
  
41
  
42
    Component         Clock Speed    Area     Technology (units)
43
    ================  ===========  ========  =====================
44
      tv80              33 Mhz     10733      lsi_10k (gates)
45
      simple_gmii       33 Mhz      1247      lsi_10k (gates)
46
  
47
  
48
    
49
 
50
51
  The TV80 design includes a number (one, at this point) of peripherals.  These peripherals
52
      are hardware-synthesizable, but may not be fully tested or functional.
53
  
54
    This block presents a GMII interface on one side and a TV80 processor interface on
55
        the other.  The processor-side controls are all mapped into I/O-space.  The block
56
        can only process a single packet in each direction at one time.  This is only really
57
        a limitation on the RX side, where any incoming packets will be dropped until the
58
        processor removes the first packet from the RX buffer.
59
    The GMII interface is signalling only, and does not support 10/100 operation, half duplex
60
        mode, flow control, or any other aspects of 802.3.
61
    
62
        This block consumes 3 bits of I/O address space.  The register addresses below are
63
            relative to the configurable base address of the block, which must be aligned to an
64
            8-byte boundary.  Registers 0x6 and 0x7 are reserved.
65
        
66
            Bit 0 of the status register indicates that a packet is available in the RX buffer.
67
                This bit will be cleared when the last byte of data is read out of the RX buffer.
68
            Bit 1 is set when the packet in the TX buffer has finished transmitting.  This bit
69
                will be cleared when the first byte of data of the next packet is written into the
70
                TX buffer.
71
            This register is read-only.
72
        
73
        
74
            Bit 0 controls sending packets.  When a 1 is written to this bit, the data in
75
                the TX buffer will be sent as a single packet.
76
           This register is write-only.
77
        
78
        
79
            This register contains the low 8 bits of the length of the packet currently
80
                residing in the RX buffer.
81
            This register is read-only.
82
        
83
        
84
            This register contains the high 8 bits of the length of the packet currently
85
                residing in the RX buffer.
86
            This register is read-only.
87
        
88
        
89
            This register contains the next byte of data in the RX packet buffer.
90
            This register is read-only.
91
        
92
        
93
            Writing to this register puts data in the TX packet buffer.  This register does
94
               not perform bounds checking; it is the program's responsibility not to write more
95
               data than the size of the TX buffer.
96
           This register is write-only.
97
        
98
    
99
  
100
101 25 ghutchis
102
 
103
104
Environment memory space is divided into a 32k ROM region and a 32k RAM
105
region, as follows:
106
 
107
108
109
  0000-7FFF:  ROM
110
  8000-FFFF:  RAM
111
112
113
 
114
Environment I/O space is allocated as follows:
115
 
116
117
118
  00-0F:  Unused
119
  10-1F:  Test devices
120
  20-7F:  Unused
121
  80-9F:  Environment control
122
  A0-FF:  Unused
123
124
125
 
126
 
127
The tv80 environment is controlled by the program under simulation.  The
128
program can affect the environment through a set of control registers,
129
which are mapped into I/O space.
130
 
131
  
132
 
133 26 ghutchis
    
134
        Write '01' to end simulation with test passed
135
        Write '02' to end with test failed
136
        Write '03' to turn on dumping
137
        Write '04' to turn off dumping
138
    
139 25 ghutchis
  
140
 
141
  
142
143
        Write characters to this port one at a time.  When the
144
        newline ('\n', ASCII 0x0A) character is written, the
145
        environment will print out the collected string.
146
147
  
148
  
149 26 ghutchis
    
150
        Bit[0] enables the timeout counter,
151
        Bit[1] resets the counter to 0.
152
        Timeout counter defaults to enabled at simulation start.
153
    
154
  
155 25 ghutchis
 
156
  
157
   
158
        Holds 16-bit timeout value (amount of time in clocks before
159
        timeout error occurs).
160
   
161
  
162
  
163
    
164
        When set, starts a countdown (in clocks) until assertion of
165
        the INT_N signal.
166
   
167
  
168 35 ghutchis
  
169
    This register holds the checksum value of all data
170
       written to the accumulate register.  The checksum is a simple
171
       twos-complement checksum, so it can be compared with a CPU-generated
172
       checksum.
173
    This register is readable and writeable.  Writing the register sets
174
       the current checksum value.
175
  
176
  
177
    This write-only register adds the written value to the value
178
       contained in the Checksum Value register.
179
  
180
  
181
    This register increments every time it is read, so reading it
182
       repeatedly generates an incrementing sequence.  It can be reset
183
       by writing it to a new starting value.
184
  
185 25 ghutchis
 
186
 
187 29 ghutchis
 
188
     The minimum toolchain required to simulate the tv80 is the
189
         CVer Verilog simulator, and the
190
         SDCC compiler/assembler/linker.  In
191
         addition, to run the tvs80 instruction
192
         test suite, the DOSBox DOS emulator
193
         is required.
194
     
195
 
196 26 ghutchis
 
197
   Most of the tests in the tv80 environment are written in C, and should
198
       be compiled with the sdcc compiler.
199
   
200 29 ghutchis
     
201 26 ghutchis
      The tvs80 test is different than the rest of the tests, and is
202
         written in its own flavor of assembly language.  This test provides
203
         a fairly comprehensive Z80 instruction test.
204
      The assembler for this test only runs under DOS.  To assemble
205 29 ghutchis
          under Unix/Linux, the "dosbox" DOS emulator is required.  A script
206 26 ghutchis
         to run the assembler under dosbox, as well as the tvs80.asm source,
207
         is checked in under the "tests/tvs80" directory.
208
     
209
 
210 25 ghutchis
211
212
213 26 ghutchis
    
214
        
215
            
216
                VHDL T80 Core
217
                
218
                    OpenCores.org
219
                
220
            
221
        
222
        
223
            
224
                Small Device C Compiler
225
            
226
        
227 29 ghutchis
        
228
            
229
                GPL Cver Simulator
230
                
231
                    Pragmatic C Software
232
                
233
            
234
        
235
        
236
            
237
                DOSBox
238
            
239
        
240 26 ghutchis
    
241 25 ghutchis
242

powered by: WebSVN 2.1.0

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