This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CD74HC4094: Using CD74HC4094 and CD74HC688 at 3.3 V for Pattern Detection and Timed Output Disable

Part Number: CD74HC4094
Other Parts Discussed in Thread: CD74HC688, SN74HCS259-Q1, SN74HCS4075, SN74AC595, TPLD2001, SN74HCS4075-Q1, CD74AC164

Hi Team,

We are using CD74HC4094 8-bit shift register powered at 3.3 V, with the STROBE pin held permanently HIGH and output control handled solely via the OE pin. The parallel outputs of the shift register will be compared against a fixed 8-bit reference pattern using a CD74HC688 identity comparator. When a match occurs, the comparator output will go HIGH and trigger an RC delay (approximately 10–30 ms), after which the OE pin will be driven LOW to disable or clear the shift-register outputs.

We would like to confirm whether this approach is functionally sound, particularly with respect to latch behavior, OE control, and whether clearing or disabling the outputs using only the OE pin is sufficient, or if the STROBE pin should also be actively controlled. Additionally, we would like to confirm whether both the CD74HC4094 and CD74HC688 are fully characterized and reliable at 3.3 V operation, since the datasheets primarily specify 2 V, 4.5 V, and 6 V supplies.

Are there any reference designs or application notes demonstrating this type of usage? As an alternative approach, is there any standard logic IC that can convert an arbitrary 8-bit value (256 combinations) into a 3-bit state (8 states) suitable for use with an addressable latch such as the SN74HCS259-Q1, or would this functionality require a ROM, PLD, or similar device?

  • Hi Sanfiya,

    This design is functionally sound. As a heads up, the OE will not clear the internal storage, it will only disable the output. Also, we generally advise against capacitive loads of greater than 50pF, so keep that in mind when designing your RC delay.  [FAQ] What is the maximum capacitive load that a logic device can drive? 

    I recommend taking a look at TPLD2001 or TPLD1202 to see if it will suit your needs.

    Regards,

    Nikki

  • Hi Nikki,

    Thank you for the clarification regarding the OE behavior and capacitive load limitations.

    In our design, an 8-bit serial code and clock from the controller are loaded into the CD74AC164BQAR shift register. The parallel outputs are compared against a fixed reference using an identity comparator CD74HC688PWR. When a match occurs, the comparator output goes low (active-low), which is inverted to generate an active-high decoded signal. This signal is required to remain stable for approximately 10–30 ms; therefore, an RC delay is used. After the delay, the signal drives a MOSFET that pulls the CLR pin low to reset the shift register.

    Based on this operation, will this approach work as intended? We have attached the schematic for your reference.

    Regards,

    Sanfiya Banu M H.

    DESIGN.pdf

  • Hi Sanifya,

    I recommend adding decoupling capacitors on the CD74HC688PWR, but otherwise this looks good.

    I am an expert on TI Logic and not Nexperia, but I noticed that you're using 74AUP1G32GS which is not a true Schmitt-trigger (Nexperia uses a term called "schmitt-trigger action" which is not the same as a true Schmitt-trigger). The datasheet of 74AUP1G32GS lists the maximum transition time as 200 ns/V. It looks like your delay is in the ms range, so this would violate their datasheet. I recommend using SN74LVC7032A instead. It is four-channel rather than only two channel, but it has true Schmitt-trigger inputs that can support the long transition time.

    Regards,

    Nikki

  • Hi Nikki,

    Thank you for the detailed review and the recommendation. I appreciate you pointing out the transition-time limitation of the 74AUP1G32GS and the clarification regarding Nexperia’s “Schmitt-trigger action” versus a true Schmitt-trigger input.

    Based on your feedback, I have replaced the 74AUP1G32GS OR gate with SN74HCS4075QPWRQ1. This device provides true Schmitt-trigger inputs and is better suited to handle the slow input transition times present in our design, while also improving noise immunity and robustness. Please let me know if you see any concerns with this substitution.

    I would also like to clarify one point regarding the operation of the CD74AC164BQAR shift register and its interaction with the comparator. If the shift register is not explicitly cleared before the first clock pulse, the first serial bit (LSB) will be shifted into QA, while the remaining outputs (QB through QH) will retain their previous or power-up default states. Since the comparator evaluates all eight outputs on every clock cycle, there is a concern that intermediate or partial data patterns during the shifting process could be incorrectly interpreted as a valid match.

    Our requirement is that the comparator should assert a valid output only after all eight bits have been fully shifted in, i.e., after the eighth clock pulse, and only if the complete 8-bit pattern matches the reference. Could you please advise whether it is necessary to explicitly clear the shift register prior to loading the serial data, or whether the current configuration is sufficient? Additionally, what would be the recommended approach to prevent false matches during the intermediate clock cycles.

    Regards,

    Sanfiya Banu M H.

  • Hi Sanfiya,

    The SN74HCS4075QPWRQ1 will work as a replacement for 74AUP1G32GS, but I want to point out that SN74HCS4075 is a 3-input OR gate which means you need to ground any unused inputs.

    I recommend looking at SN74AC595 as a replacement for CD74AC164BQAR if you need to prevent false matches during intermediate clock cycles. It has storage registers and 3-state outputs, both of which will fix your problem. The storage registers allow data to be loaded into the shift register while the outputs remain static. 3-state outputs to allow for disabling the outputs. You don't necessarily need to use both of these features. Either one of these features would solve your problem.

    Regards,

    Nikki

  • Hi Nikki,

    Thank you for your suggestions and for pointing out the input requirements of the SN74HCS4075. We will ensure that any unused inputs are properly terminated to ground.

    If we use the CD74AC164BQAR, What will be the default state of all the output pins from Qa to Qh after power up?  is there a functionally similar shift register that provides three-state (Hi-Z) outputs .

    We initially considered the SN74AC595 because its storage register cleanly separates the shift operation from the output update, which effectively prevents false matches during intermediate clock cycles. However, due to GPIO limitations on our controller, we are unable to provide an additional dedicated RCLK (latch) signal. For this reason, we moved away from SN74AC595.Tying SRCLK and RCLK together on the SN74AC595 does not appear to be a recommended or robust approach. Could you please confirm whether this configuration is supported? If not, is there an alternative approach—such as using the same clock with a defined delay, edge-based gating, or minimal external logic—that would allow both SRCLK and RCLK to be derived from a single clock source while still ensuring correct and deterministic operation?

    As an alternative, we selected the CD74HC4094, since its output strobe (STR) can be held enabled by default, allowing data to be shifted without requiring an extra latch control signal. While this simplifies the interface, the challenge we now face is that there is no straightforward way to asynchronously clear or force the outputs to a known inactive state after approximately 30 ms, which is required by our system behavior.

    Any guidance on the most robust solution—either with the currently selected device or an alternative recommendation—would be greatly appreciated.

    Thank you for your support.

    Best regards,
    Sanfiya Banu M H.

  • Hi Sanfiya,

    Today is an American holiday, so I will get back to you tomorrow. Thank you for your patience!

    Regards,

    Nikki

  • Hi Sanfiya,

    I would like to recommend TPLD2001 again. I think TPLD could incorporate this entire circuit into one device, and it is highly customizable. If you like, I can help you create this design for TPLD.

    Tying SRCLK and RCLK together is no problem for any of the 595 devices. This is a common design. In this scenario, the output will always be one step behind the input. 

    An alternative shift register is SN74HCS595. This is very similar to SN74AC595, but it has Schmitt-trigger inputs. This allows a slow rising edge on the input, so you can add an RC delay between SRCLK and RCLK. Take a look at  SN74HCS594: Hold time requirement of RCLK w.r.t. nSRCLR . In this thread, they are discussing nSRCLR and RCLK, but the same kind of thing can be applied to SRCLK and RCLK. That said, there is no problem with simply tying SRCLK and RCLK together.

    You have enough GPIOs to use the OE pin, correct? Otherwise using this device doesn't make sense for your application.

    Regards,

    Nikki

  • Hi Nikki,

    Thank you for the detailed suggestions and for recommending the TPLD2001. I appreciate the flexibility it offers, and it is something we can certainly evaluate in a future revision.

    For the current design, I wanted to clarify the approach we are planning to proceed with. At this stage, we are planning to use the CD74AC164BQAR as the shift register along with the CD74HC688PWR comparator.

    In our implementation, the same clock signal is applied to the clock input of the shift register and to the enable pin of the comparator. With this arrangement, the intent is that the comparator only performs decoding when the clock is low, i.e., during the period when no transitions are occurring in the shift register outputs. This avoids any false or intermediate comparisons while data is being shifted. Once all the required bits are correctly shifted in and the desired condition is met, the shift register is cleared after a delay of approximately 30 ms.

    Please note that, due to GPIO limitations on our controller, we do not have a dedicated GPIO available to control the enable or output control of the shift register. As a result, the shift register remains enabled at all times in this design.

    I have attached the schematic for your reference. Kindly review it and let me know if you see any concerns or recommendations with this approach.

    Thanks again for your support and insights.

    Regards,
    Sanfiyadesign (1).pdf

  • Hi Sanfiya,

    This is a great solution.

    I have two minor comments:

    1. U69 has a thermal pad that is not connected. This is recommended but not strictly necessary.

    2. It is important to connect unused inputs of SN74HCS4075QPWRQ1 to ground. Take a look at  [FAQ] How do I terminate any unused channels of a logic device?  for more information.

      

    Otherwise, everything looks great.

    Regards,

    Nikki

  • Hi Nikki,

    Thank you for the review and for the helpful suggestions.

    Noted regarding the thermal pad of U69. We will review the layout and connect it appropriately if required.

    Also, thank you for pointing out the requirement to terminate unused inputs of the SN74HCS4075QPWRQ1. We will ensure that all unused inputs are tied to ground as recommended.

    For this OR gate, we are using a 3.3 V input level where the input pins are driven by an RC delay network (20 ms, based on the 63% time constant). While reviewing the datasheet, we noticed that the exact VIH level is not explicitly specified for 3.3 V operation. Additionally, the Schmitt trigger thresholds (VT+ and VT−) are not directly listed for 3.3 V, and the VT+ range given for nearby supply levels appears quite wide (1.7 V to 3.15 V).

    Could you kindly advise what voltage VIH should be considered when designing the RC delay circuit ? It would be helpful if you could also verify whether the RC delay implementation in the previously shared schematic is appropriate for this device.

    Thanks again for your guidance and support.

    Regards,
    Sanfiya Banu M H.

  • Hi Sanfiya,

    You need to use linear interpolation to determine the thresholds between datasheet values. Please see  [FAQ] What method is best used for estimating specification values between those given in the datasheet? for more details.

    This means that at 3.3V, you have the following:

    VT+_min = 1.22V

    VT+_max = 2.358V

    VT-_min = 0.612V

    VT-_min = 1.624V

    However, the actual threshold values (not minimum or maximum) can occur anywhere in between these values. In general, the switching thresholds will be halfway between the max and min, but it's important to be prepared for the worst-case minimum / maximum scenarios.

    With regard to the RC delay circuit, I think it looks fine. If it is extremely important that this delay is exactly 20ms, then we might consider a different kind of delay circuit. Resistor and capacitor values are usually not very precise, and I cannot guarantee that every SN74HCS4075QPWRQ1 will have the exact same value for its switching threshold. However, this circuit looks good if you need approximately 20ms delay. 

    Let me know if you need anything else.

    Regards,

    Nikki

  • Hi Nikki,

    Thank you for your detailed explanation regarding the threshold calculations and interpolation method.

    With respect to the delay requirement, our application allows for a delay in the range of approximately 10 ms to 30 ms, and hence we have designed the RC delay circuit targeting around 20 ms nominal. Based on your feedback, we understand that component tolerances and threshold variations may introduce some spread, but this range is acceptable for our use case.

    Additionally, we were trying to validate the timing behavior through simulation. However, we were unable to find PSpice models for the following devices:

    • CD74AC164BQAR (Shift Register)

    • CD74HC688PWR (Comparator)

    • SN74HCS4075-Q1 (3 Input OR gate)

    Could you please let us know if PSpice (or any simulation) models are available for these components?

    Alternatively, if models are not available, could you suggest a way to validate or simulate the circuit (as per the shared schematic) to confirm whether it meets the required timing specifications?

    Your guidance on this would be very helpful.

    Looking forward to your response.

    With best regards,
    Sanfiya

  • Hi Sanfiya,

    For SN74HCS4075-Q1, please use the model for SN74HCS4075 which can be found in the Design and Development section. This is representative of SN74HCS4075-Q1.

    The other two are more difficult. We don't have PSpice models for these devices because they are quite old and were acquired a long time ago from a different company.

    I suggest ordering EVMs and samples of these devices to test them.

    I understand that this is inconvenient, but I can offer some alternatives for the sake of verifying the logic of the circuit. These will not be accurate to the CD device, but they will mimic the logic. SN74AHC164 has the same pinout and logic functions as CD74AC164. You can use that. For CD74HC688, you would have to build the logic based on the Functional Block Diagram using SN74HC266 (XNOR), a few SN74HC27 (NAND) and SN74AHC1G04 (INV). Again, this is not a very accurate way to simulate these devices, but it's the best I can offer.

    Regards,

    Nikki