[CS61C FA20] Lecture 14.3 - Intro to Synchronous Digital Systems: Signals and Waveforms — Transcript
Full transcript
- 0:00and welcome back now let's learn about
- 0:03signals and waveforms
- 0:04how to think about how these values
- 0:06zeros and one might change over time
- 0:09oh my gosh time so let's start the
- 0:12beginning a clock is the heartbeat of
- 0:14the system
- 0:15our clock uh this particular signal
- 0:18is a beautiful if you've if you've seen
- 0:21um some of these terms before i hope
- 0:23you've seen these terms before
- 0:25you've got the idea of t which is the
- 0:27period
- 0:28which is the distance between a rising
- 0:30edge and the next rising edge that's
- 0:32important
- 0:34t and frequency are inversely related so
- 0:38frequency is the one over the period and
- 0:40period is one over the frequency okay
- 0:42and typically
- 0:43roughly these are in the the period is
- 0:46roughly one nanosecond
- 0:47and the frequency is roughly one
- 0:49gigahertz if the
- 0:50if the if the period goes
- 0:54to a third of a nanosecond that would
- 0:56mean the frequency is three gigahertz
- 0:58so think about that we've got voltage so
- 1:01this is our
- 1:02clock and it's going to vary between
- 1:04three volts and zero volts
- 1:05um and we're going to treat these as
- 1:07ones or zeros so so this is again
- 1:08abstractly thinking about these ideas
- 1:12signals are translated transferred over
- 1:16wires continuously and there's delays
- 1:18time takes time to go from here to there
- 1:20so we'll talk about that in a little bit
- 1:22we're going to treat them mostly as
- 1:24instantaneous because mostly we're not
- 1:26talking about a long transmission but as
- 1:28you
- 1:28actually get the distance between these
- 1:30signals to be great it ends up being um
- 1:32a real a real issue in fact grace mary
- 1:34hopper used to walk around with a piece
- 1:36of wire about this long and saying this
- 1:37is a nanosecond
- 1:38because it takes this long for a signal
- 1:40to start here and get
- 1:41to that distance if you work out the
- 1:42speed of light so
- 1:44that remember that um and also remember
- 1:46that a wire can only have one value at a
- 1:48time a single wire has one value at a
- 1:49time
- 1:50you have multiple wires optical things
- 1:52you can actually have multiples in a
- 1:53single optical channel you can have lots
- 1:54of signals but in a physical kind of
- 1:56copper wire
- 1:57you only have one signal at a time okay
- 2:00so here's an example of an outer circuit
- 2:03as we're going to start thinking about
- 2:04these block diagrams here's an adder
- 2:06look at this i've got n bits of b
- 2:11n bits of a and i have some number bits
- 2:14of this circuit now
- 2:15if i look at just let's look at b0 and
- 2:17b1
- 2:18there's some interesting things these
- 2:20things are going to change over time so
- 2:21this is voltage over time i'm looking
- 2:23here voltage
- 2:24as a function of time and i'm seeing
- 2:25that voltage you know here's my clock a
- 2:27nice very pretty clock nice square wave
- 2:29in the bottom
- 2:30but you're seeing there's some issues
- 2:32here this is not a perfect
- 2:33signal here this is not line up like
- 2:35here's my lineup it doesn't line up
- 2:37perfectly there's some issues here
- 2:38and it's also wiggling up here we're
- 2:40going to see that there's imperfections
- 2:41we're going to try to work around that
- 2:42with our signals as well so we saw that
- 2:45they're noisy
- 2:46they're not always perfectly flat and
- 2:49they don't line up
- 2:50there's a delay there's a delay in just
- 2:53the
- 2:53all the processing that has to be done
- 2:55in this circuit before the output
- 2:57um and maybe look at this this is delay
- 2:58on the input the delay of the input is
- 3:00not even coming in here who knows how
- 3:01long this
- 3:02this circuit delays and whether the
- 3:04output is even more more delayed if the
- 3:05output might even be more delayed
- 3:07how that is so we're going to have to
- 3:08deal with all those challenges between
- 3:10noise and delays
- 3:11this is real world folks this is a
- 3:13little harder so yes it's digital but
- 3:15there's some issues we should think
- 3:16about as we start to build our circuits
- 3:17together
- 3:18let's talk about some names so i have
- 3:21here's a nibble
- 3:22i've got here four parallel bits x0
- 3:25through x3
- 3:26okay and each of these were going to be
- 3:29nice for this
- 3:29picture with no delays each of these has
- 3:32a value when it's high
- 3:34we're going to call it a one when it's
- 3:36low we'll call it a zero
- 3:37so now you see this path this is kind of
- 3:39cool x0
- 3:40has different values hopefully
- 3:43synchronized with the clock
- 3:44one zero one one x one has
- 3:48zero one zero zero now here's the cool
- 3:51thing
- 3:51take your head and turn it sideways and
- 3:54what you see is i turn it sideways now
- 3:56i'm looking sideways at this number here
- 3:57we go
- 3:58now that's the higher order bit that's
- 4:00the msb
- 4:02or most significant bit and this is the
- 4:05lsb or least significant bit
- 4:07if you draw like that here's the lsb
- 4:10and here's the msb if you draw like that
- 4:13look
- 4:14i'm seeing 0 1 0 1. that's a 5.
- 4:18a 1 1 0 6 1 0 0 0
- 4:218 i've been i've memorized the whole
- 4:23i'll help you memorize that by the way
- 4:24zero zero zero one one and zero one one
- 4:26one seven so
- 4:28i can just think about this as
- 4:31a big capital x like a vector x
- 4:34which is really a vector and in some
- 4:36sense and capturing i draw it like this
- 4:38i don't like it this looks like i look
- 4:40like a chiclet i draw a little
- 4:42chick that's saying this has the value
- 4:43five and the value six and that saves me
- 4:45for him to draw
- 4:46four lines over time i just draw the
- 4:48value x and its number over time
- 4:50which really encodes the fact that
- 4:52they're really four bits doing the work
- 4:53but i'm going to draw it like this x to
- 4:55make it really very convenient okay so
- 4:57think about that
- 4:58to group this with that part of turning
- 4:59this is to group my four bits into
- 5:02one kind of four bit wide vector
- 5:06so now now i can think about that now
- 5:08here's a here we go an adder
- 5:10this is called a nibble adder look at
- 5:13that
- 5:14four bits of a come in four bits of b
- 5:16come in and a plus b
- 5:17is represented on the output c sometimes
- 5:20four bits can't be enough to do that
- 5:22that's when overflow would happen but
- 5:23let's for now let's pretend that
- 5:24overflow isn't happening
- 5:26and a and b are gonna be small enough
- 5:27there's no overflow so that's what we
- 5:28got this is fine
- 5:29so that's pretty cool so here's my a
- 5:32here's my a vector here's my b
- 5:34vector okay both nibbles and again this
- 5:36we just saw this last
- 5:38last slide a as we thought of as this
- 5:40four signals
- 5:41a zero small lower case a zero through a
- 5:43three
- 5:44and now i've got two and three and two
- 5:46three should add to five but what i'm
- 5:48noticing is there's something called
- 5:49a delay now i'm finally realizing that
- 5:51the fact that you know what this is real
- 5:52world there are delays it takes the time
- 5:54to do
- 5:54takes the time for some magical genie
- 5:57inside to do the work
- 5:58we're going to see what the magical
- 5:59genie is when we build it ourselves but
- 6:00did you do the work okay two plus three
- 6:02five okay it takes me some time take the
- 6:03genie some time to do that
- 6:04so there's going to be a delay between
- 6:06when
- 6:07for example here's a new three here's a
- 6:09new three here's a new 10.
- 6:12when does the output c say 13 well
- 6:15it still says 5 even though right a
- 6:17moment after this time
- 6:19i knew at that time that it was three
- 6:21and ten but it took some time there and
- 6:22we're going to call this the time
- 6:24between when
- 6:25the clock goes up really usually when
- 6:27the clock goes up till
- 6:28or when the inputs change i'll say
- 6:30inputs change until i see the output
- 6:33the correct value on the output we're
- 6:35going to call that
- 6:36the adder propagation delay and if this
- 6:38is an adder we call it out of
- 6:39propagation
- 6:40if this is a and it would call it the
- 6:42and propagation lays whatever
- 6:44the name of the block is propagation
- 6:46delay that says there's a delay between
- 6:48when the inputs are stable at the new
- 6:49values until when i can confidently say
- 6:51that the output has the correct value
- 6:53for whatever it's trying to calculate
- 6:55okay so new word here adder propagation
- 6:58delay
- 6:59pretty cool okay so let's keep playing
- 7:02with this
- 7:03as i start to have more and more complex
- 7:05signals
- 7:06systems i'm going to have a ton of
- 7:08signals and boy does it help to
- 7:10actually have a tool to look and see
- 7:13what's going high when what's going on
- 7:15oh look at this
- 7:16this they're never supposed to be this
- 7:19both one but look right for that little
- 7:20instant they're both one
- 7:21that can be a problem for myself for my
- 7:23system whatever it is so as i'm building
- 7:24these systems
- 7:25you need to have a piece of tool a
- 7:27debugger that will let you work with
- 7:30uh the signals in parallel see all the
- 7:31signals in parallel and be able to play
- 7:33with them in fact notice this
- 7:34this one look at this here they're
- 7:36thinking about this as values not as
- 7:38this here's the here's the
- 7:40here's the the vector sometimes you want
- 7:43to see the actual bits
- 7:44but you also want to see the vector so
- 7:45these these debuggers often let you
- 7:48cluster them or not cluster it's pretty
- 7:50cool okay that's kind of neat
- 7:53so big picture there are two kinds of
- 7:55circuits we're going to look at
- 7:56in the series of lectures and in really
- 7:58computer engineering we can categorize
- 7:59them to two ways
- 8:00kind number one is combinational logic
- 8:03circuits
- 8:03these if you took cs0 cs10
- 8:07these are just like pure functions just
- 8:10like pure functions this is also from
- 8:1161a
- 8:12it's a function that has no side effects
- 8:14no state it's memoryless
- 8:15the output is only a function of the
- 8:16input combinational logic circuits we
- 8:18love them very easy
- 8:20here's a set of inputs and here's an
- 8:21output there might be a delay in my
- 8:23combinational logic but
- 8:24there's no feedback there's no state
- 8:26it's just output is only a function of
- 8:28the inputs i'm ready to go
- 8:30and our adder was like that here's some
- 8:32bits and here's the output it's always
- 8:33going to be the same output for the same
- 8:35input that's the other critical piece of
- 8:36it
- 8:37or we also care about state elements and
- 8:40state elements are ones that
- 8:41have state they have memory boy if i
- 8:43didn't have memory my computer won't be
- 8:45able to store the data that i've created
- 8:46so
- 8:47we need state elements to store our data
- 8:49registers
- 8:50caches caches memory disk all these
- 8:52things have state they remember
- 8:54what you put them there and i have
- 8:56combination of logic to do some
- 8:57calculations
- 8:58and so we're going to have two of those
- 8:59kinds of circuits and
- 9:01we need both of them in what we're going
- 9:02to be building okay so combinational
- 9:04logic circuits are cl
- 9:05and state elements here's a circuit with
- 9:08state
- 9:09and i haven't told you how it works but
- 9:10i'm going to talk about what it is
- 9:12this is called a register
- 9:16you've seen a register when we were
- 9:16talking about risk five but here is an
- 9:18example register is
- 9:19it has n bits of input and bits of
- 9:23output
- 9:23and it has a loader and this little
- 9:26circuit says that something magical
- 9:27happens when
- 9:28that circuit goes high so when that goes
- 9:31high
- 9:31here's what the register does i'm a
- 9:33register i'm sitting here i've got my
- 9:35outputs it's all
- 9:36my output is whatever i've been stored
- 9:38with i have some value stored here
- 9:39here's my output
- 9:40okay here we go load goes high
- 9:44i turn around i grab the value
- 9:47of input and i hold it i remember it and
- 9:50now i'm loading it i'm loading this into
- 9:52myself
- 9:53and now i ignore it once that goes high
- 9:55i turn on quickly grab it and then turn
- 9:56around
- 9:57and i hold that that's what i hold you
- 9:59gave me five okay here's
- 10:00five holding five oh now it's changing
- 10:03to 10 20. i don't care i don't care what
- 10:04my input says because
- 10:06because load is still low ready rising
- 10:08edge of load now it's a 7
- 10:10turn around grab the 7 and 7.
- 10:13that's it i'm holding 7. now it's
- 10:15changing load is still low
- 10:16input is changing i don't care i'm
- 10:18holding it stable state
- 10:20i'm holding the seven that's the idea
- 10:23what often we do is we clock these
- 10:26devices
- 10:27so now rather than load going up every
- 10:29once in a while
- 10:30i'm going to go up every single clock
- 10:32cycle i'm here i got my seven and then
- 10:35clock goes up turn around grab
- 10:36whatever's there
- 10:38now it's a 12. here's my i should have
- 10:41said 12.
- 10:42here's my 2. i don't know what 12 feet
- 10:442.
- 10:46okay clock goes up again whatever it
- 10:48happens to be
- 10:49so there's a rhythmic nature to it okay
- 10:51and so normally we
- 10:53um normally we're going to clock these
- 10:55devices and having them clocked is
- 10:57is great because now there's a rhythm
- 10:59and now data's kind of moving in chunks
- 11:01like an assembly line
- 11:04they move to the next stage everything
- 11:06just kind of moves to the right and data
- 11:07so that's going to be great as we build
- 11:09circuits we have our data kind of
- 11:11chunk to the right that's exactly what
- 11:12we'll use this register that's going to
- 11:14be clocked so we typically clock our
- 11:16registers not always
- 11:17but we often we often do
- 11:20in conclusion clocks are the heartbeat
- 11:23the pulse of our circuits
- 11:25voltages are analog voltages are who
- 11:28knows what they are but i'm going to
- 11:29quantize them
- 11:30it's zero to three volts next year it's
- 11:31zero and 2.5 volts whatever they build
- 11:33but i'm going to quantize them to be a
- 11:35zero and one and think of them in a kind
- 11:36of
- 11:36soft abstract abstract way as a zero to
- 11:39one from now on
- 11:40circuit delays are a fact of life we saw
- 11:42that everything there's real world
- 11:44natures
- 11:45the there's not just delays but the
- 11:47values are often fuzzy
- 11:49and one of the things we're going to do
- 11:50from our from our circuits is if the
- 11:51value came in fuzzy like let's say it's
- 11:53a little bit below one it's still a one
- 11:54but it's like
- 11:54not three volts it's 2.5 we're gonna
- 11:57make sure that
- 11:58that circuit cleans it up if every
- 12:00circuit cleans it up
- 12:01so that input was coming in was a little
- 12:03below two below three
- 12:05output is gonna be solid three and the
- 12:06only way that they're gonna have noise
- 12:09the only reason it would not be three is
- 12:10then noise or maybe maybe there's some
- 12:12resistance on the line so i had to go
- 12:13from here to here and it started a three
- 12:15and it was lower by the time it got
- 12:16there so the real world is going to
- 12:18influence this by adding noise to our
- 12:20system or having
- 12:21you know having a distance with
- 12:22resistance across the line but every one
- 12:24of our core blocks is going to try to
- 12:26clean the circuit up if it came off a
- 12:27little bit higher than zero
- 12:29we're going to clamp it down to zero if
- 12:30it came in a little bit lower than the
- 12:32three a little above three we're gonna
- 12:33try to make a clamp but at three so our
- 12:35job of each of these blocks is going to
- 12:36be clean the signal up
- 12:37and then who knows in the in the trans
- 12:39in the transmission of that data to the
- 12:41next block
- 12:42maybe your voltage got up maybe some
- 12:43noise from the connection guy maybe
- 12:44there's a distance of resistance
- 12:46whatever it is
- 12:47that might be not perfect zero and one
- 12:50coming in but we're going to try to
- 12:50clean up to be a zero and one coming out
- 12:52that's the idea of our blocks
- 12:54and in summary there's two kinds of
- 12:55circuits combinational logic or cl
- 12:57and state circuits like registers we're
- 13:00going to learn more about those and even
- 13:01how to build a register in the next
- 13:02series of lectures we'll see you there
About this transcript
This page contains the full transcript of [CS61C FA20] Lecture 14.3 - Intro to Synchronous Digital Systems: Signals and Waveforms by CS 61C Departmental, generated from the public captions YouTube serves with the video. The transcript has 2,782 words across 440 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.