DFPIC1655X High Performance Configurable 8-bit RISC Microcontroller ver 2.02 OVERVIEW The DFPIC1655X is a low-cost, high performance, 8-bit, fully static soft IP Core, dedicated for operation with fast memory (typically on-chip). The core has been designed with a special concern about low power consumption. The DFPIC1655X is software compatible with the industry standard PIC16C554 and PIC16C558. It employs a modified RISC architecture (2 times faster than original implementation). The DFPIC1655X have enhanced core features, configurable hardware stack, and multiple internal and external interrupt sources. The separate instruction and data buses allow a 14 bit wide instruction word with the separate 8 -bit wide data. The DFPIC1655X typically achieve a 2:1 code compression and a 8:1 speed improvement over other 8-bit microcontrollers in their class. The power-down mode SLEEP allow user to reduce power consumption. User can wake up the controller from SLEEP through several external and internal interrupt and reset. An integrated Watchdog Timer with it's own clock signal provides protection against software lock-up. The DFPIC1655X Microcontroller fits perfectly in applications ranging from highspeed automotive and appliance motor control All trademarks mentioned in this document are trademarks of their respective owners. to low-power remote transmitters/receivers, pointing devices and telecom processors. Built-in power save mode and small used area in programmable devices make this IP perfect for applications applications with space and power consumption limitations. DFPIC1655X is delivered with fully automated testbench and complete set of tests allowing easy package validation at each stage of SoC design flow CPU FEATURES ● Software compatible with industry standard PIC16C55X ● Harvard architecture 2 times faster compared to original implementation ● 35 instructions ● 14 bit wide instruction word ● Up to 512 bytes of internal Data Memory ● Up to 64K bytes of Program Memory ● Configurable hardware stack ● Power saving SLEEP mode ● Fully synthesizable, static synchronous design with no internal tri-states ● Scan test ready ● Technology Code independent HDL Source http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. ○ Address by read from memory a required data PERIPHERALS ● ● ○ Three wire communication interface Two 8 bit I/O ports ○ Four 8-bit corresponding TRIS registers CONFIGURATION ○ Interrupt feature on PORTB(7:4) change The following parameters of the DFPIC1655X 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. Timer 0 ○ 8-bit timer/counter ○ Readable and Writable ○ 8-bit software programmable prescaler ○ Internal or external clock select ○ Interrupt generation on timer overflow - synchronous asynchronous - 1-16 default 4 • Program Memory size - up 64 kWords default 8k • SLEEP mode - used unused • WATCHDOG Timer - used / width unused • Timer system - used unused • PORTS A,B - used unused TM • DoCD Debug Unit - used unused • MEMORY Type ○ Edge select for external clock ● • Watchdog Timer ○ Configurable Time out period ○ 7-bit software programmable prescaler ○ Dedicated independent Watchdog Clock input ● Interrupt Controller ○ Three individually maskable Interrupt sources ○ External interrupt INT ○ Timer Overflow interrupt ○ Port B[7:4] change interrupt ● Number of hardware stack levels DoCD™ debug unit ○ Processor execution control ○ Run DELIVERABLES ○ Halt ○ Step into instruction ♦ ○ Skip instruction ○ Read-write all processor contents ○ Program Counter (PC) ♦ ○ Program Memory ○ Data Memory ○ Special Function Registers (SFRs) ○ Hardware Stack and Stack Pointer ○ Hardware execution breakpoints ♦ ○ Program Memory ○ Data Memory ○ Special Function Registers (SFRs) ○ Hardware breakpoints activated at a certain ○ Program address (PC) ○ Address by any write into memory Source code: VHDL Source Code or/and VERILOG Source Code or/and Encrypted Megafunction or/and plain text EDIF 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 ◊ ◊ ◊ ◊ ♦ ♦ ♦ ● ○ Address by any read from memory ○ Address by write into memory a required data 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 http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. LICENSING SYMBOL Comprehensible and clearly defined licensing methods without royalty fees make using of IP Core easy and simply. clk clkwdt por mclr Single Design license allows use IP Core in single FPGA bitstream and ASIC implementation. Unlimited Designs, One Year licenses allow use IP Core in unlimited number of FPGA bitstreams and ASIC implementations. prgdata(13:0) prgaddr(15:0) ramdatai(7:0) ramdatao(7:0) ramaddr(8:0) ramwe ramoe sleep intr In all cases number of IP Core instantiations within a design, and number of manufactured chips are unlimited. There is no time restriction except One Year license where time of use is limited to 12 months. t0cki portai(7:0) portbi(7:0) ● Single Design license for portao(7:0) portbo(7:0) trisa(7:0) trisb(7:0) docddatai docddatao docdclk TM DoCD Interface prgdatao(13:0) prgwe ○ VHDL, Verilog source code called HDL Sour- ce ○ Encrypted, or plain text EDIF called Netlist ● One Year license for PINS DESCRIPTION ○ Encrypted Netlist only ● Unlimited Designs license for PIN TYPE DESCRIPTION clk input Global clock ○ HDL Source clkwdt input Watchdog clock ○ Netlist por input Global reset Power On Reset mclr input User reset prgdata[13:0] input Data bus from program memory ramdati[7:0] input Data bus from int. data memory ● Upgrade from ○ HDL Source to Netlist ○ Single Design to Unlimited Designs All trademarks mentioned in this document are trademarks of their respective owners. intr input External interrupt t0cki input Timer 0 input portax[7:0] input Port X input docddatai input DoCDTM Debugger input prgaddr[15:0] output Program memory address bus ramdatao[7:0] output Data bus for internal data memory ramaddr[8:0] output RAM address bus ramwe output Data memory write ramoe output Data memory output enable sleep output Sleep signal portxo[7:0] output Port X output trisx[7:0] output Data direction pins for Port X docddatao output DoCDTM Debugger data output docdclk output DoCDTM Clock line prgdatao[13:0] output Program Memory data output prgwe output Program Memory write enable http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. BLOCK DIAGRAM ALU – Arithmetic Logic Unit performs arithmetic and logic operations during execution of an instruction. This module contains work register (W) and Status register. Control Unit – It performs the core synchronization and data flow control. This module manages execution of all instructions. Performs decode and control functions for all other blocks. It contains program counter (PC) and hardware stack. Hardware Stack – The DFPIC1655X configurable hardware stack. The stack space is not a part of either program or data space and the stack pointer is not readable or writable. The PC is pushed onto the stack when CALL instruction is executed or an interrupt causes a branch. The stack is popped while RETURN, RETFIE and RETLW instruction execution. The stack operates as a circular buffer. This means that after the stack has been pushed eight times, the ninth push overwrites the value that was stored from the first push. clk por mclr sleep prgdata prgaddr intr Hardware Stack ALU Control Unit RAM Controller Interrupt Controller I/O Ports t0cki Timer 0 clkwdt Watchdog Timer TM DoCD Debugger ramdatai ramdatao ramaddr ramwe ramoe portai portbi portao portbo trisa trisb docddatai docddatao docdclk prgdatao prgwe RAM Controller – It performs interface functions between Data Memory and DFPIC1655X internal logic. It assures correct Data memory addressing and data transfers. The DFPIC1655X supports two addressing modes: direct or indirect. In Direct Addressing the 9-bit direct address is computed from RP(1:0) bits (STATUS) and 7 least significant bits of inAll trademarks mentioned in this document are trademarks of their respective owners. struction word. Indirect addressing is possible by using the INDF register. Any instruction using INDF register actually accesses data pointed to by the file select register FSR. Reading INDF register indirectly will produce 00h. Writing to the INDF register indirectly results in a no-operation. An effective 9-bit address is obtained by concatenating the IRP bit (STATUS) and the 8-bit FSR register. Interrupt Controller – Interrupt Controller module is responsible for interrupt manage system for the external and internal interrupt sources. It contains interrupt related register called INTCON The DFPIC1655X has three interrupt sources: ♦ External interrupt INT ♦ TMR0 overflow interrupt ♦ PORTB change interrupt (pins B7:B4) The interrupt control register INTCON records individual interrupt requests in flag bits. A global interrupt enable bit, GIE enables all unmasked interrupts. Each interrupt source has an individual enable bit, which can enable or disable corresponding interrupt. When an interrupt is responded to, the GIE is cleared to disable any further interrupt, the return address is pushed into the stack and the PC is loaded with 0004h. The interrupt flag bits must be cleared in software before reenabling interrupts. Timer 0 – Main system’s timer and prescaler. The DFPIC1655X Timer operates in two modes: 8-bit timer or 8-bit counter. In the “timer mode”, timer registers are incremented every 2 CLK periods. When the prescaler is assigned into the TIMER prescale ration can be divided by 2, 4 .. 256. In the “counter mode” the timer register is incremented every falling or rising edge of T0CKI pin, dependent on T0SE bit in OPTION register. Watchdog Timer– it’s a free running timer. WDT has own clock input separate from system clock. It means that the WDT will run even if the system clock is stopped by execution of SLEEP instruction. During normal operation, a WDT time-out generates a Watchdog reset. If the device is in SLEEP mode the WDT time-out causes the device to wake-up and continue with normal operation. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. I/O Ports – Block contains DFPIC1655X’s general purpose I/O ports and data direction registers (TRIS). The DFPIC1655X has two 8bit full bi-directional ports PORT A, PORT B. Read and write accesses to the I/O port are performed via their corresponding SFR’s PORTA, PORTB. The reading instruction always reads the status of Port pins. Writing instructions always write into the Port latches. Each port’s pin has an corresponding bit in TRISA and TRISB registers. When the bit of TRIS register is set this means that the corresponding bit of port is configured as an input (output drivers are set into the High Impedance). DoCD™ Debug Unit – it’s a real-time hardware debugger provides debugging capability of a whole SoC system. In contrast to other on-chip debuggers DoCD™ provides nonintrusive 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. The DoCD™ system includes three-wire 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. OPTIONAL MODULES There are also available an optional peripherals, not included in presented DFPIC1655X Microcontroller Core. The optional peripherals, can be implemented in microcontroller core upon customer request. PERFORMANCE The following table gives a survey about the Core area and performance in the ALTERA® devices after Place & Route: Speed Logic Cells Fmax grade CYCLONE -6 660 99 MHz CYCLONE II -6 663 91 MHz STRATIX -5 661 106 MHz STRATIX II -3 591 122 MHz STRATIX GX -5 661 101 MHz APEX II -7 804 71 MHz APEX20KC -7 739 61 MHz APEX20KE -1 739 56 MHz APEX20K -1 739 50 MHz ACEX1K -1 804 39 MHz FLEX10KE -1 804 38 MHz Core performance in ALTERA® devices Device IMPROVEMENT Most instruction of DFPIC1655X is executed within 2 CLK cycles. Except the conditional program memory branches in case that the condition of branch instruction is met. The table below shows sample instructions execution times: Mnemonic DFPIC1655X operands (CLK cycles) ADDWF 2 ANDWF 2 RLF 2 BCF 2 DECFSZ 2(4)1 INCFSZ 2(4)1 BTFSC 2(4)1 BTFSS 2(4)1 CALL 2 GOTO 2 RETFIE 2 RETLW 2 RETURN 2 1 PIC16C554 (CLK cycles) Impr. 4 4 4 4 4(8)1 4(8)1 4(8)1 4(8)1 8 8 8 8 8 2 2 2 2 2 2 2 2 4 4 4 4 4 number of clock in case that result of operation is 0. ● Full duplex UART ● SPI – Master and Slave Serial Peripheral Interface ● PWM – Pulse Width Modulation Timer ● I2C bus controller – Master / Slave 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. DFPIC&DRPIC FAMILY OVERVIEW 33 35 35 35 24 16 32 32 - 5 5 5 1 1 5 2 8 8 8 - 2 2 4 4 - * Optional DFPIC & DRPIC family of 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. Size (gate) DoCDTM Debugger Speed rate - External interrupts Internal Interrupts Levels of hardware stack Wake up on port pin change - Sleep Mode Watchdog Timer Timer 2 Timer 0 Timer 1 - USART 12 14 14 14 CCP1 DFPIC 165X 2k 128 DFPIC 1655X 64k 512 DRPIC 1655X 64k 512 DRPIC 166X 64k 512 I/O Ports Design Program Memory space Data Memory space Program word length Number of instructions The family of DCD DFPICXX & DRPICXX IP Cores combine a high–performance, low cost, and small compact size, offering the best price/performance ratio in the IP Market. The DCD’s Cores are dedicated for use in cost-sensitive consumer products, computer peripherals, office automation, automotive control systems, security and telecommunication applications. DCD’s DFPICXX & DRPICXX IP Cores family contains four 8-bit microcontroller Cores to best meet your needs: DFPIC165X 12-bit program word, DFPIC1655X 14-bit program word, and DRPIC1655X and DRPIC166X single cycle microcontrollers with 14-bit program word. All three microcontroller cores are binary compatible with widely accepted PIC16C5X and PIC16CXXX. They employ a modified RISC architecture two or four times faster than the original ones. The DFPICXXX & DRPICXX IP Cores are written in pure VHDL/VERILOG HDL languages which make them technologically independent. All of the DFPICXX & DRPICXX family members supports a power saving SLEEP mode and allows the user to configure the watchdog time-out period and a number of hardware stack levels. DFPICXX & DRPICXX can be fully customized according to customer needs. 2 700 * 3 900 * 4 800 * 6 700 CONTACTS For any modification or special request please contact to Digital Core Design or local distributors. Headquarters: Wroclawska 94 41-902 Bytom, POLAND n fo @ d c d .p l 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.