Introduction to Linux - Full
1:23:10
10 ай бұрын
Introduction to Linux - Part 4
12:38
Introduction to Linux - Part 3
19:35
Introduction to Linux - Part 2
32:23
Introduction to Linux - Part 1
19:22
SoC 101 - Lecture 7b: The Kernel
11:21
Пікірлер
@kennyk8126
@kennyk8126 4 күн бұрын
Thank you! I've been working for embedded software engineer last 7 years. But, I didn't have a solid background about embedded system. It was just rolling a dice, when I started career. So, I decided to study again from scratch, while I'm pursuing a master degree. I feel like I'm putting together a huge puzzle with many knowledge blocks which were spreading last 7 years career.
@AdiTeman
@AdiTeman 4 күн бұрын
Great! This course is exactly for people like you. Either coming from top-down (i.e., software --> hardware) or bottom-up (hardware --> software), it is supposed to connect the dots.
@bhaskarsunil
@bhaskarsunil 5 күн бұрын
Hi. I have a doubt. How LVS (layout versus schematic) will pass though the physical designer adds new cells like buffer, diode etc., and new nets to connect the same in physical design which is different from schematic design?
@AdiTeman
@AdiTeman 4 күн бұрын
That is an important question, but the answer is actually kind of simple. The LVS flow that I am explaining here is not comparing the RTL or the post synthesis netlist to the layout, because these two things are not equivalent. As you said, they have additional buffers and whatnot that are added to the design - do not change the functionality - but are undoubtedly electrically different. What this LVS flow is doing is to compare the SIGNOFF netlist with the SIGNOFF layout. These should trivially be the same, since you would generally be producing them from the same tool (e.g., Innovus or Fusion). But they may not be because the implementation tool uses abstracts (.lef files) to be able to run with high enough performance. And sometimes this leads to errors. (note, there probably are many other reasons, but this is kind of the high level primary reason). So we are comparing the design AFTER inserting all the buffers and whatnot. I hope that clarifies it.
@bhaskarsunil
@bhaskarsunil 4 күн бұрын
@AdiTeman Thank you so much for reply Sir. Just for further clarification, at what stage we are comparing our signoff netlist / layout netlist with RTL netlist/synthesized netlist ( Golden netlist ). Though they are functionally the same, how do we validate it.
@mehdis.7404
@mehdis.7404 5 күн бұрын
Unbelievable how much I'v learned VLSI from your videos! Thanks🌹
@AdiTeman
@AdiTeman 4 күн бұрын
You're very welcome! So glad to hear!
@Foroffice-h2t
@Foroffice-h2t 5 күн бұрын
Q1. OPTION 1. Technology independent or dependent. i guess dependent
@AdiTeman
@AdiTeman 4 күн бұрын
No, no, no - it is unequivocally "IN"dependent. Synthesis ultimately does map the design into standard cells, which are technology dependent. But on the way, it maps the logic into "primitives" (i.e., AND, NOT, OR, XOR, etc.) which are technology independent. This is what the answer was referring to.
@ahmedabdelhakeem786
@ahmedabdelhakeem786 9 күн бұрын
Thank you so much for such informative content ❤️
@AdiTeman
@AdiTeman 4 күн бұрын
You're very welcome!
@Deepakkumar-lg9bu
@Deepakkumar-lg9bu 10 күн бұрын
Excellent lectures. been watching everonye single one. Also noticed your lectures were on cadence support learnign portal
@AdiTeman
@AdiTeman 4 күн бұрын
Thank you! Indeed, Cadence asked me if they could link to my DVD lectures, and now provide my course as "Digital Design and Signoff Academic Curriculum v1.0". I also had the pleasure to travel to Bangalore a few months ago and teach the course to around 50 Indian professors in a "TTT" (Teach the Trainer) course. Here is a short piece about it: engineering.biu.ac.il/en/node/13341
@WaiHan-m1z
@WaiHan-m1z 11 күн бұрын
What's the differences between Dual Port and Two Port SRAM? Is it that Dual Port allows 2 Read or 2 Write at the same time, while Two Port only allows 2 Read, but cannot do 2 write at the same time?
@AdiTeman
@AdiTeman 4 күн бұрын
Not exactly. What you said about dual port is correct (also called "2RW") but the two port allows an independent write and read simultaneously but not two reads or two writes (also called "1R1W". However, it is a little "nitpicking" to make this differentiation, as engineers - and possibly vendors - will actually use the two terms interchangeably. I'll tell you the truth, I have a hard time remembering which is which, so really using the 2RW vs 1R1W terminology is much more clear.
@WaiHan-m1z
@WaiHan-m1z 4 күн бұрын
​@@AdiTeman Why can we not do two reads from dual port? Isn't it possible to read from RWL in one cell and from RWWL in another cell?
@EmbeddedLearnr
@EmbeddedLearnr 11 күн бұрын
after watching this lecture I will eat pizza at big end :)_
@AdiTeman
@AdiTeman 11 күн бұрын
I love it! 🍕🍕🍕
@EmbeddedLearnr
@EmbeddedLearnr 11 күн бұрын
Is microcode is used latest cutting edge microarchitecture , if so how it is used. Could not able to understand what exactly what microcode do? did not get proper answer from chatgpt :(
@AdiTeman
@AdiTeman 4 күн бұрын
Microcode is used heavily in CISC processors (or possibly in RISC processors with complex extensions), and yes - it is used in x86 processors today. It is basically a breakdown of the complex instruction into smaller instructions (RISC-style) that can run at the high speed of the CPU. So if I have a really complex instruction that cannot run in a single cycle without creating a huge latency, the instruction will be broken down into a sequence of smaller instructions that can be run at the same rate as other simple instructions in the pipeline. The microcode is usually hard-coded, i.e., it's either synthesized and cannot be modified or is "somewhat programmable" through a ROM or PROM type of interface.
@EmbeddedLearnr
@EmbeddedLearnr 4 күн бұрын
@AdiTeman professor thanks a lot for taking time to answer this, I am learning lot from your lectures. In current world where everything is charged thanks for providing cutting edge knowledge for free and answering questions
@EmbeddedLearnr
@EmbeddedLearnr 11 күн бұрын
every Israeli are very intelligent, loved the course, most of my college in India has very poor lectures
@AdiTeman
@AdiTeman 11 күн бұрын
Thank you!
@Shadowgraphhhhh
@Shadowgraphhhhh 12 күн бұрын
Love this lecture. The best full IC design course EVER.
@AdiTeman
@AdiTeman 12 күн бұрын
Thank you! Check out the new hands on demos that I started uploading yesterday that go along with this course.
@rezapapi6544
@rezapapi6544 13 күн бұрын
Thank you professor for these fantastic lectures. I really appreciate that. Do you have a plan to upload these scripts on your github? I think that would be great, so we can run the flow on our machine.
@AdiTeman
@AdiTeman 12 күн бұрын
You're welcome. Yes, I plan to provide a github link to them. However, I have to "clean" the scripts from any IP, so it will take a while until I have the time to do this properly. Possibly there will also be a version with an open source PDK in the future. Keep posted and I will announce when I finish this series and release the scripts.
@rezapapi6544
@rezapapi6544 12 күн бұрын
@@AdiTeman Thank you. I also took your digital flow course on Cadence website.
@yoavmor9002
@yoavmor9002 15 күн бұрын
Can't I use a BDD to use SAT? A formula is unsatisfiable iff its BDD reduces to a constant 0 Or perhaps the process of turning a generic boolean expression into a BDD is NP?
@vlsi_learner
@vlsi_learner 24 күн бұрын
keep learning for FY2025. top notch course again.👍
@AdiTeman
@AdiTeman 11 күн бұрын
Glad you're enjoying it!
@AdiTeman
@AdiTeman 24 күн бұрын
Errata: at time 18:25 the output voltage of the High-to-Low level shifter should be VDDL and not VDDH as in the schematic. Thanks @HS_squared for paying attention to this.
@rfahimur26
@rfahimur26 28 күн бұрын
Excellent Lecture. I have one question regarding VIPT aliasing that's bugging me for 2 weeks, will appreciate if you can clear my confusion. It seemed to me that to avoid aliasing problem the cache has to be directly map. If it has 2 way set associativity then the same index can be present in 2 places of the cache and the 2 cache lines can point to same physical address. But in your lecture it is said the cache can have set associativity and not have aliasing. Am I missing something? Please let me know if the question is not clear.
@deevam9756
@deevam9756 Ай бұрын
Thanks for the lectures professor. Since higher metal layers are wider and all metal layers have different design rules like minimum width and length , how could all metals exactly occupy full grid space
@AdiTeman
@AdiTeman 24 күн бұрын
Good question, maybe you understood the answer when you watched the rest of the lecture parts, but if not, I will clarify. The Maze Routing, as it is shown here, is very crude. It doesn't take into account all of the very complex features of modern VLSI routing, such as design rules, number of metal layers, etc. The basic idea is that we provide "global routing", which basically maze routes the nets and provides track assignment and then only later provide "detailed routing", which connects the nets according to all constraints. So at the very high level of the grids over here, we really need to only know if there is room to route across this grid cell, and that is usually a function of the number of tracks available vs. those that have already been used (i.e., congestion). During detailed route, the maze routing will be a much smaller scale problem (we're only routing a single GBOX) but with a much more complicated design space, so it will be a bit different.
@HS_squared
@HS_squared Ай бұрын
Dear professor, In HL level shifter 18:25 , shouldn't the supply be VDDL and output also OUTL?
@AdiTeman
@AdiTeman 24 күн бұрын
That is very true. Interesting that it took so long for someone to point out this mistake :). I've added it to Errata in the pinned comment. Thanks!
@rogerfederer6456
@rogerfederer6456 Ай бұрын
What does "provide return path for signals" mean, since current has to flow in a loop anyway
@AdiTeman
@AdiTeman 24 күн бұрын
Yes, that is the meaning. We need to provide both the source of the power (i.e., VDD) and the return path (i.e., GND).
@rogerfederer6456
@rogerfederer6456 24 күн бұрын
@AdiTeman is it even possible to not provide the return path. Where would the current flow then?
@rogerfederer6456
@rogerfederer6456 Ай бұрын
What might be the use of a routing blockage?
@AdiTeman
@AdiTeman 11 күн бұрын
Thanks for the question. This is indeed a good one. There are several reasons for blocking routing, but to give you a few examples: 1) Leaving a "feedthrough" channel for a signal to be routed from the toplevel. Say there is an analog input that needs to be fed from a pad to a block that is blocked by this macro, then we can leave a channel to route the signal when the toplevel routing is applied. 2) Special circuits (usually analog) that don't want to have noisy digital signals running on top of them. 3) A hierarchical macro is only provided a certain number of metals to use (the rest being allocated to the top level). In this case, you would set an attribute for top level routing, but you could also apply a blockage to be sure the tool didn't do anything funny (which these tools are known to do). I'm sure there are many more examples, but these just came off the top of my head.
@rogerfederer6456
@rogerfederer6456 11 күн бұрын
@@AdiTeman thanks for the clarification
@rogerfederer6456
@rogerfederer6456 Ай бұрын
Hello Professor Teman, what is the reason behind placing the power-hungry macros away from the chip center for wire bond in the slide on Hard Macro Placement. What role does position have in the therma aspect? Whats the relation to the wire bond? Does it matter if it is a BGA?
@AdiTeman
@AdiTeman 11 күн бұрын
Hi, sorry for my belated answer. The main reason would just be to get them as close as possible to the source of the power supply (i.e., power pad), so the IR Drop would have minimal effect.
@chinmaysamudra
@chinmaysamudra Ай бұрын
Amazing set of videos. Thanks a lot.
@AdiTeman
@AdiTeman 24 күн бұрын
Glad you are enjoying it!
@kabilansenthilkumar7644
@kabilansenthilkumar7644 Ай бұрын
how did the power rings are getting the power.How to connect ports/terminals to the power rings.
@AdiTeman
@AdiTeman 24 күн бұрын
So I'm not sure I'm answering the exact question you're asking, but I'll try. The power to the chip comes in from outside the chip (usually). There is a power supply or battery on the board with regulators that bring the voltage down to the DC voltage required by the chip. These are connected through pads to the chip (see the later lecture on I/Os and packages) and from there are connected to the power rings. That is at the full chip level. If we are designing a block and not the full chip, then we will have to connect the power rails from the fullchip level to the block power rings and power grid (stripes).
@lattehour
@lattehour Ай бұрын
it`s just impossible to use one of those soc from smartphones they refuse to give the flucking datasheets i just can`t comprehend why , there is much garbage phones laying around one can easly repurpose them for education there should be laws in place after an soc is older than 3 year they must publish the datasheet
@deevam9756
@deevam9756 Ай бұрын
Does Standard cells with higher drive strengths occupy two or more standard cell rows??
@AdiTeman
@AdiTeman Ай бұрын
No, in almost all cases, they are fit into a single row. There are certain standard cells that may be put into two rows, but these tend to be complex cells, such as level shifters and possibly some flip flops.
@deevam9756
@deevam9756 Ай бұрын
@@AdiTeman Thank you sir. @12:04 But you mentioned standard cells with higher drive strengths have larger widths. How is it possible to fit larger width in a single row??
@77uu22
@77uu22 Ай бұрын
Hi, One question on 2 flop synchronizer, the settling of metastability causes latency issue at the recever side, as for a signal changing from 0->1 at flop1 might settle to 1 or 0 before getting sampled by flop2, but will settle to value 1 in next clock So if it is settle in first clock the latency is 2 else the latency will be 3 How to update design to make this latency a fix value Considering both clock same frequency with phase difference
@AdiTeman
@AdiTeman 24 күн бұрын
That is a good question and it is part of a deeper subject, which is CDC. But basically, we can have no timing constraint between the two clock domains. They are asynchronous, which is why we need the synchronizer in the first place. In other words, we have to design our logic to be completely robust to this possibility of the latency being different numbers of clock cycles. You need to ensure that the logic on the capturing side has a long time to capture the signal (much longer than the worst case synchronizer delay) and that it can't accidentally capture a metastable state.
@77uu22
@77uu22 23 күн бұрын
​@@AdiTemanthank you for your reply
@mohankrishnapeddi4109
@mohankrishnapeddi4109 2 ай бұрын
hi sir can u tell me where did you explained about the physical cells
@AdiTeman
@AdiTeman 11 күн бұрын
Hi, in Lecture 3, when I talk about standard cell libraries. I also may discuss them a bit in the last lecture in the course, about signoff.
@trickyabb
@trickyabb 2 ай бұрын
Hi Adi, is there a playlist for all tge Tcl videos?
@AdiTeman
@AdiTeman 24 күн бұрын
Hi, sorry for the late reply and I hope you already found the next lecture. But if not, then I only prepared two lectures so I'm not sure I made a playlist. But you can get to the lectures either through the Short Courses page on the EnICS Labs website (enicslabs.com/short-courses/) or here are the links to the two lectures directly: TCL part 1 (this lecture): kzbin.info/www/bejne/pZDQmYaXaq2EecU TCL part 2: kzbin.info/www/bejne/ipCXc6mda9OjZpo
@ff-tw6wv
@ff-tw6wv 2 ай бұрын
English sub pls🙏
@Torchl146
@Torchl146 2 ай бұрын
Did you already gather experience with AI in the floorplan creation or at your institute ? Is there already a Cadence tool for this? I feel like there is a lot of manual guessing in this physical design step that should/could be optimized with metrics. Also I heard about Google doing exactly that its called AlphaChip if i remember it correctly
@AdiTeman
@AdiTeman 24 күн бұрын
Hi @Torchl46 - excellent comment. My answer is... sort of. Indeed, there is a lot of work on AI for chip design over the last few years and it's a super interesting domain. The best known work is, indeed, AlphaChip, which kind of kicked this whole field into gear. But it wasn't started in a vacuum and it has been followed by a real ton of great innovation in all fields of chip design. Furthermore, the EDA vendors are also providing AI-driven solutions in their commercial tools. Why do I say "sort of"? Because I have a student who works with the AlphaChip team and has been able to run the tool and evaluate it. But I haven't personally (actually, at this point in my career, I don't get my hands wet with "real engineering" that often...). I will tell you that I ask around quite a bit and I don't find many backend teams in industry working with the new tools yet. I imagine it will come, but it's sometimes hard to steer this very heavy ship that has been moving in one direction for many years ;)
@hpbirdchen1477
@hpbirdchen1477 2 ай бұрын
Thank you, appreciate your teach
@AdiTeman
@AdiTeman 24 күн бұрын
You are very welcome!
@张雨田-z5y
@张雨田-z5y 2 ай бұрын
Sir thank you so much for your vedio provided. I got confused at 8:09 of the lecture. I consider the IR drop calculation should be irrelevant with width of the rails, only related with the square resistance and the max current as in calculation of R the width is on Denominator while for I max calculation the width is on Numerator . So why should we wider the power rail ?
@AdiTeman
@AdiTeman 2 ай бұрын
Hi. Your confusion comes from me combining two separate phenomena in this example. First, IR drop - here, I just measured the resistance. The resistance is for sure not "irrelevant with width of the rails" because the wider the wire is, the "fewer squares" you have. My best way of explaining this is a highway with cars running on it - the more lanes (width), the more cars can pass at once (current) or in corollary, the lower resistance. The reason we care about resistance is "IR" drop (Ohm's law: V=IR), so we also need the current. If the current is tiny or non-existent, then "who cares" what the resistance is, right? So in the second part of the exercise, I tried to get a representative number for the current to understand if the resistance we calculated is problematic. How do I get such a number? Are we conducting mA, uA, nA, pA? So I used the number for the maximum allowed current, which is defined by EM constraints. For EM, we are also limited by the current density, which is the current divided by the area that the current goes through. Since the thickness of the conductor is given (like in square resistance), we only need a number for current divided by wire width and that is given as 1mA/1um. Since we chose a wire with a width of 100nm, we got a maximum allowed current of 0.1mA. Now, assuming this could be running through the wire (if it's allowed, then we're going to drive it through, right?!), then we can find what the voltage drop is going to be. I hope that cleared it up.
@张雨田-z5y
@张雨田-z5y 2 ай бұрын
@@AdiTeman thank u somuch! I consider I understand now
@SagarHosmani-r1y
@SagarHosmani-r1y 2 ай бұрын
Hello Mr. Teman, thanks for these insightful lectures. Could you please recommend any good literature to further expand my knowledge on POSIX OS for multicore system? Wishing you the best
@AdiTeman
@AdiTeman 2 ай бұрын
Thanks for the kind words. Actually, I am far from an expert on Operating Systems and so am not extremely familiar with the best sources. I put a lot of the books and websites and courses that I used in the references at the end of each lecture, but I got to these through Google searches and such. If I had ChatGPT or similar when I collected these, I would just ask it what the best references are or to just summarize it all for me. I can suggest this (or other chatbots) as a great source!
@ParminderKaur-zm4kw
@ParminderKaur-zm4kw 2 ай бұрын
hey professor, can you please tell about the is column decoder and column mux the same thing ?? some people write column mux. is there any difference?
@AdiTeman
@AdiTeman 2 ай бұрын
Good on the spot question. Yes - "column mux" and "column decoder" are the same thing. To be accurate, it is a mux - it is selecting one bitline out of a set of bitlines. The reason the term "decoder" is used is because often the mux is (at least partially) implemented using a decoder, as I explain in the slides.
@Torchl146
@Torchl146 2 ай бұрын
Where did you find the sources for this hand drawn gate layout :D
@AdiTeman
@AdiTeman 2 ай бұрын
Hi, Actually, I found this quite a while ago and don't remember exactly where, but as I mentioned in the caption, the source is Fairchild, which is one of the original IC companies (the "father" of Intel, AMD and others). I imagine I found it on Google...
@Torchl146
@Torchl146 2 ай бұрын
@@AdiTeman ty i will put one of these drawings as a poster on my wall :D
@Torchl146
@Torchl146 2 ай бұрын
5:29 where could I find such a graph?
@AdiTeman
@AdiTeman 2 ай бұрын
Hi, This is a well known "concept graph". In fact, it has been later claimed "never to have happened". The origin is an analysis by Sematech in the late 90s (e.g., ITRS 1999). You can read about it, for example, here: semiwiki.com/eda/cadence/7622-an-update-on-the-design-productivity-gap/
@Torchl146
@Torchl146 2 ай бұрын
Giga Chat high quality content looking forward to consume this. Best Greetings from Germany I wish our uni would provide such courses. Its great that you are providing this for free <3
@AdiTeman
@AdiTeman 2 ай бұрын
Much appreciated!
@imav.20
@imav.20 2 ай бұрын
Hello there sir, could I use Intel's Quartus for this?
@AdiTeman
@AdiTeman 24 күн бұрын
Yes, in general you can. Quartus is a suite for programming FPGAs. It includes the code editor, simulator, synthesizer and FPGA place and route. This is not applicable, however, for ASIC design as it only targets FPGAs. That said, for simulation, it is fine to use Quartus and for synthesis, it will give you an idea of what ASIC synthesis is like.
@imav.20
@imav.20 24 күн бұрын
@@AdiTeman Thank you for your response sir!!
@imav.20
@imav.20 2 ай бұрын
Thank you for this sir, I'm interested in VLSI and I want to get into it. I have backlogs in electromagnetics and in linear integrated circuits, but uh yeah. this is going to not only give me knowledge, but upon completing few projects i'll be well versed. thank you
@xOWSLA
@xOWSLA 2 ай бұрын
what a solid video!
@AdiTeman
@AdiTeman 24 күн бұрын
Thanks! Check out the entire course and the rest of my lectures at enicslabs.com/education/