Documentation
 ALTERA datasheet 
 XILINX datasheet 
 LATTICE datasheet 
 ASIC datasheet 
Application Notes FPGA Kit available - PCB board Development Tools Products Summary
DP8051CPU

Pipelined High Performance Microcontroller




The DP8051CPU is an ultra high performance, speed optimized soft core of a single-chip 8-bit embedded controller dedicated for operation with fast (typically on-chip) and slow (off-chip) memories. The core has been designed with a special concern about performance to power consumption ratio. This ratio is extended by an advanced power management unit PMU.
The DP8051CPU soft core is 100% binary-compatible with the industry standard 8051 8-bit microcontroller. There are two configurations of DP8051CPU: Harvard where internal data and program buses are separated, and von Neumann with common program and external data bus. The DP8051CPU has a Pipelined RISC architecture and executes 120-300 million instructions per second. Dhrystone 2.1 benchmark program runs from 11.45 to 14.73 times faster than the original 80C51 at the same frequency. The same C compiler was used for benchmarking of the core vs 80C51 with the same settings. This performance can also be exploited to great advantage in low power applications where the core can be clocked over ten times more slower than the original implementation, without performance depletion.
The DP8051CPU is delivered with fully automated testbench and complete set of tests allowing easy package validation at each stage of SoC design flow.




Each of the DCD's 8051 Core has built in support for DCD Hardware Debug System called DoCDTM. It is a real-time hardware debugger which provides debugging capability of a whole System on Chip (SoC).
In contrast to other on-chip debuggers the DoCDTM provides non-intrusive debugging of running application. It can halt, run, step into or skip an instruction, read/write any contents of microcontroller including all registers, internal, external, program memories, all SFRs including user defined peripherals. More details about DCD on Chip Debugger...



CPU Features

Peripherals

  • 100% software compatible with industry standard 8051
  • Pipelined RISC architecture enables to execute 14.7 times faster than the original 80C51 at the same frequency
  • Up to 13,868 VAX MIPS at 100 MHz
  • 24 times faster multiplication
  • 12 times faster division
  • Up to 256 bytes of internal (on-chip) Data Memory
  • Up to 64 kB of internal (on-chip) or external (off-chip) Program Memory
  • Up to 16 MB of external (off-chip) Data Memory
  • User programmable Program Memory Wait States
  • User programmable External Data Memory Wait States
  • De-multiplexed Address/Data bus to allow easy memory connection
  • Interface for additional Special Function Registers
  • Fully synthesizable
  • Static synchronous design
  • Positive edge clocking and no internal tri-states
  • Scan test ready

Configuration

The following parameters of the DP8051CPU core can be easy adjusted to requirements of dedicated application and technology. Configuration of the core can be prepared by effortless changing appropriate constants in package file. There is no need to change any parts of the code.

Internal Program Memory type
  • synchronous
  • asynchronous
Internal Program ROM Memory size0-64kB
Internal Program RAM Memory size0-64kB
Internal Program Memory fixed size
  • true
  • false
Interruptssubroutines location
Power Management Mode
  • used
  • unused
Stop mode
  • used
  • unused
DoCDTM debug unit
  • used
  • unused

Besides mentioned above parameters all available peripherals and external interrupts can be excluded from the core by changing appropriate constants in package file.
  • DoCDTM debug unit
    • Processor execution control
    • Read-write all processor contents
    • Hardware execution breakpoints
    • JTAG communication interface
  • Power Management Unit
    • Power management mode
    • Switchback feature
    • Stop mode
  • Interrupt Controller
    • 2 priority levels
    • 2 external interrupt sources
    • 3 interrupt sources for peripherals


Symbol

 reset
 clk
 iprgramsize (2:0)
 iprgromsize (2:0)
 int0
 int1
 sfrdatai (7:0)
sfrdatao (7:0) 
sfrwe 
sfroe 
sfraddr (6:0) 
 prgramdata (7:0)
 prgromdata (7:0)
prgaddr (15:0) 
prgdatao (7:0) 
prgramwr 
 xdatai (7:0)
 ready
xdatao (7:0) 
xdataz 
xaddr (23:0) 
xprgrd 
xprgwr 
xdatard 
xdatawr 
stop 
pmm 
 ramdatai (7:0)
ramdatao (7:0) 
ramaddr (7:0) 
ramoe 
ramwe 
 tdi
 tck
 tms
tdo 
rtck 
 sxdmdatai (7:0)
sxdmaddr (15:0) 
sxdmdatao (7:0) 
sxdmoe 
sxdmwe 

Pins description

PinTypeDescription
resetinputGlobal reset
clkinputGlobal clock
iprgramsize (2:0)inputSize of on-chip RAM CODE
iprgromsize (2:0)inputSize of on-chip ROM CODE
int0inputExternal interrupt 0
int1inputExternal interrupt 1
sfrdatai (7:0)inputData bus from user SFRs
prgramdata (7:0)inputData bus from internal RAM program memory
prgromdata (7:0)inputData bus from internal ROM program memory
xdatai (7:0)inputData bus from external memories
readyinputExternal memory data ready
ramdatai (7:0)inputData bus from internal data memory
tdiinputDoCDTM TAP data input
tckinputDoCDTM TAP clock line
tmsinputDoCDTM TAP mode select
sxdmdatai (7:0)inputData bus from sync external data memory (SXDM)
sfrdatao (7:0)outputData bus for user SFRs
sfrweoutputUser SFRs write enable
sfroeoutputUser SFRs read
sfraddr (6:0)outputUser SFRs address bus
prgaddr (15:0)outputInternal program memory address bus
prgdatao (7:0)outputData bus for internal program memory
prgramwroutputInternal program memory write
xdatao (7:0)outputData bus for external memories
xdatazoutputTurn xdata bus into ‘Z’ state
xaddr (23:0)outputAddress bus for external memories
xprgrdoutputExternal program memory read
xprgwroutputExternal program memory write
xdatardoutputExternal data memory read
xdatawroutputExternal data memory write
stopoutputStop mode indicator
pmmoutputPower management mode indicator
ramdatao (7:0)outputData bus for internal data memory
ramaddr (7:0)outputRAM address bus
ramoeoutputInternal data memory read
ramweoutputInternal data memory write enable
tdooutputDoCDTM TAP data output
rtckoutputDoCDTM return clock
sxdmaddr (15:0)outputSync XDATA memory address bus (SXDM)
sxdmdatao (7:0)outputData bus for Sync XDATA memory (SXDM)
sxdmoeoutputSync XDATA memory read (SXDM)
sxdmweoutputSync XDATA memory write (SXDM)

Block diagram

Opcode Decoder
Control Unit
iprgramsize (2:0)
iprgromsize (2:0)
ALU
Interrupt Controller
int0
int1
SFRs Inetrface
sfrdatai (7:0)
sfrdatao (7:0)
sfrwe
sfroe
sfraddr (6:0)
Program Memory Interface
prgramdata (7:0)
prgromdata (7:0)
prgaddr (15:0)
prgdatao (7:0)
prgramwr
External Memory Interface
xdatai (7:0)
xdatao (7:0)
xdataz
xaddr (23:0)
ready
xprgrd
xprgwr
xdatard
xdatawr
Power Management Unit
stop
pmm
Internal Data Memory Interface
ramdatao (7:0)
ramaddr (7:0)
ramdatai (7:0)
ramoe
ramwe
DoCDTM JTAG
tdi
tck
tms
tdo
rtck
SXDM interface
sxdmdatai (7:0)
sxdmaddr (15:0)
sxdmdatao (7:0)
sxdmoe
sxdmwe
reset
clk

Units

Opcode Decoder

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

Control Unit

It performs the core synchronization and data flow control. This module is directly connected to Opcode Decoder and manages execution of all microcontroller tasks.

ALU

Arithmetic Logic Unit performs the arithmetic and logic operations during execution of an instruction. It contains accumulator (ACC), Program Status Word (PSW), (B) registers and related logic like arithmetic unit, logic unit, multiplier and divider.

Interrupt Controller

Interrupt Controller module is responsible for the interrupt manage system of the external and internal interrupt sources. It contains interrupt related registers such as Interrupt Enable (IE), Interrupt Priority (IP) and (TCON) registers.

SFRs Inetrface

Special Function Registers interface controls access to externally connected peripherals through SFR bus.

Program Memory Interface

Program Memory Interface contains Program Counter (PC) and related logic. It performs the instructions code fetching. Program Memory can be also written. This feature allows usage of a small boot loader loading new program into ROM, RAM, EPROM or FLASH EEPROM storage via UART, SPI, I2C or DoCD™ module.

External Memory Interface

External Memory Interface contains memory access related registers such as Data Page High (DPH), Data Page Low (DPL) and Data Page Pointer (DPP) registers. It performs the external Program and Data Memory addressing and data transfers. Program fetch cycle length can be programmed by user. This feature is called Program Memory Wait States, and allows core to work with different speed program memories.

Power Management Unit

Power Management Unit contains advanced power saving mechanisms with switchback feature, allowing external clock control logic to stop clocking (Stop mode) or run core in lower clock frequency (Power Management Mode) to significantly reduce power consumption. Switchback feature allows UARTs, and interrupts to be processed in full speed mode if enabled. It is very desired when microcontroller is planned to use in portable and power critical applications.

Internal Data Memory Interface

Interface controls access into the internal memory of size up to 256 bytes. It contains 8-bit Stack Pointer (SP) register and related logic.

DoCDTM JTAG

DoCDTM Debug Unit – it is a real-time hardware debugger provides debugging capability of a whole SoC system. In contrast to other on-chip debuggers DoCD™ provides non-intrusive debugging of running application. It can halt, run, step into or skip an instruction, read/write any contents of microcontroller including all registers, internal, external, program memories, all SFRs including user defined peripherals. Hardware breakpoints can be set and con-trolled on program memory, internal and external data memories, as well as on SFRs. Hardware breakpoints can be set and controlled on program memory, hardware watchpoints can be set and controlled on internal and external data memories, as well as on SFRs. Hardware watchpoints are executed if any write/read occurred at particular address with certain data pattern or without pattern. Two additional pins CODERUN, DEBUGACS indicate the sate of the debugger and CPU. CODERUN is active when CPU is executing an instruction. DEBUGACS pin is active when any access is performed by DoCD™ debugger. The DoCD™ system includes JTAG interface and complete set of tools to communicate and work with core in real time debugging. It is built as scalable unit and some features can be turned off to save silicon and reduce power consumption. A special care on power consumption has been taken, and when debugger is not used it is automatically switched in power save mode. Finally whole debugger is turned off when debug option is no longer used.

SXDM interface

Synchronous eXternal Data Memory (SXDM) Interface – contains XDATA memory access related logic allowing fast access to synchronous memory devices. It performs the external Data Memory addressing and data transfers. This memory can be used to store large variables frequently accessed by CPU, improving overall performance of application.

Performance


Each core has been tested in variety of FPGA and ASIC technologies. Its implementation's results are summarized below.

ImplementationSpeed
grade
Utilized AreaFrequency
[MHz]
XP-51940 LUT4s76
EC-51940 LUT4s82
ECP-51940 LUT4s88
XP2-71880 LUT4s101
ECP2-71880 LUT4s120
ECP2M-71880 LUT4s123
SC-71880 LUT4s149

DP8051CPU implementation results for LATTICE devices - results given for working system
with connected IDATA, CODE and XDATA memories
.
The CPU features and Peripherals have been included.

ImplementationSpeed
grade
Utilized Area
[LC]
Frequency
[MHz]
APEX20KC-71750 LC79
STRATIX-51750 LC90
STRATIX-II-31230 ALUT160
CYCLONE-61750 LC93
CYCLONE-II-61750 LC95
CYCLONE-III-61830 LC115
Arria GX-61230 ALUT112
STRATIX-III-21230 ALUT199
STRATIX-IV-21230 ALUT199

DP8051CPU implementation results for ALTERA devices - results given for working system
with connected IDATA, CODE and XDATA memories
.
The CPU features and Peripherals have been included.

ImplementationSpeed
grade
Utilized AreaFrequency
[MHz]
SPARTAN-IIE-7860 Slices64
SPARTAN-III-5860 Slices77
VIRTEX-II-6860 Slices106
VIRTEX-II pro-7860 Slices129
VIRTEX-4-11860 Slices107
VIRTEX-5-31320 LCells200

DP8051CPU implementation results for XILINX devices - results given for working system
with connected IDATA, CODE and XDATA memories
.
The CPU features and Peripherals have been included.

ImplementationSpeed
grade
Utilized Area
[gates]
Frequency
[MHz]
0.25u areatypical6 050100
0.25u speedtypical7 600250
0.18u areatypical5 730100
0.18u speedtypical6 900300

DP8051CPU implementation results for ASIC devices - results given for working system
with connected IDATA, CODE and XDATA memories
.
The CPU features and Peripherals have been included.
DoCD JTAG debugger increases core size about 2 100 gates.


Family summary

DesignDhry
speed
on-chip CODE
RAM/ROM
off-chip
CODE
CODE writeIDATA spaceXDATA spaceXDATA,
CODE
wait states
DoCDTMPMUInterrupt sourcesDPTRTimersUARTIO PortsCompare/
Capture
WatchdogMDU
MDU32
DI2CMDI2CSDSPIDFPMUDMACDCAN
DP8051CPU14.764k/64k 64k/8M+25616M+++21------------
DP805114.764k/64k 64k/8M+25616M+++51214---------
DP8051XP14.764k/64k 64k/8M+25616M+++152324+++++++++
DP80C5111.464k/64k 64k+25664k+++51214---------
DT80518.164k/64k 64k+25664k-++111211---------

The main features of each DCD's DP8051, DP80C51, DT8051 family member have been summarized in table above. It gives a briefly member characterization helping user to select the most suitable IP Core for its application. User can specify its own peripheral set (including listed above and the others) and requests the core modifications. The Core Wizard allows the users to generate their own IP Core.