Adi Teman
Adi Teman
  • Видео 376
  • Просмотров 1 670 555
Making Article-Quality Figures with PowerPoint - part 5
Are you an academic and need to make some beautiful figures for your upcoming paper or thesis? Have you seen some of my slides and wanted to know how I make my figures? Well, I've decided to share my secrets with you, and the truth is that the secret is good old Microsoft PowerPoint.
For several years now, PowerPoint is my go-to tool for drawing high-quality figures. It's just so much easier to use than anything else, easy to share, to maintain, and is perfect for integrating into my slide decks. So I have left Visio, Illustrator, InkScape and the likes behind, and I primarily just use PowerPoint.
In this tutorial, I will show you how I set up my workspace, set my default shapes and lines...
Просмотров: 449

Видео

Making Article-Quality Figures with PowerPoint - part 4
Просмотров 3153 месяца назад
Are you an academic and need to make some beautiful figures for your upcoming paper or thesis? Have you seen some of my slides and wanted to know how I make my figures? Well, I've decided to share my secrets with you, and the truth is that the secret is good old Microsoft PowerPoint. For several years now, PowerPoint is my go-to tool for drawing high-quality figures. It's just so much easier to...
Making Article-Quality Figures with PowerPoint - part 3
Просмотров 2163 месяца назад
Are you an academic and need to make some beautiful figures for your upcoming paper or thesis? Have you seen some of my slides and wanted to know how I make my figures? Well, I've decided to share my secrets with you, and the truth is that the secret is good old Microsoft PowerPoint. For several years now, PowerPoint is my go-to tool for drawing high-quality figures. It's just so much easier to...
Making Article-Quality Figures with PowerPoint - part 2
Просмотров 2723 месяца назад
Are you an academic and need to make some beautiful figures for your upcoming paper or thesis? Have you seen some of my slides and wanted to know how I make my figures? Well, I've decided to share my secrets with you, and the truth is that the secret is good old Microsoft PowerPoint. For several years now, PowerPoint is my go-to tool for drawing high-quality figures. It's just so much easier to...
Making Article-Quality Figures with PowerPoint - part 1
Просмотров 5283 месяца назад
Are you an academic and need to make some beautiful figures for your upcoming paper or thesis? Have you seen some of my slides and wanted to know how I make my figures? Well, I've decided to share my secrets with you, and the truth is that the secret is good old Microsoft PowerPoint. For several years now, PowerPoint is my go-to tool for drawing high-quality figures. It's just so much easier to...
Introduction to Linux - Full
Просмотров 1,4 тыс.4 месяца назад
This is the full four part introduction to Linux, or at least to the command line interface of the shell. Linux is the open source operating system that brought Unix to the masses and has turned in to the program that enables just about everything worthwhile (...sorry if I pissed anyone off :). In this tutorial, I provide a basic overview of the shell - the command line interface that provides ...
Introduction to Linux - Part 4
Просмотров 3654 месяца назад
This is part 3 of a four part introduction to Linux, or at least to the command line interface of the shell. Linux is the open source operating system that brought Unix to the masses and has turned in to the program that enables just about everything worthwhile (...sorry if I pissed anyone off :). In this tutorial, I provide a basic overview of the shell - the command line interface that provid...
Introduction to Linux - Part 3
Просмотров 3234 месяца назад
This is part 3 of a four part introduction to Linux, or at least to the command line interface of the shell. Linux is the open source operating system that brought Unix to the masses and has turned in to the program that enables just about everything worthwhile (...sorry if I pissed anyone off :). In this tutorial, I provide a basic overview of the shell - the command line interface that provid...
Introduction to Linux - Part 2
Просмотров 4474 месяца назад
This is part 2 of a four part introduction to Linux, or at least to the command line interface of the shell. Linux is the open source operating system that brought Unix to the masses and has turned in to the program that enables just about everything worthwhile (...sorry if I pissed anyone off :). In this tutorial, I provide a basic overview of the shell - the command line interface that provid...
Introduction to Linux - Part 1
Просмотров 1,3 тыс.4 месяца назад
This is part 1 of a four part introduction to Linux, or at least to the command line interface of the shell. Linux is the open source operating system that brought Unix to the masses and has turned in to the program that enables just about everything worthwhile (...sorry if I pissed anyone off :). In this tutorial, I provide a basic overview of the shell - the command line interface that provid...
SoC 101 - Lecture 8e: Circuit Editing FIB
Просмотров 2885 месяцев назад
System-on-Chip 101 or "Everything you wanted to know about a computer but were afraid to ask" This is Lecture 8 of my "SoC 101" course at Bar-Ilan University. In this course, I provide an overview of computer hardware engineering and SoC design, covering the full stack from the basic terminology, through computer architecture, and up to low-level software and design methodologies. The purpose o...
SoC 101 - Lecture 8d: Overcoming Hold Violations
Просмотров 3335 месяцев назад
System-on-Chip 101 or "Everything you wanted to know about a computer but were afraid to ask" This is Lecture 8 of my "SoC 101" course at Bar-Ilan University. In this course, I provide an overview of computer hardware engineering and SoC design, covering the full stack from the basic terminology, through computer architecture, and up to low-level software and design methodologies. The purpose o...
SoC 101 - Lecture 8c: Bonding Debug
Просмотров 1635 месяцев назад
System-on-Chip 101 or "Everything you wanted to know about a computer but were afraid to ask" This is Lecture 8 of my "SoC 101" course at Bar-Ilan University. In this course, I provide an overview of computer hardware engineering and SoC design, covering the full stack from the basic terminology, through computer architecture, and up to low-level software and design methodologies. The purpose o...
SoC 101 - Lecture 8b: The Boot Sequence
Просмотров 4385 месяцев назад
System-on-Chip 101 or "Everything you wanted to know about a computer but were afraid to ask" This is Lecture 8 of my "SoC 101" course at Bar-Ilan University. In this course, I provide an overview of computer hardware engineering and SoC design, covering the full stack from the basic terminology, through computer architecture, and up to low-level software and design methodologies. The purpose o...
SoC 101 - Lecture 8a: Ramp Up and Debug (Post-Silicon)
Просмотров 2995 месяцев назад
System-on-Chip 101 or "Everything you wanted to know about a computer but were afraid to ask" This is Lecture 8 of my "SoC 101" course at Bar-Ilan University. In this course, I provide an overview of computer hardware engineering and SoC design, covering the full stack from the basic terminology, through computer architecture, and up to low-level software and design methodologies. The purpose o...
SoC 101 - Lecture 7f: Real-Time Operating Systems (RTOS)
Просмотров 1,2 тыс.9 месяцев назад
SoC 101 - Lecture 7f: Real-Time Operating Systems (RTOS)
SoC 101 - Lecture 7e: Synchronization and Protection
Просмотров 4379 месяцев назад
SoC 101 - Lecture 7e: Synchronization and Protection
SoC 101 - Lecture 7d: Scheduling (Processes and Threads)
Просмотров 3919 месяцев назад
SoC 101 - Lecture 7d: Scheduling (Processes and Threads)
SoC 101 - Lecture 7c: Interrupt Handling
Просмотров 6509 месяцев назад
SoC 101 - Lecture 7c: Interrupt Handling
SoC 101 - Lecture 7b: The Kernel
Просмотров 5249 месяцев назад
SoC 101 - Lecture 7b: The Kernel
SoC 101 - Lecture 7a: Operating Systems
Просмотров 5689 месяцев назад
SoC 101 - Lecture 7a: Operating Systems
SoC 101 - Lecture 2e: Measuring Performance
Просмотров 1,3 тыс.11 месяцев назад
SoC 101 - Lecture 2e: Measuring Performance
SoC 101 - Lecture 6f: The Translation Lookaside Buffer (TLB)
Просмотров 1,2 тыс.Год назад
SoC 101 - Lecture 6f: The Translation Lookaside Buffer (TLB)
SoC 101 - Lecture 6e: Practical Paging
Просмотров 491Год назад
SoC 101 - Lecture 6e: Practical Paging
SoC 101 - Lecture 6d: Virtual Memory
Просмотров 778Год назад
SoC 101 - Lecture 6d: Virtual Memory
SoC 101 - Lecture 6c: Tradeoffs in Cache Design
Просмотров 812Год назад
SoC 101 - Lecture 6c: Tradeoffs in Cache Design
SoC 101 - Lecture 6b: Cache Organization
Просмотров 1,1 тыс.Год назад
SoC 101 - Lecture 6b: Cache Organization
SoC 101 - Lecture 6a: The Memory Hierarchy
Просмотров 1 тыс.Год назад
SoC 101 - Lecture 6a: The Memory Hierarchy
SoC 101 - Lecture 5f: Finishing our Design
Просмотров 740Год назад
SoC 101 - Lecture 5f: Finishing our Design
SoC 101 - Lecture 5e: Memory
Просмотров 1,3 тыс.Год назад
SoC 101 - Lecture 5e: Memory

Комментарии

  • @umarnadeem4074
    @umarnadeem4074 День назад

    can you recomend some textbook for this course as well?

  • @qeq167
    @qeq167 День назад

    I can't believe this course is free , Thank you very much Lecture 1 is one of the best introduction to a course i have ever took

    • @AdiTeman
      @AdiTeman День назад

      Thank you for the appreciation. I have a lot more content available on RUclips for free, which you can access through my channel or see in a more convenient layout on the EnICS Labs website enicslabs.com/education/ I'd love to hear more feedback and I hope to find time to create more content over the summer.

  • @Editzzor109
    @Editzzor109 2 дня назад

    can we do cell padding for pin density

  • @menakaa6405
    @menakaa6405 4 дня назад

    could you please say what is timing model?

  • @haziqiqbalhussain
    @haziqiqbalhussain 7 дней назад

    Hey Professor. How can we identify intuitively (without tools) which net is aggressor and which is victim? Does it depend on frequency or any other parameters?

  • @shauryachandra2323
    @shauryachandra2323 12 дней назад

    I have been following these lectures and absolutely love them. It would be great if you can please record a video series of using the Cadence tools to perform FPR and CTS on a small design in real time, maybe a live stream if possible so as to get some hands on approach.

  • @user-ex3ub6bj1e
    @user-ex3ub6bj1e 17 дней назад

    Thanks a lot for this video, Adi! I am more of an experienced Digital Design Engineer myself, so I know 90% of this stuff already. But for beginners this course is very valuable, Linux concepts are explained very clearly and with good examples. I only wish I had something like this course when I first started working with VLSI CAD tools and Linux. My path would have been so much easier! I will now watch other lectures on your channel for sure

    • @AdiTeman
      @AdiTeman 16 дней назад

      Great to hear! Please give me feedback on my other videos and I'm open to suggestions for more material (though, who knows when I'll find time to record more :)

  • @purplesky2402
    @purplesky2402 21 день назад

    What is eda tool?

    • @AdiTeman
      @AdiTeman 16 дней назад

      EDA stands for Electronic Design Automation. This is the general name of the programs used to design chips. We also call them CAD (computer-aided design) tools, but CAD is used in other fields, whereas EDA is usually used for hardware design utilities. I suggest watching my other courses to learn all about this field. You can find my material at enicslabs.com/education/

  • @VuThanhNinh
    @VuThanhNinh 22 дня назад

    Thank you sir, your explanation is very easy to understand

    • @AdiTeman
      @AdiTeman 16 дней назад

      You are most welcome

  • @thangdaoviet419
    @thangdaoviet419 23 дня назад

    how to get the slide?

    • @AdiTeman
      @AdiTeman 23 дня назад

      All of the slides are available on the EnICS Labs website. The webpage for this course is at: enicslabs.com/academic-courses/dvd-english/

    • @thangdaoviet419
      @thangdaoviet419 19 дней назад

      @@AdiTeman thanks for your reply but I cant find the direct link to download it, can you please provide it?

    • @AdiTeman
      @AdiTeman 19 дней назад

      @@thangdaoviet419 No problem. There is a button on the right panel of each lecture that says "Lecture X Slides". For this specific lecture, the link is: www.dropbox.com/scl/fi/d5sqn83htkyifkbed7nfu/Lecture-3-Synthesis-Part-1.pdf?rlkey=e0jfxerycb03brp3feq3q265t&dl=0

    • @thangdaoviet419
      @thangdaoviet419 19 дней назад

      @@AdiTeman thank you very much, have a nice day ^^

  • @slimjimjimslim5923
    @slimjimjimslim5923 23 дня назад

    I been working in VLSI for 7 years. And I still come back to your videos to refresh or relearn something! A heck lot faster than reading my Neil Weste textbook too lol

    • @AdiTeman
      @AdiTeman 23 дня назад

      Thank you! That's what makes me motivated to provide more material (hopefully, I will have time to make some more videos later this year).

  • @slimjimjimslim5923
    @slimjimjimslim5923 29 дней назад

    Thank you so much professor for putting this online for free. There are many university in USA that only cover parts of VLSI but nothing as clear and complete as your lectures. Some focus more on architecture, other more on circuit design. I found myself lacking in some areas when I entered industry 7 years ago. I get very good but also very segmented focusing just some circuit design, timing calculation and analysis but to become a good VLSI, we also need breadth. And that doesn't happen naturally by staying in one place. Your classes are helpful in gaining that breath. : - )

    • @AdiTeman
      @AdiTeman 23 дня назад

      You are so welcome. That is what they are there for! Hopefully I will find time to prepare more videos later this year. I have a long queue of lectures waiting to be recorded - I just have to find the free time to get around to it.

  • @Kiladikannadiga123
    @Kiladikannadiga123 Месяц назад

    Sir after i learning this 73 videos.can i have learned and apply for vlsi designer jobs

    • @AdiTeman
      @AdiTeman Месяц назад

      Well, I don't know if just watching the videos is enough, but it is a good start!

  • @AdiTeman
    @AdiTeman Месяц назад

    Errata: At time @9:54 there shouldn't be a "dx" in the expression for current. Thanks to @arghya.7098 for pointing this out.

  • @arghya.7098
    @arghya.7098 Месяц назад

    At 9:54, shouldn't the expression for drift current be: I_d = −v(x)⋅Q(x)⋅W since current is velocity times charge, and the charge is proportional to the width of the channel. I don't understand why the infinitesimal channel length dx is included. Can you please clarify this point?

    • @AdiTeman
      @AdiTeman Месяц назад

      Yes, you are right. There is an "extra" dx there. Thank you for pointing this out (it "magically" disappeared on the next slide ;)

    • @arghya.7098
      @arghya.7098 Месяц назад

      @@AdiTeman Thank you for the clarification, Professor. I really enjoyed the lecture and appreciate your guidance on this point.

  • @jaeyupchung
    @jaeyupchung Месяц назад

    lifesaver

  • @sapandeepsandhu4410
    @sapandeepsandhu4410 Месяц назад

    GRT GET NEW STUFF

  • @mdomarfaruque493
    @mdomarfaruque493 Месяц назад

    Hello Sir,could you please provide relevant lab work?It would be great

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, Sorry that I haven't provided it as of yet. I may be updating the course recordings soon (a lot has changed since 2020...) and maybe then I could add some labs.

  • @VIKRAMANDEVARAJ-wq4mf
    @VIKRAMANDEVARAJ-wq4mf Месяц назад

    Hii sir, Thank you for the playlist Is there any particular tool where I can start my pratical knowledge. There skywater 130 I use windows I can't use it. What type of tools should you recommend

    • @AdiTeman
      @AdiTeman 16 дней назад

      Hi. Tough question. These things mostly run on Linux and aren't too friendly for home computers. But you can start by buying a starter FPGA and programming it. The FPGAs come with a tool suite that runs on Windows and you can learn a ton from it (and FPGA design is a very popular and required skill on its own). Try starter kits from Xilinx or Altera.

  • @haziqiqbalhussain
    @haziqiqbalhussain Месяц назад

    I think Din and Dout and TX and RX are mistakenly swapped at 10:15. And if not, it would great if you explain the naming convention

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi Haziq, Indeed, this is a really bad naming convention, but I didn't invent it. Maybe I should have changed it, because it's so upside down, but I kept what was in a reference that I based it on. You can see in the bottom figure that the usage of DIN/DOUT is the same (pay attention that the PAD is connecting outside the chip, while the ports are connected to the chip core). I can try to give a makeshift explanation, but really, it is going to be a bad one, because if I were to design these I/Os, I would label the pins in the opposite way. Here it goes - "we are looking at the I/O from the perspective of the other chip, so its outputs are connected to DOUT and its inputs to DIN. Where the other chip is receiving is the RX I/O and where it is transmitting is the TX one". So after we got that horrible explanation out of the way, I will say that these things just depend on whatever the vendor who developed the circuit decided to call it. So you have to read the manual (good luck ;) and adhere to it.

    • @haziqiqbalhussain
      @haziqiqbalhussain 22 дня назад

      @@AdiTeman well the explanation isn't that horrible. And by not changing it, you saved the students from future confusion. Thanks!

  • @haziqiqbalhussain
    @haziqiqbalhussain Месяц назад

    Man whoever came up with this is a genius. Thank you Dr. Teman. Could you please confirm one thing. Connectivity matrix saves us from calculating each quadratic wirelength and differentiating them partially in order to arrive at A matrix, right?

  • @omersayag8909
    @omersayag8909 Месяц назад

    איפה אפשר להוריד את המצגת? בקישור שמופיע יש רק את הרצאות הוידאו ללא המצגת

    • @AdiTeman
      @AdiTeman Месяц назад

      בקישור יש כפתור ליד כל הרצאה עם קישור למצגת.

  • @AdiTeman
    @AdiTeman Месяц назад

    Errata: At time @23:24 the default state of the Mux should (of course) be 1'bx (and not 4'bx on a one bit signal). Thanks @atharvaagiwal6051 for paying attention to this.

  • @Engineer884
    @Engineer884 Месяц назад

    you didn't mention what is 456 and 789. Is it a single number 456789 or two different numbers

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, Actually, your question made me go look this up again and make sure I didn't make a mistake in the lecture and it also showed me something that I'm not sure how deeply I thought about it before. Luckily, there is no mistake in the lecture (as far as I can tell), but maybe I should have given the example a bit differently to make it more clear. What we want to do is fill a number into a register that doesn't fit in the immediate field of addi (so >4096). What we have to do is break it down into two numbers. The first, we multiply by 4096 and then we add the second to it. The number, therefore, that gets stored in the example is 456x4096+789. This can be a bit complicated due to sign extension and twos complement numbers. Therefore, we usually wouldn't write this sequence by hand, but rather use the compiler pseudoinstruction "li" (load immediate). This is, assuming that you actually are hand writing your assembly code, rather than doing what most people do, which is using a high level language ;). But for the purpose of understanding this, if I would have done lui 0x456 addi 789, then I would have gotten 0x456789 in the register (because a <<12 operation is 3 hexa positions).

    • @AdiTeman
      @AdiTeman Месяц назад

      Just another point, There is a great discussion about this here: stackoverflow.com/questions/50742420/risc-v-build-32-bit-constants-with-lui-and-addi

    • @Engineer884
      @Engineer884 Месяц назад

      @@AdiTeman Thanks sir. Sorry for not mentioning the time stamp while asking the question.

  • @vivekartist6893
    @vivekartist6893 Месяц назад

    Hi Professor Adam. Your videos are simply wonderful. Huge fan! One query, could you please provide an example scenario of exclude pin usage for better understanding? Thanks.

    • @AdiTeman
      @AdiTeman Месяц назад

      Wow, that is such a great question. It is something I have been teaching for years as an option, but seemed to never have thought about what it's good for! Your question made me look it up. I will say that clock trees are a bigger subject than I discuss in this lecture - much bigger. Every chip has new "surprises" in the clock tree that make you use these different definitions, and every time I have run into one, I say "I'll use that as an example in a lecture on CTS", but by the time it becomes relevant (usually, this is in the middle of a tapeout or other stressful times ;), I totally forget the scenario and why we needed these weird commands... Anyway, back to your question, I found an answer. The general high-level reason is that there can be cases where a net is both on a clock path and a data path. In such a case, you want to buffer the clock part of the net, but not the data part of the net, so you would put "exclude" on the data pins. That is a great explanation, right? Well, the obvious question is "why the heck would a clock net be a data net as well???". And the answer is not too obvious. One answer could be that you may have some observation circuitry on the clock and you treat this as data. But one of the user manuals shows a more common case that actually makes sense and that is the case of a clock divider. A clock divider is just a bunch of flops, where the output of one drives the clock signal of the other with a toggled input. In this case, we have the Q pin of the flop driving a clock net and so it needs to be handled by CTS. Until now, all is good - we want these to be buffered and such. So this is not the case of mixing clock and data. HOWEVER, we perform scan insertion (which I didn't cover in this course), where all flops are connected in a shift register configuration (scan chain) for testing. In this case, the clock net emanating from the Q pin of the divider flop goes to the CK pin of the other divider flop, but also goes to the SI pin of the next flop in the scan chain. This IS a data path and shouldn't be treated as a clock net. So the SI pin should be regarded an EXCLUDE pin. (note, this may be handled inherently by the CTS engine). Thanks for pointing this out so I learned something new.

  • @haziqiqbalhussain
    @haziqiqbalhussain Месяц назад

    Thanks for the amazing lectures, sir. I have a question. At 5:00 the HPWL calculated is 7 while if we count the units manually it's 9 as each of the two bottom right cells are also taking one unit of wirelength. You said that these cell doesn't add much in the wirelength but what if they are a little far (inside the bounding box). The actual wirelength can be 10 or 11 units and our estimation would be quite off.

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi Haziq, Your question is legitimate, because I can say that I have been confused by this more than once (don't tell anyone 😂). But actually, it's almost irrelevant. The reason is that we are building an estimator that is trying to somehow quantify the wirelength, so we can define a cost function and optimize it. It is very clear that our estimator is far from accurate - it just needs to represent something that is better or worse than something else, so we can change it and see if that helps. So counting the distance (|x1-x2|) or the number of blocks that the wire occupies (which comes out |x1-x2|+1) is essentially the same for the purpose we are using it. In addition to that, as you will see in the following parts of the lecture, we are actually using other estimators more predominantly (such as the quadratic wirelength estimator). But the point is the same - we are trying to put a number that represents how good or bad our solution is for comparison to a different solution. You could look at it as a rating system that gives you 1-5 stars or a grade of 1-10 - as long as the better option has a higher rating, it doesn't really matter what the scale is.

    • @haziqiqbalhussain
      @haziqiqbalhussain Месяц назад

      @@AdiTeman Thanks. I have completed the following parts of the lecture and got your point. Thank you for taking your time out and explaining.

    • @AdiTeman
      @AdiTeman Месяц назад

      @@haziqiqbalhussain Great

  • @iliachakarov7285
    @iliachakarov7285 Месяц назад

    These lectures are really well done!!

  • @Engineer884
    @Engineer884 Месяц назад

    3:31, its written that frame pointer points to beginning of the frame, but you said it points to base of the frame. Is the base of frame really the beginning of the frame, or is there any problem in whats written ?

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, I don't think there's a problem. The "base" and "beginning" that I refer to are the same thing. Basically, it's the opposite of the stack pointer that points to the top of the stack. The frame pointer points to the bottom so we can return to where it started.

    • @Engineer884
      @Engineer884 Месяц назад

      @@AdiTeman oh I see, thank you for replying

  • @iliachakarov7285
    @iliachakarov7285 Месяц назад

    Now this lecture I like!! gj

    • @AdiTeman
      @AdiTeman Месяц назад

      Glad to hear that!

  • @user-np8ut6zv3m
    @user-np8ut6zv3m Месяц назад

    Nice explaintions sir.... Thank you 😊

  • @atharvaagiwal6051
    @atharvaagiwal6051 Месяц назад

    In the default statement the output should be 1'bx. For 4:1 mux

    • @AdiTeman
      @AdiTeman Месяц назад

      Haha, Great catch! This slide (and video) has been around for quite some time and no one ever pointed that out. This is not an error, per se, since it's just an X (and 4'bx is basically the same as 1'bx) and the simulator and synthesizer would (hopefully) disregard this, but it was for sure unintentional in the slide. Thanks for finding this. I will pin the errata!

  • @cahitskttaramal3152
    @cahitskttaramal3152 Месяц назад

    Hi! I coded my own spice and this serie helped me a lot! Thank you! The hardest part is nonlinear elements. Wrong first guess causes lots of trouble. I wonder if there is a method for guessing starting point as well. I think I will add bisection method after some failed iterations. Also do you know anything about modified trap integration? Mike Engelhardt (Creator of LTspice) claims that is the best method (simple a true trapezoid without the oscillation effects) and only he knows that.

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, I think you just went beyond my pay grade :). I'm far from being an expert - and for sure when it comes to deep down things that affect analog simulations - that's out of my expertise. There are many gurus out there, but I've had the pleasure to meet two of them - Andrew Beckett of Cadence (he answers many questions on online Cadence forums and is amazingly knowledgeable) and Prof. Andrei Vladimirescu, one of the designers of SPICE (and author of "The SPICE Book"). Andrei is a good friend and would probably be happy to answer your question if you reached out to him (...and bonus points if you told him that I sent you ;).

  • @LamNguyen-te2lq
    @LamNguyen-te2lq Месяц назад

    Hi there, i have a question that do we actually do this methodology when we do placement step, or tools will automatically do it? And thank you for your videos, it so good.

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi Lam, Luckily, the algorithms are deeply implemented into the tools, so we don't have to do anything ourselves in terms of implementing them ;)

  • @zichendu5565
    @zichendu5565 2 месяца назад

    Awesome lesson! A thermal engineer here trying to learn Semiconductor to do my job- electronics thermal management better. Would be glad to know if anyone here else has similar background.

    • @AdiTeman
      @AdiTeman Месяц назад

      Great to know that my lectures are reaching other disciplines. I'd also love to hear if there are any other thermal engineers watching these.

  • @Shahidsoc
    @Shahidsoc 2 месяца назад

    why multiplexers are needed ? to chose different frequencies ? for dynamic volatages and freq ?.

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, Yes, these can be cases for multiplexers on the clock tree. There are actually many cases where you would multiplex several clocks onto the same clock tree. Just as an example that is commonly found on SoCs: We usually provide two clocks: (1) An external reference (from a crystal) with a low frequency (usually less than 100MHz and sometimes much lower) (2) An internally generated clock from a PLL or other clock generator. When we boot the system, the generated clock is not available. It takes time for the PLL to "lock". Additionally, we want a backup in case the PLL doesn't work properly or something like that. So we drive both clocks into a Mux, boot with the external clock, and transfer to the internal clock once it is stable.

  • @eda1058
    @eda1058 2 месяца назад

    In 1:32:20 why do we draw data like that one going up the other down at the Same time but for clock There is onlu one line up and down in a row?

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, Thanks for the question. Some things we - experienced engineers - take for granted, since we're used to seeing them so often and we may not explain them (though I do vaguely remember explaining this in one of my lectures somewhere). The clock is very deterministic. Every clock period, it goes up once and down once and it does this repeatedly at a constant rate. Therefore, this is how we draw the clock signal. On the other hand, we don't know what the data is in a general case. It could be '1', could be '0', could stay constant and could toggle. Therefore, we draw it in that "changing" or "unknown" kind of way. It is supposed to represent "all cases" where we must take into account that any level can be there and where the X's are, it may be changing (it will be stable where the lines are straight).

  • @anuragharidasu5746
    @anuragharidasu5746 2 месяца назад

    Thank you so much the detailed explanation

    • @AdiTeman
      @AdiTeman Месяц назад

      You are welcome!

  • @harshitsrivastav5217
    @harshitsrivastav5217 2 месяца назад

    Hello sir, your explanation is wonderful, I appreciate your efforts. Sir can you help to know the details of CCS Model and how it is different from the WLM Model.

    • @AdiTeman
      @AdiTeman Месяц назад

      Hi, So I think this is covered in Lecture 3 (Synthesis - Part 1). Specifically, you can find the video about Liberty timing models here: ruclips.net/video/-NgWsQJCGls/видео.html I don't go into great detail about CCS models (they're actually very complicated), but I explain where they come from and such. Wire load models (WLM) are something a bit different and I cover them in this lecture, as well. They basically are just a (really poor) estimation of the RC load of a net based on the fanout.

  • @ndjarnag
    @ndjarnag 2 месяца назад

    good

  • @visheshjain9044
    @visheshjain9044 2 месяца назад

    Can you please suggest any course on layout design please

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Hi, Sorry, but I don't know of any freely available courses on layout design. I'm not saying that there aren't any of these - I just am not aware of them. I am pretty sure that the leading EDA companies (e.g., Cadence, Synopsys, Siemens-EDA) provide such training and these are often free to academic participants. In addition, I get emails from KalTech (kaltech.co.il/ic-training/) with offers for their layout courses, but I have never taken one of them, so I cannot recommend them.

  • @visheshjain9044
    @visheshjain9044 2 месяца назад

    Analog on Top

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Hi, I'm not sure what you are commenting. I would like to point out that this short presentation is for digital-on-top integration. In other words, the flow is run in a digital place and route tool, such as Cadence Innovus or Synopsys Fusion. The point of the presentation is to discuss how to prepare a custom-designed block for integration in a digital flow. This is as opposed to analog-on-top, which is preparing the entire design in a transistor-level tool, such as Cadence Virtuoso. Here, the custom block will be designed in such a tool, but the overall tapeout will be prepared in the digital tool.

  • @ndjarnag
    @ndjarnag 2 месяца назад

    this is good

  • @Shahidsoc
    @Shahidsoc 2 месяца назад

    different cells have different transition, so which value shoul be chosen from which cell's table ?. and what to do if we have CCS model libraries.

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Hi. I'm not sure I understand the question exactly, but I'll try to answer. If you mean what to set as a default input transition - this is a good point. We want to model the input transition, but we don't know what is connected to the input and how. Therefore, the calculation will not be accurate. This is a limitation that cannot be overcome, but the point here is to get a "good estimate". In general, digital delay modeling is NOT ACCURATE (as opposed to SPICE), but provides a tradeoff between run-time and accuracy. So we are trying to get a number that is "good enough", while it is clear that this is not 100% right. In this case, we have two options - 1) provide a number that characterizes the process. This is very inaccurate and has nothing to do with CCS or the different gates. It's just some number that could be a reasonable transition so the delay of the next gate falls within the timing tables. 2) provide a typical gate from the library that may be connected to the input. In this case, the .lib (including CCS) of the gate is used for the delay calculation. This is not the gate that is actually connected, but is typical of the technology/library and therefore is a good estimate. In any case, these are just estimations. Not accurate. But better than assuming something that is not based on anything...

  • @sayanbaidya9724
    @sayanbaidya9724 2 месяца назад

    wow best explaination

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Thank you!

  • @dGooddBaddUgly
    @dGooddBaddUgly 2 месяца назад

    Your lectures have been GOLDEN Professor. Thank you so so much! God Bless you and your family!

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Thank you so much!

  • @dGooddBaddUgly
    @dGooddBaddUgly 2 месяца назад

    Does "ps" stand for picoseconds?

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Yes, indeed, in these slides, ps is picoseconds

  • @Digital_system123
    @Digital_system123 2 месяца назад

    Hi adam, thanks for your wonderful lecture series.. I am having a doubt at 9:09 in the low power clock gated RTL, you have used a clock signal on RHS of assign statment, as you have earlier Disscued that it should not be done that way.. Can you dicuss more about that?

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Hi Atul, Good observation. Indeed, it would seem that I broke one of the "unbreakable rules". But, as I like to tell the students in my courses, everything I describe as a "ground truth" actually has cases (sometimes very frequent cases), where it doesn't hold. This is a bit of that. When I defined the "law" of "do not put logic on the clock", I probably mentioned something like "unless you really know what you are doing". In this slide, I describe clock gating for low power design. The assign statement here is directly describing clock gating logic. In other words, "we really know what we are doing". In fact, there are many reasons to put logic on the clock, but as a beginning RTL designer, you do not want to do them. As an advanced RTL designer, you would be expected to understand the implications of doing this, and in 95% of the cases, you would understand that you're not supposed to do it. But there is still that 5%, where you understand really well why you want to put logic on the clock and they it will be correct. Regarding this specific case - you will probably never do this exactly. A single flip flop will not be clock gated. You would usually use enable logic (like the first example) and if there are several flops sharing the enable condition, the synthesizer will automatically insert an ICG. An assign, such as in this example, would usually be used on a global clock gating signal. But even then, usually you would instantiate a specific standard cell from the library and not use a synthesized assign.

  • @jokofsor
    @jokofsor 2 месяца назад

    I wish I had this as I started working on IP design six years ago! Thanks Adi for making this possible!

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Thank you!

  • @dGooddBaddUgly
    @dGooddBaddUgly 2 месяца назад

    Thank you for great video. My question for addi instruction is it right to say it’s a 1R1W as R2R operation was 2R1W?

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Hi, Yes, that is an accurate observation. The immediate (constant) is encoded in the instruction, so it does not need to be fetched from the regfile and only one register needs to be read out. That said, this doesn't really "help" us from a hardware perspective. Since there are 2R1W operations, we need to support this capability, so there is no (straightforward) advantage of an addi operation over an R2R operation.

  • @nidhiupadhyay357
    @nidhiupadhyay357 3 месяца назад

    Hi I want to know why we are using implant layer in OBS??

    • @AdiTeman
      @AdiTeman 2 месяца назад

      Hi, I'm not sure what you are asking - is it something from the slides I showed in my lecture or is this a question from something you have run into at your work? If it is from the slides, I probably got the image from something I found on the internet and can't vouch for the exact example. If it is something from "real life" then I can try and guess the following explanation. There is no 100% accurate standard or way to make library files and therefore you get different things from different vendors (and different products). Most of the time (yes, for almost every library or IP you get) there are things that don't exactly "fit" and you often need to "fidget" with them. This usually doesn't make it to the level of the design engineer, but is taken care of by the CAD team that makes sure that the entire flow works with the tools the company uses and the processes they are using. But believe me - there is a lot of adaptation of LEFs and LIBs from what you get from the foundry/vendor. With that, I can tell you that extra information is not detrimental; so you have OBS on an active layer - it's not going to do anything bad, just make the LEF file a few KB bigger. In a certain techfile, possibly the router could (strangely...) consider such a layer as a routing layer and then the LEF would need to add the diffusion as an obstruction. But this is not the standard way things are done, and it could lead to other not so nice consequences. But that may be the reason you see this...