SPEAKER: So we built ourself an oscillator
using the op amp.
OK, this oscillator oscillates between minus VS and plus VS
at the output V0 as a function of time.
So the output of the op amp looks something like this, as
a function of time.
It goes from minus VS to plus VS. And OK, this is V0.
So as V0 sits there and oscillates by itself, it
produces this square wave that we can use for
a variety of purposes.
OK, one example use of this will be as a clock.
So what is a clock?
And why is it useful in digital systems?
OK, let's look at that next.
So interestingly, I just noticed the
page number down here.
So this is where you can get more information on clocks in
digital systems. But what is very curious is
this number, 555.
OK, this is a very curious number.
Completely coincidentally, this is the page in the book
in which you can read about clocks.
And completely coincidentally, this number has something very
interesting and historical to do with clocks.
OK, I encourage you go to the discussion forum and to figure
out what is it that 555 has to do with clocks, all right?
I'll let you worry about that.
OK, back to clocks in digital systems. So a clock is, think
of a clock as a square wave that's applied to digital
systems. And the clock can be useful for senders and
receivers to communicate effectively.
OK, as an example, suppose I have a sender and a receiver.
And the sender wants to send some values.
So let's say the sender really wants to send the sequence of
values, 1, 1, 0, as in the waveform shown here, OK?
Also notice that the waveform is a little funny, in the
sense that I have a 1 and 1.
I have a high part of the waveform out here with the 1
and 1 with the low part of the waveform showing 0, but then a
part of the waveform where the signal is a bit funky.
So for example, it could be that the output of the gate
that is producing the waveform, because of parasitic
capacitance and impedances, may have some ringing
associated with it.
OK, so something funky might be going on.
However, I want to communicate effectively.
So I would really like to see a transmission of 1, 1, 0.
How do I make it happen?
For example, the sender is sending 1, 1, 0.
But as a receiver, how on earth do I know whether the
signal that I just saw, is that a 1, 0?
Is it a 1, 1 0?
Or is it a 1, 1, 1, 1, 0?
I have no idea, because I just see a high followed by a low,
and I see some garbage in the middle, OK?
And because of the garbage, it's quite likely the receiver
is going to be thinking, huh?
What's that?
There's some funky stuff that's coming at me.
So the receiver can get really confused.
So here is one way of fixing the problem.
I can use a clock, OK?
Supposing I do the following.
OK, so the receiver is sitting there trying to figure out
when is the signal valid.
OK, remember the key word "when" is the
signal valid here?
Or is the signal valid here?
The receiver doesn't know when to go and look
at the signal, OK?
So when you think of the word, "when", think clock, OK?
So here's an idea.
Suppose the sender and receiver share this green
signal called a clock.
So this green signal, called a clock, is shared by the sender
and receiver.
And that establishes a common time base for both the
receiver and the sender, OK?
So it establishes a common time base.
It tells the receiver when to look at the signal, OK?
So as an example, it could tell the receiver, hey,
receiver, look at the signal whenever the clock is high.
OK, so as an example, it can tell the receiver, look at the
signal here.
I have another value for you here.
OK, it can say that, whenever the clock is high, look and
get a value at that point.
Similarly, from the sender's viewpoint, you can tell the
sender, sender, hey look, send a value to a receiver, but
make sure you send a value in such a way that the value is
valid throughout the clock being high.
If you take 6.004x and other such courses, you can learn
much more about these things.
And this course will be available in the future.
There are many, many ways of using a clock.
You can say the receiver can look at the signal when the
clock is high, for example.
That's the example I'm using here.
In other cases, with what is called edge-triggered logic,
you can tell the receiver, look at the signal during a
given clock edge, a rising edge or a falling edge.
But in our example, I'm simply going to say that the sender
needs to make sure that a valid signal is available to
the receiver whenever the clock is high.
So what does a receiver do?
So what a receiver does is that it transitions the output
in such a way that it knows the output is going to settle
down before the clock goes high.
So that, when the clock is high, the receiver can sample
it and the input is stable.
So notice here the receiver is looking at the output from the
sender whenever the clock is high.
Notice that the first time the clock is high,
it picks up a 1.
Then it picks up another 1.
Then it picks up a 0 out here, OK?
So it picks up a 0 at the point where the clock is high
for the third time because the receiver sees a 1, 1, 0.
And the receiver is pretty happy with that.
So what we have done here using the clock is another
kind of discretization which, unfortunately, we won't have a
lot of time to spend on in this course.
But it's another form of discretization.
It is discretizing time, rather than dealing with
continuous time, by using a clock, a broken
up time into quanta.
And in these discreet intervals of time, I can then
establish a common time base in which to transfer
information.
So as an example, I can transmit one bit of
information every clock cycle.
And in modern circuitry, I can often transmit many values in
a given clock cycle, but a clock fundamentally
establishes a common digital time base.
It's a common digital time base established between
various senders and receivers, various communication
entities, communicating entities within
the circuit, OK?
This is another simplification that makes systems a lot
easier to build, and it's called discretization of time.
Notice that discretization of time is one among another
major sequence of discretizations that we do in
systems to make it all work, OK?
Recall, in physics, we had the discrete mass or lumped mass
discipline where we lumped matter and got the point mass
simplification.
In the beginning of this course, we lumped matter and
came up with the Lumped Matter Discipline or LMD, OK?
And we came up with discrete resistors and inductors and
capacitors and so on.
So there, we discretized matter in order to get the
Lumped Matter Discipline.
Then, for the digital discipline, we discretized
value, and we got the digital abstraction.
OK?
So recall we discretized a lumped matter.
Then we discretized value.
And now we've talked about discretizing time, OK?
So this is a pretty cool sequence of things that we do
to make systems easy to design and build.