మారఒ trás బ్యాంటడి ధానిలం Hello everyone Okay so during the last the last session lastön ఏరిత్దానారితట్టో lastizations జానిని to how to code, how to two important ones బర Audience Arting Now, in this section బర traveler RG పదానిని సంలి Now, this section మిషిufficient�్తాసనన İn సాయిట్లిమాఎ సదిసందిమ్లూస్యి రకిని బ్య్స్ మంన్ర్లి న్లిమార్తి ఈందాల్ర్లు సందిమ్ర్లేలి పానికె ప్నకి పిబ్కి. న్లారేసది న� we will be looking into this, the design we will be looking at the three commands and I will elaborate on these five and during the whole unit of synthesis I will keep following this flow chart. Now let us look at assuming you have RTL type strategy what you could do with them. So the first important command is it translates HDL into intermediate format. Let us not worry about what that intermediate format is it is something intermediate design combined. This command is recommended for reading RTL. This is very very important when you want to read RTL when you want to read the law this is the command you should use first step. So any command any command you can get help in the design compiler by using this. Analyze my sense will tell you what are options are available. If you do a man analyze I may say analyze it will give much more details about each and every option. So I would recommend like whenever it is the first time you are using any command I would recommend using these two options. So analyze my sense will give you a quick summary of what are options are there and man analyze will tell you in detail what it is it is a lot more details than the number of options. So its options are minus library name, minus word library name. So these two are just to specify what library you would use to store the intermediate output of the after reading the RTL. This is in conjunction with the defined design list of what you call earlier. These are anyway you could so a parenthesis here parenthesis here means that this is an optional argument. So minus library, library name, minus word library name they are both optional arguments. Since this command is common for VLOG and VSD that is why you have to So but once you start coding in VLOG most probably you will not need these two options if you design the kind that you designed correctly. You will only need this one minus format format string this will tell design compiler what format it is. So for reading a VLOG you would say analyze minus format VLOG. Again you can read about these options minus update, minus read update and all that because these are not used frequently these are used for some advanced cases some special cases you could read about them. Then this is a very special case again minus defined macro name. So you go to go back to VLOG you can have parameter you can have macros behind obviously this is only for VLOG and so VLOG has give this macro. So many times code and attain code will have this statement. So you could define those macros. So let us say I want to I want to set the constant I say that let us say I have an option in my design to set a particular register to either 0 or 1 based on two use cases. So I can say I can define a macro as if there is let us say if there is 0 then I will assign register to 0 otherwise I will assign register to 1. So you by defining that if you do not define anything it will go to the else bar. So it will define it it will specify the register it will assign constant point to the printer. Using this minus defined macro you could say minus defined 0 and correspondingly design compiler will pass that and it will assign the register value to be 0. This is very similar to the V-poster character of C. So once so analyze what analyze actually does is it enables you to define macro while reading a very long or VSDL column. Obviously for VSDL the macro is not the macro is not the topic there. So if analyze is complete and it can also tell what our syntax error to your RTL file sentence. So once you pass analyze it means that at least your code is syntactically corrected. Then what follows is second command is elaborate. It is a second step of SGA translation elaborate will actually build the gtec data. So after you have read in the file using analyze elaborate will map it will start the mapping or rather translation of your code into gtec. It will start mapping it into gtec. What it does is that SGA parameter is funded in your parameter command in the law the all parameters will be expanded. It will infer register the matches we saw in last picture how does design compiler infer register the matches it will actually infer that and it will link the design what linking design if you have a PLN or memory and that memory is part of your should be a part of the link library it will now map it will now link the design elaboration view the design should be completely linked each and every component should be mapped if it is not able to link the design it will never work. So it is of course architecture selection architecture selection is VSDL specific whatever it is a part of it is the law specific it is so analyze elaborate both these commands combined together are recommended for reading hardware into design again you could do elaborate minus n again it has not so many options it is VSDL specific it is law specific again there are you could read about the options here most important thing is design name we will see a bit more about date block later in the film the design name will be top limit of the design now in the last lecture we saw in the design of an accumulator the accumulator contains an adder a marks in the register block so the top level module which is the accumulator module will be given here now because as a top level module so you only give so you analyze all the accurate files but elaborate only from the top you should be very very clear about this concept that elaboration defines if elaboration should be done on the level at which you want to perform the elaboration the design name here will be the module link of the top level once you start working yourself in time compiler or once you see few examples we have example videos later on you can it will be very clear now there is one more command called v file now v file is used on RTL v file performs analysis and elaboration in the in one step this is exclusive this command is exclusive this should not be used along with either you use analyte elaboration or you use v file or a particular design you only use one either analyte elaboration or read form but read file does not perform any parameter passing or architecting it has limited some selecting compared to analyte elaboration it is recommended for reading map why do you want to read map net list now let us say you are doing a big design it is in a net list form it is a very common occurrence that if you are procuring from outside from some other team from some other company they might give you in a net list form they do not want to due to see the code the code is proprietary so if they will give you the net list they will give you the data you read file you specify if it is very long or ddc or dbm so on again you put to read about all these options in design compiler in detail however you can use this to read the RTL also if your RTL is simple enough it does not have it supports matroname reading if your RTL does not have parameterized design you can go and read about parameterized design if your design does not have parameterized design then you can actually use this read file or reading RTL also or let us say all your code is you are just compiling one module you are just synthesizing and testing only one module so you could reuse read file that your needs to do a separate analysis now let us look at one of the most popular g-tech sequential cell it is called sqgen or section so whenever sqgen compiler read the design it use this sqgen module to represent an inferred flip flop or a latch so whenever it encounters an all this block and sees and reduces that is there a latch or a flip flop it will map that logic onto a g-tech sequential element please note that this is a g-tech element it is not a technology it is not a standard standard cell it is a generic cell as you can see that this generic cell contains clock, data in clear and enable are asynchronous pins enable in asynchronous set this is asynchronous reset next state reset these are synchronous pins synchronous, cobalt synchronous pins so as you can see by the pin names itself you can actually represent either a flip flop or a latch or a cobalt flip flop number of sequential element just by some tweaking of the some you could set some constants and you can represent any sequential flop using a section let us take a flip flop example this is the code of a d flip flop with asynchronous reset how do i know it is an asynchronous reset because reset is a sequential pin as we discussed in the last lecture now design compiler as soon as it reads this code as soon as it elaborates please note elaborate is the command that will force a g-tech mapping so as soon as it elaborates it will map now q is now analyzes and sees that q is the output of the flop so now it will connect q it will instantiate a section, it will connect the q here it will connect the clock, clear is asynchronous reset data goes to next state, so next state is apparently data ok and rest all synchronous is synchronous clear and set asynchronous set they are all set to 0 synchronous enable is set to 1 to enable the function of this so usually in most of the cases you do not need to be concerned about the functionality of schedule because it will be what you are concerned about first thing is i will go into this and second please note in this state synthesis has not been done, you are still reading the design so once the design is read once it inputs flip-flops and mappings the design compiler will simply map flip-flops and mappings to accept them there are a lot many number of g-tech files also so there are g-tech or g-tech and g-tech and so it will map all that so the first step in this list we go back and try to remember is translation, translation and mapping so translation means reading of the RTL mapping means mapping the RTL into g-tech so this is one example where it will map the sequential logic into segment so let us look at very very important thing very very important the sort of reports which is called inference reports let us first look at the inference reports for registers now hgm compiler provides inference reports that will describe each input flip-flop or not so each of the all these sequential blocks will get mapped so design compiler after at the time of elaboration you say elaborate the top level design it will start throwing out reports the enabling or disabling of generation of inference reports can be chemistry on and off by using the sdn in reporting the sdn in prefix here represents that this sdn in or sdn in variables are used by the sdn compiler part of the sdn compiler so sdn compiler is actually the engine that reads in the level off so sdn in reporting level variables controls the enabling or disabling of these elaboration the tools by default if these are enabled these reports are very very useful during the analysis of the design so what do you do you read in the article and wherever you expected a latch or a flip-flop you look at this report so it will say for example for this as soon as it reads this module this module it knows two is a sequential element so it will add a suffix here it will add underscore reg to the name it should add the register so it will say register name is pure it will tell that the type is it deducted a latch if it inferred a latch the level here would be latch it tells what is the width it is one in this case it tells whether it is bus so width is one it is sort of bus mv tells it is multibit let me read for now these are very important these tell you that whether it has inferred an asynchronous reset asynchronous set, synchronous reset or synchronous set now this inference report is not consistent with the code here so now this code here tells it is an asynchronous reset so there should be a yes yeah so asynchronous reset has a yes multibit is no AR is yes that means synopsis design compiler has correctly identified that you intend to have a asynchronous reset here so for every register during the start of your coding process when you start synthesis first synthesis you should carefully look at all the the complete inference report for each and every register what about the combination logic let us say for example the combination logic is not correct and we saw few mistakes in the previous sector where few small mistakes could mean inference of a latch so if you see a latch here and you did not mean it then you can see then you can you can search for latch in this report you can press for the latch in this report elaboration report and correct all such cases usually the most common mistake is not specifying every case in the case I have it results in a latch you could grab for latch in this report elaboration report and correct all now let us see how there is an effective coding get rid of the unwanted register the sequential elements are not easily optimized off it is not like combination logic sequential elements represent timing sequence and design compiler in most of the cases when it sees a sequential element from the all this block in the ultimate code it will mark them to flip blocks and those flip blocks it does not know if they should be optimized off on our side they represent the timing sequence and they represent the way you post the RTL you have to make sure that your RTL should contain sequential element only when it is desired it is the beauty of the designer to make sure that if you have unwanted sequential elements obviously your area will be moved let us look at this case in this column you have always a positive slot you have a reset so now this is a question is this a synchronous reset or asynchronous reset answer is the synchronous reset it is not part of the sensitivity it is a synchronous reset count goes to 0 if it resets state if it does not get reset count implements there are 3 outputs here and bits or bits door bits and or and zore all get these values and gets and of all bits or gets zore of now when it reads zore in this particular always door if that starts here and ends here it sees it sees down and it sees off now you see correspondingly you see the impedance report like this orbits so it will append underscore edge orbits range count range orbits and width range inductive they have width block it is a positive block it specifies the width here one of them that is count range is a bus it did not although you expected that reset would be a synchronous reset it did not it does not have a y for the synchronous reset it does not have a y here so it is not deducing that it is not inferring that it is not inferring the synchronous reset I will tell you how to parent it how to make sure that you tell design compiler that it is a synchronous reset because it will affect the implementation and the way the net list is implemented let us leave it let us hold the partner we will see the it is not necessary how to encounter that but the important thing is that do you actually want and bits or bits and orbits So, you should carefully look at this code and decide in most in, but just looking taking a first look and just delving it a bit deeper into this, we can say that and bits, orbits and orbits are combinational operations on on the count and most probably it is not needed that they be represented by a system, how do we connect this code like this. Again we go back to the basics, first thing we have to separate combinational people. So, here is how we do that, we separated this equation part and the combinational part is another orders of. Now, when it when it see this all this job, design some pilot will assume obviously it will know that these are combinational outputs, it will impact only counter as we expect, not and bits or bits and drop. So, this is the way we have to be very very clear while coding what is sequential, what is combinational and code according to that. First very important and basically separate the all this blocks for combinational people, very very important. This will make sure that you are not having number of liftoffs are not more than what they should be. In the particular case of unloaded registers, so HGN compiler will not automatically keep unloaded registers or unloaded with blocks or larger in a design. These as we start itself HGN compiler knows these are not necessary and they are removed even before the designers complete the optimization. So, they are removed in the first class of optimization, what are unloaded registers, what are entrances of HGN example. So, a module few, who you have three inputs of critical speech, i n 1, i n 2, i n 3, your input clock or put out your two registers somewhere in front to your buyer save. Always at college clock, sequential element there is no reset here, someone gets i n 1 to sign in 2, come to get i n 1 to sign in 2 to sign in 3, but now the output here, the out there is only one output, out gets the someone's compliment, save gets someone or something, but is save an output, is save feeding to any output, no. There is only one output out and out get someone, what about some two, some two is it no way affecting any output, although you have a buyer, but this buyer does not go anywhere, you assign save to something, but the save is not going to the module module also. So, now HGN compiler knows, DC knows that save is not new and some two that is usually the great save is also not used, although some two is register flip flop, it is a valid flip flop, but the output of this flip flop goes to a buyer and that buyer is hanging, that buyer is not connecting to anything. So, the combination logic of save is not save and the register this flip flop some two is not save, both of these are optimized off. So, what you get is registers corresponding to someone, that is it. Again you have to very careful while coding, that if you are not using some two, do not even put it there, it will be completed. Otherwise if you intended to use some two, then you should make sure that these registers go to some output or drive some two, otherwise they will be optimized off. However, however in the initial design phase, let us say I coded this, I intended to use some two, but for a later period. So, and you want to still want to see what is the area impact. You want to analyze what is the area impact, but you do not know where some two will go for now. You can tell DC to keep the unnoticed registers. So, here is one more example, here is one more variable called hdl in preserve sequential, that tells DC which says to preserve. So, to preserve unloaded untrimmed flip flop and latches may be technically we said hdl in preserve sequential to all, to preserve only flip flop. So, if you said this to all, DC will preserve everything all registers, all and latches. If you said this to ff it will preserve only flip flop, it will preserve only latch, to preserve all unloaded sequential cells, including unloaded sequential cells that are used only as loop variables. Please ignore this for now, we do not need to go deal with this now, the loop variables loop variables are part of for a, for loop variables. And so, a loop variable in a in a software concept a loop variable is nothing, but the loop variable comes, but in case of since it is in case of hardware, a loop variable simply means that this hardware will be either repeated depending on the depending on the kind of logic you write or there will be some counter. So, not necessary it is not necessary that the loop variable will itself be a flop. If the if the for example, if the hardware is repeated, let us say you have a loop of file and it means that corresponding hardware should be repeated five times, there will not really flip flop that will represent the counter file. So, if you said this variable to all plus loop, it will start saving the loop variables also. Please you should be very careful in using this variable, because by default this variable is not set it has to instead of the default value means that it will not keep unloaded a distance, if you choose to enable it to all or SS to latch you should be prepared to see a real thing. So, this will be very careful while using this variable. Now, so we saw register inference, we saw few inference support, inference support of this type is the name five and so on, but there are some limitations on register inference that means I have already said very low, complete that low is not synthesized with only a subset is, we should be careful while writing RTF percentage and these are the limitations that tell us that in what all cases a system file will have problems in inferring a flip flop or a latch. So, whenever the model asynchronous behavior using a flop, the tool does not support more than one independent flop and asynchronous behavior is more if the all is block is clearly signal multiple independent is block support. We will see few examples of this later, it cannot infer flip flop and latch is being taken out, it assumes a flip flop in a latch it assumes will always have two states either 0 or 1, not ready. If you have a special library cell that has this case, you should instantiate it, it will never never in for even if you have a flip flop it is dead output in your standard cell library it will never use it, you should if you assign the value to be dead in your always loss it will error, it will error out, it is it cannot infer flip flop by direction thing, the flip flop then should be the input or output not enough. Again whatever special case, whatever cases are written here, if it is not supported and you have a cell that implements that, you should instantiate it swiftly, it cannot infer flip flop multiple flop input, again you should have flip flop with only one flop, that means you are always at the rate for which it should have only one flop, it cannot infer multiple clutches again it does not infer register bands, register files and a thing but small memory, so it will not infer let us say you have a small memory as you unknowingly you specified a register file as part of a target target has to be designed compiler will never infer that, inferring means it will never automatically pick up some hardware to replace your RTA, inferring means that, how do you encounter this? You do not code an RTA part manually to instantiate that part for example, you have a register file you want to use it, you instantiate a register file, you do not rely on design compiler to infer that thing so although we can instantiate flip flop by direction thing, design compiler will ignore that, it will be done as blackout, that means it does not know the functionality, so if you use an if statement to infer deep flip flop this is very important, the if statement must have corrected top level of the always flop like this if you have some statement here and you want DC to infer this is a if you think you have reset flip flop it will not do it, because the first statement is the only statement so very important coding guidelines whenever you want to write the code for an asynchronous set of reset flip flop, first slide should be always a reset always set, hence part you write your rest of the code but first slide should always tell DC what is the reset for something, you should very very clear about it so this tells you that you cannot arbitrarily code RTA you have a sort of a set of guidelines which you should follow to make sure that design compiler does the correct thing also correct we talk about finite state machines again there are set of rules about finite state machines the set of rules it must never be assigned a value other than defined state values finite state machine cannot have latches it must always have flip flops the FFM register all these register rules must never be module code function for the pass code the state register that is we have specifically talking about this register it cannot be a port of any module or function or task it can only use the operands like equal to or not equal to that is the comparisons and not any other expressions since the states will always be compared only compared, there will be any data operation or not there can be only one FFM design we have also have multiple FFM we need to have separate modules all codes are initial design so again bioreaction support is not supported in combination feedback rules are not supported although combination logic does not depend on state method in accurately presented FFM will only should have only module and optional sentimentals are FFM this is again a variable which tells a DC whether or not to automatically let us look at one example you have 4 states set 0 hold 0, set 1 hold 1 so states are represented by good way of coding so this is one hot coding that means that only one bit will be one time and so 4 states are represented like this lsv 1 hold 0 will have bit 1 1 set 1 will have bit 2 1 hold 1 will have the lsv 1 so 4 states for one hot encoding you need 4 bits so you by using parameter you define all these states current state is my current state is nothing but the state register so the first all this block is the sequential block this is the sequential block which tells DC that this part here is the state register very simple way this is a signal this is an a signal a cc current state gets next state if it is not cc and then in a separate combinational block which forms the combinational part of the FFM you write the operation that will take place based on the state based on the current state so current state you write so current state if it is something if it set 0 based on this you follow this diagram and you start coding if you have an input dependency you have you write it here like this if and hence and so on and make sure that all the cases are covered all the states are covered now in this case if you if you set the variable this variable FFM model is running to true this this statistic does not is not matching with the code but you could ask it will define it will tell you what the states are it will give you the parametric code here it will tell you how many number of states are there so you can match this inference code with your code and make sure that you write them by an understand what you wanted it to understand and we also see that this efficient follows each and every two messages this try to mark it one to one you can use this code as a help to code whatever FFM you want so first you should have a skate diagram and then you can code like this now let us look at a very important concept of sdl compiler sdl compiler so sdl what is a sdl it is these are special commands that will affect the action of sdl compiler and design compiler these commands are ignored by any other tool so they look like commands but there are special commands they begin with slash slash synopsis or slash slash synopsis there is one more notation but we will use this slash slash synopsis notation in all our examples so they carry special value for design compiler it will change if a dc reads those statements it will help you in some cases these are dangerous in other cases it will sdl compiler will report a syntax error it will use that as an option on a regular command we will see now let us look at the few most famous syntax directive when to use them when to avoid them so a thing such as now we saw that there is a rule that if we want to code sdl whatever the first statement should be it is very important now in most of the cases the tool will so as I mentioned before sdl set or reset cannot be will only be implemented only if you have a corresponding standard sdl the case is where sdl only then you could map it so in most of the cases if you have a sdl reset and you have correct coding done then you do not need to use sdl but in some cases if you see that even if you write the correct code I am not sure what that case might be but if you see that this is another old variable you will have not seen people using it a lot so you should try first sdl sdl sdl if it does not work you can write the comment like this sdl sdl sdl sdl sdl sdl sdl sdl sdl use in the statement and you say you see that this is the AC signal use this only on single grid signal or AC compiler will see it and then it will check whether on the on we check have you assigned any constant to register if you have done it it will try to look in standard cell that is if you indeed have an AC server set of a set clock and then it will man thus we have a signals we have a signal sync set. Now this is important this is used to infer at each flip clock with a signal set reset when we compile a design the section inferred by agile compiler when we map to a flip clock in the logic library with signal set in the pin or or if you will have it does not contain a flip clock with a signal set reset then design the compiler will use a regular DT clock and build the synchronous set reset logic in front of a decision. The choice depends on what method will provide a better option and we can do that. It is important to use the directive to label because it tells the thing that signal should be kept as close to register as possible during the now first first assume that you have a flop in your standard cell library that has a regular to register and you want to use it then you simply tend to see that ok by using sync set reset that yes I have I want to use this flop and this is my particular reset pin resetting unit this is the best case scenario. If you do not have a flop corresponding flop in your design now this you cannot map it so it will build a combinational logic. Now this directive tells we see that my reset pin is very important it should be kept as close to register as possible otherwise what may happen that this reset pin will be a lower priority signal it will go then might be a number of stages between this reset signal and your flop and correspondingly you might face problems in container simulation. This is not an easy example to tell right now at the level we are starting to learn to do it but as you go on you find that this is a problem in your design where you have complex synchronous system. So, if your reset synchronous set is being generated by some complex logic then and you want to keep that reset close to the flip flop then you use it. Let us see one example yeah again inference support is the way to go here you you read in the design you elaborate and you look at the inference support. If it tells that asynchronous set is yes your job is done. So, first my recommendation do not use this for a proper guideline that is first line should be hit set or reset. If you see that your corresponding option is set to y your job is done if you still see n here you can use this use the statement synopsis same set reset here the signal is set is set use set to 1 and and verify with respect to the inference with with the inference support is correct you can go there is one more inference box many times we have lot of case statements and we want a tool to implement this using a much not the combination logic not not have a thing whatever kind of combination logic this might increase the area or or decrease or decrease the performance but many times you would want that for there are many reasons why would you want that let us say your functionality is not final and you know that you might need to pay something in the next later then amongst type of structure amongst the type of structure is needed to understand as opposed to an ideal structure amongst kind of structure amongst the type of structure has many times it has better timing but more area so if you want a design compiler you want to make sure that it uses multiplication logic in your in your it picks up the next logic in your argument to multiplexer in your logic that is you need to use the first set is you can use the synopsis internal mask here then you can see your gtech weather so corresponding to sequential block you have much of block here it looks like this you are selecting this your beta you are output so if you you must use simple variables that control expression for example if we use not input a but the negative of input a it will not infer a much soft so whenever it infers a much soft we use it for much when it infers a much soft you can be assured that it will use the much kind of structure form and it is a library to implement a much speed in most of the cases unless and it will be timing more area than that so as a first as you start coding I will not recommend you to use this always from the last 3 from we saw 3 directive we saw 18 set we said I will not recommend that you use this if you do proper coding in a library has a corresponding set you are you are good you can use the set we said for complex synchronous types of input so these are any special cases again again the first thing you code you code without using the directive look at the inference reports see that whatever you expected is there if not then you can actually study about these directives and start using them so I am just that is why I am mentioning only the famous ones again with informa I will not recommend it to you guys unless and until that is very much necessary now comes the full case so the two things here full case and parallel place are the most popular and most misuse comparable you should be very very careful first thing you should not use it but why are we cutting this we are studying this because in case you get an RTA code and somebody has used it we should know what it means we should know what kind of dangers it is and we should know how to solve those problems so full case prevents SGA type browser from generating logic to test any value that is not covered by the case branches and create implicit defaults now let us see you have a set of case block and all the cases are not mentioned and there is no default what does that mean it means that you see that assume that in the cases that you have not specified you want to preserve the value of the output and correspondingly equal in for a latch you obviously do not know this so what is the reality this first way out is to correct your poop use the default statement make sure that all your case have this all your case is complete complete you mention all the cases but many times it is not possible many times the designer will assume that or will know that the input case we want to code will never come so it is not coded so then to prevent a latch you can use this you can say it is an obstacle case in front of the case statement case case statement and DC will now not infer a latch we will see few examples parallel case will tell DC if you do not use a parallel case and you have such a condition that more than one case can be true then it will make a priority kind of input it will make a priority logic DC will make priority logic to make sure that this prevents as in compiler from building additional logic to ensure that first preference of a few branch so there are more than one branches that are evaluated to prove and it will make sure that the first preference of the two branch is executed with more than one branch or two at a time this will be an extra logic this will be extra priority logic you want to prevent that that is why you can see that okay boss all these cases are exclusive that means at one point only one of them is true so please do not add any extra logic any extra practice of these will not do that now let's see the inferences DC will tell you as corresponding to each case branch each case in your design each case statement in your design DC will produce an inference report similar to the system similar to steps logs for example C67 line number it is M by line number and 5 number it tells me here that line C67 of some kind has a case statement and it is automatically filled in automatically that means that we haven't specified any that the final direction we haven't specified full case value but by designing a cell this case block has all the cases covered and only one case is true at one time this is by design so it tells auto and auto it is automatically this is the best case scenario what if you forgot to hold a case now here it is telling me that at 9108 the case block is not filled that means all the cases are not covered but it is done for the other case it will tell that okay boss it is full if it is not filled full and not even parallel it will say no and no the first two cases here tell us that some binary direction is not used now I have started using the parallel direction so this tells me that at 959 the case block it is full yes it is full but you have used a parallel case direction user means that you are telling DC as a user that please this as family case if you write full case it will say user slash user now this table tells us that what happens when the case analysis description is full and parallel no additional logic is related so you should achieve for this or a case blocks if you do not want priority logic if you do not want latch you should achieve for the first thing by design your code should be full and parallel too if it is full but not parallel then priority input logic will be there it is generate logic will show that branch is with first if it is parallel but not full that is a created if it is neither parallel not full then it is generate priority input logic and it will also create parallel please understand this table very very carefully spend some time over it try to see try to go in cases and see where you might miss and it does not become a full or does not become a parallel so on next is an example here so this is the case statement select is of 2 bit maximum it can have 4 so all 4 cases are coded so this is by default full and obviously by default parallel why because only one of them this can be true at one time cell can be 0 0 0 0 1 0 1 at one time all the cases are specified and one can happen at one time so it is parallel and full full you do not need any compiler like this second case select is 2 bit you can have 4 cases here but only 2 are coded so it is unknown what happens when cell equals 0 1 and 1 0 in this case there is some binary generate logic to test for any value that is not covered and create a default branch keyword is implicit it will assume it will assume a default branch and try to it will try to make sure that why here remain unchanged that is why it will use latches what you can do to correct this state use a default branch use a default branch or you know that in one of some cases the designer knows that cell cannot take value of 0 1 and 1 0 ever select an input here what if designer knows that cell will never take 0 1 1 0 and he is a bit lazy he does not write default here but writes a full case here you can do that now by telling in office DC that it is full case here it will assume it is full and it will not infer latches this is the case here here you see that an office full case is used here for the first case case is ion in it is stupid again only 3 are written second and third 4 cases report is not there in the first case statement condition ion is equal to 3 is not covered however designer knows that it is a full case here so no latches both final case and full case are used here which is again kind of a 1 1 input in designer knows that so current state is a reported signal it has 16 states only 4 states are coded here so only 4 states are coded here and this is 1 1 reported so designer knows here that only 1 bit will be more at a time and all other cases are embedded they will not even come this is a statement like that so instead of writing on the 15 cases here he writes what are the valid cases and tells the see that it is full and final code that means DC will not have any priority including it will not have any latches so this is you will see in my experience I have seen not a party like this because in this case the designer has he knows very well that these cases are embedded they will never occur and so his simulation test cases also do not have these cases so he is never facing the problem of simulation synthesis but again he wanted to know that designer should know what we do if you are not confident if there is even 1% chance that these cases can occur then please make sure that by design your case block should be for a thousand and there should not be any need to use the full case of talent so a word of caution a final word of caution although the full case directive although both full case and report clauses prevent flash inference they have the same meaning the full case directive asserts that all input values have been specified in both report clauses this is for the case where you do not have default and you are using full case you are telling the see that assume assume that all are covered but the default clause explicitly specify the output for any undefined input form now what is the difference in terms of the hardware generated in terms of hardware generated in the first case let us say let us say we take a case here now here let us say I write default out is equal to B now in this case let us say there is some hardware generated compare it with the case where default is not specified now if default is not specified it is not possible to give DC will assume the value of output such a value of output we will assume some value just 0 or 1 or 2 or 3 whatever such that the area is minimal so it is like a part of my optimization but let us see we specify default here until and fix the value of output it might increase the area bit why because now this value is not don't give it is some other value so the optimization default here is better when compared to a non-toad case as you all know so this is the difference now what can we do we do not want to use the full case yet we want the hardware to be optimal in such cases use the default clause with an output value of it so we specify in this case we say default out is equal to X this tells that this tells DC that okay was this is full by design it will take auto image and now we have to use the don't give it frame optimization if we use full case directive the gate level simulation might not match the rpm why because let us say there is a case which occurs which is which you did not specify case block and the second case actually occurs then it will not match the hardware simulation whenever the case expression evaluates from an specified input value so this is the problem if you use the default case simulation mismatch can only occur if you specify don't give a condition and the case expression so in the any first case when you use full case and the simulation mismatch occurs it is difficult to develop and since you set the output value with X it is easier to develop so it is always preferable to use the default class and not use anything I will summarize this lecture this is the last slide so we saw we saw how to read the RTL what commands we use so for reading RTL I would recommend you can use read files or read the netlist so you will use analyze library then we saw we saw the example of inference report for register this is very very important to study to take some time and study the elaboration report that comes out after you read the article we saw how to separate population and people always want to make sure that number of registers is minimal we saw the coding style for represent there is one very good example you can follow this for your second coding then we saw very important concept of compiler synthesis direction we saw few famous synthesis directive again the recommendation is first code without synthesis direction only use synthesis direction when your coding style is not able to solve the problem because usage of synthesis direction when synthesis direction is not time is a tool it might cause simulation to be useful and simulation is not desirable condition it is difficult to develop you have to again review RTL code thank you


Hello and welcome to the session. In this session we are going to discuss the following question and the question says that, find all the 6 trigonometric ratios for the angle 4 pi by 3. We know that on unit circle in coordinate plane the ordered pair x, y can be found using trigonometric ratios as cos of theta, sin of theta, where angle measure is known. Here we have a unit circle whose radius is 1 unit and this angle is theta. Then, coordinates of point P which is given by the ordered pair x, y can be found using trigonometric ratios as the ordered pair cos of theta, sin of theta. So we have cos of theta is equal to x, sin of theta is equal to y, tan of theta is equal to y upon x, secant of theta is equal to 1 upon x, cos secant of theta is equal to 1 upon y, cot of theta is equal to x upon y. The sign of the trigonometric ratios will depend on the sin of x and y according to the quadrant in which they lie. With this key idea let us proceed to the solution. We have to find all the 6 trigonometric ratios for the angle that is 4 pi by 3. Now we are given this angle in radians and to convert this angle in degree measure we multiply it by 180 upon pi and we get 4 pi by 3 as 240 degrees and here we see that 240 degrees lies between 180 degrees and 270 degrees. Now let us draw a unit circle with center O. Here we should note that the radius of this unit circle that is OA is given by 1 unit. Now the terminal side of the angle is in the third quadrant which makes 240 degrees angle in anticlockwise direction. Let this point be m such that O m is equal to 1. Now we draw perpendicular from m on x axis. Let this point be n. This is the point where this perpendicular meets the x axis. So now we have the right angle triangle that is triangle O n m and we need to find this angle theta and we know that this total angle is 240 degrees and this angle till here is 180 degrees. So we can say that the remaining angle theta is equal to 240 degrees minus 180 degrees which is equal to 60 degrees or we can also write it in radian measure as pi by 3. We know that 60 degrees can be written as 60 into pi upon 180 radians which is equal to pi by 3 radians. So we have got the angle theta as 60 degrees or pi by 3 radians. Now we know that in the third quadrant x is negative and y is also negative. So here cos theta will be negative and sine theta will also be negative and we have sine theta that is sine pi by 3 and this is equal to sine of 60 degrees which is equal to square root of 3 by 2 and similarly cos of pi by 3 is equal to cos of 60 degrees which is equal to 1 by 2. From the key idea we know that on unit circle in coordinate plane the ordered pair x y can be found using trigonometric ratios as ordered pair cos of theta sine of theta where angle measure is known. So we have cos of theta is equal to x sine of theta is equal to y tan of theta is equal to y upon x secant of theta is equal to 1 upon x cosecant of theta is equal to 1 upon y and cot of theta is equal to x upon y. Now using the key idea we have on unit circle the ordered pair x y which is equal to the ordered pair cos of theta sine of theta so in third quadrant we have the ordered pair minus of x minus of y and this is equal to minus of cos of theta that is minus of 1 by 2 and then minus of sine of theta which is equal to minus of square root of 3 by 2 so ordered pair that is minus of x minus of y is equal to minus of 1 by 2 minus of square root of 3 by 2 that is the ordered pair minus of 1 by 2 minus of square root of 3 by 2 using this we shall find all these six trigonometric ratios for the angle 4 pi upon 3 and thus we write x is equal to cos of 4 pi by 3 which is equal to minus of 1 by 2 y is equal to sine of 4 pi by 3 which is equal to minus of square root of 3 by 2 similarly tan of 4 pi by 3 will be equal to y upon x that is minus of square root of 3 by 2 whole upon x that is minus of 1 by 2 and this can be written as square root of 3 then cot of 4 pi by 3 is equal to x upon y which is equal to minus of 1 upon 2 whole upon minus of square root of 3 by 2 and this is equal to 1 upon square root of 3 then secant of 4 pi by 3 is equal to 1 upon x that is 1 upon minus of 1 by 2 and this is equal to minus of 2 similarly cosecant of 4 pi by 3 is equal to 1 upon y that is 1 upon minus of square root of 3 by 2 and is equal to minus of 2 upon square root of 3 thus we have got sine of 4 pi by 3 is equal to minus of square root of 3 by 2 cos of 4 pi by 3 is equal to minus of 1 by 2 tan of 4 pi by 3 is equal to square root of 3 cos secant of 4 pi by 3 is equal to minus 2 upon square root of 3 secant of 4 pi by 3 is equal to minus 2 and cot of 4 pi by 3 is equal to 1 upon square root of 3 which is the required answer this completes our session hope you enjoyed this session


Family Theater presents Walter Brennan, Betty Lynn, and the Honorable Frank C. Walker. The Mutual Network in Cooperation with Family Theater presents Walter Brennan and Betty Lynn in A Star for Helen. To introduce the drama, your host, the Honorable Frank C. Walker. Thank you, Tony LaFranco. Family Theater's only purpose is to bring to everyone's attention a practice that must become an important part of our lives if we are to win peace for ourselves, peace for our families, and peace for the world. Family Theater urges you to pray. Pray together as a family. Tonight, Family Theater takes great pleasure in presenting a star for Helen, starring Walter Brennan as Brannigan and Betty Lynn as Helen. It seems Ed Brannigan, and I was thinking, maybe I ought to tell you about Helen, Helen Jackson. She's a nice kid, one of our tenants. Being as that I'm the janitor of this house, I get to know the tenants. I've been here for over 20 years, and I know Helen. When Helen was a kid, six years old, she used to come down into the basement and talk to me. You see, I always made it a point to keep a bag of jelly beans handy. This is like it was. Hello, Mr. Brannigan. Hello, Helen. School out already? Uh-huh. Been a good girl in school today? Uh-huh. I got another gold star in my book. Another one? It's for my ABCs. See? I'm proud of you, Helen. Let me see.  That's because I'm smart. And how's your behavior? I'm good in school. Are you always good? I'm always good. Now look here, Helen. You wouldn't tell me a lie, would you? No, Mr. Brannigan. It's a sin to tell a lie. My mother told me. That's right. It is a sin to tell a lie.  What would you think of a little girl who cheated with gold stars? Cheated? With gold stars? Yeah, I mean, suppose a girl in one bean were that every time she got a gold star, she'd get jelly beans. Just like I give you jelly beans every time you get a gold star. Suppose this little girl should go to the Five and Tinsons store and buy a box of her own gold star. See? And suppose she pasted her own gold stars in her book just to, well, just to fool people and get jelly beans. I didn't paste my own gold stars. Honest, Mr. Brannigan? No, Helen. Honest, I didn't, Mr. Brannigan. Here, don't go away now, Helen. Come here.   And a good girl don't disobey your own mother. Does she? Does she, Helen? No. Okay. What does a good girl do? I don't know. Well, a good girl honors her father and mother, just like it says in the commandments. Honor thy father and thy mother. I haven't got any father. Okay. But it's a commandment anyway. Now say it after me. Thou shalt honor. Thou shalt honor. Thy father and thy mother. Thy father and thy mother. You promise me you're going to do that forever and ever? Yes. Okay. Here's your jelly beans, Helen. Yeah, she was a skinny little brown-eyed thing. Black hair, smart as a fox. She sure had me fooled for a while with that box of gold stars she bought at Woolworth's. Yeah, the kid was always hungry. Hungry for something. Jelly beans, donuts, but mostly for love. Kids love to be loved.  When Helen grew up to be 12, well, this is like it was. Hello, Helen. Hello, Mr. Branigan. You've been sitting out here all afternoon on this stoop. It's nice and sunny here on the steps. How's high school coming? Are you getting the algebra any better? You know how much does X equal and all that stuff? It's still sort of tough. Pretty hard to get gold stars in that stuff, Helen. Remember the day long ago when you had your own box of gold stars? Seems so long ago. And remember down in the basement? Uh-huh. That was the day you told me about the Fourth Commandment. That's right. Honor thy father and thy mother. You never forgot that, did you, Helen? No, Mr. Branigan. I've always remembered it. What's the matter, kid? It's nothing. Yeah, it's nothing. I've been watching you, Helen.  It's really none of my business, Helen. I mean about your mother. She keeps... keeps drinking, Mr. Branigan. I know, kid. For almost two weeks. Every day. She stays in the room. Why do people have to keep drinking? Oh, different reasons, maybe. Some people got a lot of worries, so they drink. They want to get troubles off their minds. They want to be happy. My mother isn't happy, Mr. Branigan.  I'm sorry for your kid, honest I am. But, well, your mother's a good woman, Helen. You know that. She'd be all right if only she didn't... And remember, she worked hard all her life.  Oh, I don't know, someday she's going to snap out of it. You wait and see. I've said a million prayers already. Okay. Keep saying your prayers.   Sometimes I wish I could run away and never go upstairs into the rooms again. Yeah, I know what you mean. But remember what I said to you down at the basement. All right, Mr. Branigan. I remember. Thou shalt honor thy father and thy mother. That's the idea. No matter what happens, kid, that's the angle. And when you do that, Helen, you'll get a real gold star in the books. Of course, I'm only a janitor, and I don't know much about psychology and things like that. And as for Mrs. Jackson, Helen's mother, well, I ain't making any conclusions. All I know is... she's a good woman at heart, but she hits the bottle. My heart bleeds for the kid, Helen. Like the day Helen was going to be graduated, for example. That's swell, Helen. You're the what? The valedictorian. That means I give the closing speech to the graduation exercises. Swell, swell, swell. I knew you had it in you. But what I came to see about is my mother. Yeah? I'd like her to be at the graduation. She'd be sure, naturally. I bought her a new dress. That job after school, huh? Faced dividends. It's a beautiful dress, and she looked lovely in it, but I'm afraid she may go off again.  Ah, stop worrying. It's going to be on a Friday night, so... Yeah, sure. So could you... it's a scheme just between us.  Just a bit of psychology. Psychology?  Tell her how nice she'll look in the dress. Tell her about the graduation, and how proud she ought to be, you know, with me, your own daughter, the valedictorian. Hey, you'll leave it to me. She'll be wearing gardenias, and she'll look like Queen Victoria, and she'll be as... I was going to say she'll be as sober as a judge. I was going to say that to Helen. Helen who was looking at me with her sweet, brown, hungry eyes. Jesus. Well, kid, Helen is. What comes to graduation night? I'm walking upstairs to Jackson Flat. I'm knocking at the door. Hello, Helen, I'm here.  Got a cab downstairs. It's all right, Mr. Branigan. You needn't bother. Wait, what's the matter, Helen? Mother doesn't... she doesn't want to go. Thanks, anyway. What do you mean? Again? You mean? Hello, Mr. Branigan. I was expecting you. Are we ready for the graduation? Go inside, Mom. Back in the room. Don't push me. Go back in the room. What's your children for you, Mr. Branigan? Present generation. No respect. Go back in the room. What are you yelling about? It's all right, Helen. It's not all right. It's not all right. It's awful. You make me tired. No sense. No sense in your head. I'm sorry, Helen. I thought she'd be okay.  Thanks, anyway. Thanks for everything, Mr. Branigan. Come here. Out in the hall. Close the door there. Now look at me straight, kid.  Almost a woman. I want you to go down there and give your valedictorian speech. See? Forget about... up here. Leave it to me. You go down there to that graduation and be a credit not only to yourself, but also... A credit to my mother, too. Is that it? Don't say it like that, Helen. Be a credit to your mother. As we, your children, go forth into life, Alma Mater. We promise to honor your traditions. You have opened our eyes to the beauties of the arts and sciences. You have guided us, your children, at your knee. You have nourished us and pointed the way like a true mother to a better and richer life. We shall always cherish your name. We shall honor you. We shall love you always. Alma Mater. Alma Mater. Our mother. So the kid gets graduated like millions of other kids and she goes to work also like millions of other kids. Like yours and mine, for instance. For three years she worked down in the department store. She sells colognes and fancy bath salt and things like that. To see Helen standing there behind the counter with her nice brown eyes looking at you over the little bottles of perfume, you'd never think she had a worry in the world. For three years she worked like that. Then one afternoon, clink, the fireworks start up at Helen's house. But Helen, maybe you're making a mistake. I've got my mind made up, Mr. Branigan. Just help me with these bags, please. Where are you going? I'll find rooms. I want to see how normal people live. You're walking out on me, Helen? Walking out on you! Why, why, you drunkard! Easy, Helen.  I was ready to spend the rest of my life supporting you if you would only try to live like a decent human being. Well, I'm sick and tired of this rotten routine. I'm tired making excuses to people. I'm tired of being shamed, disgraced. Well, I didn't know what I was doing, Helen. I didn't mean to go down to the store today. What happened, Helen? Ask the girls at the department store. Ask the boss, ask the customers, ask everybody. Oh, they've got me labelled now. Like one of the bottles on the shelf. Helen Jackson, poor girl, alcohol base. So Helen moves away, takes up a room somewhere downtown. Same old story. And let me tell you, it ain't the first time I've seen homes broken by what is commonly referred to as a demon rum. A drink? I like a drink myself once in a while. Well, as my good friend up at St. Matthew says, it ain't the use but the abuse. Of course you know that, as well as I do. And there wouldn't be any use in me telling you this story of Helen Jackson if it wasn't for something that happened about six weeks later. It seems she was standing behind the counter and a fella walks up to her. Would you help me, Miss? Surely. I'd like to get a bottle of good perfume. We have several of the standard brands, any particular. Oh, no, this has to be special. I see, for the one and only? That's right, the one and only. Oh, your mother? Well, what's the matter? Your mother's rate perfume? Oh, yes, of course. You see, it happens to be her birthday and, well, she's getting on in years. It's nice to keep reminding him that they're not getting old. I figured a bottle of good perfume... Say, what's the trouble, Miss? Nothing. You're not sick, are you? What kind of perfume do you want? Oh, uh, well, uh, that kind. Twelve dollars, please. Okay, thank you. That was like on a Tuesday. On Wednesday night, what do you think happens? This is a nice place, Joe. I thought you'd like it. These boots make it kind of cozy. But get back to my favorite subject. I had a hard time forgetting the way you looked at me over the counter yesterday. Is that why you made the dinner date? Maybe. I like lonesome people. What makes you think I'm lonesome?  Am I that tragic? I didn't say you were tragic. I said you looked lonesome. And I like lonesome people. You've known each other for only three months, Joe. I know it, Helen, but it makes no difference. If I lived to be a million, I'd feel the same. I love you, Helen. Say it again, Joe. I love you, Helen. Oh, Joe, I'm not lonesome anymore. If you'll only say the word, I'll... I'll take you right home to the family, introduce you. You'll find them a bit stuffy, perhaps, but you don't have to be scared. No split-infinitive, you mean? What do you say, Helen? Joe, I'd love to marry you. That's all I want to hear. Well, come on, kiddo. Let's spread the good news. We're wonderful tonight in there.  You better take me home now, Joe. Well, what's the rush? Let's stay here in the garden for a while. Really? I'm tired tonight. Yeah, sure you are. But I'm going to fix that up forever. Helen, Helen, I never knew until tonight that you were practically an orphan. Well, your folks wanted to know, Joe. They were curious about background. That's why I told them about my father. Died when I was too young to remember.  Yes. My mother died when I was 12. If she was anything like you, Helen, she must have been a beautiful woman. My mother was... She was a lady, Joe. Well, that's how things were developing. So a couple of nights later, I'm sitting in my room and I hear a knock on the door. Come in. Helen, what are you doing back here? Hello, Mr. Branigan. I came back to pick up some papers. Papers? Personal stuff, birth certificate, letters. Is my mother upstairs? No, I saw her go out about 10 minutes ago, Helen. But it will be easier with her out of the way. You seem to be in a big hurry, young lady. I am. Joe and I are getting married this month. No, that's nice, Helen. May as a swell wants to get married in. We're going to Massachusetts. I see. We're settling down there. Oh, you mean for good? Yes. Well, I guess we won't be seeing much of you from now on, huh? That's right. I want to get away forever from everything that could remind me. I'm Helen Jackson. We went upstairs together. Helen and me. The flat was, well, still sort of dingy looking. I could almost see Helen's shiver when she went in. She walked straight to her room and got the papers. Then, all of a sudden, Helen was looking at something. It was lying on the chair. It was a book. A nickel composition book. That's an old bookie yours, Helen. The one you used in the first grade, remember? Where did she get it? I don't know. She must have saved it all these years.  You... You mean she's been saving this book? Yeah. She takes it out lots of times, Helen, and looks at it. She... Well, she always says to me, Helen got more gold stars than any kid in the world. Yeah. Gold stars. You know how parents are, Helen. They're proud of the things you get in school, even as far back as 1A and 1B. Gold stars. Maybe you better believe in now, Helen. She might be back any minute. All right. And you might as well take this book with you. After all, they're your own gold stars. The kid went out of the house that night. She was lonesome. All of her life she was hungry for something, mostly for love, like everybody else. And in a way, she had a perfect set-up. Yeah. A perfect set-up. Later, she told me about the set-up. That's right. It was a perfect set-up, Mr. Branigan. Oh, it was wonderful being near Joe. I guess I love him about as much as it's possible for a girl to love a fellow. Sure, I might have been happy with him and his people. But I was playing a game, Mr. Branigan. It was a funny game. I knew it. I knew I was walking away from something, turning my back on something.  You know, Mr. Branigan. Sure, Helen. I know what you mean. I was thinking of my mother. I lied about my mother. They had never understand. Even Joe might not understand. You see, I wanted Joe. I wanted to keep him forever. I wanted to pull the curtains on everything I was supposed to remember. I wanted to forget I was Helen Jackson. I wanted to forget that I ever had a mother, but not after that night in my mother's room when we found that crazy book. I kept remembering that day down in the basement long ago. I was five or six years old, and you said... Oh, shout honor. ...by father and by mother.  Well, I had a million gold stars, with Joe, with the House in Massachusetts, with all the simple things that any girl wants in this day and age. Security, affection, love, all these things I had.  Maybe it's my conscience. Maybe it's being old-fashioned. Maybe it's being sentimental. I know what you mean.  I love my mother, Mr. Branigan. I love her despite her weakness. That's the truth. I couldn't walk out on her. Not even if it meant a billion stars. So... So I had to tell Joe. So I'm waiting on the stoop that night, if the moon is big and yellow, coming up behind the tribera bridge. Then I hear footsteps along the street. I'm waiting for those footsteps. Helen's. She's carrying her suitcases. Hello, Mr. Branigan. I've been expecting you tonight, Helen. Why? Oh, I understand you called something off today. A marriage or something, I think. Who told you? A guy who's waiting for you in the hall. Hello, Helen. Joe. How did you know where I lived? Don't ask so many questions, Helen.  Maybe you got something to talk over. I got a little work to do in the basement. Yeah. When you're a janitor, your work is never done. Well, what are you going to say, Joe? You were willing to come back to this? That's right. To my mother. It's not your style, is it, Joe? No gardens to walk in. Helen, all of a sudden the picture is getting clearer. You know, I never really knew you till now. I think you're the nicest and bravest thing I've ever met. You were willing to go all out for someone who was down. You were going to stick when the going was tough. Okay, Helen. That's the way I want it. Why, you're the kind of girl I need. I mean that. You're only a girl, but you've got strong arms. Beautiful arms, Helen. You need a strong back, too, Joe. Yes. They call them crosses. The crosses you've got to bear. May I help you carry some of the load? You mean it? Oh, Joe. Hold me. Never let me go. And of course I don't want to get too nosy, so I let them sit there in the stoop by themselves. But I did take a peek a little later. And I saw him with his arms around her, which is a nice thing for Helen. And also I noticed, over the tributary bridge right behind them, the moon, big and golden. It was coming up. And I can't help thinking as I watch it, how much it looks like a big gold star. Another star for Helen. This is Frank Walker again. As I look back over the years, the thought often strikes me that so few of us really plan our way of life, having a real goal in mind. We live our lives quite casually, meeting grave situations head on, not contemplating a better and finer way to solve our problems. Surely there is a need in this tragic world today to give some thought to our way of life. With all our amazing advancement in education, in culture, in science, we had all planned and hoped for a happier, more pleasant, more peaceful life in a more peaceful world. Yet we find ourselves more confused in a more confused world. We find a confusion unparalleled in all history. We have missed in planning our way of life, and why? I have long since reached the definite conclusion that advancement in education, culture and science, not based upon the dignity of man and the existence of a God in heaven, will but leave us all hopeless and helpless individuals in a confused world. The holy humble man who is the directing head of Family Theater is a superb force for good in bringing those who come within his horizon back to the fundamental doctrine. This great crusader, in his own simple fashion, is telling us in America, and I quote, there can be no peace without recognition of a God we can love and be loved by, the God with whom we can commune spiritually and to whom we can and must pray. With all my heart, I publicly commend him and his crusade for family prayer. With humility, I accept his philosophy that the family that prays together stays together. It is of vital importance to society that families stay together, that we recognize a personal God to whom we pray is not only important, it is absolutely essential if peace is to come and to endure in this sorry world.  Family Theater has brought you Walter Brennan and Betty Lynn in A Star for Helen. The Honorable Frank C. Walker was your host. In the past were Irene Tedrow and Whitfield and Whitfield Conner. The script was written by Timothy Mulvey with music composed and conducted by Harry Zimmerman and was directed for Family Theater by Joseph F. Mansfield. This is Tony Lafranco expressing the wish of Family Theater that the blessing of God may be upon you and your home and inviting you to join us next week at the same time when Family Theater will present Joan Leslie and Mel Blanc in The Adventures of Pinocchio. Join us, won't you? Family Theater is broadcast throughout the world and originates in the Hollywood studios of the world's largest network, the Mutual Broadcasting System.


In many body quantum machine vector, please 15 plus 5 Thank you. Just a thank you the organizers for organizing this conference and giving me the opportunity to present our work here So I'll be talking about optimal control in many body quantum machines, so is it find the audio Recording in progress So, okay, so I'll be talking about optimal control in many body quantum machines So this is a work that I'm we're currently doing in collaboration with my collaborators Sive engine empathy and azimka what will cut in IIT Bombay and we are kind of like hopefully it will be done in a few more weeks so What I mean by optimal control is say we have a generic system with a some generic Hamiltonian HT Which is can be written as a sum of two parts a H naught and H one which are in general set time independent and H one is something that we cannot control and H naught says the control parameter which he controls through the through this tuning parameter lambda t Now we start at some initial time team at some arbitrary initial state psi in The state psi t of the system at any time t should evolve according to the Schrodinger equation and it depends on lambda t and the final target is we want to reach at some Say some particular final state at final time tf And so the problem that we are looking at is find the optimal form of lambda t subject to certain constraints Which maximizes or minimizes some target function example energy at the final time tf So the problem is very general It is just a very like a basic optimization problem Now there are different kinds of optimization the kind that we'll be looking here is something called crab optimization in which We say that no matter what the target is what the problem is Let's say we write this lambda t tuning parameter as a Fourier series Why because in principle any arbitrary function can be written as a Fourier series So for I mean large enough number of frequencies. So this air beer omega. These are the Fourier coefficients and Fourier frequencies and we take only say finite number of frequencies given by this m and ST is some parameter which is zero at initial and final time and one in between it just makes sure that the Control pulse is a constant at initial and final times So the optimization protocol is We numerically optimize air beer omega r to generate an optimal pulse Which minimizes a target function which can be energy which can be fidelity something Subject to certain constraints for example the strength of control that is what is the maximum amplitudes of air beer omega r So we start from an initial guess pulse air beer omega and find f and then search for a new set of air beer omega r which reduces f and we repeat the process and The expectation is after many iterations. We should reach the optimal set of air beer omega r which minimizes f Now all these are very basic like optimization problem. Everything is fine But the problem comes when you want to optimize a many body system the reason is The Hilbert space dimension goes as exponentially with the system says it is 2 to the power of n So that to find the optimal pulse for a many body system It also can be expected to increase exponentially and it is even more I mean it is a generic problem in any quantum mechanical setting but even more so in optimization because in optimization it Needs many several trial and error basis So the question is how can we find optimal pulse for many body quantum systems? And this is a very important problem also for say quantum technologies when you want to make optimal quantum machines many body quantum machines So the solution we are proposing is let's say we find the optimal pulse for a few body system Which can be done say within a few minutes or a few hours and then if we can use that same optimal pulse for a scaled up system size Now this is of course seems a too good to be a solution to be applicable in all cases However in some cases for example say quantum phase transitions, which are just phase transitions that occur at absolute zero temperature due to quantum fluctuations and It should we think that it should be applicable And there are other things like collective coupling in which say many body system acts like a single Many spins act like a single large spin But today I'll be talking about only about quantum phase transitions and the application of this method Can be done in several quantum machines like say quantum batteries, quantum heat engines But now I'll be talking only about quantum batteries how we can apply this kind of method in to optimize many body quantum batteries Before I go to quantum batteries, let me let me just just I mean maybe most of you already are aware But let me just remind you let these dynamics of quantum phase transitions That depends on something called the adiabatic impulse approximation Which basically says is say we are tuning this parameter lambda t that I introduced before say there is a critical point at lambda is equal to lambda c So if we quench if we change lambda The system evolves adiabatically I have from the critical point while non adiabatic excitations result close to criticality So what it means is the energy gap between the ground state and the first excited state? That is the delta which it goes to zero at lambda is equal to lambda c So there is a because of time energy uncertainty relation. There is an inherent timescale That is one by delta which diverges close to the critical point shown here and the kibble's mechanism which is very much relevant for this kind of systems driven out of equilibrium quantum critical systems driven out of equilibrium So what we say is there is a another timescale associated with the change of Hamiltonian that is delta by delta dot And there is a competition between these two timescales so whichever wins like I from the critical point when this delta is large the system evolves adiabatically but when this second timescale takes over it There are excitations And this lambda one hat which can be or the t hat that is a time at which we get the boundary Can be solved from this equation and which basically gives the kibble zero scaling Which says how much excitations or how much defects are there? Here tau is the rate of quench say and this new d is the dimension new z at the critical exponents So this is the basic this dynamics of quantum phase transitions And we will be using these dynamics to study quantum batteries Now quantum batteries are just batteries made with quantum systems Like classical batteries. They store energy. So the quantifying performance is given by algorithmic Which is the work capacity that is the energy minus energy minimum at the same entropy Which basically means how much work we can extract from a battery And so the question that we ask is what is the optimal way of charging a many-body quantum battery That is which will maximize this argotropy Now the kind of systems that we'll be using is uh, I mean any system can be used But as examples, uh, say we can take an integrable model which can be like this x y model Which is basically there are ferromagnetic interactions along x and y direction And there can be a transverse field along the z direction and this hd is the tuning parameter which we will Control to charge the battery and there is phase transition at h is equal to plus minus one Or we can have a non integrable model, which basically means that the integral model can be written in terms of non-interacting momentum modes But in non integrable model cannot be written like that And here also we can have a ferromagnetic interaction along z and field along x and z And again hd is the tuning parameter and we have phase transition at gamma is equal to one h is equal to zero So these are just two examples of quantum battery models Now as I said, uh, we can charge the battery by changing this hd. Now, let's see how we can charge it in this left Figure this red dashed line says that the hd we are changing linearly We are increasing linearly and again decreasing. This is the green is the quantum critical point quantum phase transition So the orthography that is the energy that is excited Excitation's are shown by this red curve. This is in the integrable model. So it increases and then finally saturates to this value However, if instead we use this crab optimization and optimize this hd Then we get everybody's strange like a pulse this blue curve And then we see that the orthography increases decreases and finally saturates to a value which is much higher like four times almost higher And this is done for hundred cubits We could optimize for hundred cubits because it is an integrable model Which has uh, which basically the number of degrees of freedom just is uh, linearly proportional to the system size So we could do the optimization for hundred However, this cannot be possible for a non-integrable system in which the hillbill space dimension the number of variables increases Exponentially with the system size So we ask can we use the optimal pulse say for 10 cubits which can be done in a matter of minutes or hours To improve the performance of a hundred cubit quantum battery If we can do so it will solve a huge problem. That is how to optimize like Hilbert systems, which has a very large Hilbert space now to The problem can be complicated because the pulse that we are be that we will use is a very complicated pulse It can be the summation of different elements a or b or omega. We don't know these are something that is optimization protocol gives us However, nevertheless, we can still use the kibble's red mechanism to try to answer this question What we can say is this delta t that is the energy gap Is always a function of this uh coefficients and the time and the rate of quench the tau So this kibble's red mechanism is always valid even in this case And we can say that there is this competition between the inherent timescale and the timescale at which we are changing the parameter And from this again, we can get this t hat. Uh, that is the impulse to adiabatic transition line And the important crucial thing is this t hat is independent of system size as well As long as the system size is much larger than the correlation length Close to the criticality this new is the correlation length exponent and the lambda is the distance from the critical point So from there and we can also say that the normalized arguably that is the energy Work capacity of the battery is a function of the probability of excitations and the normalized Hamiltonian so Basically with these kind of calculations what the basic the main message is That normalized algorithmic can be expected to be independent of system size for an arbitrary pulse And the uh implication of this can be understood from these two plots This is for an integrable system the x axis is time and the y axis is the number of spins So as can and this is the argue we are plotting the ergotropy as can be seen For a single time as we keep on increasing the number of spins for a particular single pulse The ergotropic basically remains the same There it is shown by the color So even if we keep on increasing spins the the normalized ergotropy that is the ergotropy divided by the maximum possible ergotropy Uh that normalized ergotropy remains the same And even more uh like remarkably it can be seen in this uh plot for non integrable system This right hand plot which is uh for this non integrable model in which What we did was the x axis is the number of spins So we have say a five spin battery we normal we optimize it We get the optimal pulse for the five spin five spin battery which can be found in a matter of minutes Now we use the same pulse however keep on increasing the size of the battery Now what we see is these green and blue curbs are yellow and Green curbs these are from the critical point What we see is if we just use the five pulse five qubit pulse for Seven eight or ten qubits It very rapidly decreases the ergotropy So what it means is a pulse that we got optimized for five qubits is not good enough for 10 qubits or 15 qubits So scaling up of uh contra machines is a is a problem here However, the picture changes Significantly close to criticality Here this blue curve is for quantum critical battery here again We give the we optimize for a five qubit battery and then keep on increasing the battery size However, the pile still works Good even for 10 15 or up to 17 qubits. So what it shows is how we can optimize a many body quantum machine So just to I mean that to summarize this result this five spin means there are 32 variables So we optimize a problem which contains 32 variables Then we use that solution To optimize a spin chain Optimize a battery which contains 17 spins that is 131 thousand variables So if we do just brute force method this uh many body quantum battery this 17 qubit Will take a few weeks to optimize 17 qubit quantum battery However, because of this quantum critical region, we can optimize it within a matter of minutes by optimizing a five qubit battery and uh So just uh Couple of more things for this integrable case actually the problem might be a little bit easier because in integrable We have uh if for integrable a many body system of size n we have n non-interacting quasi particles So a pulse which is optimal for quantum battery of size n works for n prime much much greater than n as well Even I from quantum critical points because in integrable systems. They are kind of non-interacting modes however, uh, so The conclusion is That say we aim to optimize a quantum critical machine of size n much much greater than one here I have only shown a battery, but this uh theory should work for any arbitrary machine or any arbitrary quantum system Now the question is how to find a power So the way we do it is we find a pulse for a system Or a quantum machine of size n prime which is much much less than n Because this n for a large n the Hilbert space dimension is large. So optimization is not a practical thing However, we can always optimize for n prime much much less than n Then we use the same optimal pulse for this n body quantum machine And this should work in close to quantum critical points And the advantage is significant reduction in optimization time of quantum machines or many body quantum systems And what it shows is quantum phase transitions are highly advantageous for optimal control of many body quantum machines Thank you Thank you victor uh questions The five and uh, excuse me Hello Our liner, sorry. Yes, please Oh, okay, the the five and uh 17th qubit example that you had uh So, um How uh, have you uh, is it possible to actually do the optimization for seven 17 spins? Uh, right. So, uh, not I mean here we used a trial of technique So which uh kind of instead of looking at the whole Hilbert space We just take only a few relevant eigen vectors So it might not be possible to do uh to do optimization Using exact diagonalization, but with some techniques like trial of techniques some approximate optimization can be done But uh, it is for 17 it can be done But we can also say have a 50 qubit machine in which case maybe the those techniques will fail So in that case, we need to optimize for this five spin and then uh use it for this mini spin Oh, no, I was curious how close the The value between uh Using the the parameters from the five spin case Is to the exact value in the seven spin? Oh, yeah, so Right, we are looking at it won't be exact, right? It won't be exact. We are looking at that. Uh, but I mean Yeah, I am not claiming that it is it is exactly matching. However, uh, it is it gives a very good result. That is the thing Oh, thank you I have a basic question about your your setup. So since you we were talking about batteries I was expecting to hear the word work And you're using ergo tropy and instead which seems like Work capacity, but okay, but you're defining it as essentially as the residual energy is what I would call that quantity So what about traditional work? Do you have any any results for what you would get out of it? Let's say a Carnot cycle with this kind of a system, right? So, I mean it is same as traditional work, but in heat engines what happens is the work is like we are getting from external heat Boots, so there can be non-unitury dynamics But here or everything is we are at present. We are looking at unitary dynamics only But is is your goal to? Maximize the ergo tropy minimize it exactly maximize usually in quantum handling say we minimize the residual energy, but here it is the opposite way how to maximize it So what is your initial state? Is it the ground state of Yes, with the ground state the ground state at a h is equal to zero Okay, so what about the excited states for for initial state? Uh, your conclusion I have to think about it because usually most of this quantum critical dynamics are Uh ground state Yeah Okay, I would guess even for excited states it should work because it the main thing that it uses is the correlation length diverges close to critical heating So I don't think it should depend on the initial state But I have to think about it. Thank you other questions The question online Can you open the chat? Okay, hi, victor. Uh, how about the optimization methods? Will they be same as crab that you used here? Uh other optimization methods, uh, I would guess so because the crab is just a technique that we are using to optimize But the main theory that we are using is that the correlation length diverges close to criticality and kibble direct mechanism That should be independent of what optimization scheme we are using Okay, other questions I did not quite get how this scaling is actually working So what how can you use the same method that you're using for five qubits for 50 qubits or more? Close to criticality what happens is that this energy gap goes to zero Between the ground state in the first excited state and from there the time scale diverges because of the time energy uncertainty relation Similarly, one can show that uh, like there is a corresponding length scale which also diverges close to criticality So this is the property of this quantum critical point phase transition. Okay. Good. I think we can move. Let's thank victor again


Manually focusing a diode laser. My name is Jim and this is The Edge of Tech. So I get a ton of questions about how I focus my diode laser. So I decided to make a quick video and show you how I do it. Now this is the way I manually do it. Sometimes I actually pull out a little USB microscope and that even gets me more dialed in. I'll do another video on that later on but first a very quick video on how to manually focus your diode laser. So what I want to do is open up lightburn, come on over to this icon right here which moves our laser head and click somewhere in the center and you'll see the laser actually move to the center. Then you want to take whatever you're gonna engrave on or cut and put it underneath that laser. So we're gonna go ahead and do that now. So in my case I want to work on a coaster so I'm gonna put a coaster right underneath it.  The next thing you want to do is make sure that your focal length is correct from the bottom of your fan shroud to this item right here. In my case I'm using a G8 lens so between 70 and 75 millimeters is what I need from what I've read so that's where I'm at. I'm at about 72 right here and we're gonna leave it just like that. Now what I want to do is come over to lightburn. In lightburn I'm gonna go to the move tab and you should have this fire button right here. If you do not have that fire button you want to come to the top left, hit edit, go to device settings and click enable fire button right here. This needs to be green. If it's not, make it green, click okay. If you do that you'll have to close lightburn, reopen it and then you'll have this fire button right here. So I'm gonna use 5% so I can see it through my glasses on the camera. Now I do this manually this way. I also have a USB microscope that I plug in and that helps me dial it in much better. I'll put a link in the description below and then I'll do a video later on on how to do that. But in this case I'm going to hit the fire button.  Now with my safety glasses on of course we know that we want this beam as small and as tight as we possibly can get it. Currently on the camera it just looks like a big blob, but that's okay. So I'm gonna reach under and I'm gonna turn that beam and if you go too far one way it gets really fuzzy. If you come back real slow you'll actually see it and it'll get fuzzy that way so we're too far. So I'm gonna go back and you can see it it'll actually start burning the paper when it's correct. Now there's a lot of people that do this at a much lower power and you can definitely do it at a lower power. I just prefer the higher power when I'm showing you for the camera. I just went back and forth until I found a very tight beam and if I move this around I don't know if you can see that but it actually is engraving a circle. Then I'm gonna turn that beam off in light burn. I'm just gonna click the fire button to turn that beam off and you should be pretty darn good. Now you want to make sure you do this every time you burn and you want to make sure that it's very tight. So that's the circle I just made right here and you can see it's super tiny little lines there. Now I know I am dialed in. Now if you're gonna do something like the Norton white tile method or something like that you need to be super super dialed in. With that I would do some testing. There's some really good test files if you go to the different Facebook groups and you can download those and it'll go through the different lines and all that but you have to be very very focused. In showing you all that this should be good to go. We can actually burn on this coaster if we want to. In this case I don't need to burn that coaster so I'm not gonna but now we're good and we're focused. So there you go. We went through we put an item down. We made sure the distance the focal length was correct. We laid a dark piece of paper black or dark brown down. Then we turned on that fire button on the diode laser and we made sure that beam got as small as possible. Now you can actually see it much better than you did in that camera. It's very hard to show you that on the camera but when you're watching you can actually see the beam go go go and then if you get too much it'll actually get bigger again and that's what you don't want to happen. So watch that beam make sure it gets really tight and that should give you a very good focus. Now you can always grab a USB microscope. I'll put the link in the description below. They're very cheap. You can plug it straight into your computer then you turn your fire power all the way down to like 0.25 and you put that USB microscope on it and you see it on your screen and then you can really see that beam as tight as it can go. But in this case we just did a quick manual focusing that should help you guys get up and going. I hope you guys learned something today. Keep burning.