Reviving Bit-slice Technology in a Programmable Fashion

Similar documents
Use the Status Register when the firmware needs to query the state of internal digital signals.

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

Filter_ADC_VDAC_poll Example Project Features. General Description. Development Kit Configuration

Use the Status Register when the firmware needs to query the state of internal digital signals.

Cypress HX2VL Configuration Utility Blaster User Guide

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

Next-Generation Hot-Swap Controllers

Voltage Reference (Vref) Features. General Description. Input/Output Connections. When to Use a Vref Voltage references and supplies

CE PSoC 4: Time-Stamped ADC Data Transfer Using DMA

THIS SPEC IS OBSOLETE

HX2VL Development Kit Guide. Doc. # Rev. **

Writing to Internal Flash in PSoC 3 and PSoC 5

HX2VL Development Kit Guide. Doc. # Rev. *A

CE56273 Associated Part Families: CY8C38xx/CY8C55xx Software: PSoC Creator Related Hardware: CY8CKIT-001 Author: Anu M D

CYClockMaker Programming Kit Guide CY3675. Doc. # Rev. **

8 to 1 Analog Multiplexer Datasheet AMux8 V 1.1. Features and Overview

GPIF II Designer - Quick Start Guide

24-Bit Pseudo Random Sequence Generator Data Sheet

16-Bit Hardware Density Modulated PWM Data Sheet

Cypress HX2VL Configuration Utility Blaster User Guide

THIS SPEC IS OBSOLETE

CYClockMaker Programming Kit Guide CY3675. Doc. # Rev. *C

4 to 1 Analog Multiplexer Data Sheet

For one or more fully configured, functional example projects that use this user module go to

LPF (Optional) CY8C24x93. Without LPF and ISR to 3* With LPF only** to 3* With ISR only to 3*

DMX512 Receiver Datasheet DMX512Rx V 1.0. Features and Overview

FTG Programming Kit CY3670. Spec. # Rev. *C

CY7C603xx CYWUSB

PSoC 1 I 2 C Bootloader

Libraries Guide. Arithmetic Libraries User Guide. Document #: Rev. *A

Use the IDAC8 when a fixed or programmable current source is required in an application.

THIS SPEC IS OBSOLETE

The color of the Clock component waveform symbol will change based on the clock's domain (as shown in the DWR Clock Editor), as follows:

Comparator (Comp) Features. General Description. When to use a Comparator 1.60

Shadow Registers Datasheet ShadowRegs V 1.1. Features and Overview

PSoC Designer Release Notes

Preliminary. Gas Sensor Analog Front End Datasheet GasSensorAFE V Features and Overview. This datasheet contains Preliminary information.

AN EZ-USB FX3 I 2 C Boot Option. Application Note Abstract. Introduction. FX3 Boot Options

Supported Devices: CY8C28x13, CY8C28x33, CY8C28x43, CY8C28x45, CY8C28x52, CY8C21x45, CY8C22x45, CY8C24x93. CY8C24x

PSoC 4 Low Power Comparator (LPComp) Features. General Description. When to Use a LPComp 2.0. Low input offset. User controlled offset calibration

Programmable Threshold Comparator Data Sheet

Clock Programming Kit

Incremental ADC Data Sheet

PSoC Creator Component Datasheet

This Application Note demonstrates an SPI-LIN slave bridge using a PSoC device. Demonstration projects are included.

Programmable Gain Amplifier Datasheet PGA V 3.2. Features and Overview

Programmer User Guide

The following table lists user modules used in this code example and the hardware resources occupied by each user module.

CY3660-enCoRe V and encore V LV DVK Kit Guide

PSoC Programmer 3.12 Release Notes

AN SIO Tips and Tricks in PSoC 3 / PSoC 5. Application Note Abstract. Introduction

CapSense I 2 C/SPI Timer Flash RAM

144-Mbit QDR -II SRAM 2-Word Burst Architecture

EZ-USB FX3 Development Kit Guide

Digital Logic Gates. Features. General Description. Input/Output Connections. When to Use a Logic Gate. Input 1. Input 2. Inputs 3-8 * 1.

This input determines the next value of the output. The output does not change until the next rising edge of the clock.

Bootloader project - project with Bootloader and Communication components

AN1090. NoBL : The Fast SRAM Architecture. Introduction. NoBL SRAM Description. Abstract. NoBL SRAM Operation

FM3 MB9B100A/300A/400A/500A Series Inverter Solution GUI User Guide

CE58957 demonstrates how to implement the fade and toggle feature to the backlight LEDs of CapSense buttons.

12-Mbit (512 K 24) Static RAM

Digital Multiplexer and Demultiplexer. Features. General Description. Input/Output Connections. When to Use a Multiplexer. Multiplexer 1.

This section describes the various input and output connections for the Voltage Fault Detector.

Use the Status Register when the firmware needs to query the state of internal digital signals.

CY8C29/27/24/23/21xxx, CY8CLED02/04/08/16, CY8CLED0xD, CY8CLED0xG, CY8C28x45, CY8CPLC20, CY8CLED16P01, CY8C28xxx. Main UM

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

H O S T. FX2 SX2 Back - to - Back Setup. Project Objective. Overview

Automatic reload of the period to the count register on terminal count

This section describes the various input and output connections for the SysInt Component.

PSoC Blocks. CY8C20xx6/6A/6AS/6H/6L, CY8C20xx7/7S, CY7C643xx, CY7C604xx, CYONS2xxx, CYONSxNxxxx, CYRF89x35, CY8C20065, CY8C24x93, CY7C69xxx

One 32-bit counter that can be free running or generate periodic interrupts

This section describes the various input and output connections for the Voltage Fault Detector.

PSoC Programmer Release Notes

EZ I 2 C Slave. Features. General Description. When to use a EZ I 2 C Slave 1.50

Release Notes SRN065 PSoC Programmer Version Release Date: November 9, 2009

Application Note. LCD Driver Based on the HT1621 Controller

THIS SPEC IS OBSOLETE

Use the Status Register when the firmware needs to query the state of internal digital signals.

4K x 8 Dual-Port Static RAM and 4K x 8 Dual-Port SRAM with Semaphores

Multifunction Serial Interface (PDL_MFS) Features. General Description. When to Use a PDL_MFS Component. Quick Start 1.0

Use a DieTemp component when you want to measure the die temperature of a device.

Base Timer Channel (BT) Features. General Description. When to Use a PDL_BT Component 1.0

Voltage Fault Detector (VFD) Features. General Description. Input/Output Connections. When to Use a VFD. Clock Input 2.30

W H I T E P A P E R. Introduction. Devices. Energy Comparison of Cypress F-RAM and EEPROM

Setting Oscillation Stabilization Wait Time of the main clock (CLKMO) and sub clock (CLKSO)

Version 3.3. If you have technical questions, visit or call and select 8.

PSoC Programmer Release Notes

For More Information Please contact your local sales office for additional information about Cypress products and solutions.

Shift Register. Features. General Description 1.20

Capable of adjusting detection timings for start bit and data bit

The AMuxSeq is capable of having between 2 and 32 analog inputs. The paired inputs are present when the MuxType parameter is set to "Differential.

1-Mbit (64K x 16) Static RAM

PSoC Creator Quick Start Guide

PSoC 4 Voltage Comparator (Comp) Features. General Description. When to Use Comparator Low input offset. User controlled offset calibration

W H I T E P A P E R. Timing Uncertainty in High Performance Clock Distribution. Introduction

Counter resolution of 1x, 2x, or 4x the frequency of the A and B inputs, for more accurate determination of position or speed

AN PSoC 3 and PSoC 5 SFF-8485 Serial GPIO (SGPIO) Initiator Interface. Application Note Abstract. Introduction

PSoC Creator Component Data Sheet

GPIF II Designer 1.0. Doc. No Rev. **

Optional Pause Pulse for constant frame length of 282 clock ticks

Transcription:

By Andrew Siska, Applications Engineer Sr Staff, and Meng He, Product Marketing Engineer Sr, Cypress Semiconductor Corp. The term Bit Slicing was once dominant in history books as a technique for constructing a processor from processor modules of smaller bit width where each of these components processes one field or "slice" of an operand. Bit slice processors usually consist of an arithmetic logic unit (ALU) of 2, 4 or 8 bits and control lines. Using multiple, simpler ALUs was seen as a way to increase computing power in a cost-effective manner. The latest system-on-chip (SOC) technology revives bit-slice in a programmable fashion to serve the purpose of offloading the main CPU by intelligently assigning processing tasks to other processing. How did bit-slice evolve over years? In the early 70s, a number of very complex microprocessor designs passed the 8-bit barrier using very simple arithmetic logic units (ALUs). These sophisticated programmable digital systems weren t designed using 8, 16 or 32-bit microprocessors but rather cascaded 4-bit processors, known as bit-slice processors. These processors had very simple instruction sets (much simpler than today s RISC processors) but performed some very sophisticated processing. Devices such as AMD's Am2900 family and National Semiconductor s IMP-16 and IMP-8 were typically found in aviation systems, guidance and tracking systems, and early signal processing applications. Many of these bit-slice processors have gone the way of thru-hole components and have been replaced by the more popular 8- through 32-bit processors that are found in the market today. However, bit-slice processors are still found in some military, aerospace, industrial, and academic designs, and they are far from being dead. The marriage of programmable logic, such as PLDs and FPGAs with multiple reduced instructions set ALUs has opened up a new palette for the digital designers. The programmable face-off of bit-slice technology Given the numerous microprocessors and microcontrollers on the market today, why would one build a design using bit-slicing techniques? Given the many embedded designs the reader has probably completed during their design career the answer is simple there are numerous tasks better performed by hardware than software. In order to keep production costs down, it s more cost-effective to select a high-performance processor and implement the hardware functions in software. What if instead of opting for a high-performance processor, a designer was able to use a low-cost microprocessor that included programmable logic and a number of simple instruction set ALUs. The microprocessor would then be able to perform simple tasks while the programmable logic and ALUs would handle the more complex, higher bit width processes. Let us explore a device with 24 such ALUs, which we will call data-paths with a mixture of PLDs. The data-path shown in Figure-1 below contains 1. 2. 3. 4. 5. 6. 7. An 8-bit single-cycle ALU that can perform general-purpose functions including add, subtract, AND, OR, XOR, and PASS Associated compare and condition generation circuits Built in Cyclic Redundancy Check (CRC) and Pseudo Random Sequence (PRS) generation Variable Most Significant Byte (MSB) to be programmable specified for arbitrary width digital functions Two 4-byte deep FIFOs, two 8-bit wide data registers and two 8-bit accumulators Data inputs that can be support different types of data inputs: Configuration, control, and serial and parallel data Data output that can be various signals such as conditional, status data, etc. Page 1 of 6

Figure 1: Datapath Architecture Each one of these 8 bit data-paths can be coupled to its 8-bit data-path neighbor, which in turn can be coupled to its neighbor, and so on. An architecture of this nature effectively yields an 8 to n-bit processor in multiples of 8 bit. Note that the FIFOs, data registers, accumulators, and ALUs in the data-path can all be configured as n-bit in this manner. In addition, multi-byte data-path modules automatically chain the 8-bit data-paths together and the control signals and status outputs for each of the data-paths in the module. For instance, if 8 bits is not enough for a particular application, the data-path can be coupled to a neighboring data-path to form a 16 or higher bit processor. An additional benefit of this architecture is each instruction requires only 1 clock cycle. As a consequence, designs will run at hardware speed instead of processor state speed. In applications that are oversampled, or do not need the highest clock rates, the single ALU block in the data-path can be efficiently shared with two sets of registers and condition generators. ALU and shift outputs are registered and can be used as inputs in subsequent cycles. Usage examples include support for 16-bit functions in one (8-bit) data-path or interleaving a CRC generation operation with a data shift operation. An enhancement made to the standard bit slice architecture is the inclusion of Programmable Logic. This allows developers to include a standard state machine using Verilog. In addition, arithmetic functions that normally consume a large number of logic gates are no longer a concern because these functions can be implemented in the standard ALU and controlled by the state machine. Also note that the main processor and ALUs can run on separate clocks. For instance, the core processor can be clocked at 24 MHz while the ALUs can be clocked at 48 MHz or higher. Figure 2 below shows three 8-bit ALUs or data-paths chained together to form a 24-bit processor. Page 2 of 6

Figure 2: Datapath Chaining Architecture A 16-bit example In this example, we are going to create a 16-bit pattern generator with the 16-bit pattern shifted out continuously using the PSoC 3 Programmable System-on-chip and PSoC Creator development environment from Cypress Semiconductor. In this project, we are only using the digital portion inside the chip without involving the main CPU. One data path is set for the least significant 8-bits and another data-path for the most significant 8-bits. Figure 3 shows the data path configuration for the least significant 8-bits of the 16-bit pattern generator, and Figure 4 shows the data path configuration for the most significant 8-bits of the 16-bit pattern generator. Page 3 of 6

Figure 3: Datapath Configuration LSB Page 4 of 6

Figure 4: Datapath Configuration MSB In both Figure 3 and Figure 4, the ALU instructions are identical. A reset or clear of A0 (accumulator 0) is performed when Dynamic Configuration register 0 is pointed to by the state machine. The value in A0 is shifted right one bit when the state machine points to Configuration Register 1, and the value in A1 (accumulator 1) is incremented when Dynamic Configuration register 3 is pointed to. The bit shifted out of the high order ALU is shifted in to the low order ALU shifting into and out of an ALU is accomplished by setting CHAIN in the SIA field of Static Configuration Register 6 in the low order ALU (Figure 3) and setting CHAIN in the CIA field of Static Configuration Register 6 in the high order ALU (Figure 4). Since both the high and low order 8-bit data paths are clocked by a common clock, they act as a single 16-bit processor and are completely independent of the central processor no firmware, processor intervention, or stolen processor cycles is needed to run the pattern generator. This simple project demonstrates how to connect multiple data-path ALUs. Rather than requiring a high performance microcontroller to run tasks in what appears to be real-time, developers can use a simple microcontroller to manage the application and leave the real-time background tasks to multiple ALUs combined with programmable logic. System-on-chip (SOC) technology revives bit-slicing in a programmable fashion to serve the purpose of offloading the main CPU by intelligently assigning processing tasks to other on-chip programmable hardware. With a bit-slicing architecture,, developers can not only develop a standard state machine but the arithmetic functions as well that normally consume a large amount of logic gates. Neither is a cause for concern because these will be implemented in the standard ALU contained in the data path logic and/or controlled by the PLD based state machine, allowing the modern embedded system engineer to focus on the overall system power consumption and efficiency. Page 5 of 6

Cypress Semiconductor 198 Champion Court San Jose, CA 95134-1709 Phone: 408-943-2600 Fax: 408-943-4730 http://www.cypress.com Cypress Semiconductor Corporation, 2007. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. PSoC Designer, Programmable System-on-Chip, and PSoC Express are trademarks and PSoC is a registered trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are property of the respective corporations. This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmw are in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypre ss does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress product in a life -support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement. Page 6 of 6