DP80390XP Pipelined High Performance 8-bit Microcontroller ver 4.05 OVERVIEW DP80390XP is an ultra high performance, speed optimized soft core of a singlechip 8-bit embedded controller dedicated for operation with fast (typically on-chip) and slow (off-chip) memories. It supports up to 8 MB of linear code and 16 MB of linear data spaces. 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. DP80390XP soft core is 100% binarycompatible with the industry standard 80390 & 8051 8-bit microcontroller. There are two configurations of DP80390XP: Harward where internal data and program buses are separated, and von Neumann with common program and external data bus. DP80390XP has 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 more slowly than the original implementation for no performance penalty. DP80390XP is fully customizable, which means it is delivered in the exact configuration to meet users’ requirements. There is no need to pay extra for not used features and wasted silicon. It includes fully automated testbench with complete set of tests allowing easy All trademarks mentioned in this document are trademarks of their respective owners. package validation at each stage of SoC design flow. CPU FEATURES ● 100% software compatible with industry standard 80390 & 8051 ○ LARGE mode – 8051 instruction set ○ FLAT mode – 80390 instruction set ● Pipelined RISC architecture enables to execute instructions 10 times faster compared to standard 8051 ● 24 times faster multiplication ● 12 times faster addition ● 2 Data Pointers (DPTR) for faster memory blocks copying ○ Advanced INC & DEC modes ○ Auto-switch of current DPTR ● ● Up to 256 bytes of internal (on-chip) Data Memory Up to 8M bytes of linear Program Memory ○ 64 kB of internal (on-chip) Program Memory ○ 8 MB external (off-chip) Program Memory ● Up to 16M bytes of external (off-chip) Data Memory ○ Synchronous eXternal Data Memory (SXDM) Interface ● User programmable Program Memory Wait States solution for wide range of memories speed http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. ● User programmable External Data Memory Wait States solution for wide range of memories speed ● De-multiplexed Address/Data bus to allow easy connection to memory ● 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.0 GHz virtual clock frequency in a 0.25u technological process ○ Up to 7 external interrupt sources ○ Up to 8 interrupt sources from peripherals ● ● ● ● ● ● Power Management Unit Extended Interrupt Controller ○ 2 priority levels All trademarks mentioned in this document are trademarks of their respective owners. NORMAL speed 100 kbs FAST speed 400 kbs HIGH speed 3400 kbs Wide range of system clock frequencies User defined data setup time on I2C lines Interrupt generation SPI – Master and Slave Serial Peripheral Interface ○ Supports speeds up ¼ of system clock Mode fault error Write collision error ○ Four transfer formats supported ○ System errors detection ○ Allows operation from a wide range of system clock frequencies (build-in 5-bit timer) ○ Interrupt generation ● ● Programmable Watchdog Timer 16-bit Compare/Capture Unit ○ ○ ○ ○ ○ ○ ○ ● ● Events capturing Pulses generation Digital signals generation Gated timers Sophisticated comparator Pulse width modulation Pulse width measuring Fixed-Point arithmetic coprocessor ○ ○ ○ ○ ○ Power management mode ○ Switchback feature ○ Stop mode ● 7-bit and 10-bit addressing modes NORMAL, FAST, HIGH speeds Multi-master systems supported Clock arbitration and synchronization User defined timings on I2C lines Wide range of system clock frequencies Interrupt generation I2C bus controller - Slave ○ ○ ○ ○ ○ ○ ● 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 I2C bus controller - Master ○ ○ ○ ○ ○ ○ ○ speed rate between HAD and Silicon ○ JTAG Communication interface Full-duplex serial port ○ ○ ○ ○ DoCD™ debug unit ○ Processor execution control Run Halt Step into instruction Skip instruction ○ Read-write all processor contents Program Counter (PC) Program Memory Internal (direct) Data Memory Special Function Registers (SFRs) External Data Memory ○ Code execution breakpoints one real-time PC breakpoint unlimited number of real-time OPCODE breakpoints ○ Hardware execution watch-point one at Internal (direct) Data Memory one at Special Function Registers (SFRs) one at External Data Memory ○ Hardware watch-points activated at a certain address by any write into memory address by any read from memory address by write into memory a required data address by read from memory a required data ○ Unlimited number of software watch-points Internal (direct) Data Memory Special Function Registers (SFRs) External Data Memory ○ Unlimited number of software breakpoints Program Memory(PC) ○ Automatic adjustment of debug data transfer Three 16-bit timer/counters ○ Timers clocked by internal source ○ Auto reload 8/16-bit timers ○ Externally gated event counters PERIPHERALS ● Four 8-bit I/O Ports ○ Bit addressable data direction for each line ○ Read/write of single line and 8-bit group Multiplication - 16bit * 16bit Multiplication - 32bit * 32bit Division - 32bit / 32bit Division - 16bit / 16bit Floating-Point arithmetic coprocessor IEEE-754 standard single precision http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. ○ ○ ○ ○ ○ ○ ● FADD, FSUB - addition, subtraction FMUL, FDIV- multiplication, division FSQRT- square root FUCOM - compare FCHS - change sign FABS - absolute value Floating-Point math coprocessor - IEEE754 standard single precision real, word and short integers ○ ○ ○ ○ ○ ○ ○ ○ FADD, FSUB- addition, subtraction FMUL, FDIV- multiplication, division FSQRT- square root FUCOM- compare FCHS - change sign FABS - absolute value FSIN, FCOS- sine, cosine FTAN, FATAN- tangent, arcs tangent CONFIGURATION The following parameters of the DP80390XP 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 0 - 64kB - Internal Program RAM Memory size 0 - 64kB - Internal Program Memory • fixed size • Second Data Pointer (DPTR1) - true - false - used - unused • DPTR0 decrement - used - unused • DPTR1 decrement - used - unused • Data Pointers auto-switch - used - unused • Interrupts - • Timing access protection - used - unused • Power Management Mode • Stop mode subroutines location DELIVERABLES ♦ Source code: ◊ VHDL Source Code or/and ◊ VERILOG Source Code or/and ◊ Encrypted, or plain text EDIF netlist ♦ VHDL & VERILOG test bench environment ◊ Active-HDL automatic simulation macros ◊ ModelSim automatic simulation macros ◊ Tests with reference responses ♦ Technical documentation ◊ Installation notes ◊ HDL core specification ◊ Datasheet ♦ Synthesis scripts ♦ Example application ♦ Technical support ◊ IP Core implementation support ◊ 3 months maintenance ● ● ● All trademarks mentioned in this document are trademarks of their respective owners. Delivery the IP Core updates, minor and major versions changes Delivery the documentation updates Phone & email support LICENSING Comprehensible and clearly defined licensing methods without royalty fees make using of IP Core easy and simply. Single Design license allows using IP Core in single FPGA bitstream and ASIC implementation. It also permits FPGA prototyping before ASIC production. Unlimited Designs license allows using IP Core in unlimited number of FPGA bitstreams and ASIC implementations. In all cases number of IP Core instantiations within a design, and number of manufactured chips are unlimited. There is no time of use limitations. ● Single Design license for ○ VHDL, Verilog source code called HDL Sour- - used - unused - used - unused - 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. - synchronous - asynchronous Internal Program ROM • Memory size • • DoCD™ debug unit ce ○ Encrypted, or plain text EDIF called Netlist ● Unlimited Designs license for ○ HDL Source http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. ○ Netlist ● SYMBOL Upgrade from ○ Netlist to HDL Source ○ Single Design to Unlimited Designs DESIGN FEATURES ♦ PROGRAM MEMORY: The DP80390 soft core is dedicated for operation with Internal and External Program Memory. It maximal linear size is equal to 8 MB. Internal Program Memory can be implemented as: ○ ROM located in address range between 0x0000 ÷ (ROMsize-1) ○ RAM located in address range between (64kB-RAMsize) ÷ 0xFFFF port0i(7:0) port1i(7:0) port2i(7:0) port3i(7:0) ramdatai(7:0) sfrdatai(7:0) prgromdata(7:0) prgramdata(7:0) xdatai(7:0) ready External Program Memory can be implemented as ROM or RAM located in address range between ROMsize ÷ 8 MB excluding area occupied by RAMsize. iprgromsize(2:0) iprgramsize(2:0) ♦ INTERNAL DATA MEMORY: The DP80390XP can address Internal Data Memory of up to 256 bytes The Internal Data Memory can be implemented as Single-Port synchronous RAM. ♦ EXTERNAL DATA MEMORY: The DP80390XP soft core can address up to 16 MB of External Data Memory. Extra DPX (Data Pointer eXtended) register is used for segments swapping. int0 int1 int2 int3 int4 int5 int6 ♦ ♦ USER SPECIAL FUNCTION REGISTERS: Up to 60 External (user) Special Function Registers (ESFRs) may be added to the DP80390XP design. ESFRs are memory mapped into Direct Memory between addresses 0x80 and 0xFF in the same manner as core SFRs and may occupy any address that is not occupied by a core SFR. WAIT STATES SUPPORT: The DP80390XP soft core is dedicated for operation with wide range of Program and Data memories. Slow Program and External Data memory may assert a memory Wait signal to hold up CPU activity. sxdmxdatai(7:0) t0 gate0 t1 gate1 t2 t2ex capture0 capture1 capture2 capture3 rxd0i rxd1i scli sdai ss si mi scki reset clk All trademarks mentioned in this document are trademarks of their respective owners. port0o(7:0) port1o(7:0) port2o(7:0) port3o(7:0) prgaddr(15:0) prgdatao(7:0) prgramwr xaddr(23:0) xdatao(7:0) xdataz xprgrd xprgwr xdatard xdatawr sxdmadd(15:0) sxdmdatao(7:0) sxdmwe sxdmoe ramaddr(7:0) ramdatao(7:0) ramwe ramoe sfraddr(7:0) sfrdatao(7:0) sfroe sfrwe stop pmm rxd0o txd0 rxd1o txd1 sclhs sclo sdao sso(7:0) so mo scko scken soen coderun debugacs rsto http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. BLOCK DIAGRAM PINS DESCRIPTION PIN Opcode decoder prgramdata(7:0) prgromdata(7:0) prgaddr(15:0) prgdatao(7:0) prgramwr xramaddr(23:0) xdatao(7:0) xdatai(7:0) xramdataz ready xprgrd xprgwr xdatard xdatawr iprgromsize(2:0) iprgramsize(2:0) ramaddr(7:0) ramdatao(7:0) ramdatai(7:0) ramwe ramoe sfraddr(6:0) sfrdatao(7:0) sfrdatao(7:0) sfroe sfrwe Program memory interface External memory I/O Port registers Timers UART Control Unit Internal data memory interface User SFR’s interface Interrupt controller Power Management Unit DoCD™ Debug Unit SXDM interface capture0 capture1 capture2 capture3 Timer 2 int0 int1 int2 int3 int4 int5 int6 Master/ Slave I2C Unit ALU clk reset rsto All trademarks mentioned in this document are trademarks of their respective owners. DESCRIPTION clk input Global clock reset input Global reset port0i[7:0] input Port 0 input port1i[7:0] input Port 1 input port2i[7:0] input Port 2 input port3i[7:0] input Port 3 input iprgramsize[2:0] input Size of on-chip RAM CODE iprgromsize[2:0] input Size of on-chip ROM CODE prgramdata[7:0] input Data bus from int. RAM prog. memory prgromdata[7:0] input Data bus from int. ROM prog. memory sxdmdatai[7:0] input Data bus from sync external data memory (SXDM) xdatai[7:0] input Data bus from external memories ready input External memory data ready ramdatai[7:0] input Data bus from internal data memory input Data bus from user SFR’s stop int0 input External interrupt 0 pmm int1 input External interrupt 1 int2 input External interrupt 2 int3 input External interrupt 3 int4 input External interrupt 4 int5 input External interrupt 5 tdi tck tms tdo rtck coderun debugacs sxdmaddr sxdmdatao sxdmdatai sxdmoe sxdmwe rxd0o rxd0i txd0 UART 1 SPI Unit TYPE sfrdatai[7:0] Compare Capture MDU32 sclhs scli sclo sdai sdao rxdi rxdo txd Watchdog Timer UART 0 rxd1o rxd1i txd1 t0 t1 gate0 gate1 interface Floating Point Unit t2 t2ex port0(7:0) port1(7:0) port2(7:0) port3(7:0) so si mo mi scko scki scken ss sso(7:0) soen int6 input External interrupt 6 t0 input Timer 0 input t1 input Timer 1 input t2 input Timer 2 input gate0 input Timer 0 gate input gate1 input Timer 1 gate input t2ex input Timer 2 gate input capture0 input Timer 2 capture 0 line capture1 input Timer 2 capture 1 line capture2 input Timer 2 capture 2 line capture3 input Timer 2 capture 3 line rxdi0 input Serial receiver input 0 rxdi1 input Serial receiver input 1 scli input Master/Slave I2C clock line input sdai input Master/Slave I2C data input ss input SPI slave select si input SPI slave input mi input SPI master input scki input SPI clock input tdi input DoCD™ TAP data input tck input DoCD™ TAP clock input input DoCD™ TAP mode select input tms rsto output Reset output port0o[7:0] output Port 0 output port1o[7:0] output Port 1 output port2o[7:0] output Port 2 output http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. PIN port3o[7:0] TYPE DESCRIPTION output Port 3 output prgaddr[15:0] output Internal program memory address bus prgdatao[7:0] output Data bus for internal program memory prgramwr output Internal program memory write sxdmaddr[15:0] output Sync XDATA memory address bus (SXDM) sxdmdatao[7:0] output Data bus for Sync XDATA memory (SXDM) sxdmoe output Sync XDATA memory read (SXDM) sxdmwe output Sync XDATA memory write (SXDM) xaddr[23:0] output Address bus for external memories xdatao[7:0] output Data bus for external memories xdataz output Turn xdata bus into ‘Z’ state xprgrd output External program memory read xprgwr output External program memory write xdatard output External data memory read xdatawr output External data memory write ramaddr[7:0] output Internal Data Memory address bus ramdatao[7:0] output Data bus for internal data memory ramoe output Internal data memory output enable ramwe output Internal data memory write enable sfraddr[6:0] output Address bus for user SFR’s sfrdatao[7:0] output Data bus for user SFR’s sfroe output User SFR’s read enable sfrwe output User SFR’s write enable tdo output DoCD™ TAP data output rtck output DoCD™ return clock line debugacs output DoCD™ accessing data coderun output CPU is executing an instruction pmm output Power management mode indicator stop output Stop mode indicator rxd0o output Serial receiver output 0 rxd1o output Serial receiver output 1 txd0 output Serial transmitter output 0 txd1 output Serial transmitter output 1 sclo output Master/Slave I2C clock output sclhs output High speed Master I2C clock line sdao output Master/Slave I2C data output sso[7:0] output SPI slave select lines so output SPI slave output mo output SPI master output scko output SPI clock output scken output SPI clock line tri-state buffer control soen output SPI slave output enable UNITS SUMMARY ALU – Arithmetic Logic Unit performs the arithmetic and logic operations during execution of an instruction. It contains accumulator (ACC), Program Status Word (PSW), (B) regisAll trademarks mentioned in this document are trademarks of their respective owners. ters and related logic such as arithmetic unit, logic unit, multiplier and divider. 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. 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 RAM, EPROM or FLASH EEPROM storage via UART, SPI, I2C or DoCD™ module. External Memory Interface - Contains memory access related registers such as Data Page High (DPH), Data Page Low (DPL) and Data Pointer eXtended (DPX) 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. 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. Internal Data Memory Interface – Internal Data Memory interface controls access into the internal 256 bytes memory. It contains 8-bit Stack Pointer (SP) register and related logic. User SFRs Interface – Special Function Registers interface controls access to the special registers. It contains standard and used defined registers and related logic. User defined external devices can be quickly accessed (read, written, modified) using all direct addressing mode instructions. 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), http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. Extended Interrupt Enable (EIE), Extended Interrupt priority (EIP) and (TCON) registers. 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 an 8-bit bus called P0, P1, P2, P3. Power Management Unit – Block 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. DoCD™ Debug Unit – it’s a real-time hardware debugger provides debugging capability of a whole SoC system. In contrast to other onchip 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 controlled 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. Floating Point Unit – Block contains floating point arithmetic IEEE-754 compliant instructions (C float, int, long int types supported). It is used to execute single precision floating point operations such as: addition, subtraction, multiplication, division, square root, comparison absolute value of number and change of All trademarks mentioned in this document are trademarks of their respective owners. sign. Basing on specialized CORDIC algorithm a full set of trigonometric operations are also allowed: sine, cosine, tangent, arctangent. It also has built-in integer to floating point and vice versa conversion instructions. FPU supports single precision real numbers, 16-bit and 32-bit signed integers. This unit has included standard software interface allows easy usage and interfacing with user C/ASM written programs. MDU32 Multiply Divide Unit – It’s a fixed point fast 16-bit and 32-bit multiplication and division unit. It supports unsigned and 2’s complement signed integer operands. The MDU32 is controlled by dedicated direct memory access module (called DMA). All arguments and result registers are automatically read and written back by internal DMA. This unit has included standard software interface allows easy usage and interfacing with user C/ASM written programs. This module is replacement of older MDU. 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. Timer 2 – Second system timer module contains one 16-bit configurable timer: Timer 2 (TH2, TL2), capture registers (RLDH, RLDL) and Timer 2 Mode (T2MOD) register. It can work as a 16-bit timer / counter, 16-bit autoreload timer / counter. It also supports compare capture unit if it’s presented in system. It can be used as clock source for UART0. Compare Capture Unit – The compare / capture / reload unit is one of the most powerful peripheral units of the core. It can be used for all kinds of digital signal generation and event capturing such as pulse generation, pulse width modulation, measurements etc. Watchdog Timer – The watchdog timer is a 27-bit counter which is incremented every system clock periods (CLK pin). It performs system protection against software upsets. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. 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. UART1 – Universal Asynchronous Receiver & Transmitter module is full duplex, meaning it can transmit and receive concurrently. Includes Serial Configuration register (SCON1), serial receiver and transmitter buffer (SBUF1) 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 SBUF1 loads the transmit register, and reading SBUF1 reads a physically separate receive register. Works in 3 asynchronous and 1 synchronous modes. UART1 is synchronized by Timer 1. Master I2C Unit – I2C bus controller is a Master module. The core incorporates all features required by I2C specification. Supports both 7bit and 10-bit addressing modes on the I2C bus. It works as a master transmitter and receiver. It can be programmed to operate with arbitration and clock synchronization to allow it operate in multi-master systems. Built-in timer allows operation from a wide range of the input frequencies. The timer allows to achieve any non-standard clock frequency. The I2C controller supports all transmission modes: Standard, Fast and High Speed up to 3400 kbs. Slave I2C Unit – I2C bus controller is a Slave module. The core incorporates all features required by I2C specification. It works as a slave transmitter/receiver depending on working mode determined by a master device. The I2C controller supports all transmission modes: Standard, Fast and High Speed up to 3400 kbs. SPI Unit – it’s a fully configurable master/slave Serial Peripheral Interface, which allows user to configure polarity and phase of serial clock signal SCK. It allows the microcontroller to communicate with serial peripheral devices. It All trademarks mentioned in this document are trademarks of their respective owners. is also capable of interprocessor communications in a multi-master system. A serial clock line (SCK) synchronizes shifting and sampling of the information on the two independent serial data lines. SPI data are simultaneously transmitted and received. SPI system is flexible enough to interface directly with numerous standard product peripherals from several manufacturers. Data rates as high as CLK/4. Clock control logic allows a selection of clock polarity and a choice of two fundamentally different clocking protocols to accommodate most available synchronous serial peripheral devices. When the SPI is configured as a master, software selects one of four different bit rates for the serial clock. SPI automatically drives slave select outputs SSO[7:0], and address SPI slave device to exchange serially shifted data. Error-detection logic is included to support interprocessor communications. A writecollision detector indicates when an attempt is made to write data to the serial shift register while a transfer is in progress. A multiplemaster mode-fault detector automatically disables SPI output drivers if more than one SPI devices simultaneously attempts to become bus master. PROGRAM CODE SPACE IMPLEMENTATION The figure below shows an example Program Memory space implementation in systems with DP80390XP Microcontroller core. The On-chip Program Memory located in address space between 0kB and 1kB is typically used for BOOT code with system initialization functions. This part of the code is typically implemented as ROM. The On-chip Program Memory located in address space between 60kB and 64kB is typically used for timing critical part of the code e.g. interrupt subroutines, arithmetic functions etc. This part of the code is typically implemented as RAM and can be loaded by the BOOT code during initialization phase from Off-chip memory or through RS232 interface from external device. From the two mentioned above spaces program code is executed without wait-states and can achieve a top performance up to 200 million instructions per second (many instructions executed in one clock cycle). The Off-chip Program Memory located in address space between 1kB and 60kB, and above 64 kB is typically used for main code and constants. This part of the code is usually implemented as ROM, http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. SRAM or FLASH device. Because of relatively long access time the program code executed from mentioned above devices must be fetched with additional Wait-States. Number of required Wait-States depends on memory access time and DP80390XP clock frequency. In most cases the proper number of Wait-States cycles is between 2-5. The READY pin can be also dynamically modulated e.g. by SDRAM controller. other applications whole program code can be implemented as off-chip ROM or FLASH and executed with required number Wait-State cycles. 0x7FFFFF Off chip Memory (implemented as ROM, SRAM or FLASH) 0x00FFFF 0x00F000 On chip Memory (implemented as RAM) Off chip Memory (implemented as ROM, SRAM or FLASH) 0x000400 0x000000 On-chip Memory (implemented as ROM) The figure below shows a typical Program Memories connections in system with DP80390XP Microcontroller core. prgramdatai prgdatao 8 8 prgramwr On-chip Memory 12 (implemented as RAM) 0 Wait-State access prgaddr 10 prgromdata i DP80390XP xdatai 8 ASIC or FPGA chip 8 xdatao xaddr On-chip Memory (implemented as ROM) 0 Wait-State access Off-chip Memory 24 xprgrd (implemented as FLASH, or SRAM) eg. 2-5 Wait-State access xprgwr ready Wait-States manager The described above implementation should be treated as an example. All Program Memory spaces are fully configurable. For timing-critical applications whole program code can be implemented as on-chip ROM and (or) RAM and executed without Wait-States, but for some All trademarks mentioned in this document are trademarks of their respective owners. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. PERFORMANCE The following tables give a survey about the Core area and performance in Programmable Logic Devices after Place & Route (CPU features and peripherals have been included): Device FLEX10KE ACEX1K APEX20K APEX20KE APEX20KC APEX-II MERCURY CYCLONE CYCLONE-II STRATIX STRATIX-II Speed grade -1 -1 -1 -1 -7 -7 -5 -6 -6 -5 -3 Fmax 50 MHz 50 MHz 45 MHz 55 MHz 66 MHz 72 MHz 95 MHz 85 MHz 91 MHz 92 MHz 154 MHz Core performance in ALTERA® devices For a user the most important is application speed improvement. The most commonly used arithmetic functions and theirs improvement are shown in table below. Improvement was computed as {80C51 clock periods} divided by {DP80390XP clock periods} required to execute an identical function. More details are available in core documentation. Function 8-bit addition (immediate data) 8-bit addition (direct addressing) 8-bit addition (indirect addressing) 8-bit addition (register addressing) 8-bit subtraction (immediate data) 8-bit subtraction (direct addressing) 8-bit subtraction (indirect addressing) 8-bit subtraction (register addressing) 8-bit multiplication 8-bit division 16-bit addition 16-bit subtraction 16-bit multiplication 32-bit addition 32-bit subtraction 32-bit multiplication Average speed improvement: Improvement 9,00 9,00 9,00 12,00 9,00 9,00 9,00 12,00 16,00 9,60 12,00 12,00 13,60 12,00 12,00 12,60 11,12 31386 33000 30000 27000 24000 21000 18000 15000 12000 9000 6000 3000 0 268 1550 80C51 (12MHz) 80C310 (33MHz) DP80390XP (150MHz) Area utilized by the each unit of DP80390XP core in vendor specific technologies is summarized in table below. Component CPU* DPTR1 register DPTR0 decrement DPTR1 decrement DPTR0 & DPTR1 auto-switch Timed Access protection Interrupt Controller INT2-INT6 Power Management Unit I/O ports Timers Timer 2 UART0 UART1 Master I2C Unit Slave I2C Unit SPI Unit Compare Capture Unit Watchdog Timer Multiply Divide Unit Total area Area [LC] [FFs] 1790 315 50 40 40 30 20 32 0 0 8 10 150 40 100 25 10 100 160 170 210 210 260 160 110 150 100 500 4360 5 35 50 60 60 60 120 70 55 60 45 105 1155 *CPU – consisted of ALU, Opcode Decoder, Control Unit, Program & Internal & External Memory Interfaces, User SFRs Interface Core components area utilization in all technologies except STRATIX-II Dhrystone Benchmark Version 2.1 was used to measure Core performance. The following table gives a survey about the DP80390XP performance in terms of Dhrystone/sec and VAX MIPS rating. Device Target 80C51 80C310 DP80390XP STRATIX-II Clock frequency 12 MHz 33 MHz 150 MHz Dhry/sec (VAX MIPS) 268 (0.153) 1550 (0.882) 31386 (17.85) Core performance in terms of Dhrystones All trademarks mentioned in this document are trademarks of their respective owners. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. Area Component CPU* [LC] [FFs] 1380 315 40 30 30 25 15 32 0 0 8 10 120 40 75 25 10 75 125 135 165 165 220 125 85 120 75 800 3815 5 35 50 60 60 60 120 70 55 60 45 105 1155 DPTR1 register DPTR0 decrement DPTR1 decrement DPTR0 & DPTR1 auto-switch Timed Access protection Interrupt Controller INT2-INT6 Power Management Unit I/O ports Timers Timer 2 UART0 UART1 Master I2C Unit Slave I2C Unit SPI Unit Compare Capture Unit Watchdog Timer Multiply Divide Unit 32 Total area *CPU – consisted of ALU, Opcode Decoder, Control Unit, Program & Internal & External Memory Interfaces, User SFRs Interface Core components area utilization in STRATIX-II All trademarks mentioned in this document are trademarks of their respective owners. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. 1 2 4 4 - - - - - Fixed Point Coprocessor Floating Point Coprocessor I\O Ports 2 3 SPI UART 1 1 2 Master I2C Bus Controller Slave I2C Bus Controller Timer/Counters 2 2 2 Watchdog Data Pointers 2 5 15 Compare/Capture Interrupt levels 64k 64k 8M 256 256 16M 64k 64k 8M 256 256 16M 64k 64k 8M 256 256 16M Interrupt sources Interface for additional SFRs Power Management Unit Internal Data Memory space External Data Memory space External Data / Program Memory Wait States Stack space size off-chip 10 10 10 on-chip ROM DP80390CPU DP80390 DP80390XP Program Memory space on-chip RAM Design Architecture speed grade The main features of each DP80390 family member have been summarized in table below. 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 below and the others) and requests the core modifications. - - DP80390 family of Pipelined High Performance Microcontroller Cores 4 4 - - - - DP8051 family of Pipelined High Performance Microcontroller Cores All trademarks mentioned in this document are trademarks of their respective owners. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. - Fixed Point Coprocessor Floating Point Coprocessor 1 2 SPI 2 3 Master I C Bus Controller Slave I2C Bus Controller I\O Ports 1 1 2 2 UART 2 2 2 Watchdog Timer/Counters 2 5 15 Compare/Capture Data Pointers Interface for additional SFRs Power Management Unit Internal Data Memory space External Data Memory space External Data / Program Memory Wait States Stack space size off-chip on-chip ROM 64k 64k 64k 256 256 16M 64k 64k 64k 256 256 16M 64k 64k 64k 256 256 16M Interrupt levels 10 10 10 Interrupt sources DP8051CPU DP8051 DP8051XP Program Memory space on-chip RAM Design Architecture speed grade The main features of each DP8051 family member have been summarized in table below. 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 below and the others) and requests the core modifications. - - CONTACTS For any modification or special request contact to DCD. Headquarters: Wroclawska 94 41-902 Bytom, POLAND [email protected] e-mail: [email protected] tel. : +48 32 282 82 66 fax : +48 32 282 74 37 Distributors: ttp://www.dcd.pl/apartn.php Please check hhttp://www.dcd.pl/apartn.php All trademarks mentioned in this document are trademarks of their respective owners. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved.