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

Subversion Repositories rf68000

[/] [rf68000/] [trunk/] [README.md] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 robfinch
# rf68000
2
 
3
## Overview
4
This is a mc68000 similar core. It is not the smallest core, some aspects of the core are not well thought out, but it runs.
5
It is *not* micro-coded and instead uses a large state machine. Many classes of instructions have their own states.
6
ALU operations are distributed and there are three separate result lanes for byte, word and long-word operations.
7
The core may be configured for little-endian operation. The default is for big-endian.
8
There is some 68010 compatibility. The movec instruction and vector base register are present. Instructions that operate on the status register are restricted to supervisor mode. This is to support virtual machine.
9
movec was desired to allow access to additional control registers. tick-tick count, coreno-the multi-core core number
10
 
11
## Status
12
The core fails to complete the test suite dervied from https://github.com/cdifan/cputest. which itself is derived from MicroCoreLabs https://github.com/MicroCoreLabs/Projects/MCL68/MC68000_Test_Code. Known to be a good test of operation of a 68000. It gets about 3/4 of the way through. So there are some bugs yet. Almost all instructions are working. The following instructions are not working correctly: ABCD, SBCD, NBCD, and DIVS. The procedure to handle BCD numbers is to convert to binary, perform the operation, then convert back to BCD. Suspect illegal combinations of BCD digits are working differently.
13
The core works well enough to run a small monitor program that allows dumping and editing memory.
14
It is used in a multi-core network-on-chip.
15
 
16
## History
17
Work started on the core in 2008. It was set aside for a long time, and work resumed in November 2022.
18
 
19
## Supported Bus Interface
20
The core is *WISHBONE* B.3 master compatible.
21
Supported cycles: master read/write, master read/modify/write
22
Address and data bus are both 32-bits wide.
23
 
24
## Size / Performance
25 4 robfinch
approx. 13,000 LUTs (21,000 LC's) without FP, approx <80 MHz max (in -1 part).
26 2 robfinch
No idea how the cycle times compare to a stock 68000, but suspect it may be a little faster due to minimum bus cycle time of two clocks and a 32-bit data bus.
27
 
28
## Software
29
The core may use 68000 software. There is a modified 68k vasm assembler. Additional control registers were added for movec.
30
There are some software examples in the examples folder.
31
 
32 4 robfinch
## Instruction Set
33
The core includes BCD to binary and binary to BCD conversion functions in addition to the standard 68k instructions.
34
 
35
### Floating-Point
36
The core supports 96-bit triple precision decimal floating-point. The core repurposes the packed BCD floating-point instructions to implement triple precision densely-packed-decimal floating point. This may be
37
disabled by commenting out the 'SUPPORT_DECFLT' definition to reduce the core
38
size.
39
The following floating-point instructions are at least partially supported:
40
FADD, FSUB, FMUL, FDIV, FNEG, FSCALE, FCMP, FTST, FBcc, FMOVE
41 5 robfinch
Decimal floating-point primitives are found in the ft816float project at
42
opencores.org.
43 4 robfinch
 
44 2 robfinch
## License
45
BSD-3
46
 
47
## Other 68k Cores
48
http://www.opencores.org/project,ao68000
49
http://www.opencores.org/project,tg68
50
http://www.experiment-s.de/en
51
http://www.opencores.org/project,k68
52
http://www.opencores.org/project,ae68

powered by: WebSVN 2.1.0

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