So, welcome to this lecture on VHDL and the course digital system design with PLDs and FPGAs. In the last lecture we have seen the concurrent statement when else and the equivalent sequential statement if then else. So, let us run through the slide before we come to the today's part today we will look at the case when sequential statement and the loops both concurrent and the sequential loop concurrent is called generate and the sequential one is called loop you know the normal for loop. So, let us run through the slide before we get to today's lecture. So, in the last lecture the first part was the when else the syntax is that you have an output signal for you know you have an expression in terms of inputs when condition some condition again in terms of input else, else means if this condition is not met another expression and some condition happens and so on. So, this shows a priority and when you come here it is not of condition 1 and condition 2. When you go to the next step it is not of condition 1, not of condition 2 and condition 3 and so on. So, it builds up at the end there is an else which captures you know the not of everything previously specified and the conditions are you know general in the sense that in the condition 1 could be a equal to b then d greater than 3 the expression itself can have the inputs some expression of inputs obviously it accommodates priority. And as I said from the description one might think it is not a kind of truth table but it is truth table in a very abstract sense and this is how the equation builds up which we have seen. And we have seen that when you write such a statement like a when p greater than q else b when r equal to 2 else c essentially are specifying a big truth table we discussed it is almost 128 rows of the truth table. So, wherever like you have a p, q, r, a, b, c as I said a, b, c is not shown a separate column but it has to be then whenever p is greater than q then you have a wherever p is less than or equal to q and r is equal to 2 then you have b else everywhere else you have c. So, that is what it this convey actually the simulator as I said whenever there is an event on a, b, c, p, q, r this is computed synthesis tool is not going to make a truth table as such it is going to infer the operator greater equal. And that kind of circuit will choose a MUX where a, b, c is let in ok we will see that later how that is kind of synthesized but the synthesis tool is going to infer operators and replace with the library codes and things like that and that is what is written here. And we have seen an example code of priority I have not written the library, entity, the architecture body and all that I suppose you can manage that you can do that because a, b, c in the port you know the a, b, c come as input as standard logic and prior come as a output which is standard logic 1 down to 0 and all that I suggest you write this and simulate in a tool if you know the tool already otherwise as we proceed I will show a demonstration of some tools by which you can try this. And we also have seen an example of a transceiver with venals, so it uses the venals construct and it also uses the, it shows the usage of in out and this array assignment and so on. And we looked at if then else which is equivalent venals, so in the simplest form it has it is like this you know you have if condition 1 then y gets a else y gets b. So the equation is that a and condition 1 or b and not of condition 1. And this if then can be used only in sequential bodies like the processors functions and procedure it cannot be used in the architecture statement region where only the concurrent statement works and the most generic form is this you can specify as many conditions you want and you end with an else which captures all the not of all the conditions that is how the truth table is completed ok. So this goes like this you know if condition 1 then y gets a else if condition 2 y gets b and so on. So the equation is the y is a and condition 1 as I said condition 1 itself is composed of some input signal when I say a and condition 1 it is symbolic definitely that as to if you write a truth table and work out the product term it expands into multiple min terms or product terms or or of product terms and so on. So that should be kept in mind so this is still not a kind of Boolean statement is little abstract. So y is a and condition 1 or b and condition 2 and not of condition 1 or c and condition 3 and not of condition 1 and not of condition 2 or d and not of condition 3 and not of condition 2 and not of condition 1 that is what is shown here. So as I said like a priority encoder picture like the AND gate with the bubbles increases the same thing happens here the structure is same here also there will be an AND gate similar to that where the multiple conditions kind of you know gets inverted or complimented and control that part. And this is equivalent to NL's but there is a major difference that you can specify multiple outputs you can implement nesting and we have seen an example where there are 3 inputs a, b, c and you have 2 outputs y and z then you could write like if condition 1 then y gets a it gets something else else if condition 2 y gets you know you can specify y and z for all these conditions. But in real life it may happen that it is not so neat you know the z may not you cannot assign z for all these conditions may be a subset of conditions only work for z and so on. So in such a case you can use the nesting you know you say if condition 1 then you can write the z straight away here that condition 1 is applicable to z. But condition like y has a restricted condition then that can be specified you know that can be split and specified in condition 2. So if condition 2 then y gets a else if y gets something else. So as far as y is concerned the equation becomes y is a and condition 2 and condition 1 and or say if it is y is equal to b you say b and not of condition 2 and condition 1. So like that it goes so you can work it out. Then we looked at something which is not fully specified suppose in VHDL if you write like this which is quite valid there is nothing kind of no error with this syntax. If condition 1 then y gets a and if that means we are not specifying the else condition then it means as far as VHDL is concerned VHDL treat this statement as like this you say if condition 1 then y gets a else y ok. Now mind you when you write the real code do not write like this ok write like this ok that is what is the standard.  And this as I said is a latch where the if this condition is not met the output is fed back you know you have the output going back as a input you know that is what it achieves this kind of code. So it is called implied memory or inferred latch implied memory because if this code implies memory through feedback or the synthesis tool will infer a latch from this code that is why it is called inferred latch. And the pictorially it is shown here at 2 to 1 marks the select line is controlled by the condition 1 so if it is select line is 1 then a goes to the output if select line is 0 then it comes back that is how the latch is implemented. You could have concurrent statement which kind of with the same effect if you miss the else part so with select you can say with enable select y gets a when 1 and you are not specifying anything else you are not specifying you know b when 0 or something like that or it means y gets a when 1 and y when 0 that is the meaning of it. And similarly you can say with enable selects y gets a when 1 you can say unaffected when others okay for in concurrent statement when you say unaffected it remembers the previous value as regard to the when else this is a statement which achieves a latch y gets a when enable is 1 and you do not specify else or if you specify else you say unaffected like the unaffected in the concurrent statement in sequential you have a null. So it again means that here you could say if condition 1 then y gets a else y get null you get the same kind of inferred latch by the synthesis tool. So implied latch is useful when we come to the maybe this end of this class or the next lecture we will handle the sequential circuit or the flip flops and registers and so on. There this is quite useful because this kind of coding is used to specify the behaviour of memory you know the behaviour of latches and flip flops and registers specifically the memory part of it. But the problem with this kind of code is that unintentional latches can happen that happens when there is a lot of nested loops and if something is missing particularly if there is not symmetric it is very difficult to work out. And as I said this can you know become an unintended kind of latch but the trouble with that is that and it is one of the most one of the common errors I see people make in VHDL but the important thing to remember is that if you make that error to debug is difficult because testing for all inputs want to expose it. Because for a particular condition if it is a latch you to expose it you have to have the previous condition previous tested condition which should have an opposite output then only that will be exposed here but if the previous condition as expected output as now then there is no way to detect this error. So this should be kept in mind and if the designer has kind of made a mistake he or so she will not be aware of it and there is no question of working out a condition that you have not aware of does not arise and this can waste a lot of time. So I suggest be very careful when you write multiple output when you do copy paste when you do nested kind of if nested case and so on you have to be careful okay not that you should not do copy paste but there is a danger okay. So let us come to the next sequential statement which is case when and this is the syntax please have a look at it. So this is identical to the with select concurrent statement only the syntax is different. So you have case some input signal is now you say when value 1 so you can write statements here okay sequential statements here when value 2 assignment when value last value assignment when others you write assignment. So these values are the mutually exclusive values of the select signal so it is exactly like you know with select and you are specifying the truth table and the statement can be is normally the output assignment it can be numerical value can be expression where the input is there okay. So it is exactly like when else but as in if then you know comparison with the when else sorry this is my mistake this is apologise this is equivalent to the with select not when else because that is where we you know there is no priority and we specify the truth table. So this is equivalent with select so like the comparison between if then else and when else the same thing applies here, here you can specify multiple output that means in the statement part you can have x get something y get something z get something and all that and you can do the nesting you can nest a case within the case that means you could say case select signal is when value 1 under that maybe you might say case some other signal is then you know you could make nesting or you could say when value 1 if some condition. So you have the freedom you mix case and if and that is one of the kind of useful structure like you have a you know the outer level case and for each value you have you know the if statements which are very useful structure we will see that when we go ahead maybe we will see an example of the case when now once again I show only the real code you could you know write all the other parts like entity, architecture, body, library and all that and the signal declaration all that should be done properly. So here I am writing two outputs you know the x and y using the case so the syntax is case select select is another input is when value 1 when the select is equal to value 1 x get a y gets b then you say when value 2 okay now I should have said when others because I need to specify all the conditions so here instead of value 2 it should be when others okay which should capture the value 2 also okay so but assume that there is a when others at the end so that everything goes well with this kind of code. So when others you can imagine there is one when others here so when value 2 x gets c y gets d. So if you look at the equation like with select you have x is a and decode of value 1 or a and decode of value 1 means you know you have so the select line is 2 bits and if it is 0 0 then it is s1 bar and s0 bar and so that is what I mean is or c and decode of value 2 now that is it. Similarly you can you know y is b and decode of value 1 or d and decode of value 2 that is what is written here. So that is how the equation or the circuit is kind of you know inferred and even in this case if you have a kind of case statement there are multiple choices okay and if you miss something in one place then can create an implied large it is not only if then everywhere whether it is congruent statement or sequential statement implied large can happen you should be careful. Once again as I said when the structure is complex then you have to be more careful okay. You could as I said nest the case when with the case when or if then it can be the case when within if or if within case when and so on. So I am showing an useful example case select is when value 1 if condition 2 then y gets a else you know you have else if which goes on. So if you look at this part only then the equation comes y is a and condition 2 or the decode of select is equal to value 1. Then you say sorry y is a and condition 2 and decode of select is value 1 or if there is a y equal to b then if it is else then y equal to b not of condition 1 and decode of select is equal to value 1 and so on it goes. So you can make out you know you can easily work out the equations and the circuit from the structure because by now you should be thorough with what I am saying. And let us see an example because you know the width select so it is identical. So let us look at this case of a 1 to 4 d multiplexer and each input and output all are 4 bits ok it could be any number of bits and since you have 4 selection 4 outputs you have 2 bits select line you know that is what is s is 2 bits y is 4 bits a, b, c, d are 4 bits. So that is a d multiplexer so let us look at the code so this is the library declaration the package and this is the entity we call it is dmax 1 to 4, 1 t4 is then it is a port the y is in standard logic vector 3 down to 0 because 4 bit for 4 outputs you have 2 select lines. So s is input again standard logic vector 1 down to 0 and a, b, c, d are output each of which is standard logic vector 3 down to 0. So that completes the entity in the architecture you give a name say some name is given of this entity then you we do not have anything to declare because very simple input output 2 inputs 4 outputs that is all. So you say begin now we are going to write the case statement for this and you know that remember the case can be used only in sequential body so we are going to write a process and within which we are going to write the case ok. Now the next question is that what should be in the sensitivity list ok. So we said that when you write when you implement something with the process you have to write necessarily the input in the sensitivity list. So because any change in the input should trigger a computation as far as the simulator is concerned so we write s and y in the sensitivity list and we have 4 outputs so when we write a case statement for each choice we have to specify all the outputs you know a, b, c, d has to be assigned for each value of you know the s, 0, 0, 0, 1, 1, 0 and 1, 1. So that is what we are going to do so that shows the process sensitivity list has 2 inputs s, y because any change in any of the simulator should you know compute and you say begin and you say case sc is the input select input is say when 0, 0, when it is 0 you know that a, y will go to a, when it is 1, y goes to b, when it is 2, y goes to c, 3, y goes to b. So that is what is written here when 0, 0, a gets y but all other thing has to be specified otherwise there will be latches. So we specify b as 0, c as 0, d is 0, when 0, 1 we assign b, y rest all is 0, when 1, 0 c gets y rest all is 0, when 1, 1 d gets y rest all is 0, when others everything is 0 really for synthesis it does not matter but for simulator if some other condition occurs by mistake then this comes up and as I said that is easy to debug. So this is the code for the demultiplexer, 1 to 4 demultiplexer using the case statement. Now the question is that here you are forced to write all the outputs in all the choices of this S value. Now the question is can we save on this because if there are too many outputs then that is going to be a problem and you know if something is missed then you can create implied latches. So is there a way out that is what we are going to see and also as I said there is no need to write when others separately you could combine with one one. So here you could write when others and you can avoid this kind of statement it does not matter. So let us see little more concise version of it. Here you see that the same process with S and Y in the sensitivity list and with say begin at the beginning before the case A, B, C, D is made 0 okay. Now in the case statement you say when 0, 0 A is Y okay and we are not specifying B, C, D because B, C, D is 0 here okay. Similarly when 0, 1 B gets Y Rust all is anyway specified 0 because when the simulator computes it goes you know that in a process statements are executed from the top to bottom once you know only once. So this works because you know if there is an event on S that means if the select line changes the simulator starts computing and initially A, B, C, D is assigned because say simulation time is 100 nanosecond, A, B, C, D is assigned kind of all 0s and suppose S is 0, 0 then A gets Y and now since it is at the same simulation time we had an assignment under plus delta A as 0 but that will be replaced by this A gets Y. So it works properly and mind you all this is we are assuming that this is for the simulator okay. This all this game of delta cycle everything is for simulator but for synthesis tool definitely it looks at this old statement. So it looks at the case statement and understand that it is a kind of what structure comes out of it and you know it is basically a demultiplexer because depending on the select line the output various different output get the same input. So that is inferred as a demultiplexer and also it has to take this initialization part of it okay. So this works perfectly fine but you should not take liberty with the synthesis many a times it is dangerous to assume something about delta cycle and write all kinds of code and expect that it will happen. This is a very kind of clear case that it works but sometime in a complex case if you assume some delta cycle initialization things can go wrong. So you have to be very careful with the coding for synthesis tool because it is a perfectly okay for simulation but for synthesis you have to keep these things in mind. So we have come to like we have completed the sequential statement major you know construct the last one we have seen was a case when identical to which select but it supports multiple output it supports nesting and if any output is missing it will create implied latch and now we have seen an example of case when with 1 to 4 demultiplexer okay. So what is remaining is the loops the concurrent statement and the sequential statement. So let us look at the loop part of the VHDL. So let us move on to the slide. So there are two loops one is concurrent which say it is like it is called generate and the sequential which is called loop itself. So the syntax will be for some indexing generate and for sequential again for something indexing like i is equal to 0 to something loop okay. And generate can work with equation it can work with component instantiation that means you can write an equation Boolean equation and you can put it in loop then you will get kind of repeated pattern of what is written of course you have to write it properly. So if you have a regular modular structure interconnected in a decent you know normal symmetric way you can use the generate to you know very concisely express that kind of structure very efficiently. Similarly you can even for component instantiation when blocks are interconnected in a symmetrical way in a regular way you could use the generate loop to come out with this structure. So let us move on let us take an example I am taking an example of a ripple adder. So you know that ripple adder is composed of full adder. So we are going to work out a kind of 8 bit ripple adder. So you have the ripple adder is made of full adder. So the full adder has two part the sum generation and the carry generation. If you remember the sum equation is A, X or B, X or C okay that is a sum equation. And carry is one when more than two or more inputs are high okay active then the carry is one. So it is nothing but A, B or BC or AC that is what is shown here. So now we take this as a module where the input is A, B and C in carry in and output are sum and carry out. Now if you write like you have a one full adder here with A0, B0 and carry 0 as input then you get some 0 as output. The output carry output is now the output out of the first stage to the input to the second stage it is called carry one. And the next stage you have A1, B1 as input the real inputs the carry from the previous stage carry 1 is input then it generates some 1 and carry 2 which is used in the next stage. And you go all the way up to the sum 7 and carry 8 sometime this is called carry out okay. So let us see how we can write and generate kind of loop for this. And you say the syntax is for i in 0 to 7 generate i is an indexing variable which is used temporarily for you know to expanding this. So for i in 0 to 7 you could even say 7 down to 0 it does not matter only thing is that indexing start from 7. So it should work normally it does not matter whether you write 0 to 7 or 7 down to 0. So you look at it so if the index is 0 then sum of 0 is nothing but A of 0, XOR, B of 0, XOR carry 0. So that is what is shown here sum 0 is A0, B0 and carry 0. And you say carry i plus 1 that mean carry 0 plus 1 carry 1 is nothing but A0 and B0, AB0, AC you know A0 and carry 0 and B0 and carry 0 that is the meaning of it. Now when we go to the next iteration when the index become 1 then you say you get the sum 1 as A1, B1, carry 1 XOR of that when you come to the carry 2 output you see it is composed of A1, B1 and the carry 1 which comes from the previous output previous stage is output. So that is how this is you know this happens. So automatically the carry 1 goes the output of the first stage goes as a input to the second stage the output of the carry output of the second stage goes as input to the second third stage and so on ok. So that is what is shown here. Now you could do this by writing component also that means that you write a full order you know the component by writing the library entity and architecture. In the architecture statement you just write one you know one full order not 8 of them like this one full order. So which say sum is nothing but AX or BX or C in and C out is nothing but AB, BC, AC like that you can write. Then you write a top level component which is composed of interconnection of all these you know you have to show the net list which we have seen. Then and that can be worked out by this kind of generate loop. So we have a full order with input carry AB output is sum and the carry out. So we write the full order port map 0 to 7 generate carry I AI BI these are input sum I and carry I plus 1 as output. So exactly same thing will happen you get A0, B0 carry 0 as input sum 0, the output and you see the carry 1 output is used in the next stage when as an input. So it works perfectly. So you could write generate loops either with the equation or with the component instantiation both works perfectly. Once again for a small example like a ripple adder you do not do a component instantiation it is enough if you write like this. You can write structural coding like this in a complex case. So just for completion sake you know clarifying I have written this component instantiation using the generate loop that is what is shown here. You could in principle have the loops conditionally that means you can here we are it is a regular structure you know the 8 full order modules are interconnected using this. But it may happen that thing is not very regular you know something happens from 0 to 5 something will happen for 6 and 7 and so on. So in such cases you could write some conditional generate you say give a label and you say if condition or some expression of the condition. Then you say generate and you write various statement you write n generate that means unless this condition is not met this will not be generated. So this can be used to like generate some kind of asymmetrical regular structure because you know where things go kind of does not fit in. So you specify that condition then that either do something else you can say if condition one then generate you know then only conditionally that will be generated. Similarly when we come to the loop for the sequential loop the syntax is like this for i in some range loop then write some statement n loop ok. So this is the kind of for loop in VHDL look at the code I have written I have written if reset is 1 then for i in 0 to 7 loop fifo i is other 0 n loop you know it continues ok maybe else is there. So many times people say the loops for loops are not synthesizable once again this is a kind of very general statement which is not true many a times this code is synthesizable you know it only say that there is a reset input when it is high all the fifos are reset ok. Now it is very simple you have flip flops within the fifo you tie together all the reset and you connect it to the reset input then it works perfectly fine. So this is synthesizable but when somebody say the loop is not synthesizable once again as in the case of variable it means that you take a algorithm which is specified using a for loop straight away translated into VHDL then if you give it to a synthesis tool you may not get you know a sensible circuit is what is the meaning when somebody say the for loops are not synthesizable many a times people say this as a kind of just as a kind of thumb rule or what they have heard from somebody else without much thinking. So you should not get kind of worried by such very sweeping general statements ok. So there is a kind of conditional loop which say that say you have a loop label then you say the syntax is while expression loop and loop that means while something is true do this loop again this is useful in generating some structures where which is not very symmetric you can say while i is greater than 2 then do something ok. So very specific ok else you know the other things can be specified before and one other the while loop usage is this one in test pages you say while not n file, n file is a kind of procedure and the argument is a vector file that means that it say whether we have reached the end of the file. So which say while not n file the vector file then do the loop ok normally you have test vectors written in a file line by line this say if the end of the file is not reached then you do loop and you do the test bench you know. So this is another useful thing for the while loop though you can use it for you know with the normal loops sequential loops this while you know conditional loop you can use that and like in C language you can have some control over the loop by exit and next you know the exit if you write somewhere you have a big loop and you write exit it means that it will just come to that point and will come out ok. A kind of blanket exit is hardly useful because you have a loop which goes from top to bottom and if you are putting exit right in the middle the remaining part is not anyway computed. So just writing exit may not be a big idea may not be useful you could say exit loop level whichever kind of here if you say exit somewhere here then you say exit tb loop so that it exit because that is useful when you have nested loops and you want to exit the whole loops you know the main loop you want to exit then you can give the proper level then it will exit otherwise if there are nested loop it could confuse whether the immediate loop or the outer loop need to be exited. Another useful thing is that you can say exit loop level when some condition is met this is may be good to kind of generate kind of irregular structures when you have a loop you say exit loop level when a particular condition happens ok and that can be rewritten in this form also like you say if condition then exit end if. So wherever you have written exit you know loop level when condition 1 you can say if condition 1 then exit end if exit loop level if you want write you can write the next is again that next is that you skip to the next index when you are looping somewhere in the middle if you say next then at that point it does not continue with the rest of the loop it just skip that index at that point and goes back to the beginning and start from the top ok. So that also is useful but a blanket unqualified next may not be of great use so you can say exit next loop level whenever there is nesting you can clearly specify which loop you are you know exiting or you can say next loop level when some condition is met again useful. So this can be rewritten or rephrased as if condition same thing when instead of when condition if condition then do the next that means then you skip it. So that shows the loop control exit and the next which can be useful but then you have to think whether it makes sense as far as the circuit is concerned if you do not think about the hardware and you keep write some blanket statement the proper circuit you may not get that should be kept in mind. So you should not with simulation it is ok with synthesis you need to be careful and if you can think of a very simple way of synthesizing the circuit then the tool might do that but if you yourself not sure what kind of circuit this will you know generate or this functionality can be brought in there is a less chance that the synthesis tool will do some magic and give you a circuit with the behavior that you have written in the VHDL using the exit or next and so on ok that should be kept in mind. So that completes the statement so the last part was the loops generate loops which can be used for equation and component instantiation and we have seen an example of a ripple order which is composed of full order and we have shown it two ways one way is using the equation and one way is using the component instantiation. Now as I said for a simple case like this component instantiation is not very attractive but definitely the equations looks better not to discourage you if you want to write component instantiation you can write. Then we have seen the loop control the exit and the next and we have seen basically the four loops the sequential loops we had this loop is synthesizable. So that is what we have seen in the last part of the lecture. So let us so like we have come as far as the combinational circuit is concerned we have kind of completed the concurrent and sequential statement. You could start writing VHDL code for various combinational circuit you know you can I suggest you try write simple things like multiplexers, demultiplexer and now when you are adders when you like say I will give some 2, 3 examples so you write in multiplexer demultiplexer then you write a adder then you write a priority encoder. So for multiplexer and demultiplexer use when else and case when for priority encoder use if then and when else and for adder use the component instantiation and the equations you use generate loop and so on. So this can be practiced so that you get practice in modeling the combinational circuit. So let us look at the sequential circuit or the flip flops and registers how this can be modeled in VHDL or coded in VHDL which will work for synthesis and simulation and so on. So let us come to take the simplest example which is the D flip flop. So first thing to note that you know that within a D flip flop there are 2 latches master slave latch and there are different ways of implementing it. One popular way of implementing is it is using 2 latches one is a master one is a slave if time permits we can have a look at that structure later. But in VHDL we are not going to write the flip flop in terms of the circuit that implements the flip flop. That means we are not going to write a structural code where you know the using the gates what is inside you know that is not on what we are going to say it in VHDL is that somehow the behavior of the edge trigger D flip flop is captured in a meaningful VHDL statement that is what how it is modeled. And if you look at the behavior of the D edge trigger D flip flop you see that there is a clock and on the active edge let us take it as a positive edge trigger because there is no bubble here. So upon the positive edge whatever is at the input is transferred to the output and it is memorized okay that is the behavior of the edge trigger D flip flop okay. So that is what is happening here when the clock edge come the 0 is transferred here and it is memorized till the next clock edge and the next clock edge it is 1 and it is memorized till the next clock edge and that is what is shown here. And here it is 0 again the 0 up till here then it is 1. So 1 comes here but then it is remembered till the next clock edge and again it is 0 so it becomes 0. So that is the behavior. So let us think how we can write this in VHDL. So we have to say first of all you see that the input goes to output only on the clock edge that means the whole process is sensitive to clock. So that say that you can write a process with clock in the sensitivity list okay. So whenever there is an event and we are talking about simulator now whenever there is an event on the clock that process gets computed okay. Now the next question is that fine if you write the clock in the sensitivity list if there is an event on the clock you know that gets computed. But then event on the clock can be the positive edge or the negative edge. So how do we specify the positive clock edge okay. So there is a trick okay what we do is that in the process we next statement after the begin we write is that if clock is equal to 1 okay. So that gives you know the clock is 1 only in the positive edge okay because there is an active edge then if clock is 1 that means it is the positive clock edge that is how it is written. And we write you know then I will show the code so this is the code which say that process clock. So whenever there is an event on the clock this process will be computed you say begin if clock is equal to 1. So this should be combined with the event on the clock even there is an event on the clock and clock is 1 it is a positive edge. Then Q gets D then if not we want it to memorise or the latch the output. So you say do not say else you say end if that means if this condition is not met you just memorise it and you say end process. So that is a perfect code for the edge to get flip flop as far as simulation is concerned okay. That is what is written here event on the clock will make the computation happen and if clock is equal to 1 will make it positive edge detect the positive edge Q gets D end if and there is no else end if so that will memorise it. And that gives you a flip flop VHDL code as far as simulator is concerned. Now the question is that we have told that the sensitivity list is a business for the simulator because it real time you know it simulates the behaviour okay. It has to simulate so it has to worry all about the event happening concurrency and things like that. But for the synthesis tool it looks at the code what is written and if you look at the code what it is written it say that if clock is equal to 1 Q gets D that means as long as clock is remaining high Q will reflect the changes in D and when the clock goes low because of this end if it will remember okay. So if given to a synthesis tool this particular code it say that as long as clock is 1 Q gets D and when the clock goes low it remembers and mind you that is nothing but a transparent latch. So for if you write such a code given to the simulator it is a flip flop given to synthesis it is a latch and the latch behaviour we know that when and that is what is written here okay. Because synthesis tool ignore the sensitivity list the above code would mean a transparent latch the event on the clock and all is not looked by the synthesis tool whenever clock is high Q gets D and on the negative edge it is remembered. So that is what is shown here as long as clock is high the Q reflects the D and at this edge whatever is the value is remembered till it is again enabled and when it is enabled the change in D is reflected and at this edge it is remembered till it is enabled so that is what is happening here. So the question is that given this code to a synthesis tool it becomes a latch and simulator treat it as a flip flop now the question is that how do we make a proper code for a flip flop as far as synthesis tool is concerned. Now this gives you a clue because here the simulator for the simulator it works properly because the simulator start when there is an event on the clock okay and this clock is equal to 1 will make a positive edge trigger. So it is enough as far as the synthesis tool is concerned this effect is captured that means that we have to say that if there is an event on the clock and clock is equal to 1 then Q gets D if you can write that then synthesis tool will treat this as a flip flop and that is what is exactly done by this code which say process clock is a begin and you write instead of clock is equal to 1 you write if CLK that is a clock tick this is called tick event and clock is equal to 1 then Q gets D if this means any event on the clock anything any change on the clock for us this is sufficient because we are checking some event and clock is equal to 1 then it is a positive edge maybe some other things can happen I will say in a moment Q gets D end if but for the simulator you know that whenever there is an event on the clock it starts computing when it comes here there is a repeat there is something redundant here this start whenever there is an event again it is a clock tick event so this is a redundant statement as far as simulator is concerned but does not matter still it is a repetition but it does not harm so that is what is so this is a code the code for flip flop which works the same for this I mean you know which works as a edge to get flip flop for simulator and synthesis tool but mind you there is one difference though suppose at the beginning of simulation the U like the output was U and somehow you know the output goes from the say the clock was flagged as U and clock started coming as 1 then there is a transit from U to 1 and this can false trigger as for simulation is concerned like when it when it simulates there is a clock tick event which is U to 1 and clock is 1 and that is true so a U to 1 transition can trigger a computation as for a simulation is concerned so there could be some false trigger when you simulate it not a very good idea actually because then the simulator behavior and the synthesis behavior will be different so at the beginning whatever hardware you really synthesize will work different from what you have simulated either you should you know know this fact and take care in the simulation or you should make somehow the simulation and synthesis you know behavior same maybe we will discuss in this in the appropriate time so I think we can we will it is a kind of the time is coming to a close so we will stop here we will continue with the VHDL modeling for the sequential circuit like flip-flops latches registers and so on with in the next class so what we have seen is that the VHDL the latches flip-flops are modeled by their behavior and we have come out with a kind of reasonable code for describing the behavior and one very important thing mind you that we have put some sensible syntax for that behavior but you know that we are human and we are reasoning that but for a tool this is just a template ok it means wherever there is a clock tick even clock is equal to 1 Q gets the end if that is treated as a latch it is not by understanding the meaning of that so this is taken as a template so you should not kind of take too much liberty with it you know so maybe there is a dumb synthesis tool which will work if you write clock tick even and clock is equal to 1 but it may not work if you write clock is equal to 1 and clock tick clock tick even ok so do not take too much liberty like we have put some sensible description for the behavior that is only the meaning. So we have looked at what works for simulation that does not work for synthesis tool then we have added some extra redundant statements so that you get a code which works for both simulator and synthesis. So with that I stop here now we have covered quite a bit please revise please look at this sequential modelling try to understand it we will build on it so please revise it I wish you all the best and thank you.


I support teachers in using educational technology to upgrade and transform teaching and learning. I've been thinking about how much of the learning experiences we create for students actually mirror authentic uses of technology like we'd see in the real world. I've been wondering how are we doing at empowering learners to use whatever tools they have to personalise and pursue their own learning goals. And is technology assisting us to move away from being the sage on the stage to being more frequently the guide on the side? And also what ways is technology enabling us to upgrade and redesign how we do school? Hi, my name's Glenda Baker. Learning, sharing and remixing has definitely been part of the process for me as I've prepared this presentation. Many friends, colleagues and students have contributed to it. I hope our collective efforts will also help you learn, share and remix ideas as together we think big about learning. I work in a technology-rich environment. At our school, every student from grade 9 to 12 brings their own Apple laptop computer to school every day. What does technology-rich mean? As Don Tapscott pointed out in grown-up digital, technology is now like the air we breathe. What we're discovering is teaching with technology is actually not about the equipment or ratios. It's about using whatever you have to leverage and extend the learning opportunities. It might look like this or this or more frequently in some situations like this. Yes, our high school did make the decision to go to one-to-one in 2011 and 12 and I do believe it was a disruption that has caused many of us to change as a result.  Since then, I've been looking for ways to answer the questions what factors contribute to effective teaching and learning with technology and what does research say about the climate and culture in schools that are using technology for learning? These questions can be disruptive regardless of whether you are one-to-one or four-to-one. Friend and colleague Ruth Bender, my number one research partner helped me dig into this question around effective one-to-one with a search for scholarly articles. We started with a general question and then spun off into related themes until we found ourselves immersed in a huge body of material from about 2006 until now, written by scholars from around the world, all investigating aspects of the topic, teaching and learning technology. Some are studies, some are literature reviews, others case studies, some focus on large-scale investigations and others on wide surveys. What this activity uncovered for me is that there are lots of committed and concerned people out there interested in learning about learning and providing information to help teachers like us be innovative. So, some of the generalisations about schools using technology effectively to enhance student learning include learning experiences that might be longer or include more complex work, students are engaged in problem-solving and inquiry, there is a shift to more student-centred project-based work that enables students to demonstrate their knowledge and skills in authentic situations or ways that might mirror real-world experiences. Some of the variables then that supported integration of technology by teachers was positive teaching experiences with computers, teacher comfort with technology, teacher beliefs about using technology for instruction, training and support and teacher efficacy or confidence with using technology for themselves. One of my goals in planning this presentation was to work out how to engage with you the viewer. To that end, I've set up a web page with a couple of ways for you to interact with myself and others on this topic. I'll invite you to take a minute to respond to two polls. I'm interested in learning about the hunches and experiences that you have regarding the benefits of teaching technology and also what factors you feel have had an influence on technology integration in your own school. I've talked about technology-rich environments, but just because there's a lot of technology available doesn't necessarily translate into effective use. Researchers trying to pinpoint the factors influencing effective technology integration in schools remind us that education systems have been mostly unchanged since the Industrial Revolution. Some argue that technology can be a disruptive force to innovate teaching and learning. One point I found repeated across articles is there is a clear distinction between having tech and using it effectively. To put it simply, effective teaching requires effective technology use. Computers in schools don't change practice. The system must intentionally engage in creating a process for change and innovation. There are lots of examples of schools adding technology, whether we're using it to sustain old practices or for creating new possibilities. As researcher Brian Belland points out, there's often confusion about what is meant by effective technology integration, and it's hard to hit a target if you don't know what you're aiming for. So here's how he defines it. Technology integration is a sustainable and persistent change in the social system of K-12 schools caused by the adoption of technology to help students construct knowledge. How then do we translate this into action? There's no one easy way, but it seems clear there is a part to be played by us as individual teachers, by teams or departments, and by the whole school system. An approach we've taken has been to think through upgrading an upcoming unit of work and to start by clarifying what is the key learning objective. Then, working backwards, explore Waze technology can help modify or redefine parts of the learning experience. Our goal is to increase the Waze students participate in constructing and applying knowledge rather than mostly being consumers of it. Peggy Ertmeyer and her colleagues said, specifically, we must focus our change efforts on helping teachers understand how student-centered practices supported by technology affect student learning outcomes. They also pointed out that teacher beliefs have been shown to be heavily influenced by the subject and school culture in which they participate. Furthermore, in a hierarchical culture, such as what exists in schools, technology use was considered low risk as long as it was used in Waze that was sanctioned by a person in authority. If you're an administrator, team leader, department head, or a teacher leader in your discipline, that means you have the power to really influence how teachers use technology for learning in your department or school. The big takeaway for me in this is grasping that beliefs and practices shift to a line with the current school culture. We've reached another point where I'll invite you to interact with others watching this presentation. I've set up a Today's Meet page for us to post questions, ideas and reactions. I'm going to ask you to take a minute to share a headline that captures the big ideas of this topic that are most important to you and that you'd like to remember. Headlines is a routine from the book Making Thinking Visible and it's a way of focusing our thinking and sharing key ideas. In an increasingly complex world that demands students develop a skill set that will distinguish them from the crowd, this research has taken on added importance. How do students learn and what do teachers do to support learning in such schools? I'm not suggesting that all of these things need to happen all at once. At our school, we are in more of an evolution than a revolution but teachers and students are in the process of grappling with some of these ideas. Next, I'd like to share a couple of examples that might help illustrate some of the generalizations we've covered. It's all about STEM, Chem, Science. A fellow dentist has contacted the students to determine which of three drinks is the least acidic and hence which is least likely to cause tooth enamel erosion. Today, we reveal the concentrations of orange juice, wine and sprite to determine which would cause these erosion in human tooth enamel. We will also explore the relationship between acid strength and concentration and his asses to find the concentrations of the active bleaching agent in their bleach as well as Stomastos original bleach and Milton sterilizing fluid. You'll find the cost program of Sodium Chlorate 1 in each bleach to see which brand is the best value for your money. The active ingredient in household bleach is Sodium Chlorate 1 and it is when chlorine reacts with cold diluted Sodium Hydroxide and that's how it... To find the concentrations of OCl, we have to measure the volume of oxygen produced so we're going to collect the gas over water. A little bit sweeter, a little bit more like real alcohol and it smells really strongly and a little bit like fish so we know that they're different and you can tell that this is probably going to end up being tertiary butanol because we got it at a little bit higher temperature than ethanol here. We'll try the sample test with Sodium dichromate. To make sure. I'm going to do that right now. I'm fortunate enough to work with many teachers, confident and willing to take risks and try things out. Roger Onion's veteran high school science teacher is one such person. What you just saw was some student work from the STEM projects that he set up for his AP chemistry classes after their external exams at the end of last year. Roger set out to create a student-centered inquiry-based learning experience. Technology was just there. Students used it as needed to conduct research to gather and analyze data into document and present their findings. It was a challenging process, I would say for everyone involved and as you can see from some of the glimpses of Roger in the background he took on a role during the project as much more of a facilitator than as an instructor. You might agree that this example doesn't necessarily hit all of the points on the generalization chart, yet this project was a significant upgrade. Students were not given a recipe to follow in solving their problems or conducting their experiments. It was messy. They had to design it themselves using their prior knowledge. The longer timeframe and the complexity of the problems were also new for students. This came out of a connection Roger had made with the University of Leicester. Their finished work also had an audience outside of the classroom. Leslie Birkeland and Kyoko Inahara are part of our language department at ASIJ. They really wanted their students to use their language skills in authentic situations related to something that they really cared about. I asked one of the students in Leslie's class, Adriana Honda, to talk about her project. I actually learned a lot about being responsible and taking charge with my own project without depending on a teacher this time. She was mainly our facilitator. Well, at first we were very indecisive about everything, but I'm very passionate about eco life, so we decided on cleaning up the Yogi Park. We did some research on which parks we can clean up, and Yogi Cohen was the most convenient for all of us, and so we contacted the administration there, and we set up a date from the beginning to the end, the overall preparation. It took about a month, I think. The new vocabulary and the terminology we had to learn, especially because it's business-like, so it was more like a real-life situation instead of so proper educational terminology. What we would use in class was more outside of the box and in the real-world kind of language, so it was a challenge. First, we were going to clean on Dibet Beach, so we make phone calls. We communicated with the management at Yogi Park through email, and we interviewed people, ties-bends our posters. We went around Harajuku and posted up eco posters, and we interviewed some people who were very curious about our work, and we also organized a sale of eco bags. It definitely gave me a better look on how to use the language more often and in a better way. It was very different. It was one of our biggest projects for sure. We usually just take a test or we usually just do an oral project, but this was like hands-on learning, so it was really great. I really got to experience what it's like to actually be out in Japan and experience the Japanese culture and Japanese language with local people. Leslie and Kyoko provided their students with learning objectives and the expectations regarding the skills and dispositions they needed to demonstrate. These were about the use of their language skills, both written and spoken. The context, however, was to be in an area of their personal passion or interest. They were given the opportunity to make a real difference in something that they cared about. The students worked in self-selected groups to construct their own paths. You probably noticed from listening to Adriana talk about her group's eco project that technology didn't come up a great deal, and yet it enabled the group to achieve their objectives in many different ways. Do you have a model to share? Share so others can learn and remix. Try using the generalisation chart or the SAMA model as a lens to identify work that you or your colleagues are doing that might be of inspiration to others. We need to feel comfortable about testing new ideas in our own classrooms and being okay with change being an evolution. The more we get glimpses into each other's classrooms, the more comfortable we become as we think big about learning. The theme for this year's conference is learn, share, remix, learn. Technology has enabled us all to learn from so many more sources. It's easier than ever before to access recent research and real people trying things out. Joining the dots between what research says and what it looks like in the classroom is learning in action. Share. We amplify learning opportunities by telling each other's stories. Remix. Sharing and learning from what others are doing promotes the remixing of ideas. Differences in context create opportunities to try new things in new situations and in new ways. Learn, share and remix is the microculture we've been promoting in high school at ASIJ to support faculty as they aspire to upgrade and transform teaching and learning. I hope that you'll remix some of the ideas shared because of this presentation and take them in many new directions. Thank you and good luck.


Bismillah ar-Rahman ar-Rahim. Alhamdulillah wa-as-salatu wa-as-salamu ala Ashraf al-Ambiai wa-al-Mursaleen Sayyidina wa-mawlana wa-habibina Muhammad. Salallahu alayhi wa-sallam wa-alayhi wa sahbihi wa-sallam tasreeman katira. As-salamu alaikum wa-rahmatullahi wa-barakatuh. Alhamdulillah, it is a blessed day here in the month of Rabia al-Awal. We are joined today with sister Simran and her four beautiful friends who are part of this journey with her. She has decided at the tender age of 15, mashallah, to make the move forward and take her Shahada today. It is really a very momentous occasion for all of us. We've all been very emotional just in these past few moments leading up to this. So we are really, really honored to have all of you here. I would love for myself and all of us here to hear about your journey. Simran, would you like to share some words about how you got to this point? Okay, so I was raised with Hinduism and then I went to a Christian school so I was taught Christianity and then when I changed schools, I was introduced to them and they started teaching me about Islam. So I started making more sense in Christianity. So then I was like, why should I believe in something that doesn't make sense to me when I should just convert to Islam? Which makes sense to me. And how long have you been studying it now with your friends? Maybe less than a year. Less than a year. And so who in this friends group, if I can ask one of you perhaps to also share who did you meet first or who met Simran first here? You want to share how this friendship came together and how did you start to introduce Islam to her? Yeah, so basically I had a friend who introduced me to her because I didn't really know her that much. But then I got to know her and find out that she's trying to convert to Islam. So I just tried to help. Wonderful. And then the rest of you all kind of just started hanging out together. So you know, today as you all know, religion isn't really a topic that I think adults anyway think teens are that interested in. So we're pretty, I think, blown away that you all felt so comfortable to talk about these topics. Now, did one of you initiate the conversation on religion or were you just curious? Did you ask questions? Yeah, I started asking questions. You started asking questions. And then you started to answer these questions. That's beautiful. Okay, wow. And so less than a year and you've been studying and so you know about the core beliefs of Islam. You know about the five pillars. Great. And you know the obvious differences between Islam and as you said, Christianity, which you were studying before, that we do not believe in a Triune God and we're a monotheistic situation. Very good. Okay. Well, I know that you are really eager for this moment. So I don't want to delay any longer. So the process to become a Muslim is really easy. Alhamdulillah.   So it's already there. But this is just a formal process that we do. So I will read the phrase that or the declaration, the testimony in Arabic. And you can repeat after me and I'll go very slow so that I don't rush you through it. And then I'll read the translation and that will be a very simple process. Okay. All right. So we say, Bismillah ar-Rahman ar-Rahim, we say, Ash. Ash. Hadu. An. La. Ilaha. Ilaha. Il Allah. Il Allah. Wa. Wa. Ash. Hadu. An. La. Muhammadan. Muhammadan. Rasool Allah. Rasool Allah. Very good. Mashallah. Takbir. Muhammadan. Muhammadan. Muhammadan. Rasool Allah. Rasool Allah. Very good. Mashallah. Takbir. Muhammadan. Muhammadan. Muhammadan. So that is the phrase. You just said, I testify that there is no God with a small G, right? He is the most un- Christian. Many you are see, Newviiه Jesus. M- Mesalaam ala s- gram.. M- Mesalaam ala s- gamma.. Mass NH? S- S- S- S- M- S- S- Oh. M- S- And then we can ask some questions. Maybe they have some reflections to show. So go in for it, sisters. We can share some, some hugs. Mashallah. There are going to be a lot of tears today. And reflecting back on this beautiful day. Happy tears, of course. Tears of joy, of relief, of gratitude, immense gratitude. It's a beautiful reminder for all of us as well who have been gifted this deen to see how Allah Subh'anaHu Wa Ta'ala guides whomever He wills. And here we have someone at 15 who, masha'Allah, heard the call and is responding. And Alhamdulillah for a beautiful company. What a wonderful display to see these beautiful sisters on this journey together. You know, we sometimes underestimate our younger generation, but masha'Allah, this is a reminder for all of us. The power of beautiful gatherings, beautiful friendships, masha'Allah. Alhamdulillah. Thank you so much for sharing. May I also have a hug? I know there's going to be a line of people also after this, but I'd like to now just ask, would all of you maybe take a moment just because we want this memory to be preserved for our dear sister Simran? What reflections would you like to share for her? Any, just one advice maybe that you have based on your experience? I mean, clearly, masha'Allah, you all love this faith. Alhamdulillah. What advice would you like to impart? I know you've probably already been giving her, but anything that you want to tell her now? Very good. I'd like to say that, like, sometimes, like, in life, things happen where we get very stressed and our soul's finding peace. And we don't know where to look for that peace. And I remember a time in my life where I was very low and I was looking for peace. I'd go to people, friends and family to find that peace. I'd talk to them about my problem. And they'd try their best, but my soul didn't find what it was searching for.  You have to search for it. And through that hard time, when I really, like, I didn't know any other option, I decided to go to Umrah. And when I saw the Kaaba for the first time, that's when my soul got the peace it was looking for. And that was the day I realized that no matter where you look for peace, the peace is always with you. Allah is always with you. So when you turn to Allah, that's where you find your ultimate peace. So my advice to her is that don't ever look for peace in people or friends or anything but Allah, because that's where you're never going to get disappointed. It's a very overwhelming moment right now. So Masha'Allah, you guys will have plenty of time to talk about anything you'd like to share. I feel like the outside world is like, you know, they teach you the wrong things and stuff. And if you're sad and stuff, you talk to people about it. That's like the most important thing and person should talk to it a lot because no matter what, he's been with you and always will be with you. Sir, say a few words of wisdom really, Simran. Masha'Allah, thank you so much for sharing ladies. And thank you for also sharing your journey. Did you have any final words to share? Yeah, right now it's a lot. Masha'Allah. Well, thank you. I want to, on behalf of MCC, this community, thank you so much for choosing this message to take your shadow. It's your family. We are your family. You have these beautiful friends as, of course, your extended family, but you've just inherited a lot of more brothers and sisters, inshallah. We hope to see you here as often as possible. I do Halafas here. Dr. Rania has women's Halafas. There's also other wonderful programs throughout the month that you can participate in. And we also have a gift here for you that we curate for our new converts. Masha'Allah, it's got everything that you need as you continue to grow in your faith, inshallah. Again, thank you for the honor. This is just such a tremendous gift you've given us. You know, there's a lot of things people could be doing on a Tuesday morning, but I wouldn't be anywhere else. So thank you, Simran. May Allah make it easy for you, inshallah, and continue to open your path and bring you more and more beautiful souls like the friends that you have here. Thank you. Thank you as well, ladies and gentlemen. Thank you all. Alhamdulillah, Jazakumul Al Khair.


The last time I reviewed a book by William Slater, which was the last universe, I believe, I said that instead of reviewing more William Slater books, and I've reviewed three, that's more than I usually review for any one author, I said that I would do like an overview of William Slater and talk about his work in general. So that's what I'm going to do today. He was an author of young adult fiction, but like so many so-called young adult authors, his books actually addressed some very adult subjects. Particularly the kind of fears that teenagers think about all the time, like the loss of relationships, isolation, peer pressure, those sorts of things. I discovered William Slater when I read House of Stairs. There was a copy of House of Stairs on the bookshelf at my family home. I don't know where it came from. I don't know who bought it or put it there. But it had been there for years. And then one day, about 25 years ago, I decided to read it. And it's one of the best books I've ever read. This was my second book review three years ago. And there was a reason it was second on my list is because, again, it's one of the most memorable and most interesting books that I've ever read. I described it as Lord of the Flies for sixth graders. And I'll stick by that description. If you want something really interesting and unusual and intense for your young teenager to read, start them with this. It's about a 16-year-old orphan boy who finds himself trapped in a world of nothing but infinite staircases with a group of other 16-year-olds. And the kind of things that they have to do to survive and to get out of this situation are really intense and memorable. Let me put it that way. It's good science fiction. The next Slater book that I reviewed was Interstellar Pig, and I don't seem to be able to find my copy of it. I believe I gave it to someone for their kid to read. Here's a picture of it. It's about a kid whose weird neighbors invite him to get involved in a board game that turns out to have the fate of the earth involved, or at least that's what they lead him to believe. It's just a really entertaining, good little science fiction adventure story. I recommend it. The next Slater book that I reviewed was The Last Universe. This is an excellent example of why I like William Slater's work so much.  And that's what William Slater does. He does what I don't expect. He pretty much always does something new every time I read one of his books. He's one of those authors that... let me see how I can put it. You know when you're reading a book and you're frustrated because you wish the protagonist would do something? You wish the protagonist would do what you would do in that situation, or what you're wishing they would do? William Slater does that. William Slater goes all the way. He does the unexpected. He does what you wish he would do. It's very exciting stuff. Okay, as far as books that I haven't reviewed yet, there's Singularity. This is a very short book. I think some people wouldn't even call it a novel. It's 179 pages. This is a novella, maybe a long short story. This is another example of William Slater's creativity and his penchant for the unexpected. It's about a pair of twin boys who are vacationing at a relative's abandoned house out in the country and they discover there's some kind of time warp or time dilation going on in the outhouse that the guy built in back. And what Slater ends up doing with this story? All the way through it, I was going, yes, yes, yes. That's what I wanted to see. So yeah, pick up Singularity. There's another little, thin little volume called Oddballs. This is nonfiction. This is William Slater talking about his life. If you're interested in William Slater, you should pick this up. Moving on, I had said once before that I had never found a William Slater book that I didn't like well since then I have. Here's a book called Run. This is his first novel. I believe this is his first novel. I got about halfway through it and then quit and then gave up on it. The protagonist is a young tween girl and at first I was having trouble believing her behavior. But then I had to tell myself, okay, we've got a young teenage girl who's left alone in a house in the country. Her parents aren't there. She's terribly afraid of being alone, but she won't admit it. She won't even admit it to herself. So I had to tell myself, yeah, a young teenager in that situation who's desperate to not be alone is not going to behave rationally. It's certainly not going to do what I would do in a situation like that. So I pushed on, but then by the middle of the book other things were happening and I wasn't believing any of it. So I gave up on it. Now, here's a thing called Phantom Limb, which Slater co-wrote with someone named Ann Montacon. Just the title of this book is interesting, but this doesn't read like William Slater. This, it didn't seem to me like his work at all. I suspect it's more influenced by his co-author here. And it didn't make any sense to me. I didn't believe any of the situations that were going on, so I didn't finish this one either. As I was reading Phantom Limb, I recalled another Slater book I had read.  Little bits and pieces came back to me as I was reading Phantom Limb, but I remember not being impressed with it. So there's that. There's a book called Parasite Pig, which is a recent sequel to Interstellar Pig. This book was on my list of worst covers ever. I mean, look at this awful Photoshop hack job. This doesn't do justice to the book at all. This book I have a mixed review on, and I have to give you a warning too. Again, as usual, Slater does a couple of things in this book that I've never seen before that surprised the hell out of me and impressed me. But they were also disgusting.  And a spoiler here, if you care. Boy, I can hardly even say this. There's cannibalism in this book. There's a very lengthy, very vivid scene in this book where these aliens who eat human beings, they have a couple of teenage girls that they kept captive and they've spent time fattening them up and they're very obese. And there's this scene where they drag these two girls into the ovens and they're screaming and saying, no, no, no. And these other kids actually witnessed these girls being pushed in the ovens and cooked. I found it really upsetting.  So it's an interesting book, not a great book, but interesting in no little part because Slater, again, is doing the unexpected. And in this case, the unexpected was not necessarily welcome, so it's up to you if you want to read this or not. Well, I recommend Slater in general for anybody, especially for young kids who are getting into science fiction. But be careful about parasite pigs, seriously. When you read about him online, you see people comparing him to R.L. Stein who wrote the Goosebumps books. When I first read that, I got a little huffy. I was like, hey, wait a minute. But then I have to admit that I've never read R.L. Stein, so I have no idea what that comparison would mean to me. I just, unfortunately, I just associate Goosebumps with children's TV, and that may be a mistake on my part. Anyway, there you have it. I recommend, wholeheartedly, House of Stairs, The Last Universe, Singularity, Interstellar Pig, and William Slater in general. I haven't read nearly all of his books, and I have more to do. All right, see you next time. Thank you.


Welcome everyone to theCUBE's continuing coverage of AWS 2021. I'm your host, Lisa Martin. We are excited to be running one of the industry's most important and largest hybrid tech events of the year with AWS and its ecosystem partners. We have two live sets, two remote studios. We've got over a hundred guests on the program and we're going to be talking about the next decade of cloud innovation. We are pleased to welcome back one of our alumni to the program, Rob Lee, the CTO of Pure Storage. Rob, thank you so much for joining us today. Good to see you again, Lisa and thanks for having me. Likewise, and I was talking to you on LinkedIn. Look, so you've got a promotion since I last saw you. Congratulations on your appointment as CTO. Yeah, thank you very much. Very excited to be taking the reins and for all the great stuff that's ahead of us. A lot of great stuff, I'm sure. I also saw that once again, Pure has been named a leader in several Gartner Magic Quadrants for primary storage, for distributed file storage and object storage. Lots of great things continuing to go on from the orange side. Let's talk about hybrid, seeing so much transformation and acceleration in the last 20 plus months. But I'd love to see what you guys are seeing with respect to your customers and their hybrid cloud strategies. What problems are they in this dynamic day and age? Are they looking to solve? Yeah, absolutely. I think all in all, I think customers are definitely maturing in their understanding and approach to all things around cloud. And I think when it comes to their approach towards hybrid cloud, one of the things that we're seeing is that customers are really focusing extra hard on just trying to make sure that they're making the best use of all their IT tools. And what that means is, not just looking at hybrid cloud as a way to connect from on-prem to the cloud, but really being able to make use of and make the most use out of each of the services and capabilities of the environments that they're operating. And so a lot of times that means, commonality in how they're operating, whether it's on-premise or in cloud, it means the flexibility that that commonality allows them in terms of planning and optionality to move, parts of their application or environments between premise and cloud. And I think overall, we look at this as really a couple specific forces that customers are looking for. One is, I think they're looking for ways to bring a lot more of the operating model and what they're used to in the cloud into their own data center. And at the same time, they're looking to be able to bridge more of how they operate the applications that they're powering and running in their own data centers today and be able to bridge and bring those into the cloud environments. And then lastly, I'd say that as customers, I think today are kind of one foot in their more traditional application environments and the other foot largely planted in developing and building some of their newer applications built on cloud-native technologies and architectures driven by containers and Kubernetes. A big focus area for customers, whether it's on-prem or in cloud or increasingly hybrid is supporting and enabling those cloud-native application development projects. And that's certainly an area that you've seen pure focus in as well. So I think it's really those three things. One is customers looking for ways to bring more of the cloud model into their data center. Two is being able to bring more of what they're running in their data center into the cloud today. And then three is building their new stuff and increasingly planning to run that across multiple environments, prem, cloud and across clouds. So Rob, talk to me about where pure fits in the hybrid cloud landscape that your customers are facing in this interesting time we're living in. Yeah, absolutely. We're really focused on meeting customers' needs in all three of the areas that I just articulated. And so this starts with bringing more of the cloud operating model into customers' data centers. And we start by focusing on automation, simplicity of management, delivering infrastructure as code. A lot of the attributes that customers are used to in a cloud environment. In many ways, as you know, this is a natural evolution of where pure has been along. We started by bringing a lot of the consumer-like simplicity into our products and enterprise data centers. And now we're just kind of expanding that to bring more of the cloud simplicity in. We're also, this is an area where we're working with our public cloud partners such as AWS in embracing their management models. And so you saw us do this as a storage launch partner for AWS Outposts. And that activity is certainly continuing on. So customers that are looking for cloud-like management, whether they wanna build that themselves and customize it to their needs or whether they want to simply use cloud providers, management planes and extend those onto their premise, have both options to do that. We're also, as you know, very committed to helping customers be able to move or bridge their traditional applications from other data center into the public cloud environments through products like Cloud Block Store. This is an area where we've helped numerous customers take the existing applications. And more importantly, the processes and how the environments are set up and run that they're used to running in their data center production environments, bridge those now into public cloud environments and whether that's in AWS or in Microsoft Azure as well. And then thirdly, with Portworx, right? This is where we're really focused on helping customers not just by providing them with the infrastructure they need to build their containerized cloud-native applications on, but then also marrying with that infrastructure, that storage infrastructure, the data flow operations such as backup, DR migration that go along with that storage infrastructure as well as now application management capabilities, which we recently announced during our launch event in September with Portworx Data Services. So really a lot of activities going on across the board, but I would say definitely focused on those three key areas that we see customers really looking to crack as they, I would say balance the cloud environments and their data center environments in this hybrid world. And I'm curious what you're seeing, the focus being on data. Customers definitely recognize that data is their lifeblood is kind of, contains a lot of the value that they're looking to extract, whether it's in competitive advantage, whether it's in better understanding of their customers, or whether it's in product development, faster time to market. I think that we're definitely seeing more of an elevated realization and appreciation for not just how valuable the data is, but how much gravity it holds, right? Customers that are realizing, hey, if I'm collecting all this data in my on-prem location, maybe it's not quite that feasible or sensible to ship all that data into a public cloud environment to process. Maybe I need to kind of look at how I build my hybrid strategy around data being generated here, services living over here, and how do I bridge those two locations? I think you add on top of that newer, I would say realization of security and data governance, data privacy concerns. And that certainly has customers, I think, thinking a lot more, thinking a lot more intently about their data management, not just their data collection and data processing and analysis strategy, but their overall data management, governance, and security strategies. Yeah, we've talked a lot about security in this interesting time that we're living and the threat landscape has changed massively. Ransomware is a household word and it's a matter of when versus if. As customers are looking at these challenges that they're combating, how are you helping them address those data security concerns as they know that we've got this work from anywhere, this hybrid work environment that's going to persist for probably quite some time, but that security and ensuring that the data that's driving the revenue chain is secure and accessible, but protected no matter where it is. Yeah, absolutely. And I think you said it best when you said it's a matter of when, not if, right? And I think we're really focused on helping customers plan for and have, plan for and have a very quick reaction remediation strategy, right? So customers that I would say historically have focused on perimeter security and have focused on preventing an attack and that's great and you need to do that, but you also need to plan for, hey, if something happens, as we just said, when something happens, what is your strategy for remediating that? What is your strategy for getting back online very quickly? And so this is an area where we've helped countless customers form robust strategies for true disaster recovery from a security or ransomware sense. We do this by through our Safe Mode features which are available across all of our products. And quite simply, this is our capability to take read-only snapshots and then couple them with a heightened level of security that effectively locks these snapshots down and takes the control of these snapshots away from not just customer admins, but potential ransomware or malware, right? If you look at the most recent ransomware attacks that have hit the industry, they've gotten more and more sophisticated where the first action, a lot of these ransomware pieces of software taking are going after the backups. They go after the backups first and then they take down the production environment. Well, we stopped that chain or in the security world, what's called a kill chain, we stopped that chain right at the first step by protecting those backups in a way that, no customer admin, whether it's a true admin, a malicious admin, or a piece of software malware that's acting as an admin has the ability to remove that backup. And that's a capability that's actually become one of our most popular and most quickly adopted features across the portfolio. That's key. I saw that some was reading some reports recently about the focus of ransomware on backups and the fact that you talked about it to becoming more sophisticated. It's also becoming more personal. So as data volumes continue to grow and companies continue to depend on data as competitive advantage differentiators and of course a source of driving revenue, ensuring that the data, the backups are protected and the ability to recover quickly is there, that is table stakes, I can imagine, for any organization, regardless of industry. Absolutely. And I think, overall, if we look at just the state of data protection, whether it's protecting against security threats or whether it's protecting against infrastructure failures or whatnot, I would say that the state of data protection has evolved considerably over the last five years. You go back five, 10 years and people are really fixated on, hey, how quickly can I back this environment up and how can I do it in the most cost effective manner? Now people are much more focused on, hey, when something goes wrong, whether it's a ransomware attack, whether it's a hurricane that takes out a data center, I don't really care what it is. When something goes wrong, how quickly can I get back online? Because chances are, every customer now is running an online service, right?  And we've seen this throughout the industry over the last couple of years. And so, I think that maturing understanding of what true data protection is, is something that has, A, driven a new approach from customers to a new focus on this area of their infrastructure. And B, I think is also, I found a new place for performance and reliability and really all of the properties of pure products in the space. Last question about for you, give me an example. You can just mention it by industry or even by use case of a joint AWS pure customer where you're really helping them create a very successful enterprise grade hyper cloud environment. Yeah, no, absolutely. So we've got countless customers that I could point to. I think one that I would, or one space that we're particularly successful in that I would highlight are SaaS companies, right? So companies that are building modern SaaS applications. And in one particular example, I can think of as a gaming platform, right? So this is a company that is building out a scale out environment, is a very rapidly growing startup and certainly is looking to AWS, looking to the public cloud environments as a great place to scale, but at the same time, needs more capabilities than are available in the container storage, infrastructure that was available in the public cloud environment. They need more capabilities to be able to offer this global service. They need more capabilities to really provide the 24 by seven by 365 around the world service that they have, especially dealing with high load bursts and different geos and just a very, very dynamic global environment. And so this is an area where we've been able to help the customer with Portworx be able to provide these capabilities by augmenting the compute that AWS or the cloud environment is able to offer with the storage level replication and high availability and all of the enterprise capabilities, auto scaling, performance management, all the capabilities that they need to be able to bridge the service across multiple regions, multiple environments and potentially over time, on-premise data center locations as well. So that's just one of many examples, but I think that's a great example where as customers are starting out, the public cloud is a great place to kind of get started, but then as you scale, whether it's because of bursty load, whether it's because of data volume, whether it's because of compute volume and capacity, customers are looking for either more capabilities, more connectivity to other sites, other potentially other cloud environments or data center environments. And that's where a more environment or cloud agnostic infrastructure layer such as Portworx is able to provide comes in very handy. Got it. Rob, thanks so much for joining me on the program today. I'm going to go ahead and re-invent talking about the pure AWS relationship, what's going on there and how you're helping customers navigate in a very fast paced accelerating hybrid world. We appreciate you coming back on the program. Great, thanks for having me. Good to see you again. Likewise, good to see you too. For Rob Lee, I'm Lisa Martin. You're watching theCUBE's continuous coverage of AWS re-invent 2021.


Experts in this matter say it is known as classified spillage and in most cases there are simple mistakes that are not typically charged as crimes. And most of the time it's completely accidental. An employee accidentally takes home a classified document in a briefcase. Don't think for a second that they're not doing this all on purpose. When you saw the photograph of the top secret documents laid out on the floor at Mar-a-Lago what did you think to yourself looking at that image? How that could possibly happen. How it wasn't anyone could be that irresponsible. As we found a handful of documents were filed in the wrong place. I think you're going to find there's nothing there. I have no regrets of following what the lawyers have told me they want me to do. Let's just get this straight.  Then we find out Trump also had classified documents which he was working with the government to secure and return. But for some reason the FBI raided his home and the same media erupted in celebration that the walls were closing in and Trump was going to prison. The walls are closing in. The walls closing in. The walls closing in. Other bombshell bombshell bombshell bombshell bombshell bombshell bombshell BOMB SHELL Then we find out that Joe Biden also had classified documents that he kept in his garage where his crack head son also stayed. But of course the media promptly tells us that it's totally different when he does it and no big deal because people take classified documents every day dude. Experts in this matter say it is known as classified spillage And in most cases there are simple mistakes that are not typically charged as crimes. Is it an accepted thing? How common is this? What is your reporting found? Yeah, Caitlin, this kind of classified spillage happens almost literally every day. Almost literally every day. You got that? And most of the time it's completely accidental. An employee accidentally takes home a classified document in a briefcase. And what's even more embalism inducing is that last night CNN had a segment where they mocked Republicans for having double standards on classified documents. Publicans are now pouncing on Biden for these classified documents. Someone out of their way to downplay former President Trump's potential mishandling of classified documents. Here's a reminder. What I've seen that the National Archives was concerned about Trump having in his possession didn't amount to a hill of ink. I don't know what documents were at Mar-a-Largo. Is it fair to say that investigation will be a priority? That will not be a priority. This is very concerning. I mean this is now the second location that the President was in possession of classified documents. Look, what's the Vice President doing with classified documents? It's weird that they would so confidently take that position when there is ample evidence that CNN, MSNBC, CBS, ABC, NBC and the rest also clearly have double standards when it comes to reporting on classified documents. It's a beautiful day here in Southern California and made only more beautiful by the hammer of justice pounding down on our pumpkin spice ex-president. The fact that he had those documents in his possession is a offense enough subject to perhaps criminal prosecution. What laws does the FBI suspect the former president has broken? No man is above the law. Anybody else would have been in jail for doing that. It's just that simple. No one is above the law, not even a president or former president of the United States. Flat-out obstruction of justice. They basically are informing the Trump folks you've already committed a crime. Totally irresponsible. We're going to start with President Biden's lawyers finding a small number of classified documents during his time as Vice President in his former private office. Joe Biden left a handful of classified documents from when he was Vice President in his private office. If you listen to Republicans or conservative media, they want you to believe it's on par with Donald Trump carding off boxes of classified documents. Republicans have seized on the revelations, but to be clear, there are distinctions between what we know about this and Donald Trump's hoarding of secret records at Mar-a-Lago. Obviously, vast differences there. There are key differences. There's a big difference here. There are many differences. One of these things is not like the other. Are we right to draw a very, very broad distinction between what is happening in the Biden case and what happened in the Trump case?


This question is from Shekhar Reddy. Sadhguru, it seems like it is a time for prophecies. While many are referring to the foretelling of Putluri, Vir Brahmam, a saint and seer from Andhra who wrote about corona in his Kalan Jnanam, others are referring to French apothecary, astrologer and seer, Michel de Nostradamus. What is your comment on such predictions? Wonderful, these predictions are wonderful but they always happen after the event has occurred. So all these people who are reading all these prophecies, why couldn't they prevent it if they knew beforehand? If you know beforehand and if you do not prevent a pandemic, that's called a crime of the worst kind. So, it is a human fad that they want to have a scope into the future. Isn't it wonderful? You don't know what will happen next. Otherwise, could you live?  So, a human being is the peak of evolution on this planet. From the lowest level of creatures to as you come, you will see they become less and less available to the influences around them. Let us say there is an earthworm, if something changes here, he will die. He's not going to take a swim and go to Africa and live there. Or he is not even going to go ten miles away and live there.  If there is terrain or if his habitat goes bad, there is nothing he can do. This is why we've been talking about rejuvenating the soil because these microbes and worms which are vital for our survival, they will not migrate somewhere else. They do not have the capability of a corona. Corona doesn't have the capability, it is just that you're providing free transport. Human beings, the most mobile creatures on the planet are providing transport. Our mobility, if we do not make it little more conscious, nature will control it. See right now it's happened, we can't move. This happened. This was in Los Angeles, a hotshot corporate CEO had a pretty secretary. This is in early twentieth century, since then much has changed.  She said, I know I'm your typewriter, but I'm not portable.  It is human mobility which has empowered the virus the way it has. If this had happened thousand years ago, if there was no air travel, no much sea travel, all this, then it would have been just there, wherever it happened. Wuhan or wherever it happened, it would have been just around there, maybe adjacent villages, something and it would have died out. But because human beings have become so mobile, today they're in China, tomorrow morning they're in Italy, next day morning they're in United States or wherever. Because of this seamless mobility, suddenly corona has taken on a huge form. By itself, it would not have because it needs you. So this, this urge to always predict something, there was a man, he is no more, there was a man like this in Tamil Nadu. He predicted, five hundred years later there will be a big flood in Tamil Nadu. I said, that's wonderful. People came and asked me, Sadhguru, what do you think, five hundred years later there's going to be a major flood. I said, that is why I'm sitting at the foothills, in case the flood comes, we will go up the mountain. You are in Chennai, you will go. So it is that so. I said, yes. But I can also make some predictions. Seven hundred years later, this hill is going to become a volcano and blow. I said, what really? I said, see, seven hundred years later I will not be there, you will not be there. We can predict whatever we want. Please tell me what is going to happen in the next five days. Not even five months, next five days tell me what's going to happen. This could be useful, like a meteorological report. If you tell me what's going to happen in the next five days, it would be of some use. Five hundred years later, anything can happen. And of course, people have such a fad about these things, they will adjust the time and the prediction just about everything that can ever happen on this planet has already been said by Nostradamus. I'm not a French, you know, I'm not conversant with French, but I like the word damas in English language, I don't know what it means in French. So, these will go on and on, people making predictions always of the past. Well, if you look at certain projection of how populations are growing, how things are happening, what kind of ecological damage is happening, you can make some calculation and predict something that even this trajectory, if you go, this is what you will hit. We can say that, but five hundred years of trajectory is a different matter because we do not know what all forces will influence things. People say, you know, after the world war is over, they say we knew this is going to happen, you know, somewhere it is written.  What about the test explosions? You missed all of them, you don't know how many hundreds of tests have been done. Maybe human beings did not die, I'm sure a whole lot of creatures have died. So, this is a wasteful thing.  There are two problems right now with coronavirus. Like somebody said, it is dense population and dense population. We are already a dense population, don't also be dense up here. Let's do what best we can do, don't predict how many people will die.  How many people we will not let them die, this is important.