All Projects → alfikpl → Ao68000

alfikpl / Ao68000

Licence: other
The OpenCores ao68000 IP Core is a Motorola MC68000 binary compatible processor.

Labels

Projects that are alternatives of or similar to Ao68000

Alterade2labs verilog
My solutions to Alteras example labs
Stars: ✭ 40 (-33.33%)
Mutual labels:  verilog
H265 Encoder Rtl
Stars: ✭ 48 (-20%)
Mutual labels:  verilog
Rggen
Code generation tool for configuration and status registers
Stars: ✭ 54 (-10%)
Mutual labels:  verilog
Fusesoc Cores
FuseSoC standard core library
Stars: ✭ 41 (-31.67%)
Mutual labels:  verilog
Cnn hardware acclerator for fpga
This is a fully parameterized verilog implementation of computation kernels for accleration of the Inference of Convolutional Neural Networks on FPGAs
Stars: ✭ 47 (-21.67%)
Mutual labels:  verilog
Wbscope
A wishbone controlled scope for FPGA's
Stars: ✭ 50 (-16.67%)
Mutual labels:  verilog
Ctf
Stuff from CTF contests
Stars: ✭ 39 (-35%)
Mutual labels:  verilog
Riscy Soc
Riscy-SoC is SoC based on RISC-V CPU core, designed in Verilog
Stars: ✭ 59 (-1.67%)
Mutual labels:  verilog
Hw
RTL, Cmodel, and testbench for NVDLA
Stars: ✭ 1,041 (+1635%)
Mutual labels:  verilog
Electron
A mixed signal netlist language (pre-alpha)
Stars: ✭ 52 (-13.33%)
Mutual labels:  verilog
Megacd mister
Mega CD for MiSTer
Stars: ✭ 42 (-30%)
Mutual labels:  verilog
Mam65c02 Processor Core
Microprogrammed 65C02-compatible FPGA Processor Core (Verilog-2001)
Stars: ✭ 43 (-28.33%)
Mutual labels:  verilog
Up5k basic
A small 6502 system with MS BASIC in ROM
Stars: ✭ 51 (-15%)
Mutual labels:  verilog
Rsyocto
🤖 SoCFPGA: Open Source embedded Linux developed for Intel (ALTERA) SoC-FPGAs (Cyclone V & Arria 10)
Stars: ✭ 41 (-31.67%)
Mutual labels:  verilog
Fpga101 Workshop
FPGA 101 - Workshop materials
Stars: ✭ 54 (-10%)
Mutual labels:  verilog
Mojo Base Project
This is the base project for the Mojo. It should be used as the starting point for all projects.
Stars: ✭ 39 (-35%)
Mutual labels:  verilog
Vexriscv
A FPGA friendly 32 bit RISC-V CPU implementation
Stars: ✭ 1,041 (+1635%)
Mutual labels:  verilog
Cdbus ip
CDBUS Protocol and the IP Core for FPGA users
Stars: ✭ 60 (+0%)
Mutual labels:  verilog
Practical Uvm Step By Step
This is the main repository for all the examples for the book Practical UVM
Stars: ✭ 56 (-6.67%)
Mutual labels:  verilog
Darkriscv
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
Stars: ✭ 1,062 (+1670%)
Mutual labels:  verilog

Description

The OpenCores ao68000 IP Core is a Motorola MC68000 binary compatible processor.

Features

  • CISC processor with microcode,
  • WISHBONE revision B.3 compatible MASTER interface,
  • Not cycle exact with the MC68000, some instructions take more cycles to complete, some less,
  • Uses about 4750 LE on Altera Cyclone II and about 45600 bits of RAM for microcode,
  • Tested against the WinUAE M68000 software emulator. Every 16-bit instruction was tested with random register contents and RAM contents (Processor verification). The result of execution was compared,
  • Contains a simple prefetch which is capable of holding up to 5 16-bit instruction words,
  • Documentation generated by Doxygen (www.doxygen.org) with doxverilog patch (http://developer.berlios.de/projects/doxverilog/). The specification is automatically extracted from the Doxygen HTML output.

License

The OpenCores ao68000 IP Core is licensed under the Simplified BSD License. Works based on this project may be released under a proprietary license or as closed source software.

WISHBONE compatibility

  • Version: WISHBONE specification Revision B.3,
  • General description: 32-bit WISHBONE Master interface,
  • WISHBONE signals described in IO Ports,
  • Supported cycles: Master Read/Write, Master Block Read/Write, Master Read-Modify-Write for TAS instruction, Register Feedback Bus Cycles as described in chapter 4 of the WISHBONE specification,
  • Use of ERR_I: on memory access – bus error, on interrupt acknowledge: spurious interrupt,
  • Use of RTY_I: on memory access – repeat access, on interrupt acknowledge: generate auto-vector,
  • WISHBONE data port size: 32-bit,
  • Data port granularity: 8-bits,
  • Data port maximum operand size: 32-bits,
  • Data transfer ordering: BIG ENDIAN,
  • Data transfer sequencing: UNDEFINED,
  • Constraints on CLK_I signal: described in Clocks, maximum frequency: about 82 MHz.

Use

  • The ao68000 is used as the processor for the OpenCores aoOCS project - Wishbone Amiga OCS SoC (http://opencores.org/project,aoocs)
  • It can also be used as a processor in a System-on-Chip booting Linux kernel version 2.6.33.1 up to init program lookup (System-on-Chip example with ao68000 running Linux).

Similar projects

Other free soft-core implementations of M68000 microprocessor include:

Limitations

  • Microcode not optimized: some instructions take more cycles to execute than the original MC68000,
  • TRACE not tested,
  • The core is still large compared to other implementations.

TODO

  • Optimize the desgin and microcode,
  • Count the exact cycle count for every instruction,
  • Test TRACE,
  • Write more documentation.

Status

  • April 2010: Tested with WinUAE software MC68000 emulator,
  • April 2010: Booted Linux kernel up to init process lookup,
  • December 2010: Runs as a processor in OpenCores aoOCS project,
  • January 2011: Core area optimization by over 33% (Thanks to Frederic Requin).
  • July 2011: Project copied to (https://github.com/alfikpl/ao68000). Further development of ao68000 will continue on github.

Requirements

  • Icarus Verilog simulator (http://www.icarus.com/eda/verilog/) is required to compile the tb_ao68000 testbench/wrapper,
  • Access to Altera Quartus II instalation directory (directory eda/sim_lib/) is required to compile the tb_ao68000 testbench/wrapper,
  • GCC (http://gcc.gnu.org) is required to compile the WinUAE MC68000 software emulator,
  • Java runtime (http://java.sun.com) is required to run the ao68000_tool (ao68000_tool documentation),
  • Java SDK (http://java.sun.com) is required to compile the ao68000_tool (ao68000_tool documentation),
  • Altera Quartus II synthesis tool (http://www.altera.com) is required to synthesise the soc_for_linux System-on-Chip (System-on-Chip example with ao68000 running Linux).

Glossary

  • ao68000 - the ao68000 IP Core processor,
  • MC68000 - the original Motorola MC68000 processor.

Structure diagram

Structure diagram

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].