diff --git a/cst311/lec/lec9.md b/cst311/lec/lec9.md index dff5354..96c38c8 100644 --- a/cst311/lec/lec9.md +++ b/cst311/lec/lec9.md @@ -23,6 +23,16 @@ We can also denote it with a bar over the expression we want to _not_. ![Figure-Not](../img/not.png) +### Big AND + +Behavior is the same as an `and` but instead of two inputs we can have many more inputs. +It will only ever return a 1 if all inputs are 1. + +### Big OR + +Again we are mimicing the behvior of the normal or gate but this time we can have multiple inputs as opposed to just two. +If only one of the many inputs is 1 then we return a 1 for the output of the Big OR. + ## Decoders Here we'll learn by doing @@ -32,11 +42,13 @@ Selector = 2 Bits Output = 4 Bits ``` As a challenge you can try using the combinational logic gates from above to try and tackle this yourself -s1 |s2 |o3 |o2 |o1 |o0 - 0 | 0 | 0 | 0 | 0 | 1 - 0 | 1 | 0 | 0 | 1 | 0 - 1 | 0 | 0 | 1 | 0 | 0 - 1 | 1 | 1 | 0 | 0 | 0 + +|s1 |s2 |o3 |o2 |o1 |o0 | +|---|---|---|---|---|---| +| 0 | 0 | 0 | 0 | 0 | 1 | +| 0 | 1 | 0 | 0 | 1 | 0 | +| 1 | 0 | 0 | 1 | 0 | 0 | +| 1 | 1 | 1 | 0 | 0 | 0 | ## Multiplexor @@ -50,15 +62,16 @@ It takes a signal as `2^n` inputs and out puts out `n` signals as output. Example: We have a selector(s0), two inputs[in0 & in1], and one output `out`. The selector will select an input and we will generate some output in `out`. -s0 | i0 | i1 | out -0 | 0 | 0 | 0 -0 | 0 | 1 | 1 -0 | 1 | 0 | 0 -0 | 1 | 1 | 1 -1 | 0 | 0 | 0 -1 | 0 | 1 | 0 -1 | 1 | 0 | 1 -1 | 1 | 1 | 1 +|s0 | i0 | i1 | out| +|---|---|---|---| +|0 | 0 | 0 | 0| +|0 | 0 | 1 | 1| +|0 | 1 | 0 | 0| +|0 | 1 | 1 | 1| +|1 | 0 | 0 | 0| +|1 | 0 | 1 | 0| +|1 | 1 | 0 | 1| +|1 | 1 | 1 | 1| This ultimately lets us pick data out of memory given some address.