Synchronous processes and delays

Discussion in 'VHDL' started by Thomas, Jul 6, 2003.

  1. Thomas

    Thomas Guest

    let's assume 2 entities:

    a, with input_a and output_a as signals
    b, with input_b and output_b as signals

    now, let's assume in my design, both processes are synchronous but output_a
    is connected to input_b;
    if the propagation time is high between input_a and output_a, what happens?

    - process b is run only when input_b's ready?

    or

    - when the clock ticks, process b takes whatever's in input_b, meaning it
    will run one tick after process a?


    in practice, the case I have is a bus decoding that is doing a bunch of
    operations and then creating chipselect signals to the various parts of the
    design, but these have to run on the same clock tick as well
    Thomas, Jul 6, 2003
    #1
    1. Advertising

  2. Thomas

    Thomas Guest

    so, this means if I decode the address during rising phi2, I can't really
    do anything synchronous, requiring the use of the decoded information, at
    the same time, I have to keep all the operations for the falling edge
    (right before hold time), is that right?


    On Sun, 06 Jul 2003 11:05:08 +0200, Mario Trams <-
    chemnitz.de> wrote:

    > Thomas wrote:
    >
    >> let's assume 2 entities:
    >>
    >> a, with input_a and output_a as signals
    >> b, with input_b and output_b as signals
    >>
    >> now, let's assume in my design, both processes are synchronous but
    >> output_a is connected to input_b;
    >> if the propagation time is high between input_a and output_a, what
    >> happens?
    >>
    >> - process b is run only when input_b's ready?

    >
    > In VHDL, a signal is never "ready" - it is just there and might change at
    > any time.
    >
    >> or
    >>
    >> - when the clock ticks, process b takes whatever's in input_b, meaning
    >> it
    >> will run one tick after process a?

    >
    > Yes, that is the case. output_b will be delayed by one cycle compared to
    > output_a.
    >
    >> in practice, the case I have is a bus decoding that is doing a bunch of
    >> operations and then creating chipselect signals to the various parts of
    >> the design, but these have to run on the same clock tick as well

    >
    > As I know that you are working on a 6502-Bus:
    > If you need a synchronous decoding, you should register the address
    > (or even the decoded signals) at the rising edge of Phi2. This gives you
    > a clean timing as all data transfers happen at the falling edge of Phi2.
    >
    > Regards,
    > Mario
    >
    Thomas, Jul 6, 2003
    #2
    1. Advertising

  3. Thomas

    Mario Trams Guest

    Thomas wrote:

    > so, this means if I decode the address during rising phi2, I can't really


    Better say: "register the decoding result at rising Phi2"

    > do anything synchronous, requiring the use of the decoded information, at
    > the same time, I have to keep all the operations for the falling edge
    > (right before hold time), is that right?


    Basically Yes. The first opportunity to evaluate the signals
    registered at the rising Phi2 is at the falling Phi2.
    (Btw.: That's the nature of the 6502 architecture. It is pipelined
    like a master-slave flip flop.)

    Note that a registered (synchronous) address decoding on the 6502
    bus is not necessarily required.

    If you need to do some clocked operations in between rising and falling
    clock edges, you should consider using a higher clock for your logic
    (say 2 times CPU-clock).

    Regards,
    Mario



    --
    ----------------------------------------------------------------------
    Digital Force / Mario Trams -chemnitz.de

    Chemnitz University of Technology http://www.tu-chemnitz.de/~mtr
    Dept. of Computer Science Tel.: (+49) 371 531 1660
    Chair of Computer Architecture Fax.: (+49) 371 531 1818
    ----------------------------------------------------------------------
    Mario Trams, Jul 6, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Neil Zanella
    Replies:
    2
    Views:
    10,095
  2. Jeff Rodriguez
    Replies:
    23
    Views:
    1,092
    David Schwartz
    Dec 9, 2003
  3. Paul Rubin
    Replies:
    8
    Views:
    262
    Steve Holden
    Sep 28, 2006
  4. Rickert
    Replies:
    0
    Views:
    644
    Rickert
    Oct 6, 2011
  5. Marc Heiler
    Replies:
    1
    Views:
    165
    Robert Klemme
    May 24, 2009
Loading...

Share This Page