Datasheets
 ALTERA implementation 
 XILINX implementation 
 LATTICE implementation 
 ASIC implementation 
Application Notes D68000 running uCLinux OS
D68000

16/32-bit Microprocessor


The D68000 soft core is binary-compatible with the industry standard 68000 32-bit microcoprocessor. The D68000 has a 16-bit data bus and a 24-bit address data bus. It is code compatible with the MC68008 and is upward code compatible with the MC68010 virtual extensions and the MC68020 32-bit implementation of the architecture. The D68000 has improved instructions set allows execution of a program with higher per-formance than standard 68000 core.
The D68000 is delivered with fully automated test-bench and complete set of tests allowing easy package validation at each stage of SoC design flow.

A special testing paltfrom has been built to run D68000 with uCLinux Operating System. For more details please check this link.


CPU Features

 
  • Software compatible with industry standard 68000
  • MULS, MULU take 28 clock periods
  • DIVS, DIVU take 28 clock periods
  • Optimized shifts and rotations
  • Idle cycles removed to improve performance
  • Shorter effective address calculation time
  • Bus cycle timings identical to 68000
  • 32 bit data and address registers
  • 14 addressing modes:
    • Direct:
      • Data register direct
      • Address register direct
    • Indirect:
      • Register indirect
      • Postincrement register indirect
      • Predecrement register indirect
      • Register indirect with offset
      • Indexed register indirect with offset
    • PC relative:
      • Relative with offset
      • Relative with index and offset
    • Absolute data:
      • Absolute short
      • Absolute long
    • Immediate data:
      • Immediate
      • Quick immediate
    • Implied

  • 5 data types supported:
    • bits
    • BCD
    • bytes, words and long words
  • Arithmetic Logic Unit includes:
    • 8,16,32-bit arithmetic & logical operations
    • 16x16 bit signed and unsigned multiplication
    • 32/16 bit signed and unsigned division
    • Boolean operations
  • Interrupt controller:
    • 7 priority levels interrupt controller
    • Unlimited number of virtual interrupt sources
    • Vectored and auto-vectored modes
  • Memory interface includes:
    • Up to 4 GB of address space
    • 16-bit data bus
    • Asynchronous bus control
  • M6800 family synchronous interface
    • 3- and 2- wire bus arbitration
    • Supervisor and user modes
  • Fully synthesizable
  • Static synchronous design


Symbol

 clk
 rsti
 halti
rsto 
halto 
 ipl (2:0)
 datai (15:0)
 dtack
 br
 bgack
 berr
 vpa
addr (23:0) 
datao (15:0) 
addrz 
dataz 
fc (2:0) 
ctrlz 
as 
lds 
uds 
rdwr 
bg 
vma 
epd 

Pins description

PinTypeDescription
clkinputGlobal clock
rstiinputGlobal reset input
haltiinputHalt input
ipl (2:0)inputInterrupt control
datai (15:0)inputData bus input
dtackinputData transfer acknowledge
brinputBus request
bgackinputBus grant acknowledge
berrinputBus error
vpainputValid peripheral address
rstooutputReset output
haltooutputHalt output
addr (23:0)outputAddress data bus
datao (15:0)outputData bus output
addrzoutputTurns DATA bus into 'Z' state
datazoutputTurns ADDRESS bus into 'Z' state
fc (2:0)outputProcessor function code
ctrlzoutputTurns AS, RDWR, UDS, LDS, VMA, FC(2:0) into 'Z' state
asoutputAddress strobe
ldsoutputLower data byte strobe
udsoutputUpper data byte strobe
rdwroutputRead write signal
bgoutputBus grant
vmaoutputValid memory address
epdoutputEnable peripheral device

Block diagram

Opcode Decoder
Control Unit
rsti
rsto
halti
halto
Interrupt Controller
ipl (2:0)
ALU
Data registers
Memory Interface
addr (23:0)
datao (15:0)
datai (15:0)
addrz
dataz
fc (2:0)
ctrlz
as
lds
uds
rdwr
dtack
br
bg
bgack
berr
vpa
vma
epd
Address registers
Shifter
clk

Units

Opcode Decoder

Opcode Decoder – Performs an instruction opcode decoding and the control functions for all other blocks.

Control Unit

Control Unit – Performs the core synchronization and data flow control. This module manages execution of all instructions. Contains SR (status register is consisted of two portions su-pervisor byte and user byte) and its related logic.

Interrupt Controller

Interrupt Controller – Interrupt Control module is responsible for the interrupt manage system for the external & internal interrupts and exceptions processing. It manages auto-vectored interrupt cycles, priority resolving and correct vector numbers creation.

ALU

ALU – Arithmetic Logic Unit performs the arithmetic and logic operations during execution of an instruction. It contains accumulator and related logic such as arithmetic unit, logic unit, multiplier and divider. BCD operation are exe-cuted in this unit and condition code flags (N-negative, Z-zero, C-carry V-overflow) for most instructions.

Data registers

Data registers – Contains 32-bit data registers D0 to D7 and related logic to perform byte, word and long data operations.

Memory Interface

Memory Interface – Contains memory access related registers It performs the memory addressing instructions code fetching and data transfers. It is responsible for all external bus cycle actions such as: read & write, repeated read & write, halt and resume of bus cycles, bus arbitration provided by 3- and 2- wire system, correct bus and address errors handling, wait states cycle insertion and M6800 synchronous cycle generation.

Address registers

Address registers – Contains 32-bit A0 to A6 address registers, two stack pointers USP (user SP) and SSP (Supervisor SP), 32-bit Program counter and related logic to perform word and long address operations. An effective address operation are executed in this unit.

Shifter

Shifter – Performs shifting operations for the appropriate instructions, mainly for rotation, shift and bit operations.

Performance

ImplementationSpeed
grade
Utilized Area
[LC]
Frequency
[MHz]
APEX20K-1633230
APEX20KE-1633232
APEX20KC-7633237
APEX II-7665740
MERCURY-5708645
STRATIX-5686249
CYCLONE-6660444

D68000 implementation results for ALTERA devices. The all features have been included.

ImplementationSpeed
grade
Utilized Area
[Slices]
Frequency
[MHz]
VIRTEX-6335632
VIRTEX-E-8331738
VIRTEX-II-5336658
VIRTEX-II pro-7341565

D68000 implementation results for XILINX devices. The all features have been included.