® PSoC Creator™ Component Datasheet Digital Multiplexer and Demultiplexer 1.10 Features Digital Multiplexer Digital Demultiplexer Up to 16 channels General Description The Multiplexer component is used to select 1 of n inputs while the Demultiplexer component is used to route 1 signal to n outputs. The Multiplexer component implements a 2 to 16 input mux providing a single output, based on hardware control signals. The Demultiplexer component implements a 2 to 16 output demux from a single input, based on hardware control signals. Only one input or output connection may be made at a time. When to Use a Multiplexer Use the Multiplexer and Demultiplexer components any time a digital signal must be dynamically routed under firmware or hardware control. The most common control method is to connect the mux select signals to a control register using a bus. The control register is then used to select the input or output for the mux/demux. Another option is to drive the select signals from hardware control logic to provide dynamic hardware routing. Input/Output Connections This section describes the various input and output connections for the Multiplexer and Demultiplexer. An asterisk (*) in the list of I/Os indicates that the I/O may be hidden on the symbol under the conditions listed in the description of that I/O. Multiplexer 0-n – Inputs Inputs to the Multiplexer, only one of which is routed to the output based on the select input. The number of inputs depends on the size of the multiplexer. Cypress Semiconductor Corporation • 198 Champion Court • San Jose, CA 95134-1709 • 408-943-2600 Document Number: 001-73370 Rev. *A Revised May 15, 2012 Digital Multiplexer and Demultiplexer ® PSoC Creator™ Component Datasheet Output 0 Output from the Multiplexer that is driven from the selected input. select – Input Selects input as source for the Multiplexer or output as destination for the Demultiplexer. The width of the select input depends on the number of inputs and outputs. Demultiplexer 0 – Input Input to the Demultiplexer that is routed to one of n outputs. Outputs 0-n Outputs from the Demultiplexer, only one of which is driven based on the select input. The number of outputs depends on the size of the demultiplexer. The number of outputs must be a power of 2. Not all outputs must be connected. select – Input Selects input as source for the Multiplexer or output as destination for the Demultiplexer. The width of the select input depends on the number of inputs and outputs. Page 2 of 6 Document Number: 001-73370 Rev. *A ® PSoC Creator™ Component Datasheet Digital Multiplexer and Demultiplexer Component Parameters Drag a Multiplexer or Demultiplexer onto your design and double-click it to open the Configure dialog. Multiplexer Figure 1. Configure Multiplexer Dialog The Multiplexer provides the following parameters. NumInputTerminals This parameter determines the number of Multiplexer inputs. The default is 4. Acceptable values are 2, 4, 8, and 16 and the corresponding select input widths are 1, 2, 3, and 4. Unused input terminals may be left floating and, if selected, will be interpreted with a value of 0. TerminalWidth You can create an array of parallel Multiplexers, which may be useful when the inputs are buses. This parameter defines the bus width of the inputs. The default is 1. The range of valid values is 1 to 32, inclusive. This parameter does not affect the width of the select input. Document Number: 001-73370 Rev. *A Page 3 of 6 Digital Multiplexer and Demultiplexer ® PSoC Creator™ Component Datasheet Demultiplexer Figure 2. Configure Demultiplexer Dialog The Demultiplexer provides the following parameters. NumOutputTerminals This parameter determines the number of Demultiplexer outputs. The default is 4. Acceptable values are 2, 4, 8, and 16 and the corresponding select input widths are 1, 2, 3, and 4. Unused output terminals may be left floating. TerminalWidth You can create an array of parallel Demultiplexers, which may be useful when the outputs are buses. This parameter defines the bus width of the outputs. The default is 1. The range of valid values is 1 to 32, inclusive. This parameter does not affect the width of the select input. Sample Firmware Source Code PSoC Creator provides many example projects that include schematics and example code in the Find Example Project dialog. For component-specific examples, open the dialog from the Component Catalog or an instance of the component in a schematic. For general examples, open the dialog from the Start Page or File menu. As needed, use the Filter Options in the dialog to narrow the list of projects available to select. Refer to the “Find Example Project” topic in the PSoC Creator Help for more information. Page 4 of 6 Document Number: 001-73370 Rev. *A ® PSoC Creator™ Component Datasheet Digital Multiplexer and Demultiplexer Functional Description Multiplexer The Multiplexer selects one of several inputs based on the select input. A letter ‘X’ in the truth table indicates that the input does not affect the output. Table 1. Four-Input Multiplexer Truth Table Select[1] Select[0] Input 3 Input 2 Input 1 Input 0 Output 0 0 X X X 0 0 0 0 X X X 1 1 0 1 X X 0 X 0 0 1 X X 1 X 1 1 0 X 0 X X 0 1 0 X 1 X X 1 1 1 0 X X X 0 1 1 1 X X X 1 Demultiplexer The Demultiplexer selects one of several outputs based on the select input. The value of the selected output is the value of the input. The value of unselected outputs is false. Table 2. Four-Output Demultiplexer Truth Table Select[1] Select[0] Input Output 3 Output 2 Output 1 Output 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 Document Number: 001-73370 Rev. *A Page 5 of 6 Digital Multiplexer and Demultiplexer ® PSoC Creator™ Component Datasheet Resources The Multiplexer and Demultiplexer are implemented with logic equations and therefore are synthesized and mapped into PLD blocks within the UDB array. The component size and width determines the size of the logic equations and thus the number of PLDs used. Component Changes This section lists the major changes in the component from the previous version. Version Description of Changes 1.10.a Minor datasheet edits and updates. 1.10 Symbol updates to differentiate the multiplexer from demultiplexer when the symbols are flipped. Reason for Changes / Impact Multiplexer and Demultiplexer looks same when symbols are flipped. Minor datasheet edits to separate out the descriptions of multiplexer and demultiplexer 1.0.c Minor datasheet edits and updates 1.0.b Minor datasheet edits and updates 1.0.a Updated datasheet to show examples of firmware controlled components. These were added to show how you can use and implement these components with control registers. © Cypress Semiconductor Corporation, 2012. 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 lifesupport systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. PSoC® Creator™, 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. Any 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 firmware 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. Cypress does not authorize its products for use as critical components in lifesupport 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 Document Number: 001-73370 Rev. *A