+ Reply to Thread
Results 1 to 13 of 13

Thread: Combinatoric timing problem

  1. #1
    Grossel Good Grossel Good
    Join Date
    Sep 2008
    Location
    Norway
    Posts
    186

    Default Combinatoric timing problem

    I have a combinatoric circuit that will reset a stage (one of several sr-flipflops).


    Then I discovered that if both A (set-button) and B (from reset button) goes high at same time (like if they're wired together) that will cause S to go high for some ns and then go because of delay in leftmost and gate.

    Then I start working boolean algebra, but I won't get any similar circuit that won't producing spikes when A and B shift state same time.

    Also I would like trying avoiding any aditional delay circuits that hasn't other purposes than only delay the signal.

    Any ideas?


  2. #2
    Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent
    Join Date
    May 2008
    Location
    San Diego, Ca
    Posts
    3,920
    Blog Entries
    2

    Default

    This is the nature of combinatorial logic. Sequential logic is the fix, but this adds delay...
    Pay it forward.
    www.geoepicenter.com

  3. #3
    Jules_Theone Newbie
    Join Date
    Jan 2009
    Location
    Exeter, England
    Posts
    97

    Default

    Add a buffer of the same type as the other gates on the 'A' input to the second gate. This will add a delay so both signals reach the second gate at the same time, minimising the delay between them.

  4. #4
    Grossel Good Grossel Good
    Join Date
    Sep 2008
    Location
    Norway
    Posts
    186

    Default

    Quote Originally Posted by Jules_Theone View Post
    Add a buffer of the same type as the other gates on the 'A' input to the second gate. This will add a delay so both signals reach the second gate at the same time, minimising the delay between them.
    I know I can do this easily, but as I mentioned in the first post, I want to avoid additional delay circuits.

    I think it's impossible to achieve, can anybody confirm this?

    What about an example on Sequential logic?
    Last edited by Grossel; 26th February 2009 at 12:42 PM.

  5. #5
    Jules_Theone Newbie
    Join Date
    Jan 2009
    Location
    Exeter, England
    Posts
    97

    Default

    Its a compromise between speed and hazard elimination. The sequential circuit would produce a longer delay but eliminate the hazards.

    Are you using the fastest logic family because if you use fast logic the delay will be minimised. The fastest i believe is 74G**.

  6. #6
    Grossel Good Grossel Good
    Join Date
    Sep 2008
    Location
    Norway
    Posts
    186

    Default

    Quote Originally Posted by Jules_Theone View Post
    Its a compromise between speed and hazard elimination. The sequential circuit would produce a longer delay but eliminate the hazards.

    Are you using the fastest logic family because if you use fast logic the delay will be minimised. The fastest i believe is 74G**.
    At this moment, this is only a theoretical question, so the physical component isn't chosed yet. But I presuppose that all logic gates in the circuit provide roughly the same delay time.

    But sure I get a very fast nand gate (the left one) and put in a slower one for the right. But then again, I probably have to spend more physical IC's on a board than neccesary just to provide a longer delay.
    I think instead I can use two inverters in serie of same type (ttl-family) as the two and gates.

  7. #7
    Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent
    Join Date
    May 2008
    Location
    San Diego, Ca
    Posts
    3,920
    Blog Entries
    2

    Default

    But why would set and reset be asserted at the same time? Is this a likely situation? Can you assign priority logic to A and B So A overides B? If so, Some sort of encoder logic can be used.

    Also, why is delay a problem? A few usec should hardly be an issue compared to pressing a button. Using sequential logic like flipflops for your switches can ensure that a race condition does not exist.
    Clock A on rising edge and B on falling edge. This does add complexity so you have to decide how important it is.
    Last edited by Mikebits; 27th February 2009 at 08:48 AM.
    Pay it forward.
    www.geoepicenter.com

  8. #8
    Chaerl Newbie
    Join Date
    Feb 2009
    Location
    Ireland
    Posts
    59

    Default

    Try to see the propagation delay of each gates (semicondutors produces interal delays).

  9. #9
    Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent
    Join Date
    May 2008
    Location
    San Diego, Ca
    Posts
    3,920
    Blog Entries
    2

    Default

    Quote Originally Posted by Chaerl View Post
    Try to see the propagation delay of each gates (semicondutors produces interal delays).
    Prop delay for most gates these days is in the nano second range.
    Pay it forward.
    www.geoepicenter.com

  10. #10
    Chaerl Newbie
    Join Date
    Feb 2009
    Location
    Ireland
    Posts
    59

    Default

    True, but sometimes its an issue if you're working at highspeed specially if the timing is critical

  11. #11
    Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent Mikebits Excellent
    Join Date
    May 2008
    Location
    San Diego, Ca
    Posts
    3,920
    Blog Entries
    2

    Default

    Since the poster mentioned buttons (as in a switch), I doubt nano or microseconds is an issure.
    Last edited by Mikebits; 5th March 2009 at 10:35 AM.
    Pay it forward.
    www.geoepicenter.com

  12. #12
    Chaerl Newbie
    Join Date
    Feb 2009
    Location
    Ireland
    Posts
    59

    Default

    and the poster mentioned, causes S to go high for some ns and then go because of delay in leftmost and gate.

    Initially, the inputs are lo. the complementary input of the right most gate is actually hi. at the switch turned to hi, because of the propagation delay of some ns of the left most gate, the complementary input is still hi for some ns while A changes to hi. so the output S stays hi for some ns. when the input of the left most gate propagates to the output, the complementary input becomes lo and thus, S becomes lo until the change of status.

  13. #13
    xpi0t0s Newbie
    Join Date
    Feb 2003
    Posts
    26

    Default

    It's impossible to solve directly because the truth table of your circuit is:
    Code:
    A B S
    0 0 0
    0 1 0
    1 0 1
    1 1 0
    
    so when you get A=1 B=0 on the inputs, you WILL get a 1 on the output, and the question translates to "how can I delay A without delaying A" which is obviously a contradiction.

    However there may be a solution. The circuit is equivalent to S=A.!B (i.e. run B through an inverter and AND it with A), so can you get !B from anywhere? If C=!B then the truth table becomes:
    Code:
    A C S
    0 0 0
    0 1 0
    1 0 0
    1 1 1
    
    and there is no transient for AC=00->10->11, or in fact for 00->01->11, because both must go high before the output can.
    Sig 9 from Outer Space

+ Reply to Thread

Similar Threads

  1. 16F628 timing problem
    By ahydra in forum Micro Controllers
    Replies: 24
    Latest: 27th December 2008, 12:53 PM
  2. PIC Timing
    By baberjaved in forum Micro Controllers
    Replies: 10
    Latest: 21st September 2007, 01:06 AM
  3. 555 timing help
    By bunghole in forum General Electronics Chat
    Replies: 24
    Latest: 13th September 2007, 07:52 PM
  4. Need Help with a Timing Circuit
    By gb043 in forum Electronic Projects Design/Ideas/Reviews
    Replies: 4
    Latest: 8th September 2004, 03:32 AM
  5. Strange timing problem
    By 2camjohn in forum Micro Controllers
    Replies: 1
    Latest: 19th March 2004, 02:16 PM

Tags for this Thread