DFPIC165X High Performance 8-bit RISC Microcontroller ver 2.01 OVERVIEW The DFPIC165X 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 DFPIC165X is software compatible with the industry standard PIC16C54, PIC16C55, PIC16C56, PIC16C57 and PIC16C58. It employs a modified RISC architecture (2 times faster than original implementation). The DFPIC165X have enhanced core features and configurable hardware stack. The separate instruction and data buses allow a 12 bit wide instruction word with the separate 8 -bit wide data. The DFPIC165X typically achieve a 2:1 code compression and a 8:1 speed improvement over other 8-bit microcontrollers in its class. The Core has 24 I/O lines and an 8-bit timer/counter with an 8bit programmable prescaller. The power-down mode SLEEP allow user to reduce power consumption. User can wake up the controller from SLEEP through an user reset or watchdog overflow. An integrated Watchdog Timer with it's own clock signal provides protection against software lock-up. The DFPIC165X Microcontroller fits perfectly in applications ranging from highAll trademarks mentioned in this document are trademarks of their respective owners. speed automotive and appliance motor control 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. DFPIC165X 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 PIC16C5X ● Harvard architecture 2 times faster compared to original implementation ● 33 instructions ● 12 bit wide instruction word ● Up to 256 bytes of internal Data Memory ● Up to 4K bytes of Program Memory ● Configurable hardware stack ● Power saving SLEEP mode ● Fully synthesizable, static synchronous design with no internal tri-states ● Scan test ready http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. PERIPHERALS ● Three 8 bit I/O ports ○ Three 8-bit corresponding TRIS registers ● Timer 0 ● Single Design license for ○ 8-bit timer/counter ○ Readable and Writable ○ 8-bit software programmable prescaler ○ Internal or external clock select ○ Edge select for external clock ● Watchdog Timer ○ Configurable Time out period ○ 7-bit software programmable prescaler ○ Dedicated independent Watchdog Clock input DELIVERABLES ♦ ♦ ♦ ♦ ♦ ♦ 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 ● ● ● 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. 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 use IP Core in single FPGA bitstream and ASIC implementation. ○ VHDL, Verilog source code called HDL Sour- ce ○ Encrypted, or plain text EDIF called Netlist ● One Year license for ○ Encrypted Netlist only ● Unlimited Designs license for ○ HDL Source ○ Netlist ● Upgrade from ○ HDL Source to Netlist ○ Single Design to Unlimited Designs CONFIGURATION The following parameters of the DFPIC165X 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. • RAM memory type - synchronous asynchronous • RAM size - up to 256 default 128 • Program Memory size - up 4 kWords default 2k - 1-8 default 2 • SLEEP mode - used unused • WATCHDOG Timer - used / width unused • Timer system - used unused • PORTS A,B,C - used unused • Number of hardware stack levels Unlimited Designs, One Year licenses allow use IP Core in unlimited number of FPGA bitstreams and ASIC implementations. 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. BLOCK DIAGRAM PINS DESCRIPTION PIN TYPE DESCRIPTION clk input Global clock clkwdt input Watchdog clock por input Global reset Power On Reset mclr input User reset prgdata[11:0] input Data bus from program memory ramdati[7:0] input Data bus from int. data memory t0cki input Timer 0 input portai[7:0] input Port A input portbi[7:0] input Port B input clk por t0cki portci[7:0] input Port C input prgdata[11:0] input Data bus from program memory ramdati[7:0] input Data bus from int. data memory prgaddr[11:0] output Program memory address bus ramdatao[7:0] output Data bus for internal data memory ramaddr[7:0] output RAM address bus ramwe output Data memory write ramoe output Data memory output enable sleep output Sleep signal portao[7:0] output Port A output portbo[7:0] output Port B output portco[7:0] output Port C output trisa[7:0] output Data direction pins for Port A trisb[7:0] output Data direction pins for Port B trisc[7:0] output Data direction pins for Port C SYMBOL clk clkwdt por mclr prgdata(11:0) prgaddr(11:0) ramdatai(7:0) ramdatao(7:0) ramaddr(7:0) ramwe ramoe t0cki portai(7:0) portbi(7:0) portci(7:0) mclr sleep prgdata prgaddr sleep portao(7:0) portbo(7:0) portco(7:0) trisa(7:0) trisb(7:0) trisc(7:0) All trademarks mentioned in this document are trademarks of their respective owners. Hardware Stack Control Unit ALU RAM Controller Timer 0 I/O Ports clkwdt Watchdog Timer ramdatai ramdatao ramaddr ramwe ramoe portai portbi portci portao portbo portco trisa trisb trisc 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 DFPIC165X 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 RETLW instruction execution. The stack operates as a circular buffer. This means that after the stack has been pushed two times, the third push overwrites the value that was stored from the first push. RAM Controller – It performs interface functions between Data Memory and DFPIC165X internal logic. It assures correct Data memory addressing and data transfers. The DFPIC165X supports two addressing modes: direct or indirect. In Direct Addressing the 8-bit direct address is computed from FSR(7:5) bits 5 least significant bits of instruction word. http://www.DigitalCoreDesign.com http://www.dcd.pl Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved. 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 8-bit address is obtained from an 8bit FSR register. Timer 0 – Main system’s timer and prescaler. The DFPIC165X Timer operates in two modes: 8-bit timer or 8-bit counter. In the “timer mode”, timer registers are incremented every 4 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 is 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 timeout generates a Watchdog reset. If the device is in SLEEP mode the WDT timeout causes the device to wake-up and continue with normal operation. I/O Ports – Block contains DFPIC165X’s general purpose I/O ports and data direction registers (TRIS). The DFPIC165X has three 8-bit full bi-directional ports PORT A, PORT B and PORT C. Read and write accesses to the I/O port are performed via their corresponding SFR’s PORTA, PORTB, PORTC. 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, TRISB and TRISC 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). OPTIONAL PERIPHERALS There are also available an optional peripherals, not included in presented DFPIC165X Microcontroller Core. The optional peripherals, can be implemented in microcontroller core upon customer request. ● Full duplex UART ● SPI – Master and Slave Serial Peripheral Interface ○ Supports speeds up ¼ of system clock ○ Mode fault error ○ Write collision error ○ Software selectable polarity and phase of se- rial clock SCK ○ System errors detection ○ Allows operation from a wide range of system clock frequencies (build-in 5-bit timer) ○ Interrupt generation ● PWM – Pulse Width Modulation Timer ○ 2 independent 8-bit PWM channels, concate- nated on one 16-bit PWM channel ○ Software-selectable duty from 0% to 100% and pulse period ○ Software-selectable polarity of output wave- form ● I2C bus controller - Master ○ 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 ○ 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 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 IMPROVEMENT The following table gives a survey about the Core area and performance in the ALTERA® devices after Place & Route: Most instruction of DFPIC165X 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: Speed Logic Cells grade CYCLONE -6 551 CYCLONE II -6 547 STRATIX -5 551 STRATIX II -3 456 STRATIX GX -5 551 APEX II -7 635 APEX20KC -7 635 APEX20KE -1 635 APEX20K -1 635 ACEX1K -1 648 FLEX10KE -1 648 Device Fmax 105 MHz 108 MHz 108 MHz 178 MHz 109 MHz 73 MHz 68 MHz 56 MHz 45 MHz 50 MHz 48 MHz Mnemonic DFPIC165X 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 RETLW 2 *CPU – consisted of ALU, Control Unit, Bus Controller, Hardware Stack, 256 B RAM, 4k of Program memory Core performance in ALTERA® devices PIC16C54 (CLK cycles) Impr. 4 4 4 4 4(8)1 4(8)1 4(8)1 4(8)1 8 8 8 2 2 2 2 2 2 2 2 4 4 4 1 - number of clock in case that result of operation is 0. DFPIC&DRPIC FAMILY OVERVIEW 33 35 35 35 - 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 - USART 12 14 14 14 Timer 1 24 16 32 32 128 512 512 512 Timer 0 2k 64k 64k 64k CCP1 DFPIC165X DFPIC1655X DRPIC1655X DRPIC166X 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.