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

Subversion Repositories aoocs

[/] [aoocs/] [trunk/] [doc/] [doxygen/] [html/] [page_spec_introduction.html] - Rev 2

Compare with Previous | Blame | View Log

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>aoOCS: Introduction</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.2 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Design&#160;Unit&#160;List</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="index.html">index</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>Introduction </h1>  </div>
</div>
<div class="contents">
<p>The OpenCores <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> SoC is a Wishbone compatible implementation of most of the Amiga Original Chip Set (OCS) and computer functionality.</p>
<p><a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> is not related in any way with Minimig - it is a new and independent Amiga OCS implementation.</p>
<h3>Features</h3>
<ul>
<li>The <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> SoC contains the following Amiga/OCS components:<ul>
<li>blitter</li>
<li>copper</li>
<li>system control (interrupts)</li>
<li>video: bitplains, sprites, collision detection</li>
<li>audio: 4 channels, low-pass filter</li>
<li>user input: PS/2 mouse, PS/2 keyboard and joystick (keyboard arrow keys)</li>
<li>floppy: read and write ADF files directly from a SD card. Only the internal floppy drive is implemented</li>
<li>8520 CIA</li>
<li><a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> OpenCores IP core is used as the <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> processor</li>
</ul>
</li>
<li>All of the above components are WISHBONE revision B.3 compatible</li>
<li>The <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> contains the following additional components:<ul>
<li>SD card controller written in HDL with DMA. Supports SDHC cards only.</li>
<li>10/100 Mbit Ethernet controller written in HDL to send the current VGA frames (frame grabber)</li>
<li>HDL drivers for SSRAM, PS/2 keyboard, PS/2 mouse, audio codec, VGA DAC</li>
</ul>
</li>
<li><a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> 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 can be used as Chip RAM.</li>
<li>The On-Screen-Display is implemented in HDL as a finite state machine. No additional controller/processor with firmware required to handle the SoC.</li>
<li>The following options are available on the On-Screen-Display:<ul>
<li>select ROM file to load (only Amiga Kickstart v1.2 was tested)</li>
<li>enable or disable Joystick (keyboard arrow keys)</li>
<li>enable or disable floppy write protection</li>
<li>insert a floppy - select one from a list</li>
<li>eject an inserted floppy</li>
<li>reset the system</li>
</ul>
</li>
<li>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.</li>
<li>Only PAL timings are implemented.</li>
<li>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.</li>
<li>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 to generate all three clocks from one 50 MHz external clock. More information about clocks is available at <a class="el" href="page_spec_clocks.html">Clocks</a>.</li>
<li>A VGA frame grabber is implemented that sends captured frames by 100 Mbit Ethernet in IP/UDP packets.</li>
<li>The system uses about 26.400 LE on Altera Cyclone II and about 267.000 bits of on-chip RAM.</li>
<li>The blitter functionality was tested against the E-UAE Amiga software emulator.</li>
<li>Tested only on a Terasic DE2-70 board (www.terasic.com.tw).</li>
<li>Documentation generated by Doxygen (www.doxygen.org) with doxverilog patch (<a href="http://developer.berlios.de/projects/doxverilog/">http://developer.berlios.de/projects/doxverilog/</a>). The specification is automatically extracted from the Doxygen HTML output.</li>
</ul>
<h3>WISHBONE compatibility</h3>
<ul>
<li>Version: WISHBONE specification Revision B.3,</li>
<li>General description: 32-bit WISHBONE interface,</li>
<li>WISHBONE data port size: 32-bit,</li>
<li>Data port granularity: 8-bits,</li>
<li>Data port maximum operand size: 32-bits,</li>
<li>Data transfer ordering: BIG ENDIAN,</li>
<li>Data transfer sequencing: UNDEFINED,</li>
<li>Constraints on <code>CLK_I</code> signal: described in <a class="el" href="page_spec_clocks.html">Clocks</a>.</li>
</ul>
<h3>Similar projects</h3>
<p>Other Open-Source Amiga implementations include:</p>
<ul>
<li>Minimig (<a href="http://code.google.com/p/minimig/">http://code.google.com/p/minimig/</a>) - FPGA-based re-implementation of the original Amiga 500 hardware. Runs on the Minimig PCB and also on Terasic DE1,2 boards.</li>
</ul>
<h3>Limitations</h3>
<ul>
<li>No filesystem support on the SD card. Data is read from fixed positions. The contents of the SD card is generated by the <code>aoOCS_tool</code> described at <a class="el" href="page_spec_operation.html">Operation</a>.</li>
<li>No video external synchronize, lace mode, lightpen, genlock audio enable, color composite (BPLCON0)</li>
<li>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.</li>
<li>Currently <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> requires an 36-bit word SSRAM to store the video buffer. This way 3 pixels 12-bits each can be stored in one word.</li>
<li>Serial port not implemented.</li>
<li>Parallel port not implemented.</li>
<li>Low-pass filter disable/enable by CIA-A port A bit 1 not implemented.</li>
<li>Proportional controller and light pen not implemented.</li>
<li>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 registers look at <a class="el" href="page_spec_registers.html">Registers</a>.</li>
<li>Only some of the Amiga software was tested and works on the <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a>. A list of <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> software compatability is located at <a class="el" href="page_spec_operation.html">Operation</a>.</li>
</ul>
<h3>TODO</h3>
<ul>
<li>Fix some of the above limitations.</li>
<li>Optimize the design.</li>
<li>Run WISHBONE verification models.</li>
<li>More documentation of Verilog sources.</li>
<li>Describe testing and changes done in E-UAE sources.</li>
<li>Prepare scripts for VATS: run_sim -r -&gt; regresion test.</li>
<li>Port the <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> SoC to a Xilinx FPGA.</li>
</ul>
<h3>Status</h3>
<ul>
<li>Amiga Workbench v1.2 runs with some minor graphic problems: bottom of screen not displayed correctly.</li>
<li>Prince of Persia runs perfectly.</li>
<li>Wings of Fury runs correctly. Some sound glitches in intro.</li>
<li>Lotus 2 runs correctly. Some sound problems in intro.</li>
<li>Warzone runs poor. Some major graphic problems.</li>
<li>More information about <a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a> software compatability is available at <a class="el" href="page_spec_operation.html">Operation</a>.</li>
</ul>
<h3>Requirements</h3>
<ul>
<li>Altera Quartus II synthesis tool (<a href="http://www.altera.com">http://www.altera.com</a>) is required to synthesise the <code><a class="el" href="classaoOCS.html" title="aoOCS top-level module for the Terasic DE2-70 board. ">aoOCS</a></code> System-on-Chip.</li>
<li>Java SDK (<a href="http://java.sun.com">http://java.sun.com</a>) is required to compile the <code>aoOCS_tool</code> (The tool is described in <a class="el" href="page_spec_operation.html">Operation</a>).</li>
<li>A FPGA board. Currently only the Terasic DE2-70 board was tested.</li>
<li>Icarus Verilog simulator (<a href="http://www.icarus.com/eda/verilog/">http://www.icarus.com/eda/verilog/</a>) is required to compile the and run some tests.</li>
<li>Access to Altera Quartus II directory (directory eda/sim_lib/) is required to compile and run some tests.</li>
<li>GCC (<a href="http://gcc.gnu.org">http://gcc.gnu.org</a>) is required to compile some testes based on E-UAE sources. </li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 20 2010 21:20:19 for aoOCS by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
</body>
</html>
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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