Datasheets
 ALTERA implementation 
 XILINX implementation 
 LATTICE implementation 
 ASIC implementation 
Application Notes FPGA Kit available - PCB board Development Tools Products Summary
DP8051

Pipelined High Performance Microcontroller



The DP8051 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 DP8051 soft core is 100% binary-compatible with the industry standard 8051 8-bit microcontroller. There are two configurations of DP8051: Harvard where internal data and program buses are separated, and von Neumann with common program and external data bus. The DP8051 has a Pipelined RISC architecture 10 times faster compared to standard architecture and executes 85-200 million instructions per second. This performance can also be exploited to great advantage in low power applications where the core can be clocked over ten times slower than the original implementation without performance depletion.
The DP8051 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 the 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
  • 10 times faster compared to standard 8051
  • 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
  • 2 GHz virtual clock frequency in a 0.35u technological process

Configuration

The following parameters of the DP8051 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.
    • DoCD™ 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 from peripherals
    • Four 8-bit I/O Ports
      • Bit addressable data direction for each line
      • Read/write of single line and 8-bit group
    • Two 16-bit timer/counters
      • Timers clocked by internal source
      • Auto reload 8-bit timers
      • Externally gated event counters
    • Full-duplex serial port
      • Synchronous mode, fixed baud rate
      • 8-bit asynchronous mode, fixed baud rate
      • 9-bit asynchronous mode, fixed baud rate
      • 9-bit asynchronous mode, variable baud rate


    Symbol

     reset
     clk
     iprgramsize (2:0)
     iprgromsize (2:0)
     rxd0i
    rxd0o 
    txd0 
     t0
     t1
     gate0
     gate1
     port0i (7:0)
     port1i (7:0)
     port2i (7:0)
     port3i (7:0)
    port0o (7:0) 
    port1o (7:0) 
    port2o (7:0) 
    port3o (7:0) 
     ramdatai (7:0)
    ramaddr (7:0) 
    ramdatao (7:0) 
    ramoe 
    ramwe 
     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 
     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
    rxd0iinputSerial receiver input 0
    t0inputTimer 0 input
    t1inputTimer 1 input
    gate0inputTimer 0 gate input
    gate1inputTimer 1 gate input
    port0i (7:0)inputPort 0 input
    port1i (7:0)inputPort 1 input
    port2i (7:0)inputPort 2 input
    port3i (7:0)inputPort 3 input
    ramdatai (7:0)inputData bus from internal data memory
    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
    tdiinputDoCDTM TAP data input
    tckinputDoCDTM TAP clock line
    tmsinputDoCDTM TAP mode select
    sxdmdatai (7:0)inputData bus from sync external data memory (SXDM)
    rxd0ooutputSerial receiver output 0
    txd0outputSerial transmitter output 0
    port0o (7:0)outputPort 0 output
    port1o (7:0)outputPort 1 output
    port2o (7:0)outputPort 2 output
    port3o (7:0)outputPort 3 output
    ramaddr (7:0)outputRAM address bus
    ramdatao (7:0)outputData bus for internal data memory
    ramoeoutputInternal data memory read
    ramweoutputInternal data memory write enable
    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
    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)
    UART0
    rxd0i
    rxd0o
    txd0
    Timers
    t0
    t1
    gate0
    gate1
    ALU
    I/O Ports
    port0i (7:0)
    port1i (7:0)
    port2i (7:0)
    port3i (7:0)
    port0o (7:0)
    port1o (7:0)
    port2o (7:0)
    port3o (7:0)
    Internal Data Memory Interface
    ramaddr (7:0)
    ramdatao (7:0)
    ramdatai (7:0)
    ramoe
    ramwe
    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
    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.

    UART0

    Universal Asynchronous Receiver & Transmitter module is full duplex, meaning it can transmit and receive concurrently. Includes Serial Configuration register (SCON), serial receiver and transmitter buffer (SBUF) registers. Its receiver is double-buffered, meaning it can commence reception of a second byte before a previously received byte has been read from the receive register. Writing to SBUF0 loads the transmit register, and reading SBUF0 reads a physically separate receive register. Works in 3 asynchronous and 1 synchronous modes. UART0 can be synchronized by Timer 1 or Timer 2 (if present in system).

    Timers

    System timers module. Contains two 16 bits configurable timers: Timer 0 (TH0, TL0), Timer 1 (TH1, TL1) and Timers Mode (TMOD) registers. In the timer mode, timer registers are incremented every 12 CLK periods when appropriate timer is enabled. In the counter mode the timer registers are incremented every falling transition on their corresponding input pins (T0, T1), if gates are opened (GATE0, GATE1). T0, T1 input pins are sampled every CLK period. It can be used as clock source for UARTs.

    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.

    I/O Ports

    Block contains 8051’s general purpose I/O ports. Each of port’s pin can be read/write as a single bit or as a 8-bit bus P0, P1, P2, P3.

    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.

    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.

    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 breakpoint is 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

    ImplementationSpeed
    grade
    Utilized Area
    [LC]
    Frequency
    [MHz]
    FLEX10KE-1225057
    ACEX1K-1225057
    APEX20K-1225050
    APEX20KE-1225066
    APEX20KC-7225078
    APEX II-7225076
    MERCURY-52250100
    STRATIX-5225090
    STRATIX-II-31750160
    CYCLONE-6225091
    CYCLONE-II-6225093

    DP8051 implementation results for ALTERA devices. The CPU features and Peripherals have been included.

    ImplementationSpeed
    grade
    Utilized Area
    [Slices]
    Frequency
    [MHz]
    SPARTAN-II-6110053
    SPARTAN-IIE-7110064
    SPARTAN-III-5110073
    VIRTEX-6110053
    VIRTEX-E-8110067
    VIRTEX-II-6110099
    VIRTEX-II pro-71100123
    VIRTEX-4-111100107

    DP8051 implementation results for XILINX devices. The CPU features and Peripherals have been included.

    ImplementationSpeed
    grade
    Utilized Area
    [LUT/PFU]
    Frequency
    [MHz]
    EC-52224/49067
    ECP-52146/49073
    XP-52224/49061
    SC-72446/490117
    ECP2-72349/49092
    ECP2M-72095/51694
    XP2-72095/49680

    DP8051 implementation results for LATTICE devices. The CPU features and Peripherals have been included.


    Family summary

    DesignArchit.
    speed
    on-chip CODE
    RAM/ROM
    off-chip
    CODE
    CODE writeIDATA spaceXDATA spaceXDATA,
    CODE
    wait states
    DoCDTMPMUInterrupt sourcesDPTRTimersUARTIO PortsCompare/
    Capture
    WatchdogMDUDI2CMDI2CSDSPIDFPAU
    DFPMU
    DMAC
    DP8051CPU1064k/64k 64k+25616M+++21-----------
    DP80511064k/64k 64k+25616M+++51214--------
    DP8051XP1064k/64k 64k+25616M+++152324++++++++
    DP80C511064k/64k 64k+25664k+++51214--------


    The main features of each DP8051 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.