4
\$\begingroup\$

Often, when looking at digital system signal plots over time there are these graphs with two parallel lines that often "swap" place. I am wondering what precisely they represent? I noticed they usually are used for buses, but for the rest I'm clueless. It's probably quite trivial.

This is an example of the graphs I mean, in this case from a discussion about how CPU's execute instructions:

I've tried googling, but I couldn't find an explanation.

\$\endgroup\$

3 Answers 3

1
\$\begingroup\$

The parallel lines indicate a multi-bit bus, and represent any possible combinations of low/high values. This bus could be two bits, or 64 bits, or whatever the design calls for. As shown here, the grey regions indicate that the data value is unknown or indeterminate. In this case, immediately after the positive clock transition, the address and data are unknown. Soon, after that, the address data becomes stable and known. Some time after that the data is known and can be read.

edit: As Peter says, the grey regions can also mean "don't care".

\$\endgroup\$
3
  • 4
    \$\begingroup\$ Your answer is not entirely right. The two lines do not necessarily denote multi-bit busses. The same plot may be made for a single line, such as MISO or MOSI in an SPI signal. The only significance is that the state is stable. \$\endgroup\$
    – Asmyldof
    Dec 28, 2016 at 1:01
  • \$\begingroup\$ In this case my answer is correct. But yes, a single bit signal can also be presented in this manner. \$\endgroup\$ Dec 28, 2016 at 6:00
  • \$\begingroup\$ I didn't say it was completely wrong. Just not entirely correct :-) --Edit: It's amazing how quickly such a small distinction can start leading a life of its own, so I thought I'd highlight it. \$\endgroup\$
    – Asmyldof
    Dec 28, 2016 at 15:48
5
\$\begingroup\$

Since most logic and microprocessor IC's use edge clocked timing, it's when the transitions from 0-1 and 1-0 occur that are important to timing. The high and low parallel lines simply tell you that a line may be high or low but not some indeterminate level such as tri-state). In your case shown, greyed out means not valid data/address (multiple signals), not greyed out means they will be 0 or 1 but the data is valid.
The crossovers graphically show the setup and hold timing in relation to clocking. You would read accurate setup and hold times from a data sheet of course.

For example in the image you show When the clock goes 0-1, the program memory address's are being setup after the greyed (invalid address on the lines) time period. Once the address is stable (non-greyed) the data lines represent (but can be 0 or 1) valid and stable data until the access time passes. Then the data bus will contain either 0 or 1 as appropriate for the memory address.

\$\endgroup\$
3
\$\begingroup\$

The two parallel lines indicate times when the data on the bus is stable, and the crossovers indicate when the data may change.

The shaded sections are times we don't know or care what value is on the bus.

\$\endgroup\$
4
  • \$\begingroup\$ You sure? Why would instruction code "fetch" not care what program memory data is on the bus? And shouldn't program memory address be stable at the beginning of a fetch cycle? I'd want to see the setup/hold data timings on the data sheet before guessing that "shaded" means "don't care". \$\endgroup\$
    – glen_geek
    Dec 28, 2016 at 1:01
  • \$\begingroup\$ @glen_geek It's not a guess, it's a convention. You can also see in the picture that the clock goes low to high, after which these signals become unknown or don't care (not just don't care!), as is logically expected, as execution happens at up-edge. The signals are latched into relevant sections and the busses are subject to execution related change. Thus grey. \$\endgroup\$
    – Asmyldof
    Dec 28, 2016 at 1:07
  • \$\begingroup\$ Ok, I recall seeing hatched "don't care" as well. I suppose shaded=hatched. I don't take chances and ensure that setup/hold timings on data sheet are well understood before proceeding with design. Belt + suspenders! \$\endgroup\$
    – glen_geek
    Dec 28, 2016 at 1:17
  • \$\begingroup\$ @glen_geek Might be that there once was a difference in hatched and shaded, I wouldn't know without serious research, but in my education and experience shaded always meant a collected set of "Not Important for this Argument", so to speak. \$\endgroup\$
    – Asmyldof
    Dec 28, 2016 at 15:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.