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

Pipelined High Performance Microcontroller


The DP80C51 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 for performance to power consumption ratio. This ratio is extended by an advanced power management unit PMU. The DP80C51 soft core is 100% binary and pin compatible with the industry standard 8051 8-bit microcontroller. There are two configurations of the DP80C51: Harvard, where external data and program buses are separated, and von Neumann, with common program and external data bus. The DP80C51 has a Pipelined RISC architecture up to 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 DP80C51 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 a built in support for DCD Hardware Debug System called DoCDTM. It is a real-time hardware debuggerwhich 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% pin compatible with industry standard 8051
  • 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 64 kB of external (off-chip) Data Memory
  • User programmable Program Memory Wait States
  • User programmable External Data Memory Wait States
  • Dedicated signal for Program Memory writes
  • Interface for additional Special Function Registers
  • Fully synthesizable, static synchronous design with positive edge clocking and no internal tri-states
  • Scan test ready
  • 2 GHz virtual clock frequency in a 0.25u technological process

Configuration

The following parameters of the DP80C51 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
    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 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
    port0 (7:0) 
    port1 (7:0) 
    port2 (7:0) 
    port3 (7:0) 
     ramdatai (7:0)
    ramdatao (7:0) 
    ramaddr (7:0) 
    ramoe 
    ramwe 
    stop 
    pmm 
     tdi
     tck
     tms
    tdo 
    rtck 
     sfrdatai (7:0)
    sfrdatao (7:0) 
    sfrwe 
    sfroe 
    sfraddr (6:0) 
     prgramdata (7:0)
     prgromdata (7:0)
    prgaddr (15:0) 
    prgdatao (7:0) 
    prgramwr 
     ea
    ale 
    psen 
    pswr 

    Pins description

    PinTypeDescription
    resetinputGlobal reset
    clkinputGlobal clock
    ramdatai (7:0)inputData bus from internal data memory
    tdiinputDoCDTM TAP data input
    tckinputDoCDTM TAP clock line
    tmsinputDoCDTM TAP mode select
    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
    eainputEnable all external program memory
    port0 (7:0)outputPort 0 bus, Data/LSB address of external memory
    port1 (7:0)outputPort 1 bus
    port2 (7:0)outputPort 2 bus, MSB address of external memory
    port3 (7:0)outputPort 3 bus, mutlifunctional pins
    ramdatao (7:0)outputData bus for internal data memory
    ramaddr (7:0)outputRAM address bus
    ramoeoutputInternal data memory read
    ramweoutputInternal data memory write enable
    stopoutputStop mode indicator
    pmmoutputPower management mode indicator
    tdooutputDoCDTM TAP data output
    rtckoutputDoCDTM return clock
    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
    aleoutputAddress Latch Enable
    psenoutputProgram Store (memory) read Enable
    pswroutputProgram Store (memory) Write

    Block diagram

    Opcode Decoder
    Control Unit
    Timers
    UART0
    I/O Ports
    port0 (7:0)
    port1 (7:0)
    port2 (7:0)
    port3 (7:0)
    Internal Data Memory Interface
    ramdatao (7:0)
    ramaddr (7:0)
    ramdatai (7:0)
    ramoe
    ramwe
    ALU
    Power Management Unit
    stop
    pmm
    DoCDTM JTAG
    tdi
    tck
    tms
    tdo
    rtck
    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
    Interrupt Controller
    External Memory Interface
    ea
    ale
    psen
    pswr
    reset
    clk

    Units

    Opcode Decoder

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

    Control Unit

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

    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. Note that external pins of this module are connected to appropriate pins of P3 port.

    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) regis-ters. 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 syn-chronous modes. UART0 can be synchronized by Timer 1. Note that external pins of this module are connected to appropriate pins of P3 port.

    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. The P0, P2, P3 are multifunctional ports. When used with External memory P0 works as a multiplexed Data/LSB address to memory, and P2 works as a MSB address to external memory, P3.6 is a write signal and P3.7 is a read signal. Functionality of port is the same as in legacy 80C51 microcontroller.

    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.

    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.

    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 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.

    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.

    Interrupt Controller

    Interrupt control module is responsible for the interrupt manage system for the external and internal interrupt sources. It contains interrupt related registers such as Interrupt Enable (IE), Interrupt Priority (IP) and (TCON) registers. Note that external pins of this module are connected to appropriate pins of P3 port.

    External Memory Interface

    Contains memory access related registers such as Data Page High (DPH), Data Page Low (DPL). 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.

    Performance


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

    ImplementationSpeed
    grade
    Utilized Area
    [LC]
    Frequency
    [MHz]
    APEX20KC-7230078
    STRATIX-5230090
    STRATIX-II-31790160
    CYCLONE-6230091
    CYCLONE-II-6230093

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

    ImplementationSpeed
    grade
    Utilized Area
    [Slices]
    Frequency
    [MHz]
    SPARTAN-IIE-7112564
    SPARTAN-III-5112573
    VIRTEX-II-6112599
    VIRTEX-II pro-71125123
    VIRTEX-4-111125107

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

    ImplementationSpeed
    grade
    Utilized Area
    [LUT/PFU]
    Frequency
    [MHz]
    EC-52470/50067
    ECP-52470/50073
    XP-52470/50061
    SC-72470/500117

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


    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.