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

Subversion Repositories ao68000

[/] [ao68000/] [trunk/] [doc/] [doxygen/] [html/] [page_spec_operation.html] - Blame information for rev 16

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

Line No. Rev Author Line
1 12 alfik
<!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">
3
<head>
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>ao68000: Operation</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
</head>
9
<body>
10
<!-- Generated by Doxygen 1.7.2 -->
11
<div class="navigation" id="top">
12
  <div class="tabs">
13
    <ul class="tablist">
14
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
15
      <li><a href="modules.html"><span>Modules</span></a></li>
16
      <li><a href="annotated.html"><span>Design&#160;Unit&#160;List</span></a></li>
17
      <li><a href="files.html"><span>Files</span></a></li>
18
    </ul>
19
  </div>
20
  <div class="navpath">
21
    <ul>
22
      <li><a class="el" href="index.html">index</a>      </li>
23
    </ul>
24
  </div>
25
</div>
26
<div class="header">
27
  <div class="headertitle">
28
<h1>Operation </h1>  </div>
29
</div>
30
<div class="contents">
31
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> IP Core is designed to operate in a similar way as the original MC68000. The most import differences are:</p>
32
<ul>
33
<li>the core IO ports are compatible with the WISHBONE specification,</li>
34
<li>the execution of instructions in the <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> core is not cycle-exact with the original MC68000 and usually takes a few cycles longer.</li>
35
</ul>
36
<h3>Setting up the core</h3>
37
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> IP Core has an WISHBONE MASTER interface. All standard memory access bus cycles conform to the WISHBONE specification. These cycles include:</p>
38
<ul>
39
<li>instruction fetch,</li>
40
<li>data read,</li>
41
<li>data write.</li>
42
</ul>
43
<p>The cycles are either Single, Block or Read-Modify-Write (for the TAS instruction). When waiting to finish a bus cycle the <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> reacts on the following input signals:</p>
44
<ul>
45
<li>ACK_I: the cycle is completed successfully,</li>
46
<li>RTY_I: the cycle is immediately repeated, the processor does not continue its operation before the current bus cycle is finished. In case of the Read-Modify-Write cycle - only the current bus cycle is repeated: either the read or write.</li>
47
<li>ERR_I: the cycle is terminated and a bus error is processed. In case of double bus error the processor enters the blocked state.</li>
48
</ul>
49
<p>There is also a special bus cycle: the interrupt acknowledge cycle. This cycle is a reaction on receiving a external interrupt from the ipl_i inputs. The processor only samples the ipl_i lines after processing an instruction, so the interrupt lines have to be asserted for some time before the core reacts. The interrupt acknowledge cycle is performed in the following way:</p>
50
<ul>
51
<li>ADR_O is set to { 27'b111_1111_1111_1111_1111_1111_1111, 3 bits indicating the interrupt priority level for this cycle },</li>
52
<li>SEL_O is set to 4'b1111,</li>
53
<li>fc_o is set to 3'b111 to indicate a CPU Cycle as in the original MC68000.</li>
54
</ul>
55
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> reacts on the following signals when waiting to finish a interrupt acknowledge bus cycle:</p>
56
<ul>
57
<li>ACK_I: the cycle is completed successfully and the interrupt vector is read from DAT_I[7:0],</li>
58
<li>RTY_I: the cycle is completed successfully and the processor generates a auto-vector internally,</li>
59
<li>ERR_I: the cycle is terminated and the processor starts processing a spurious interrupt exception.</li>
60
</ul>
61
<p>Every bus cycle is supplemented with output tags:</p>
62
<ul>
63
<li>WISHBONE standard tags: SGL_O, BLK_O, RMW_O, CTI_O, BTE_O,</li>
64
<li><a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> custom tag: fc_o that operates like the Function Code of the original MC68000.</li>
65
</ul>
66
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> core has two additional outputs that are used to indicate the state of the processor:</p>
67
<ul>
68
<li>reset_o is a external device reset signal. It is asserted when processing the RESET instruction. It is asserted for 124 bus cycles. After that the processor returns to normal instruction processing.</li>
69
<li>blocked_o is an output that indicates that the processor is blocked after a double bus error. When this output line is asserted the processor is blocked and does not process any instructions. The only way to continue processing instructions is to reset the core.</li>
70
</ul>
71
<h3>Resetting the core</h3>
72
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> core is reset with a asynchronous reset_n input. After deasserting the signal, the core starts its standard startup sequence, which is similar to the one performed by the original MC68000:</p>
73
<ul>
74
<li>the value of the SSP register is read from address 0,</li>
75
<li>the value of the PC is read from address 1.</li>
76
</ul>
77
<p>An identical sequence is performed when powering up the core for the first time.</p>
78
<h3>Processor modes</h3>
79
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> core has two modes of operation - exactly like the original MC68000:</p>
80
<ul>
81
<li>Supervisor mode</li>
82
<li>User mode.</li>
83
</ul>
84
<p>Performing a privileged instruction when running in user mode results in a privilege exception, just like in MC68000.</p>
85
<h3>Processor states</h3>
86
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> core can be in one of the following states:</p>
87
<ul>
88
<li>instruction processing, which includes group 2 exception processing,</li>
89
<li>group 0 and group 1 exception processing,</li>
90
<li>external device reset state when processing the RESET instruction,</li>
91
<li>blocked state after a double bus error. </li>
92
</ul>
93
</div>
94 16 alfik
<hr class="footer"/><address class="footer"><small>Generated on Sat Jan 15 2011 22:20:15 for ao68000 by&#160;
95 12 alfik
<a href="http://www.doxygen.org/index.html">
96
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
97
</body>
98
</html>

powered by: WebSVN 2.1.0

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