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

Subversion Repositories ao68000

[/] [ao68000/] [trunk/] [doc/] [doxygen/] [html/] [page_spec_introduction.html] - Diff between revs 12 and 13

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 12 Rev 13
Line 32... Line 32...
<h3>Features</h3>
<h3>Features</h3>
<ul>
<ul>
<li>CISC processor with microcode,</li>
<li>CISC processor with microcode,</li>
<li>WISHBONE revision B.3 compatible MASTER interface,</li>
<li>WISHBONE revision B.3 compatible MASTER interface,</li>
<li>Not cycle exact with the MC68000, some instructions take more cycles to complete, some less,</li>
<li>Not cycle exact with the MC68000, some instructions take more cycles to complete, some less,</li>
<li>Uses about 7500 LE on Altera Cyclone II and about 45000 bits of RAM for microcode,</li>
<li>Uses about 4925 LE on Altera Cyclone II and about 45600 bits of RAM for microcode,</li>
<li>Tested against the WinUAE M68000 software emulator. Every 16-bit instruction was tested with random register contents and RAM contents (<a class="el" href="page_verification.html">Processor verification</a>). The result of execution was compared,</li>
<li>Tested against the WinUAE M68000 software emulator. Every 16-bit instruction was tested with random register contents and RAM contents (<a class="el" href="page_verification.html">Processor verification</a>). The result of execution was compared,</li>
<li>Runs Linux kernel version 2.6.33.1 up to init process lookup (<a class="el" href="page_soc_linux.html">System-on-Chip example with ao68000 running Linux</a>),</li>
 
<li>Contains a simple prefetch which is capable of holding up to 5 16-bit instruction words,</li>
<li>Contains a simple prefetch which is capable of holding up to 5 16-bit instruction words,</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>
<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>
</ul>
<h3>WISHBONE compatibility</h3>
<h3>WISHBONE compatibility</h3>
<ul>
<ul>
Line 51... Line 50...
<li>WISHBONE data port size: 32-bit,</li>
<li>WISHBONE data port size: 32-bit,</li>
<li>Data port granularity: 8-bits,</li>
<li>Data port granularity: 8-bits,</li>
<li>Data port maximum operand size: 32-bits,</li>
<li>Data port maximum operand size: 32-bits,</li>
<li>Data transfer ordering: BIG ENDIAN,</li>
<li>Data transfer ordering: BIG ENDIAN,</li>
<li>Data transfer sequencing: UNDEFINED,</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>, maximum frequency: about 70 MHz.</li>
<li>Constraints on <code>CLK_I</code> signal: described in <a class="el" href="page_spec_clocks.html">Clocks</a>, maximum frequency: about 64 MHz.</li>
</ul>
</ul>
<h3>Use</h3>
<h3>Use</h3>
<p>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> can be used as an processor in a System-on-Chip booting Linux kernel up to <code>init</code> program lookup (<a class="el" href="page_soc_linux.html">System-on-Chip example with ao68000 running Linux</a>).</p>
<ul>
 
<li>The <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> is used as the processor for the OpenCores aoOCS project - Wishbone Amiga OCS SoC(<a href="http://opencores.org/project,aoocs">http://opencores.org/project,aoocs</a>).</li>
 
<li>It can also be used as a processor in a System-on-Chip booting Linux kernel version 2.6.33.1 up to <code>init</code> program lookup (<a class="el" href="page_soc_linux.html">System-on-Chip example with ao68000 running Linux</a>).</li>
 
</ul>
<h3>Similar projects</h3>
<h3>Similar projects</h3>
<p>Other free soft-core implementations of M68000 microprocessor include:</p>
<p>Other free soft-core implementations of M68000 microprocessor include:</p>
<ul>
<ul>
<li>OpenCores TG68 (<a href="http://www.opencores.org/project,tg68">http://www.opencores.org/project,tg68</a>) - runs Amiga software, used as part of the Minimig Core,</li>
<li>OpenCores TG68 (<a href="http://www.opencores.org/project,tg68">http://www.opencores.org/project,tg68</a>) - runs Amiga software, used as part of the Minimig Core,</li>
<li>Suska Atari VHDL WF_68K00_IP Core (<a href="http://www.experiment-s.de/en">http://www.experiment-s.de/en</a>) - runs Atari software,</li>
<li>Suska Atari VHDL WF_68K00_IP Core (<a href="http://www.experiment-s.de/en">http://www.experiment-s.de/en</a>) - runs Atari software,</li>
Line 67... Line 69...
</ul>
</ul>
<h3>Limitations</h3>
<h3>Limitations</h3>
<ul>
<ul>
<li>Microcode not optimized: some instructions take more cycles to execute than the original MC68000,</li>
<li>Microcode not optimized: some instructions take more cycles to execute than the original MC68000,</li>
<li>TRACE not tested,</li>
<li>TRACE not tested,</li>
<li>The core is large compared to other implementations.</li>
<li>The core is still large compared to other implementations.</li>
</ul>
</ul>
<h3>TODO</h3>
<h3>TODO</h3>
<ul>
<ul>
<li>Optimize the microcode and count the exact cycle count for every instruction,</li>
<li>Optimize the desgin and microcode,</li>
 
<li>Count the exact cycle count for every instruction,</li>
<li>Test TRACE,</li>
<li>Test TRACE,</li>
<li>Run WISHBONE verification models,</li>
<li>Write more documentation.</li>
<li>More documentation of the <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> module: signal description, operation, FSM in <code><a class="el" href="classbus__control.html" title="Initiate WISHBONE MASTER bus cycles.">bus_control</a></code>,</li>
 
<li>Describe changes done in WinUAE sources (copy from ao.c),</li>
 
<li>Describe microcode words and subprocedures,</li>
 
<li>Document the <code>soc_for_linux</code> modules,</li>
 
<li>Prepare scripts for VATS: run_sim -r -&gt; regresion test,</li>
 
<li>Use memories from OpenCore common.</li>
 
</ul>
</ul>
<h3>Status</h3>
<h3>Status</h3>
<ul>
<ul>
<li>Tested with WinUAE software MC68000 emulator,</li>
<li>April 2010: Tested with WinUAE software MC68000 emulator,</li>
<li>Booted Linux kernel up to <code>init</code> process lookup.</li>
<li>April 2010: Booted Linux kernel up to <code>init</code> process lookup,</li>
 
<li>December 2010: Runs as a processor in OpenCores aoOCS project,</li>
 
<li>January 2011: Core area optimization by over 33% (Thanks to Frederic Requin).</li>
</ul>
</ul>
<h3>Requirements</h3>
<h3>Requirements</h3>
<ul>
<ul>
<li>Icarus Verilog simulator (<a href="http://www.icarus.com/eda/verilog/">http://www.icarus.com/eda/verilog/</a>) is required to compile the <code>tb_ao68000</code> testbench/wrapper,</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 <code>tb_ao68000</code> testbench/wrapper,</li>
<li>Access to Altera Quartus II instalation directory (directory eda/sim_lib/) is required to compile the <code>tb_ao68000</code> testbench/wrapper,</li>
<li>Access to Altera Quartus II instalation directory (directory eda/sim_lib/) is required to compile the <code>tb_ao68000</code> testbench/wrapper,</li>
Line 101... Line 100...
<ul>
<ul>
<li><b><a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a></b> - the <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> IP Core processor,</li>
<li><b><a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a></b> - the <a class="el" href="classao68000.html" title="ao68000 top level module.">ao68000</a> IP Core processor,</li>
<li><b>MC68000</b> - the original Motorola MC68000 processor. </li>
<li><b>MC68000</b> - the original Motorola MC68000 processor. </li>
</ul>
</ul>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Sat Dec 11 2010 13:21:12 for ao68000 by&#160;
<hr class="footer"/><address class="footer"><small>Generated on Sat Jan 15 2011 16:45:29 for ao68000 by&#160;
<a href="http://www.doxygen.org/index.html">
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
</body>
</body>
</html>
</html>
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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