1 |
2 |
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>aoOCS: documentation.v Source File</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 Page</span></a></li>
|
15 |
|
|
<li><a href="annotated.html"><span>Design Unit List</span></a></li>
|
16 |
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
17 |
|
|
</ul>
|
18 |
|
|
</div>
|
19 |
|
|
<div class="tabs2">
|
20 |
|
|
<ul class="tablist">
|
21 |
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
22 |
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
23 |
|
|
</ul>
|
24 |
|
|
</div>
|
25 |
|
|
<div class="header">
|
26 |
|
|
<div class="headertitle">
|
27 |
|
|
<h1>documentation.v</h1> </div>
|
28 |
|
|
</div>
|
29 |
|
|
<div class="contents">
|
30 |
|
|
<a href="documentation_8v.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="keyword">/* </span>
|
31 |
|
|
<a name="l00002"></a>00002 <span class="keyword"> Copyright 2010, Aleksander Osman, alfik@poczta.fm. All rights reserved.</span>
|
32 |
|
|
<a name="l00003"></a>00003 <span class="keyword"> </span>
|
33 |
|
|
<a name="l00004"></a>00004 <span class="keyword"> Redistribution and use in source and binary forms, with or without modification, are</span>
|
34 |
|
|
<a name="l00005"></a>00005 <span class="keyword"> permitted provided that the following conditions are met:</span>
|
35 |
|
|
<a name="l00006"></a>00006 <span class="keyword"> </span>
|
36 |
|
|
<a name="l00007"></a>00007 <span class="keyword"> 1. Redistributions of source code must retain the above copyright notice, this list of</span>
|
37 |
|
|
<a name="l00008"></a>00008 <span class="keyword"> conditions and the following disclaimer.</span>
|
38 |
|
|
<a name="l00009"></a>00009 <span class="keyword"> </span>
|
39 |
|
|
<a name="l00010"></a>00010 <span class="keyword"> 2. Redistributions in binary form must reproduce the above copyright notice, this list</span>
|
40 |
|
|
<a name="l00011"></a>00011 <span class="keyword"> of conditions and the following disclaimer in the documentation and/or other materials</span>
|
41 |
|
|
<a name="l00012"></a>00012 <span class="keyword"> provided with the distribution.</span>
|
42 |
|
|
<a name="l00013"></a>00013 <span class="keyword"> </span>
|
43 |
|
|
<a name="l00014"></a>00014 <span class="keyword"> THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED</span>
|
44 |
|
|
<a name="l00015"></a>00015 <span class="keyword"> WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND</span>
|
45 |
|
|
<a name="l00016"></a>00016 <span class="keyword"> FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR</span>
|
46 |
|
|
<a name="l00017"></a>00017 <span class="keyword"> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
|
47 |
|
|
<a name="l00018"></a>00018 <span class="keyword"> CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR</span>
|
48 |
|
|
<a name="l00019"></a>00019 <span class="keyword"> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON</span>
|
49 |
|
|
<a name="l00020"></a>00020 <span class="keyword"> ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
|
50 |
|
|
<a name="l00021"></a>00021 <span class="keyword"> NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF</span>
|
51 |
|
|
<a name="l00022"></a>00022 <span class="keyword"> ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
|
52 |
|
|
<a name="l00023"></a>00023 <span class="keyword"> */</span>
|
53 |
|
|
<a name="l00024"></a>00024
|
54 |
|
|
<a name="l00025"></a>00025 <span class="keyword">/* This file contains only Doxygen documentation.</span>
|
55 |
|
|
<a name="l00026"></a>00026 <span class="keyword">*/</span>
|
56 |
|
|
<a name="l00027"></a>00027
|
57 |
|
|
<a name="l00028"></a>00028 <span class="keyword">/*! \file documentation.v</span>
|
58 |
|
|
<a name="l00029"></a>00029 <span class="keyword"> \brief aoOCS Doxygen documentation.</span>
|
59 |
|
|
<a name="l00030"></a>00030 <span class="keyword"> */</span>
|
60 |
|
|
<a name="l00031"></a>00031
|
61 |
|
|
<a name="l00032"></a>00032 <span class="keyword">/*! \mainpage</span>
|
62 |
|
|
<a name="l00033"></a>00033 <span class="keyword"> <table border=0 width=100%><tr><td></span>
|
63 |
|
|
<a name="l00034"></a>00034 <span class="keyword"> The OpenCores aoOCS SoC is a Wishbone compatible implementation of most of the Amiga Original Chip Set (OCS) and computer functionality.</span>
|
64 |
|
|
<a name="l00035"></a>00035 <span class="keyword"> </span>
|
65 |
|
|
<a name="l00036"></a>00036 <span class="keyword"> \author Aleksander Osman, <alfik@poczta.fm></span>
|
66 |
|
|
<a name="l00037"></a>00037 <span class="keyword"> \date 20.12.2010</span>
|
67 |
|
|
<a name="l00038"></a>00038 <span class="keyword"> \version 1.0</span>
|
68 |
|
|
<a name="l00039"></a>00039 <span class="keyword"> </td><td></span>
|
69 |
|
|
<a name="l00040"></a>00040 <span class="keyword"> \image html ./doc/img/opencores.jpg</span>
|
70 |
|
|
<a name="l00041"></a>00041 <span class="keyword"> </td></tr></table></span>
|
71 |
|
|
<a name="l00042"></a>00042 <span class="keyword"> </span>
|
72 |
|
|
<a name="l00043"></a>00043 <span class="keyword"> <table border=0 width=100%><tr><td></span>
|
73 |
|
|
<a name="l00044"></a>00044 <span class="keyword"> <b>Contents:</b></span>
|
74 |
|
|
<a name="l00045"></a>00045 <span class="keyword"> - <a href="./../../specification.pdf">Specification</a>, automatically generated from:</span>
|
75 |
|
|
<a name="l00046"></a>00046 <span class="keyword"> - \subpage page_spec_revisions</span>
|
76 |
|
|
<a name="l00047"></a>00047 <span class="keyword"> - \subpage page_spec_introduction</span>
|
77 |
|
|
<a name="l00048"></a>00048 <span class="keyword"> - \subpage page_spec_architecture</span>
|
78 |
|
|
<a name="l00049"></a>00049 <span class="keyword"> - \subpage page_spec_operation</span>
|
79 |
|
|
<a name="l00050"></a>00050 <span class="keyword"> - \subpage page_spec_registers</span>
|
80 |
|
|
<a name="l00051"></a>00051 <span class="keyword"> - \subpage page_spec_clocks</span>
|
81 |
|
|
<a name="l00052"></a>00052 <span class="keyword"> - \subpage page_spec_ports</span>
|
82 |
|
|
<a name="l00053"></a>00053 <span class="keyword"> - \subpage page_spec_references</span>
|
83 |
|
|
<a name="l00054"></a>00054 <span class="keyword"> - \subpage page_directory</span>
|
84 |
|
|
<a name="l00055"></a>00055 <span class="keyword"> - \subpage page_notes</span>
|
85 |
|
|
<a name="l00056"></a>00056 <span class="keyword"> - \subpage page_quartus</span>
|
86 |
|
|
<a name="l00057"></a>00057 <span class="keyword"> </td><td></span>
|
87 |
|
|
<a name="l00058"></a>00058 <span class="keyword"> \image html wishbone_compatible.png</span>
|
88 |
|
|
<a name="l00059"></a>00059 <span class="keyword"> </td></tr></table></span>
|
89 |
|
|
<a name="l00060"></a>00060 <span class="keyword"> </span>
|
90 |
|
|
<a name="l00061"></a>00061 <span class="keyword"> <b>Structure Diagram:</b></span>
|
91 |
|
|
<a name="l00062"></a>00062 <span class="keyword"> \image html structure.png</span>
|
92 |
|
|
<a name="l00063"></a>00063 <span class="keyword"> </span>
|
93 |
|
|
<a name="l00064"></a>00064 <span class="keyword"> <b>About the documentation:</b></span>
|
94 |
|
|
<a name="l00065"></a>00065 <span class="keyword"> The aoOCS core documentation is generated by the Doxygen tool</span>
|
95 |
|
|
<a name="l00066"></a>00066 <span class="keyword"> (www.doxygen.org) with the doxverilog patch</span>
|
96 |
|
|
<a name="l00067"></a>00067 <span class="keyword"> (http://developer.berlios.de/projects/doxverilog/).</span>
|
97 |
|
|
<a name="l00068"></a>00068 <span class="keyword"> */</span>
|
98 |
|
|
<a name="l00069"></a>00069
|
99 |
|
|
<a name="l00070"></a>00070 <span class="keyword">/*! \page page_spec_revisions Revision History</span>
|
100 |
|
|
<a name="l00071"></a>00071 <span class="keyword"> <table width=100%></span>
|
101 |
|
|
<a name="l00072"></a>00072 <span class="keyword"> <tr style="background: #CCCCCC; font-weight: bold;"></span>
|
102 |
|
|
<a name="l00073"></a>00073 <span class="keyword"> <td>Rev. </td><td>Date </td><td>Author </td><td>Description </td></tr></span>
|
103 |
|
|
<a name="l00074"></a>00074 <span class="keyword"> <tr><td>1.0 </td><td>20.12.2010 </td><td>Aleksander Osman </td><td>First Publish </td></tr></span>
|
104 |
|
|
<a name="l00075"></a>00075 <span class="keyword"> </table></span>
|
105 |
|
|
<a name="l00076"></a>00076 <span class="keyword"> */</span>
|
106 |
|
|
<a name="l00077"></a>00077
|
107 |
|
|
<a name="l00078"></a>00078 <span class="keyword">/*! \page page_spec_introduction Introduction</span>
|
108 |
|
|
<a name="l00079"></a>00079 <span class="keyword"> </span>
|
109 |
|
|
<a name="l00080"></a>00080 <span class="keyword"> The OpenCores aoOCS SoC is a Wishbone compatible implementation of most of the Amiga Original Chip Set (OCS) and computer functionality.</span>
|
110 |
|
|
<a name="l00081"></a>00081 <span class="keyword"> </span>
|
111 |
|
|
<a name="l00082"></a>00082 <span class="keyword"> aoOCS is not related in any way with Minimig - it is a new and independent Amiga OCS implementation.</span>
|
112 |
|
|
<a name="l00083"></a>00083 <span class="keyword"> </span>
|
113 |
|
|
<a name="l00084"></a>00084 <span class="keyword"> <h3>Features</h3></span>
|
114 |
|
|
<a name="l00085"></a>00085 <span class="keyword"> - The aoOCS SoC contains the following Amiga/OCS components:</span>
|
115 |
|
|
<a name="l00086"></a>00086 <span class="keyword"> - blitter</span>
|
116 |
|
|
<a name="l00087"></a>00087 <span class="keyword"> - copper</span>
|
117 |
|
|
<a name="l00088"></a>00088 <span class="keyword"> - system control (interrupts)</span>
|
118 |
|
|
<a name="l00089"></a>00089 <span class="keyword"> - video: bitplains, sprites, collision detection</span>
|
119 |
|
|
<a name="l00090"></a>00090 <span class="keyword"> - audio: 4 channels, low-pass filter</span>
|
120 |
|
|
<a name="l00091"></a>00091 <span class="keyword"> - user input: PS/2 mouse, PS/2 keyboard and joystick (keyboard arrow keys)</span>
|
121 |
|
|
<a name="l00092"></a>00092 <span class="keyword"> - floppy: read and write ADF files directly from a SD card. Only the internal floppy drive is implemented</span>
|
122 |
|
|
<a name="l00093"></a>00093 <span class="keyword"> - 8520 CIA</span>
|
123 |
|
|
<a name="l00094"></a>00094 <span class="keyword"> - ao68000 OpenCores IP core is used as the aoOCS processor</span>
|
124 |
|
|
<a name="l00095"></a>00095 <span class="keyword"> - All of the above components are WISHBONE revision B.3 compatible</span>
|
125 |
|
|
<a name="l00096"></a>00096 <span class="keyword"> - The aoOCS contains the following additional components:</span>
|
126 |
|
|
<a name="l00097"></a>00097 <span class="keyword"> - SD card controller written in HDL with DMA. Supports SDHC cards only.</span>
|
127 |
|
|
<a name="l00098"></a>00098 <span class="keyword"> - 10/100 Mbit Ethernet controller written in HDL to send the current VGA frames (frame grabber)</span>
|
128 |
|
|
<a name="l00099"></a>00099 <span class="keyword"> - HDL drivers for SSRAM, PS/2 keyboard, PS/2 mouse, audio codec, VGA DAC</span>
|
129 |
|
|
<a name="l00100"></a>00100 <span class="keyword"> - aoOCS uses only one external memory: a SSRAM with 36-bit words and pipelined access. A video buffer with about 250KB is located SSRAM. Another 256KB are used by the ROM. All the rest memory</span>
|
130 |
|
|
<a name="l00101"></a>00101 <span class="keyword"> can be used as Chip RAM.</span>
|
131 |
|
|
<a name="l00102"></a>00102 <span class="keyword"> - The On-Screen-Display is implemented in HDL as a finite state machine. No additional controller/processor with firmware required to handle the SoC.</span>
|
132 |
|
|
<a name="l00103"></a>00103 <span class="keyword"> - The following options are available on the On-Screen-Display:</span>
|
133 |
|
|
<a name="l00104"></a>00104 <span class="keyword"> - select ROM file to load (only Amiga Kickstart v1.2 was tested)</span>
|
134 |
|
|
<a name="l00105"></a>00105 <span class="keyword"> - enable or disable Joystick (keyboard arrow keys)</span>
|
135 |
|
|
<a name="l00106"></a>00106 <span class="keyword"> - enable or disable floppy write protection</span>
|
136 |
|
|
<a name="l00107"></a>00107 <span class="keyword"> - insert a floppy - select one from a list</span>
|
137 |
|
|
<a name="l00108"></a>00108 <span class="keyword"> - eject an inserted floppy</span>
|
138 |
|
|
<a name="l00109"></a>00109 <span class="keyword"> - reset the system</span>
|
139 |
|
|
<a name="l00110"></a>00110 <span class="keyword"> - The On-Screen-Display is independent of the running Amiga software. It is enabled and disabled by the Home key and controled by the keyboard arrow keys and the right CTRL key.</span>
|
140 |
|
|
<a name="l00111"></a>00111 <span class="keyword"> - Only PAL timings are implemented. </span>
|
141 |
|
|
<a name="l00112"></a>00112 <span class="keyword"> - The video output is VGA compatible: 640x480 at 70 Hz. A rather simple method is used to extend the 256 PAL horizontal lines to 480 VGA lines: all lines are doubled except for every 8th one.</span>
|
142 |
|
|
<a name="l00113"></a>00113 <span class="keyword"> - The system uses generally a single clock: 30 MHz. There are two more clocks: 12 MHz, 25 MHz generated to interface with external hardware (Audio codec, Ethernet controller). A single altpll is used</span>
|
143 |
|
|
<a name="l00114"></a>00114 <span class="keyword"> to generate all three clocks from one 50 MHz external clock. More information about clocks is available at \ref page_spec_clocks.</span>
|
144 |
|
|
<a name="l00115"></a>00115 <span class="keyword"> - A VGA frame grabber is implemented that sends captured frames by 100 Mbit Ethernet in IP/UDP packets. </span>
|
145 |
|
|
<a name="l00116"></a>00116 <span class="keyword"> - The system uses about 26.400 LE on Altera Cyclone II and about 267.000 bits of on-chip RAM.</span>
|
146 |
|
|
<a name="l00117"></a>00117 <span class="keyword"> - The blitter functionality was tested against the E-UAE Amiga software emulator.</span>
|
147 |
|
|
<a name="l00118"></a>00118 <span class="keyword"> - Tested only on a Terasic DE2-70 board (www.terasic.com.tw).</span>
|
148 |
|
|
<a name="l00119"></a>00119 <span class="keyword"> - Documentation generated by Doxygen (www.doxygen.org) with doxverilog patch (http://developer.berlios.de/projects/doxverilog/). The specification</span>
|
149 |
|
|
<a name="l00120"></a>00120 <span class="keyword"> is automatically extracted from the Doxygen HTML output.</span>
|
150 |
|
|
<a name="l00121"></a>00121 <span class="keyword"> </span>
|
151 |
|
|
<a name="l00122"></a>00122 <span class="keyword"> <h3>WISHBONE compatibility</h3></span>
|
152 |
|
|
<a name="l00123"></a>00123 <span class="keyword"> - Version: WISHBONE specification Revision B.3,</span>
|
153 |
|
|
<a name="l00124"></a>00124 <span class="keyword"> - General description: 32-bit WISHBONE interface,</span>
|
154 |
|
|
<a name="l00125"></a>00125 <span class="keyword"> - WISHBONE data port size: 32-bit,</span>
|
155 |
|
|
<a name="l00126"></a>00126 <span class="keyword"> - Data port granularity: 8-bits,</span>
|
156 |
|
|
<a name="l00127"></a>00127 <span class="keyword"> - Data port maximum operand size: 32-bits,</span>
|
157 |
|
|
<a name="l00128"></a>00128 <span class="keyword"> - Data transfer ordering: BIG ENDIAN,</span>
|
158 |
|
|
<a name="l00129"></a>00129 <span class="keyword"> - Data transfer sequencing: UNDEFINED, </span>
|
159 |
|
|
<a name="l00130"></a>00130 <span class="keyword"> - Constraints on <tt>CLK_I</tt> signal: described in \ref page_spec_clocks.</span>
|
160 |
|
|
<a name="l00131"></a>00131 <span class="keyword"> </span>
|
161 |
|
|
<a name="l00132"></a>00132 <span class="keyword"> <h3>Similar projects</h3></span>
|
162 |
|
|
<a name="l00133"></a>00133 <span class="keyword"> Other Open-Source Amiga implementations include:</span>
|
163 |
|
|
<a name="l00134"></a>00134 <span class="keyword"> - Minimig (http://code.google.com/p/minimig/) - FPGA-based re-implementation of the original Amiga 500 hardware. Runs on the Minimig PCB and also on Terasic DE1,2 boards.</span>
|
164 |
|
|
<a name="l00135"></a>00135 <span class="keyword"> </span>
|
165 |
|
|
<a name="l00136"></a>00136 <span class="keyword"> <h3>Limitations</h3></span>
|
166 |
|
|
<a name="l00137"></a>00137 <span class="keyword"> - No filesystem support on the SD card. Data is read from fixed positions. The contents of the SD card is generated by the <tt>aoOCS_tool</tt> described at \ref page_spec_operation.</span>
|
167 |
|
|
<a name="l00138"></a>00138 <span class="keyword"> - No video external synchronize, lace mode, lightpen, genlock audio enable, color composite (BPLCON0)</span>
|
168 |
|
|
<a name="l00139"></a>00139 <span class="keyword"> - All bitplain data is fetched at once in a burst memory read at the begining of each line. No changes to the bitplain data done after the beginning of a line are visible.</span>
|
169 |
|
|
<a name="l00140"></a>00140 <span class="keyword"> - Currently aoOCS requires an 36-bit word SSRAM to store the video buffer. This way 3 pixels 12-bits each can be stored in one word.</span>
|
170 |
|
|
<a name="l00141"></a>00141 <span class="keyword"> - Serial port not implemented.</span>
|
171 |
|
|
<a name="l00142"></a>00142 <span class="keyword"> - Parallel port not implemented.</span>
|
172 |
|
|
<a name="l00143"></a>00143 <span class="keyword"> - Low-pass filter disable/enable by CIA-A port A bit 1 not implemented.</span>
|
173 |
|
|
<a name="l00144"></a>00144 <span class="keyword"> - Proportional controller and light pen not implemented.</span>
|
174 |
|
|
<a name="l00145"></a>00145 <span class="keyword"> - Some rarely used OCS registers are not implemented: strobe video sync, write beam position, coprocessor instruction fetch identify. For a complete list of not implemented</span>
|
175 |
|
|
<a name="l00146"></a>00146 <span class="keyword"> registers look at \ref page_spec_registers.</span>
|
176 |
|
|
<a name="l00147"></a>00147 <span class="keyword"> - Only some of the Amiga software was tested and works on the aoOCS. A list of aoOCS software compatability is located at \ref page_spec_operation.</span>
|
177 |
|
|
<a name="l00148"></a>00148 <span class="keyword"> </span>
|
178 |
|
|
<a name="l00149"></a>00149 <span class="keyword"> <h3>TODO</h3> </span>
|
179 |
|
|
<a name="l00150"></a>00150 <span class="keyword"> - Fix some of the above limitations.</span>
|
180 |
|
|
<a name="l00151"></a>00151 <span class="keyword"> - Optimize the design.</span>
|
181 |
|
|
<a name="l00152"></a>00152 <span class="keyword"> - Run WISHBONE verification models.</span>
|
182 |
|
|
<a name="l00153"></a>00153 <span class="keyword"> - More documentation of Verilog sources.</span>
|
183 |
|
|
<a name="l00154"></a>00154 <span class="keyword"> - Describe testing and changes done in E-UAE sources.</span>
|
184 |
|
|
<a name="l00155"></a>00155 <span class="keyword"> - Prepare scripts for VATS: run_sim -r -> regresion test.</span>
|
185 |
|
|
<a name="l00156"></a>00156 <span class="keyword"> - Port the aoOCS SoC to a Xilinx FPGA.</span>
|
186 |
|
|
<a name="l00157"></a>00157 <span class="keyword"> </span>
|
187 |
|
|
<a name="l00158"></a>00158 <span class="keyword"> <h3>Status</h3></span>
|
188 |
|
|
<a name="l00159"></a>00159 <span class="keyword"> - Amiga Workbench v1.2 runs with some minor graphic problems: bottom of screen not displayed correctly.</span>
|
189 |
|
|
<a name="l00160"></a>00160 <span class="keyword"> - Prince of Persia runs perfectly.</span>
|
190 |
|
|
<a name="l00161"></a>00161 <span class="keyword"> - Wings of Fury runs correctly. Some sound glitches in intro.</span>
|
191 |
|
|
<a name="l00162"></a>00162 <span class="keyword"> - Lotus 2 runs correctly. Some sound problems in intro.</span>
|
192 |
|
|
<a name="l00163"></a>00163 <span class="keyword"> - Warzone runs poor. Some major graphic problems.</span>
|
193 |
|
|
<a name="l00164"></a>00164 <span class="keyword"> - More information about aoOCS software compatability is available at \ref page_spec_operation.</span>
|
194 |
|
|
<a name="l00165"></a>00165 <span class="keyword"> </span>
|
195 |
|
|
<a name="l00166"></a>00166 <span class="keyword"> <h3>Requirements</h3></span>
|
196 |
|
|
<a name="l00167"></a>00167 <span class="keyword"> - Altera Quartus II synthesis tool (http://www.altera.com) is required to synthesise the <tt>aoOCS</tt> System-on-Chip.</span>
|
197 |
|
|
<a name="l00168"></a>00168 <span class="keyword"> - Java SDK (http://java.sun.com) is required to compile the <tt>aoOCS_tool</tt> (The tool is described in \ref page_spec_operation).</span>
|
198 |
|
|
<a name="l00169"></a>00169 <span class="keyword"> - A FPGA board. Currently only the Terasic DE2-70 board was tested. </span>
|
199 |
|
|
<a name="l00170"></a>00170 <span class="keyword"> - Icarus Verilog simulator (http://www.icarus.com/eda/verilog/) is required to compile the and run some tests.</span>
|
200 |
|
|
<a name="l00171"></a>00171 <span class="keyword"> - Access to Altera Quartus II directory (directory eda/sim_lib/) is required to compile and run some tests.</span>
|
201 |
|
|
<a name="l00172"></a>00172 <span class="keyword"> - GCC (http://gcc.gnu.org) is required to compile some testes based on E-UAE sources.</span>
|
202 |
|
|
<a name="l00173"></a>00173 <span class="keyword"> */</span>
|
203 |
|
|
<a name="l00174"></a>00174
|
204 |
|
|
<a name="l00175"></a>00175 <span class="keyword">/*! \page page_spec_architecture Architecture</span>
|
205 |
|
|
<a name="l00176"></a>00176 <span class="keyword"> <table border=0 align=center></span>
|
206 |
|
|
<a name="l00177"></a>00177 <span class="keyword"> <caption></span>
|
207 |
|
|
<a name="l00178"></a>00178 <span class="keyword"> <b>Figure 1:</b> aoOCS structure.</span>
|
208 |
|
|
<a name="l00179"></a>00179 <span class="keyword"> </caption> <tr><td></span>
|
209 |
|
|
<a name="l00180"></a>00180 <span class="keyword"> \image html ./doc/img/structure.png</span>
|
210 |
|
|
<a name="l00181"></a>00181 <span class="keyword"> </td></tr></table></span>
|
211 |
|
|
<a name="l00182"></a>00182 <span class="keyword"> <h1>control_osd</h1></span>
|
212 |
|
|
<a name="l00183"></a>00183 <span class="keyword"> \copydoc control_osd</span>
|
213 |
|
|
<a name="l00184"></a>00184 <span class="keyword"> </span>
|
214 |
|
|
<a name="l00185"></a>00185 <span class="keyword"> <h1>ao68000</h1></span>
|
215 |
|
|
<a name="l00186"></a>00186 <span class="keyword"> \copydoc ao68000</span>
|
216 |
|
|
<a name="l00187"></a>00187 <span class="keyword"> </span>
|
217 |
|
|
<a name="l00188"></a>00188 <span class="keyword"> <h1>ocs_control</h1></span>
|
218 |
|
|
<a name="l00189"></a>00189 <span class="keyword"> \copydoc ocs_control</span>
|
219 |
|
|
<a name="l00190"></a>00190 <span class="keyword"> </span>
|
220 |
|
|
<a name="l00191"></a>00191 <span class="keyword"> <h1>ocs_blitter</h1></span>
|
221 |
|
|
<a name="l00192"></a>00192 <span class="keyword"> \copydoc ocs_blitter</span>
|
222 |
|
|
<a name="l00193"></a>00193 <span class="keyword"> </span>
|
223 |
|
|
<a name="l00194"></a>00194 <span class="keyword"> <h1>ocs_copper</h1></span>
|
224 |
|
|
<a name="l00195"></a>00195 <span class="keyword"> \copydoc ocs_copper</span>
|
225 |
|
|
<a name="l00196"></a>00196 <span class="keyword"> </span>
|
226 |
|
|
<a name="l00197"></a>00197 <span class="keyword"> <h1>ocs_serial</h1></span>
|
227 |
|
|
<a name="l00198"></a>00198 <span class="keyword"> \copydoc ocs_serial</span>
|
228 |
|
|
<a name="l00199"></a>00199 <span class="keyword"> </span>
|
229 |
|
|
<a name="l00200"></a>00200 <span class="keyword"> <h1>bus_terminator</h1></span>
|
230 |
|
|
<a name="l00201"></a>00201 <span class="keyword"> \copydoc bus_terminator</span>
|
231 |
|
|
<a name="l00202"></a>00202 <span class="keyword"> </span>
|
232 |
|
|
<a name="l00203"></a>00203 <span class="keyword"> <h1>bus_syscon</h1></span>
|
233 |
|
|
<a name="l00204"></a>00204 <span class="keyword"> \copydoc bus_syscon</span>
|
234 |
|
|
<a name="l00205"></a>00205 <span class="keyword"> </span>
|
235 |
|
|
<a name="l00206"></a>00206 <span class="keyword"> <h1>ocs_video</h1></span>
|
236 |
|
|
<a name="l00207"></a>00207 <span class="keyword"> \copydoc ocs_video</span>
|
237 |
|
|
<a name="l00208"></a>00208 <span class="keyword"> </span>
|
238 |
|
|
<a name="l00209"></a>00209 <span class="keyword"> <h1>ocs_audio</h1></span>
|
239 |
|
|
<a name="l00210"></a>00210 <span class="keyword"> \copydoc ocs_audio</span>
|
240 |
|
|
<a name="l00211"></a>00211 <span class="keyword"> </span>
|
241 |
|
|
<a name="l00212"></a>00212 <span class="keyword"> <h1>ocs_input</h1></span>
|
242 |
|
|
<a name="l00213"></a>00213 <span class="keyword"> \copydoc ocs_input</span>
|
243 |
|
|
<a name="l00214"></a>00214 <span class="keyword"> </span>
|
244 |
|
|
<a name="l00215"></a>00215 <span class="keyword"> <h1>ocs_floppy</h1></span>
|
245 |
|
|
<a name="l00216"></a>00216 <span class="keyword"> \copydoc ocs_floppy</span>
|
246 |
|
|
<a name="l00217"></a>00217 <span class="keyword"> </span>
|
247 |
|
|
<a name="l00218"></a>00218 <span class="keyword"> <h1>cia8520</h1></span>
|
248 |
|
|
<a name="l00219"></a>00219 <span class="keyword"> \copydoc cia8520</span>
|
249 |
|
|
<a name="l00220"></a>00220 <span class="keyword"> </span>
|
250 |
|
|
<a name="l00221"></a>00221 <span class="keyword"> <h1>drv_vga</h1></span>
|
251 |
|
|
<a name="l00222"></a>00222 <span class="keyword"> \copydoc drv_vga</span>
|
252 |
|
|
<a name="l00223"></a>00223 <span class="keyword"> </span>
|
253 |
|
|
<a name="l00224"></a>00224 <span class="keyword"> <h1>bus_ssram</h1></span>
|
254 |
|
|
<a name="l00225"></a>00225 <span class="keyword"> \copydoc bus_ssram</span>
|
255 |
|
|
<a name="l00226"></a>00226 <span class="keyword"> </span>
|
256 |
|
|
<a name="l00227"></a>00227 <span class="keyword"> <h1>drv_audio</h1></span>
|
257 |
|
|
<a name="l00228"></a>00228 <span class="keyword"> \copydoc drv_audio</span>
|
258 |
|
|
<a name="l00229"></a>00229 <span class="keyword"> </span>
|
259 |
|
|
<a name="l00230"></a>00230 <span class="keyword"> <h1>drv_keyboard</h1></span>
|
260 |
|
|
<a name="l00231"></a>00231 <span class="keyword"> \copydoc drv_keyboard</span>
|
261 |
|
|
<a name="l00232"></a>00232 <span class="keyword"> </span>
|
262 |
|
|
<a name="l00233"></a>00233 <span class="keyword"> <h1>drv_mouse</h1></span>
|
263 |
|
|
<a name="l00234"></a>00234 <span class="keyword"> \copydoc drv_mouse</span>
|
264 |
|
|
<a name="l00235"></a>00235 <span class="keyword"> </span>
|
265 |
|
|
<a name="l00236"></a>00236 <span class="keyword"> <h1>drv_debug</h1></span>
|
266 |
|
|
<a name="l00237"></a>00237 <span class="keyword"> \copydoc drv_debug</span>
|
267 |
|
|
<a name="l00238"></a>00238 <span class="keyword"> </span>
|
268 |
|
|
<a name="l00239"></a>00239 <span class="keyword"> <h1>drv_eth_vga_capture</h1></span>
|
269 |
|
|
<a name="l00240"></a>00240 <span class="keyword"> \copydoc drv_eth_vga_capture</span>
|
270 |
|
|
<a name="l00241"></a>00241 <span class="keyword"> </span>
|
271 |
|
|
<a name="l00242"></a>00242 <span class="keyword"> */</span>
|
272 |
|
|
<a name="l00243"></a>00243
|
273 |
|
|
<a name="l00244"></a>00244 <span class="keyword">/*! \page page_spec_operation Operation</span>
|
274 |
|
|
<a name="l00245"></a>00245 <span class="keyword"> </span>
|
275 |
|
|
<a name="l00246"></a>00246 <span class="keyword"> <h3>SD card</h3></span>
|
276 |
|
|
<a name="l00247"></a>00247 <span class="keyword"> The aoOCS SoC requires a SD card containing a list of available ROMs and floppy images together with images themselves. The aoOCS does not support any filesystem on the card.</span>
|
277 |
|
|
<a name="l00248"></a>00248 <span class="keyword"> A binary image file must be prepared and written on the card starting at sector 0. The aoOCS_tool is used to prepare the image in the following way:</span>
|
278 |
|
|
<a name="l00249"></a>00249 <span class="keyword"> - a title screen PNG image must be available. A default image is available at \c ./sw/aoOCS_tool/title.png</span>
|
279 |
|
|
<a name="l00250"></a>00250 <span class="keyword"> - a directory with ROM files must be created</span>
|
280 |
|
|
<a name="l00251"></a>00251 <span class="keyword"> - a directory with floppy images (ADF files) must be created</span>
|
281 |
|
|
<a name="l00252"></a>00252 <span class="keyword"> - the following \c make command must be run at the base directory of the project:</span>
|
282 |
|
|
<a name="l00253"></a>00253 <span class="keyword"> \verbatim</span>
|
283 |
|
|
<a name="l00254"></a>00254 <span class="keyword"> make sd_disk AO_INTRO_IMAGE=<path to title screen PNG image> AO_ROMS=<path to ROMs directory> AO_FLOPPIES=<path to floppy images directory></span>
|
284 |
|
|
<a name="l00255"></a>00255 <span class="keyword"> \endverbatim</span>
|
285 |
|
|
<a name="l00256"></a>00256 <span class="keyword"> - The SD disk image is generated and saved to \c ./tmp/sd_disk.img. That image must be written directly on a SD disk bypassing and most probably destroying the filesystem on the disk.</span>
|
286 |
|
|
<a name="l00257"></a>00257 <span class="keyword"> The easiest way to write the image is to run the \c dd command as a super-user on a Linux system:</span>
|
287 |
|
|
<a name="l00258"></a>00258 <span class="keyword"> \verbatim</span>
|
288 |
|
|
<a name="l00259"></a>00259 <span class="keyword"> dd if=<path to image file> of=<path to SD device></span>
|
289 |
|
|
<a name="l00260"></a>00260 <span class="keyword"> \endverbatim</span>
|
290 |
|
|
<a name="l00261"></a>00261 <span class="keyword"> </span>
|
291 |
|
|
<a name="l00262"></a>00262 <span class="keyword"> <h3>aoOCS_tool</h3></span>
|
292 |
|
|
<a name="l00263"></a>00263 <span class="keyword"> The aoOCS_tool is used to:</span>
|
293 |
|
|
<a name="l00264"></a>00264 <span class="keyword"> - Create the contents of the SD card. A image containing: a title screen, ROMs and floppy disk ADF files is created. This image has to be written to the SD</span>
|
294 |
|
|
<a name="l00265"></a>00265 <span class="keyword"> card starting from sector 0.</span>
|
295 |
|
|
<a name="l00266"></a>00266 <span class="keyword"> - Extract vga frames from the drv_eth_vga_capture module as PNG images.</span>
|
296 |
|
|
<a name="l00267"></a>00267 <span class="keyword"> - Generate <tt>./rtl/control_osd.mif</tt> memory initialization file with On-Screen-Display text strings.</span>
|
297 |
|
|
<a name="l00268"></a>00268 <span class="keyword"> - Extract the specification contents from Doxygen HTML output, to generate the specification ODT file.</span>
|
298 |
|
|
<a name="l00269"></a>00269 <span class="keyword"> </span>
|
299 |
|
|
<a name="l00270"></a>00270 <span class="keyword"> The source code for the tool is located at: <tt>./sw/aoOCS_tool/</tt>.</span>
|
300 |
|
|
<a name="l00271"></a>00271 <span class="keyword"> </span>
|
301 |
|
|
<a name="l00272"></a>00272 <span class="keyword"> <h3>On-Screen-Display description</h3></span>
|
302 |
|
|
<a name="l00273"></a>00273 <span class="keyword"> - After powerup or reset, the SoC tries to initialize the SD card and read the title screen, list of ROM files and list of floppy files. If all goes well, the following screen is displayed:</span>
|
303 |
|
|
<a name="l00274"></a>00274 <span class="keyword"> \image html vga_title.png "aoOCS title screen with ROM selection menu"</span>
|
304 |
|
|
<a name="l00275"></a>00275 <span class="keyword"> </span>
|
305 |
|
|
<a name="l00276"></a>00276 <span class="keyword"> - The On-Screen-Display is controlled by the keyboard arrow Up and Down keys. To select an item use the right Control key:</span>
|
306 |
|
|
<a name="l00277"></a>00277 <span class="keyword"> \image html vga_menu_sel_wb.png "aoOCS floppy selection menu with Amiga Workbench 1.2 floppy highlighted"</span>
|
307 |
|
|
<a name="l00278"></a>00278 <span class="keyword"> </span>
|
308 |
|
|
<a name="l00279"></a>00279 <span class="keyword"> - After selecting the ROM file, the menu disappears and the Amiga boots from the ROM:</span>
|
309 |
|
|
<a name="l00280"></a>00280 <span class="keyword"> \image html vga_kick12.png "Amiga Kickstart v1.2 bootstrap screen"</span>
|
310 |
|
|
<a name="l00281"></a>00281 <span class="keyword"> </span>
|
311 |
|
|
<a name="l00282"></a>00282 <span class="keyword"> - To select a floppy disk to insert into the internal disk drive, the On-Screen-Display is used. To display the menu press the Home key. The Home key is also used to hide the menu.</span>
|
312 |
|
|
<a name="l00283"></a>00283 <span class="keyword"> The menu when no floppy is inserted looks like this:</span>
|
313 |
|
|
<a name="l00284"></a>00284 <span class="keyword"> \image html vga_menu_no_floppy.png "aoOCS floppy selection menu"</span>
|
314 |
|
|
<a name="l00285"></a>00285 <span class="keyword"> </span>
|
315 |
|
|
<a name="l00286"></a>00286 <span class="keyword"> - The following options are available:</span>
|
316 |
|
|
<a name="l00287"></a>00287 <span class="keyword"> - <tt>Joystick (kbd arrows)</tt>: enable or disable the joystick on Amiga port 1. The joystick is controlled by the keyboard arrow keys and the right Control key. When enabled, the</span>
|
317 |
|
|
<a name="l00288"></a>00288 <span class="keyword"> arrow keys are unavailable to the Amiga keyboard - the key strokes are redirected to the joystick.</span>
|
318 |
|
|
<a name="l00289"></a>00289 <span class="keyword"> - <tt>Floppy write enabled</tt>: enable or disable floppy writes. The floppy changes are made directly on the SD disk.</span>
|
319 |
|
|
<a name="l00290"></a>00290 <span class="keyword"> - <tt>Reset</tt>: reset the aoOCS SoC</span>
|
320 |
|
|
<a name="l00291"></a>00291 <span class="keyword"> - Below is a list of available floppy disks to insert. After selecting a floppy the display changes to the following:</span>
|
321 |
|
|
<a name="l00292"></a>00292 <span class="keyword"> \image html vga_menu_floppy_inserted.png "aoOCS menu after floppy selection"</span>
|
322 |
|
|
<a name="l00293"></a>00293 <span class="keyword"> - In this menu it is possible to eject the floppy disk. After ejecting the floppy the previous menu is dispayed.</span>
|
323 |
|
|
<a name="l00294"></a>00294 <span class="keyword"> </span>
|
324 |
|
|
<a name="l00295"></a>00295 <span class="keyword"> <h3>Software compatability list</h3></span>
|
325 |
|
|
<a name="l00296"></a>00296 <span class="keyword"> The state of software can be:</span>
|
326 |
|
|
<a name="l00297"></a>00297 <span class="keyword"> <table border=0></span>
|
327 |
|
|
<a name="l00298"></a>00298 <span class="keyword"> <tr><td><i>PERFECT</i> </td><td> no visible and no audible distortions</td></tr></span>
|
328 |
|
|
<a name="l00299"></a>00299 <span class="keyword"> <tr><td><i>GOOD</i> </td><td> some minor distortions</td></tr></span>
|
329 |
|
|
<a name="l00300"></a>00300 <span class="keyword"> <tr><td><i>FAIR</i> </td><td> software starts but has major distortions</td></tr></span>
|
330 |
|
|
<a name="l00301"></a>00301 <span class="keyword"> <tr><td><i>FAILED</i> </td><td> software does not start</td></tr></span>
|
331 |
|
|
<a name="l00302"></a>00302 <span class="keyword"> </table></span>
|
332 |
|
|
<a name="l00303"></a>00303 <span class="keyword"> </span>
|
333 |
|
|
<a name="l00304"></a>00304 <span class="keyword"> - Amiga Workbench version 1.2</span>
|
334 |
|
|
<a name="l00305"></a>00305 <span class="keyword"> <div align="center"><table width="100%"><tr><td width=300></span>
|
335 |
|
|
<a name="l00306"></a>00306 <span class="keyword"> <table></span>
|
336 |
|
|
<a name="l00307"></a>00307 <span class="keyword"> <tr><td><b>aoOCS version:</b> </td><td> 1.0 </td></td></tr></span>
|
337 |
|
|
<a name="l00308"></a>00308 <span class="keyword"> <tr><td><b>State:</b> </td><td><i>GOOD</i> </td></tr></span>
|
338 |
|
|
<a name="l00309"></a>00309 <span class="keyword"> <tr><td><b>Description:</b> </td><td></span>
|
339 |
|
|
<a name="l00310"></a>00310 <span class="keyword"> Some minor graphic problems: bottom of screen not displayed correctly. Most probably problem with Copper and vertical beam position.</span>
|
340 |
|
|
<a name="l00311"></a>00311 <span class="keyword"> </td></tr></table></span>
|
341 |
|
|
<a name="l00312"></a>00312 <span class="keyword"> </td><td></span>
|
342 |
|
|
<a name="l00313"></a>00313 <span class="keyword"> \image html vga_wb12.png "Amiga Workbench v1.2 screen"</span>
|
343 |
|
|
<a name="l00314"></a>00314 <span class="keyword"> </td></tr></table></div></span>
|
344 |
|
|
<a name="l00315"></a>00315 <span class="keyword"> </span>
|
345 |
|
|
<a name="l00316"></a>00316 <span class="keyword"> - Prince of Persia</span>
|
346 |
|
|
<a name="l00317"></a>00317 <span class="keyword"> <div align="center"><table width="100%"><tr><td width=300></span>
|
347 |
|
|
<a name="l00318"></a>00318 <span class="keyword"> <table></span>
|
348 |
|
|
<a name="l00319"></a>00319 <span class="keyword"> <tr><td><b>aoOCS version:</b> </td><td> 1.0 </td></td></tr></span>
|
349 |
|
|
<a name="l00320"></a>00320 <span class="keyword"> <tr><td><b>State:</b> </td><td><i>PERFECT</i> </td></tr></span>
|
350 |
|
|
<a name="l00321"></a>00321 <span class="keyword"> <tr><td><b>Description:</b> </td><td></span>
|
351 |
|
|
<a name="l00322"></a>00322 <span class="keyword"> No problems.</span>
|
352 |
|
|
<a name="l00323"></a>00323 <span class="keyword"> </td></tr></table></span>
|
353 |
|
|
<a name="l00324"></a>00324 <span class="keyword"> </td><td></span>
|
354 |
|
|
<a name="l00325"></a>00325 <span class="keyword"> \image html vga_prince_of_persia.png "Prince of Persia"</span>
|
355 |
|
|
<a name="l00326"></a>00326 <span class="keyword"> </td></tr></table></div></span>
|
356 |
|
|
<a name="l00327"></a>00327 <span class="keyword"> </span>
|
357 |
|
|
<a name="l00328"></a>00328 <span class="keyword"> - Wings of Fury</span>
|
358 |
|
|
<a name="l00329"></a>00329 <span class="keyword"> <div align="center"><table width="100%"><tr><td width=300></span>
|
359 |
|
|
<a name="l00330"></a>00330 <span class="keyword"> <table></span>
|
360 |
|
|
<a name="l00331"></a>00331 <span class="keyword"> <tr><td><b>aoOCS version:</b> </td><td> 1.0 </td></td></tr></span>
|
361 |
|
|
<a name="l00332"></a>00332 <span class="keyword"> <tr><td><b>State:</b> </td><td><i>GOOD</i> </td></tr></span>
|
362 |
|
|
<a name="l00333"></a>00333 <span class="keyword"> <tr><td><b>Description:</b> </td><td></span>
|
363 |
|
|
<a name="l00334"></a>00334 <span class="keyword"> Some sound gliches in introduction. The game itself works perfect.</span>
|
364 |
|
|
<a name="l00335"></a>00335 <span class="keyword"> </td></tr></table></span>
|
365 |
|
|
<a name="l00336"></a>00336 <span class="keyword"> </td><td></span>
|
366 |
|
|
<a name="l00337"></a>00337 <span class="keyword"> \image html vga_wings_of_fury.png "Wing of Fury"</span>
|
367 |
|
|
<a name="l00338"></a>00338 <span class="keyword"> </td></tr></table></div></span>
|
368 |
|
|
<a name="l00339"></a>00339 <span class="keyword"> </span>
|
369 |
|
|
<a name="l00340"></a>00340 <span class="keyword"> - Lotus 2</span>
|
370 |
|
|
<a name="l00341"></a>00341 <span class="keyword"> <div align="center"><table width="100%"><tr><td width=300></span>
|
371 |
|
|
<a name="l00342"></a>00342 <span class="keyword"> <table></span>
|
372 |
|
|
<a name="l00343"></a>00343 <span class="keyword"> <tr><td><b>aoOCS version:</b> </td><td> 1.0 </td></td></tr></span>
|
373 |
|
|
<a name="l00344"></a>00344 <span class="keyword"> <tr><td><b>State:</b> </td><td><i>GOOD</i> </td></tr></span>
|
374 |
|
|
<a name="l00345"></a>00345 <span class="keyword"> <tr><td><b>Description:</b> </td><td></span>
|
375 |
|
|
<a name="l00346"></a>00346 <span class="keyword"> Some minor sound problems in introduction - most probably some bug in the low-pass filter or channel modulation. The VGA frame was captured in the middle of screen update</span>
|
376 |
|
|
<a name="l00347"></a>00347 <span class="keyword"> so there are some distortions. In real-time in looks OK.</span>
|
377 |
|
|
<a name="l00348"></a>00348 <span class="keyword"> </td></tr></table></span>
|
378 |
|
|
<a name="l00349"></a>00349 <span class="keyword"> </td><td></span>
|
379 |
|
|
<a name="l00350"></a>00350 <span class="keyword"> \image html vga_lotus2.png "Lotus 2"</span>
|
380 |
|
|
<a name="l00351"></a>00351 <span class="keyword"> </td></tr></table></div></span>
|
381 |
|
|
<a name="l00352"></a>00352 <span class="keyword"> </span>
|
382 |
|
|
<a name="l00353"></a>00353 <span class="keyword"> - Warzone</span>
|
383 |
|
|
<a name="l00354"></a>00354 <span class="keyword"> <div align="center"><table width="100%"><tr><td width=300></span>
|
384 |
|
|
<a name="l00355"></a>00355 <span class="keyword"> <table></span>
|
385 |
|
|
<a name="l00356"></a>00356 <span class="keyword"> <tr><td><b>aoOCS version:</b> </td><td> 1.0 </td></td></tr></span>
|
386 |
|
|
<a name="l00357"></a>00357 <span class="keyword"> <tr><td><b>State:</b> </td><td><i>FAIR</i> </td></tr></span>
|
387 |
|
|
<a name="l00358"></a>00358 <span class="keyword"> <tr><td><b>Description:</b> </td><td></span>
|
388 |
|
|
<a name="l00359"></a>00359 <span class="keyword"> Major graphic problems - as seen on captured VGA frame. </span>
|
389 |
|
|
<a name="l00360"></a>00360 <span class="keyword"> </td></tr></table></span>
|
390 |
|
|
<a name="l00361"></a>00361 <span class="keyword"> </td><td></span>
|
391 |
|
|
<a name="l00362"></a>00362 <span class="keyword"> \image html vga_warzone.png "Warzone"</span>
|
392 |
|
|
<a name="l00363"></a>00363 <span class="keyword"> </td></tr></table></div></span>
|
393 |
|
|
<a name="l00364"></a>00364 <span class="keyword"> */</span>
|
394 |
|
|
<a name="l00365"></a>00365
|
395 |
|
|
<a name="l00366"></a>00366 <span class="keyword">/*! \page page_spec_registers Registers</span>
|
396 |
|
|
<a name="l00367"></a>00367 <span class="keyword"></span>
|
397 |
|
|
<a name="l00368"></a>00368 <span class="keyword">List of not implemented OCS registers:</span>
|
398 |
|
|
<a name="l00369"></a>00369 <span class="keyword"></span>
|
399 |
|
|
<a name="l00370"></a>00370 <span class="keyword">\b ocs_control</span>
|
400 |
|
|
<a name="l00371"></a>00371 <span class="keyword">\verbatim</span>
|
401 |
|
|
<a name="l00372"></a>00372 <span class="keyword"> STREQU & *038 S D Strobe for horiz sync with VB and EQU</span>
|
402 |
|
|
<a name="l00373"></a>00373 <span class="keyword"> STRVBL & *03A S D Strobe for horiz sync with VB (vert. blank)</span>
|
403 |
|
|
<a name="l00374"></a>00374 <span class="keyword"> STRHOR & *03C S DP Strobe for horiz sync</span>
|
404 |
|
|
<a name="l00375"></a>00375 <span class="keyword"> STRLONG & *03E S D( E ) Strobe for identification of long horiz. line.</span>
|
405 |
|
|
<a name="l00376"></a>00376 <span class="keyword"> VHPOSW *02C W A Write vert and horiz position of beam</span>
|
406 |
|
|
<a name="l00377"></a>00377 <span class="keyword">\endverbatim</span>
|
407 |
|
|
<a name="l00378"></a>00378 <span class="keyword"></span>
|
408 |
|
|
<a name="l00379"></a>00379 <span class="keyword">\b ocs_input</span>
|
409 |
|
|
<a name="l00380"></a>00380 <span class="keyword">\verbatim</span>
|
410 |
|
|
<a name="l00381"></a>00381 <span class="keyword"> POT0DAT *012 R P( E ) Pot counter pair 0 data (vert,horiz)</span>
|
411 |
|
|
<a name="l00382"></a>00382 <span class="keyword"> POT1DAT *014 R P( E ) Pot counter pair 1 data (vert,horiz)</span>
|
412 |
|
|
<a name="l00383"></a>00383 <span class="keyword"> POTGOR *016 R P Pot port data read (formerly POTINP)</span>
|
413 |
|
|
<a name="l00384"></a>00384 <span class="keyword"> POTGO *034 W P Pot port data write and start</span>
|
414 |
|
|
<a name="l00385"></a>00385 <span class="keyword">\endverbatim</span>
|
415 |
|
|
<a name="l00386"></a>00386 <span class="keyword"></span>
|
416 |
|
|
<a name="l00387"></a>00387 <span class="keyword">\b ocs_copper</span>
|
417 |
|
|
<a name="l00388"></a>00388 <span class="keyword">\verbatim</span>
|
418 |
|
|
<a name="l00389"></a>00389 <span class="keyword"> COPINS 08C W A Coprocessor instruction fetch identify</span>
|
419 |
|
|
<a name="l00390"></a>00390 <span class="keyword">\endverbatim</span>
|
420 |
|
|
<a name="l00391"></a>00391 <span class="keyword"></span>
|
421 |
|
|
<a name="l00392"></a>00392 <span class="keyword">\b ocs_serial</span>
|
422 |
|
|
<a name="l00393"></a>00393 <span class="keyword">\verbatim</span>
|
423 |
|
|
<a name="l00394"></a>00394 <span class="keyword"> SERDATR *018 R P Serial port data and status read</span>
|
424 |
|
|
<a name="l00395"></a>00395 <span class="keyword"> SERDAT *030 W P Serial port data and stop bits write</span>
|
425 |
|
|
<a name="l00396"></a>00396 <span class="keyword"> SERPER *032 W P Serial port period and control</span>
|
426 |
|
|
<a name="l00397"></a>00397 <span class="keyword">\endverbatim</span>
|
427 |
|
|
<a name="l00398"></a>00398 <span class="keyword"></span>
|
428 |
|
|
<a name="l00399"></a>00399 <span class="keyword">\b ocs_floppy</span>
|
429 |
|
|
<a name="l00400"></a>00400 <span class="keyword">\verbatim</span>
|
430 |
|
|
<a name="l00401"></a>00401 <span class="keyword"> DSKDATR & *008 ER P Disk data early read (dummy address)</span>
|
431 |
|
|
<a name="l00402"></a>00402 <span class="keyword">\endverbatim</span>
|
432 |
|
|
<a name="l00403"></a>00403 <span class="keyword"></span>
|
433 |
|
|
<a name="l00404"></a>00404 <span class="keyword">\b ocs_blitter</span>
|
434 |
|
|
<a name="l00405"></a>00405 <span class="keyword">\verbatim</span>
|
435 |
|
|
<a name="l00406"></a>00406 <span class="keyword"> BLTDDAT & *000 ER A Blitter destination early read (dummy address)</span>
|
436 |
|
|
<a name="l00407"></a>00407 <span class="keyword">\endverbatim</span>
|
437 |
|
|
<a name="l00408"></a>00408 <span class="keyword">*/</span>
|
438 |
|
|
<a name="l00409"></a>00409
|
439 |
|
|
<a name="l00410"></a>00410 <span class="keyword">/*! \page page_spec_clocks Clocks</span>
|
440 |
|
|
<a name="l00411"></a>00411 <span class="keyword"> <table width=100%></span>
|
441 |
|
|
<a name="l00412"></a>00412 <span class="keyword"> <caption><b>Table 1:</b> List of clocks.</caption></span>
|
442 |
|
|
<a name="l00413"></a>00413 <span class="keyword"> <tr style="background: #CCCCCC; font-weight: bold;"></span>
|
443 |
|
|
<a name="l00414"></a>00414 <span class="keyword"> <td rowspan=2>Name</td><td rowspan=2>Source</td><td colspan=3>Rates (MHz)</td><td rowspan=2>Remarks</td><td rowspan=2>Description</td></tr></span>
|
444 |
|
|
<a name="l00415"></a>00415 <span class="keyword"> <tr style="background: #CCCCCC; font-weight: bold;"></span>
|
445 |
|
|
<a name="l00416"></a>00416 <span class="keyword"> <td>Max</td><td>Min</td><td>Resolution</td></tr></span>
|
446 |
|
|
<a name="l00417"></a>00417 <span class="keyword"> </span>
|
447 |
|
|
<a name="l00418"></a>00418 <span class="keyword"> <tr><td>clk_50</td><td>Input Port</td><td>50</td><td>50</td><td>-</td><td>-</td><td>External input clock. Used only as input to altpll.</td></tr></span>
|
448 |
|
|
<a name="l00419"></a>00419 <span class="keyword"> <tr><td>clk_30</td><td>altpll output</td><td>30</td><td>30</td><td>-</td><td>-</td><td>Main system clock.</td></tr></span>
|
449 |
|
|
<a name="l00420"></a>00420 <span class="keyword"> <tr><td>clk_12</td><td>altpll output</td><td>12</td><td>12</td><td>-</td><td>-</td><td>Used only in drv_audio to clock the WM8731 audio codec hardware.</td></tr></span>
|
450 |
|
|
<a name="l00421"></a>00421 <span class="keyword"> <tr><td>clk_25</td><td>altpll output</td><td>25</td><td>25</td><td>-</td><td>-</td><td>Used only in drv_eth_vga_capture to clock the DM9000A Ethernet hardware.</td></tr></span>
|
451 |
|
|
<a name="l00422"></a>00422 <span class="keyword"> </table></span>
|
452 |
|
|
<a name="l00423"></a>00423 <span class="keyword"> */</span>
|
453 |
|
|
<a name="l00424"></a>00424
|
454 |
|
|
<a name="l00425"></a>00425 <span class="keyword">/*! \page page_spec_ports IO Ports</span>
|
455 |
|
|
<a name="l00426"></a>00426 <span class="keyword"> <h3>aoOCS top-level IO Ports</h3></span>
|
456 |
|
|
<a name="l00427"></a>00427 <span class="keyword">\verbatim</span>
|
457 |
|
|
<a name="l00428"></a>00428 <span class="keyword">Inputs</span>
|
458 |
|
|
<a name="l00429"></a>00429 <span class="keyword"> Clock and reset</span>
|
459 |
|
|
<a name="l00430"></a>00430 <span class="keyword"> clk_50 </span>
|
460 |
|
|
<a name="l00431"></a>00431 <span class="keyword"> reset_ext_n </span>
|
461 |
|
|
<a name="l00432"></a>00432 <span class="keyword"> DM9000A Ethernet hardware interface</span>
|
462 |
|
|
<a name="l00433"></a>00433 <span class="keyword"> enet_irq </span>
|
463 |
|
|
<a name="l00434"></a>00434 <span class="keyword"> Switches and hex leds hardware interface from drv_debug</span>
|
464 |
|
|
<a name="l00435"></a>00435 <span class="keyword"> debug_sw1_pc </span>
|
465 |
|
|
<a name="l00436"></a>00436 <span class="keyword"> debug_sw2_adr </span>
|
466 |
|
|
<a name="l00437"></a>00437 <span class="keyword"> debug_sw3_halt </span>
|
467 |
|
|
<a name="l00438"></a>00438 <span class="keyword">Inouts</span>
|
468 |
|
|
<a name="l00439"></a>00439 <span class="keyword"> IS61LPS51236A pipelined SSRAM hardware interface</span>
|
469 |
|
|
<a name="l00440"></a>00440 <span class="keyword"> ssram_data [35:0]</span>
|
470 |
|
|
<a name="l00441"></a>00441 <span class="keyword"> SD bus 1-bit hardware interface</span>
|
471 |
|
|
<a name="l00442"></a>00442 <span class="keyword"> sd_cmd_io </span>
|
472 |
|
|
<a name="l00443"></a>00443 <span class="keyword"> sd_dat_io </span>
|
473 |
|
|
<a name="l00444"></a>00444 <span class="keyword"> PS/2 keyboard hardware interface</span>
|
474 |
|
|
<a name="l00445"></a>00445 <span class="keyword"> ps2_kbclk </span>
|
475 |
|
|
<a name="l00446"></a>00446 <span class="keyword"> ps2_kbdat </span>
|
476 |
|
|
<a name="l00447"></a>00447 <span class="keyword"> PS/2 mouse hardware interface</span>
|
477 |
|
|
<a name="l00448"></a>00448 <span class="keyword"> ps2_mouseclk </span>
|
478 |
|
|
<a name="l00449"></a>00449 <span class="keyword"> ps2_mousedat </span>
|
479 |
|
|
<a name="l00450"></a>00450 <span class="keyword"> WM8731 audio codec hardware interface</span>
|
480 |
|
|
<a name="l00451"></a>00451 <span class="keyword"> ac_sdat </span>
|
481 |
|
|
<a name="l00452"></a>00452 <span class="keyword"> DM9000A Ethernet hardware interface</span>
|
482 |
|
|
<a name="l00453"></a>00453 <span class="keyword"> enet_data [15:0]</span>
|
483 |
|
|
<a name="l00454"></a>00454 <span class="keyword">Outputs</span>
|
484 |
|
|
<a name="l00455"></a>00455 <span class="keyword"> IS61LPS51236A pipelined SSRAM hardware interface</span>
|
485 |
|
|
<a name="l00456"></a>00456 <span class="keyword"> ssram_address [18:0]</span>
|
486 |
|
|
<a name="l00457"></a>00457 <span class="keyword"> ssram_oe_n </span>
|
487 |
|
|
<a name="l00458"></a>00458 <span class="keyword"> ssram_writeen_n </span>
|
488 |
|
|
<a name="l00459"></a>00459 <span class="keyword"> ssram_byteen_n [3:0]</span>
|
489 |
|
|
<a name="l00460"></a>00460 <span class="keyword"> ssram_clk </span>
|
490 |
|
|
<a name="l00461"></a>00461 <span class="keyword"> ssram_globalw_n </span>
|
491 |
|
|
<a name="l00462"></a>00462 <span class="keyword"> ssram_advance_n </span>
|
492 |
|
|
<a name="l00463"></a>00463 <span class="keyword"> ssram_adsp_n </span>
|
493 |
|
|
<a name="l00464"></a>00464 <span class="keyword"> ssram_adsc_n </span>
|
494 |
|
|
<a name="l00465"></a>00465 <span class="keyword"> ssram_ce1_n </span>
|
495 |
|
|
<a name="l00466"></a>00466 <span class="keyword"> ssram_ce2 </span>
|
496 |
|
|
<a name="l00467"></a>00467 <span class="keyword"> ssram_ce3_n </span>
|
497 |
|
|
<a name="l00468"></a>00468 <span class="keyword"> SD bus 1-bit hardware interface</span>
|
498 |
|
|
<a name="l00469"></a>00469 <span class="keyword"> sd_clk_o </span>
|
499 |
|
|
<a name="l00470"></a>00470 <span class="keyword"> ADV7123 Video DAC hardware interface</span>
|
500 |
|
|
<a name="l00471"></a>00471 <span class="keyword"> vga_r [9:0]</span>
|
501 |
|
|
<a name="l00472"></a>00472 <span class="keyword"> vga_g [9:0]</span>
|
502 |
|
|
<a name="l00473"></a>00473 <span class="keyword"> vga_b [9:0]</span>
|
503 |
|
|
<a name="l00474"></a>00474 <span class="keyword"> vga_blank_n </span>
|
504 |
|
|
<a name="l00475"></a>00475 <span class="keyword"> vga_sync_n </span>
|
505 |
|
|
<a name="l00476"></a>00476 <span class="keyword"> vga_clock </span>
|
506 |
|
|
<a name="l00477"></a>00477 <span class="keyword"> vga_hsync </span>
|
507 |
|
|
<a name="l00478"></a>00478 <span class="keyword"> vga_vsync </span>
|
508 |
|
|
<a name="l00479"></a>00479 <span class="keyword"> WM8731 audio codec hardware interface</span>
|
509 |
|
|
<a name="l00480"></a>00480 <span class="keyword"> ac_sclk </span>
|
510 |
|
|
<a name="l00481"></a>00481 <span class="keyword"> ac_xclk </span>
|
511 |
|
|
<a name="l00482"></a>00482 <span class="keyword"> ac_bclk </span>
|
512 |
|
|
<a name="l00483"></a>00483 <span class="keyword"> ac_dat </span>
|
513 |
|
|
<a name="l00484"></a>00484 <span class="keyword"> ac_lr </span>
|
514 |
|
|
<a name="l00485"></a>00485 <span class="keyword"> DM9000A Ethernet hardware interface</span>
|
515 |
|
|
<a name="l00486"></a>00486 <span class="keyword"> enet_clk_25 </span>
|
516 |
|
|
<a name="l00487"></a>00487 <span class="keyword"> enet_reset_n </span>
|
517 |
|
|
<a name="l00488"></a>00488 <span class="keyword"> enet_cs_n </span>
|
518 |
|
|
<a name="l00489"></a>00489 <span class="keyword"> enet_ior_n </span>
|
519 |
|
|
<a name="l00490"></a>00490 <span class="keyword"> enet_iow_n </span>
|
520 |
|
|
<a name="l00491"></a>00491 <span class="keyword"> enet_cmd </span>
|
521 |
|
|
<a name="l00492"></a>00492 <span class="keyword"> Switches and hex leds hardware interface from drv_debug</span>
|
522 |
|
|
<a name="l00493"></a>00493 <span class="keyword"> hex0 [7:0]</span>
|
523 |
|
|
<a name="l00494"></a>00494 <span class="keyword"> hex1 [7:0]</span>
|
524 |
|
|
<a name="l00495"></a>00495 <span class="keyword"> hex2 [7:0]</span>
|
525 |
|
|
<a name="l00496"></a>00496 <span class="keyword"> hex3 [7:0]</span>
|
526 |
|
|
<a name="l00497"></a>00497 <span class="keyword"> hex4 [7:0]</span>
|
527 |
|
|
<a name="l00498"></a>00498 <span class="keyword"> hex5 [7:0]</span>
|
528 |
|
|
<a name="l00499"></a>00499 <span class="keyword"> hex6 [7:0]</span>
|
529 |
|
|
<a name="l00500"></a>00500 <span class="keyword"> hex7 [7:0]</span>
|
530 |
|
|
<a name="l00501"></a>00501 <span class="keyword"> Leds hardware interface for debug purposes</span>
|
531 |
|
|
<a name="l00502"></a>00502 <span class="keyword"> debug_sd [7:0]</span>
|
532 |
|
|
<a name="l00503"></a>00503 <span class="keyword"> debug_68k_state [7:0]</span>
|
533 |
|
|
<a name="l00504"></a>00504 <span class="keyword"> debug_floppy [7:0]</span>
|
534 |
|
|
<a name="l00505"></a>00505 <span class="keyword">\endverbatim</span>
|
535 |
|
|
<a name="l00506"></a>00506 <span class="keyword"> */</span>
|
536 |
|
|
<a name="l00507"></a>00507
|
537 |
|
|
<a name="l00508"></a>00508 <span class="keyword">/*! \page page_spec_references References</span>
|
538 |
|
|
<a name="l00509"></a>00509 <span class="keyword"> <ol><li></span>
|
539 |
|
|
<a name="l00510"></a>00510 <span class="keyword"> <em>Specification for the: WISHBONE System-on-Chip (SoC) Interconnection Architecture for Portable IP Cores.</em><br/></span>
|
540 |
|
|
<a name="l00511"></a>00511 <span class="keyword"> Revision: B.3.<br/></span>
|
541 |
|
|
<a name="l00512"></a>00512 <span class="keyword"> Released: September 7, 2002.<br/></span>
|
542 |
|
|
<a name="l00513"></a>00513 <span class="keyword"> Available from: http://www.opencores.org<br/>&nbsp;</span>
|
543 |
|
|
<a name="l00514"></a>00514 <span class="keyword"> </li><li> </span>
|
544 |
|
|
<a name="l00515"></a>00515 <span class="keyword"> <em>Amiga® Hardware Reference Manual.</em><br/></span>
|
545 |
|
|
<a name="l00516"></a>00516 <span class="keyword"> Revised edition (March 15, 1990)<br/></span>
|
546 |
|
|
<a name="l00517"></a>00517 <span class="keyword"> Addison Wesley Longman Publishing Co.<br/> &nbsp;</span>
|
547 |
|
|
<a name="l00518"></a>00518 <span class="keyword"> </li><li> </span>
|
548 |
|
|
<a name="l00519"></a>00519 <span class="keyword"> <em>E-UAE Amiga software emulator sources.</em><br/></span>
|
549 |
|
|
<a name="l00520"></a>00520 <span class="keyword"> Source archive: \c e-uae-0.8.29-WIP4.tar.bz2<br/></span>
|
550 |
|
|
<a name="l00521"></a>00521 <span class="keyword"> Available from: http://http://www.rcdrummond.net/uae/<br/>&nbsp;</span>
|
551 |
|
|
<a name="l00522"></a>00522 <span class="keyword"> </li><li></span>
|
552 |
|
|
<a name="l00523"></a>00523 <span class="keyword"> <em>aoOCS Doxygen(Design) Documentation.</em><br/>&nbsp;</span>
|
553 |
|
|
<a name="l00524"></a>00524 <span class="keyword"> </li><li></span>
|
554 |
|
|
<a name="l00525"></a>00525 <span class="keyword"> <em>ao68000 Doxygen(Design) Documentation.</em><br/></span>
|
555 |
|
|
<a name="l00526"></a>00526 <span class="keyword"> Available from: http://www.opencores.org<br/>&nbsp;</span>
|
556 |
|
|
<a name="l00527"></a>00527 <span class="keyword"> </li></ol></span>
|
557 |
|
|
<a name="l00528"></a>00528 <span class="keyword"> */</span>
|
558 |
|
|
<a name="l00529"></a>00529
|
559 |
|
|
<a name="l00530"></a>00530 <span class="keyword">/*! \page page_directory Directory structure</span>
|
560 |
|
|
<a name="l00531"></a>00531 <span class="keyword"> The aoOCS project consists of the following directories:</span>
|
561 |
|
|
<a name="l00532"></a>00532 <span class="keyword"> </span>
|
562 |
|
|
<a name="l00533"></a>00533 <span class="keyword"> \verbinclude ./doc/src/directory.txt</span>
|
563 |
|
|
<a name="l00534"></a>00534 <span class="keyword"> */</span>
|
564 |
|
|
<a name="l00535"></a>00535
|
565 |
|
|
<a name="l00536"></a>00536 <span class="keyword">/*! \page page_notes Design notes</span>
|
566 |
|
|
<a name="l00537"></a>00537 <span class="keyword"> \verbinclude ./doc/src/notes.txt</span>
|
567 |
|
|
<a name="l00538"></a>00538 <span class="keyword"> */</span>
|
568 |
|
|
<a name="l00539"></a>00539
|
569 |
|
|
<a name="l00540"></a>00540 <span class="keyword">/*! \page page_quartus Altera Quartus fit summary </span>
|
570 |
|
|
<a name="l00541"></a>00541 <span class="keyword"> \verbinclude ./doc/src/aoOCS.fit.summary</span>
|
571 |
|
|
<a name="l00542"></a>00542 <span class="keyword"> */</span>
|
572 |
|
|
</pre></div></div>
|
573 |
|
|
</div>
|
574 |
|
|
<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 20 2010 21:20:18 for aoOCS by 
|
575 |
|
|
<a href="http://www.doxygen.org/index.html">
|
576 |
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
|
577 |
|
|
</body>
|
578 |
|
|
</html>
|