Why I Hate Karnaugh Maps

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024
  • Karnaugh maps are used in so many intro to EE courses. They seem like they're going to be SO IMPORTANT when designing FPGAs. Well I hate them, find out why by watching.
    Support me on Patreon!
    / nandland
    Buy a Go Board, the best FPGA board for beginners!
    www.nandland.c...

Комментарии • 77

  • @antoniopetito
    @antoniopetito 5 лет назад +65

    I'm going to be one of thoes outliers and admit that I actually enjoyed boolean algebra and Karnaugh Maps when I was going thourgh uni!

    • @Jajaho2
      @Jajaho2 3 года назад +7

      It's like a fun crossword to lighten the mood ;)

  • @botsnlinux
    @botsnlinux 4 года назад +37

    I'm an ECE professor and I teach the intro digital logic course. I actually think K-maps are a breath of fresh air after doing boolean algebra; they're visual and help give some intuition about the simplifications you're doing. But I completely agree with you that we should minimize the time we spend on boolean algebra and logic manipulation, and spend time building cool things with modern techniques and tools. In my course, we have an open-ended project where teams build arcade games, audio synthesizers, and other fun stuff. One team last year built a version of Space Invaders on their FPGA, using a couple of NES controllers as inputs and a VGA monitor for display: ruclips.net/video/w9ljqvRHKeE/видео.html

    • @darkeagle999
      @darkeagle999 3 года назад +4

      Well said! I'm a EE student too and I do agree with you that it's more visual and a breather after boolean algebra. =)

    • @naelblogger7976
      @naelblogger7976 2 года назад

      I agree! When I started learning digital electronics I loved Karnough maps. I found them fun, and they helped me to understand the fundamentals of boolean algebra.

  • @medwatt
    @medwatt 4 года назад +12

    Let me give you one example where Karnaugh maps can be useful. If you're designing an asynchronous circuit and you get glitches, then you can look at your Karnaugh map and see if there's an area of overlap between different regions. If you can the min term that covers both regions, even though it is redundant, it can remove the glitch. So, Karnaugh maps can provide some insight.

  • @uwezimmermann5427
    @uwezimmermann5427 5 лет назад +20

    I dare to slightly disagree with you. Not because I like to stick to ancient and outdated technologies, but because I am convinced that before building that FPGA robot which you mentioned the students need to get a firm understanding of the basics.
    Yes, its absolutely true that for all practical purposes Karnaugh-maps are surely not used in the real world. Mostly because they are absolutely impractical for more than 5 inputs. But I also must tell you that our students year after year had fun solving stuff in this rather unconventional way.
    Teaching them the as obsolete Quine-McCluskey algorithm - that would be boring. This is truly a mechanized operation which should only be done by computers. But seeing patterns in a Karnaugh-map - that's so far only a human experience.
    We combine Karnaugh-maps and the first experience in digital electronics for our students intensively with simulating the resulting circuits in Logisim - which also includes a simplification tool. But trusting any piece of software without the possibility to check out simple models for yourself is something which I would not want to teach my students.

  • @tzubin99
    @tzubin99 4 года назад +7

    I rarely, rarely, RARELY downvote videos. I downvoted this one. I *LOVE* Karnaugh maps. I use them weekly. I've been building things with 74LSxx and 4xxx ICs for 30+ years and I thought K-maps were cool in the 1980s and still cool in the 2020s...SO THERE!

    • @Nandland
      @Nandland  4 года назад +8

      Haha I knew someone would be offended.

  • @larslundheim7606
    @larslundheim7606 3 года назад +7

    Thank you! This is exactly the message I've been trying to get through to colleagues and students (I'm a professor) for some time. By sharing your video, I can save a lot of time. I was educated in an age where manual optimization was all we had, and CMs were very useful. But that was a looong time ago. Universities are conservative, and many teachers don't dear teaching differently than their predecessors. Thanks again. :-)

    • @Jajaho2
      @Jajaho2 3 года назад

      I'm an undergrad EE student and really enjoyed those Karnaugh Veith crosswords. But I think you have a point.
      It does take up a lot of time which could be spent teaching more useful and up-to-date things, like FPGAs.

  • @ShakilShahadat
    @ShakilShahadat 4 года назад +7

    I learned K-map in my twelfth class and actually enjoyed it. I even taught it to a whole class on teachers day. I think introductory k-map should be taught but advanced topics are not necessary.

  • @cprogramming5640
    @cprogramming5640 5 лет назад +2

    I don’t disagree with something fun and useful like an FPGA robot, but where do you start with freshmen EE college students who have no programming background and poor logic skills. Do we just let them code things in behavioral Verilog? Do we skip multiplexing, adders, decoders and other circuits? My biggest frustration is spending a whole semester on basic building block circuits and not producing an interesting integration of these topics. We want the content to be relevant for our students. Hope you will create some follow up videos on what should be taught.

  • @fenderrexfender
    @fenderrexfender 4 года назад +2

    K-maps can help you reduce complex if-else if statements. reduce need state transitions initialization and bounds checks by using any reasonable boolean to make a k map; else you will see dirt in your code

  • @craigrobertson8476
    @craigrobertson8476 4 года назад +1

    I just flat out disagree, I use a k-map all the time. I don't know why you make it sound so dreadful to "write stuff" down. Its just a way to write a truth table in simplified fashion for simplification. If I have like 10 variables obviously I'll let the computer do it but otherwise I don't get your point in making this video.

  • @hjups
    @hjups 4 года назад +1

    I disagree. I actually enjoy K-maps, and I use them almost every day. There have been many cases where I had a multi-input truth table, where the K-maps helped me separate out the inputs and reduce the critical path as a result. That becomes especially important for the multi-output LUTs like the Xilinx chips have, allowing for increased resource utilization. In my experience, the synthesis tools often do a crappy job at that sort of task.
    Another way you could look at the topic is from the perspective of a historical importance. You teach K-maps for the same reason that you teach infinite series in calculus, even though in practice, you will almost always use some tool like Mathematica to evaluate them for you.

  • @chrisstanford3652
    @chrisstanford3652 5 лет назад +5

    EE ABET accreditation requires certain curriculum, even unfun stuff. How many times does one apply Differential Equations or Calculus 🤔

    • @Madsy9
      @Madsy9 5 лет назад +6

      Differential Equations or Calculus? If you work with analog electronics or even radio with filters, perhaps every day. Same if your work involves Control Theory / SCADA systems. And that's the thing isn't it? Educating engineers isn't just about teaching stuff the current industry wants or the lowest common denominator. The curriculum is supposed to be versatile, broad and also potentially make you ready for a future place in academia or make you able to publish something yourself. And some things are taught not because they are directly useful, but because the topics broaden your perspective and the way you think. Higher education is supposed to be more than the direct utility value.

    • @taekwondotime
      @taekwondotime 5 лет назад

      "How many times does one apply Differential Equations or Calculus?"
      Answer: To basically every math problem that exists in the real world.
      Your question is truly bizarre given that almost everything in physics is a differential equation and almost everything we model relies on some change over time concept.

  • @Thirsty_Fox
    @Thirsty_Fox 5 лет назад +2

    Don't really have an opinion on this, but I just wanted to say that I really enjoy your channel and find it inspiring to me as a student. Cheers from Canada!

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

    I just learnt these K-Maps, and don't believe I'll use them ever again, but they were useful for myself as a supplement to Boolean Algebra merely as a learning tool. In retrospect, I believe it was a necessary evil in the learning experience as another way of looking at it all. Naturaly, me being me, I couldn't stop at four input variables and had to dive into three dimensional K-Maps just because I simply wanted to know wtf was going on and why they'd be used! I believe in covering everything that assists me in the learning journey and having a firm foundation in all of this knowledge, but don't believe in spending too much time on a topic these days with the software we already have available.
    I think the problem stems from the 1960's when this was extremely valid and super important when all done by hand (Apollo Space Program). But these days universities need to catch up and move with the times and focus more on FPGA software training.

  • @FunPHYSICZ
    @FunPHYSICZ 9 месяцев назад

    I couldn't disagree with you more. Actually, Karnaugh maps are fun to do. Eliminating knowledge of Karnaugh maps is just another dumbing down of Electrical Engineering and turning it into a "coding" science. It's already weird to me that designing FPGAs is still considered Electrical Engineering since you can write Verilog and VHDL code without even needing to know Ohm's Law or anything about electricity. And by the way, not all digital logic is done by FPGAs. If you need to implement something simple without using a $50 FPGA instead of $2 logic, you won't be using an FPGA or synthesis.

  • @timonix2
    @timonix2 4 года назад +2

    I had no problems with K-maps when i started. I learnt that minimization was a thing and even though I am not doing it by hand any more I still occasionally use automated tools for it.

  • @chandrasamsung337
    @chandrasamsung337 3 года назад

    hahaha, you are comparing k maps with hexa robot. comparing apples with milk. Show a better alternative than k map, and which can be easily visualised on a blackboard and easily solvable using pen and paper.
    For example, "you can use calculator, but you must know atleast that 2+3=5"

  • @ThisisNik1
    @ThisisNik1 4 года назад +1

    I can't remember using a Karnaugh map for a practical purpose, but one time I had an exam in a Digital Systems class and one of the exam questions asked you "How to assign 8 symbols to the corners of a cube such that the transition energy required to go from 1 symbol to another is minimezed". Although Karnaugh maps were not used in that course, I used a Karnaugh map to map the 3 bits used to the 8 symbols. Turns out, that assignment used the minimum energy :)
    Other than that, I don't have any particular feelings towards that or boolean algebra.

  • @malcolmherbert6483
    @malcolmherbert6483 3 года назад +1

    Saw the title and had to take a look at the video ...much of the beauty of Karnaugh Maps are for when you don't have to find outputs for all of the possible inputs to your system - because its visual, it's really easy to see groupings of terms that you can eliminate and even more so if you have "don't care" states. I agree that any programmatical reduction of boolean algebra will beat the pants off doing it manually with a Karnaugh Map (especially when you get more than 4 input terms!) but as a way to float the underlying mechanisms that are going on I think they're not a bad aid to teaching ... I've never used them outside of Uni except once in the last 25 years ... having to learn Gray code in order to write a correct Karnaugh Map is a complete turn-off for most students though, so I get that they're not fun from that point of view ...

  • @LordDecapo
    @LordDecapo 5 лет назад +1

    Lol i work in the field on FPGA projects... i learned it once, never used it again. XD Most of the cases where you need to simplify logic, its either overly complex for a Kmap or its simple enough to reduce in your head.

  • @turkishjedi2195
    @turkishjedi2195 3 года назад +1

    31 k-map users watched this video

    • @AlFredo-sx2yy
      @AlFredo-sx2yy 3 года назад

      31 retards who cant do boolean algebra and need hand holding methods that take longer to solve their problems lmao.

  • @trvebm7812
    @trvebm7812 3 года назад

    SO basically this shit is everywhere. We think that professors in other countries teach this and that, but the reality is, wherever we are, we're in the same soup!

  • @chenchen2221
    @chenchen2221 5 лет назад +2

    should i do a master program for fpga?

  • @MuhammadIrfan-ox4ud
    @MuhammadIrfan-ox4ud 4 года назад +1

    I would argue that K-map is useful. I would like to see you make simple a circuit which detect the pattern 10011 in a binary stream. In other words, if the pattern is found in the stream of bits, the output is 1, otherwise 0. I would love to see if you can avoid K-map to solve this in a systematic way.

    • @Nandland
      @Nandland  4 года назад +1

      Use Verilog or VHDL and a synthesis tool. The days of drawing circuits is long gone.

    • @MuhammadIrfan-ox4ud
      @MuhammadIrfan-ox4ud 4 года назад +2

      ​@@Nandland Thank you, Russell.
      But we need to explain the underlying mechanism of such circuits to the students in their early stages. Synthesis tools are supposed to ease the process and it does not mean that the person does not need to understand the whole process.
      I will try to explain this with an analogy.
      For example. calculator is meant to ease the arithmetic operations for human but this does not mean that in the early stages of mathematics lectures we tell the students to take this calculator and do the arithmetic operation and you don't need to understand how 3+5=8. SImply do it with the calculator.

    • @Nandland
      @Nandland  4 года назад

      @@MuhammadIrfan-ox4ud Thanks for your perspective!

  • @taekwondotime
    @taekwondotime 5 лет назад +3

    FYI: For students out there learning digital logic in school, you will have to know how to use K-Maps. Compared to the other stuff in the course, K-Maps are probably the easiest thing to understand and the section will be like a mini vacation for your mind. (Boolean algebra is much harder for example.) The rationale behind it (why you learn it) is to teach you about simplification of logic circuits. The fact that it's done by software now is analogous to driving being done by a computer. If all driving is done by computer, people will forget how to drive cars. Similarly, if people rely exclusively on software to simplify circuits, they will forget or lose the ability to do it themselves.

  • @dajoma36
    @dajoma36 2 года назад

    Totally agree! Karnaugh maps suck.

  • @nitheeshmanjunath5514
    @nitheeshmanjunath5514 5 лет назад +1

    Agree to disagree. I use them everyday and I don’t them either. But they’ve made my life easier

  • @adityatyagi4009
    @adityatyagi4009 Год назад

    I got a chuckle watching this video. I think it's important to know what a K-map is but not to spend TOO much time on it as in engineering school. The worst experience I had in digital logic was learning about the Quine-McCluskey algorithm and having to do it on an exam question to find the essential prime implicants of a Boolean expression. Pure torture.

    • @Nandland
      @Nandland  Год назад +1

      Oh yeah... I had an entire grad school class about Quine-McCluskey. Super relevant and important in modern FPGA design... not!

    • @adityatyagi4009
      @adityatyagi4009 Год назад

      @@Nandland Engineering school has a way of killing the fun of engineering. Don't get me started... lol.

  • @TsarBlyatinum
    @TsarBlyatinum Год назад

    Wish my professor watched this 😂

  • @greywolf271
    @greywolf271 2 года назад

    While your purpose in life seems to be making engineering fun, there is a reason for learning the basics and that is to understand what you are doing. I enjoyed maths in school and did not have the advantage of computer program visualisation when I was growing up. That nowdays I can simply grab a cheap individual mathematica or matlab license and do amazing visualizations is a tribute to the giants who have paved the way.
    I wish I had the software to generate graphics of algebraic and trig equations when I was in school It would have given me a much better grounding and understanding. LIkewise, don't discard K-maps. They can be a great visual tool.

  • @LinhHoang-zi9mt
    @LinhHoang-zi9mt 3 года назад

    k-map is fun! it's a must so you would appreciate what the software does. But a given problem should be small with only few variables. It's like doing matrix multiplication by hand up to 3x3. After that just let the software does it job.

  • @SuprTorrent
    @SuprTorrent 3 года назад +1

    Is there any *Reason* why we use code gray instead of binary one?

    • @Nandland
      @Nandland  3 года назад

      There are some use cases for gray code yes. Check the wiki page.

  • @munch92
    @munch92 3 года назад

    These theoretical things are without doubt tedious, but this is what the academic system has been. University is not for quick tool grabbing. They always teach in a bottom-up manner: start from the atomic fundamentals from scratch. Maybe the liberal art elite system expect we become those who write the automation algorithms as you mentioned. But actually most of us become tool users instead of tool creators.

  • @ShopperPlug
    @ShopperPlug 2 года назад

    I completely agree with you. I realized Karnaugh maps are not needed and makes things more complicated. I rather use plain Boolean math in a custom program to do verifications, than using Karnaugh map, cause Karnaugh map is like alien math makes no sense.

  •  5 лет назад +3

    Nah! Maybe I am odd, but I found Karnaugh maps interesting. Well, that's true that only at the first day ;-P

    • @BEdmonson85
      @BEdmonson85 5 лет назад +2

      I never had trouble with Karnaugh maps in uni, I actually enjoyed them. Admittedly, I've never used them once in the real world.

  • @thepurpleone7153
    @thepurpleone7153 3 года назад

    How would you program a binary to 7 segment or anything that could be solved with only logics?

  • @chavjones9380
    @chavjones9380 3 года назад

    I thought it wasn't so bad to learn, but then after a month of learning it the Prof came out and said that minimal circuits are full of delays and glitches and are never actually used.

  • @FPGAsforBeginners
    @FPGAsforBeginners 3 года назад

    I will admit I haven't used a single Karnaugh map in my entire career.

  • @Surtweig
    @Surtweig 5 лет назад

    I guess its a common thing in education, and in human culture for that matter - the older a knowledge is, the more valuable it appears to be. Because of this, the teaching process which could have some kind of tradition tends to go in historical order. It makes sense if you study basics first, then learn incrementally about newer things, but sometimes it's just like this. I know that in order to become a captain of a modern cruise liner you must learn to sail (with actual sails) and use stars to orientate yourself first, which is not unreasonable at all.

  • @zwykyziomek2570
    @zwykyziomek2570 4 года назад

    I get your point but isn't university all about the fundamentals and a comprehensive preparation to be able to create such stuff (as the hexapod) on your own?
    A professor can show it to students but then what? There is a time when a professor needs to teach them all the low-level stuff even if this is not used in the industry because it's a great way to understand how all this digital electronic stuff works.
    I mean, what's the point of presenting Verilog coding if one has no idea how a NAND gate or multiplexer works?
    I had two programs at my uni, one covered all the basics with gates, Karnaugh maps and simplest devices, and the second covered some VHDL project and more advanced theory.
    It boosted my skills from the total 0 (I didn't know much about Boolean algebra and didn't know FPGAs existed) to such an extent that my thesis work was related to FPGAs (implementation of a stream cipher) and I'm able collaborate with the industry now.

    • @AlFredo-sx2yy
      @AlFredo-sx2yy 3 года назад

      if its about the fundamentals and comprehensive preparation then its better to use boolean algebra, where the real math and logic behind the circuit is at work.

  • @b6234
    @b6234 5 лет назад

    currently learning this, but first, we had to convert 6 pages of number binary hex octal decimal... I just wanted to leave

    • @chrism7574
      @chrism7574 5 лет назад

      Base conversions are an important skill if you get a job related to digital design. I read hex and have to think in binary all day, it'd be a huge waste of time if I relied on a calculator to convert for me.
      So don't think that learning to quickly convert between bases is a waste of time.
      To the point of this video, I also deal with a lot of Boolean logic. K-maps are important as well.

  • @WittyComm3nter
    @WittyComm3nter 4 года назад

    Maybe tell us a better method of combinational circuit simplification, because I’d so much rather use a karnaugh map than manual algebraic simplification.

    • @Nandland
      @Nandland  4 года назад +1

      Synthesis tools

  • @zikomo8913
    @zikomo8913 4 года назад

    Damn, I thought only I hated Karnaugh Maps, they are tedious as hell!

  • @tarablecode6115
    @tarablecode6115 5 лет назад

    At least as a non student being able to see what you're learning come to life is super important.
    That blinky led is pure fuel when learning somewhat complicated things and it feels super good to see the results of your new knowledge.
    That's why I think your videos have helped me learn the most, gotta keep the people interested because if it's just numbers and theory they'll get bored.
    Or at least thats how I work.

  • @stefano.a
    @stefano.a 3 года назад

    To teach Karnaugh maps I use only one or two hours ...and two single boolean algebra laws. For programming an FPGA... after more than 30 hours of research, I (the high school teacher) haven’t found a model of FPGA, an “IDE” and an HDL, simple, general and “cheap” enough, so that my students can learn a working method and knowledge not limited to a single example or “educational board” and so that my school can afford the costs. The biggest problem is the lack of documentation for an “high school level” of teaching. I found your channel today: I hope that it can be useful for me to find the right answers in the future

    • @botsnlinux
      @botsnlinux 3 года назад +1

      You might consider icestudio and the UPduino 3.0. Free software, < $30 for hardware per student. And you could easily delve into verilog/VHDL from there if you wanted to.

    • @stefano.a
      @stefano.a 3 года назад

      @@botsnlinux after many months of research I chose to use a cheap ( 15€ ) PSoC 5LP board from Cypress. The IDE (free, stable, open source and updated in 2020) is very simple, “electronic oriented” and inside the chip there are some programmable blocks that can be configured using a subset of Verilog

  • @jamiegaliastro7849
    @jamiegaliastro7849 4 года назад

    You're gunna program this shit! HAHAHA

  • @MarkMcDaniel
    @MarkMcDaniel 3 года назад

    Dude, seriously, K-maps are very easy to use.

  • @ammarkurd7905
    @ammarkurd7905 4 года назад

    I can't agree more with it! it is absolutely true.

  • @RedMoon543
    @RedMoon543 4 года назад

    actually I feel a lot of fun
    but yeah it's useless

  • @TimmmmCam
    @TimmmmCam 4 года назад +1

    Well said! We were taught them in Engineering at Cambridge. So pointless. They also managed to completely put me off electronics by tediously deriving theoretically perfect values for resistors and whatnot. Very difficult maths. The real world is more like "try 10k, that'll probably work".
    Our microcontroller programming class consisted of manually assembling a program (yes we literally had to look up op codes) and then tediously typing the op codes into 70s era number pad whose only interface was a number pad. Fun fun fun! This was in ~2004. Hopefully they've improved things since then but I would be surprised if they have.

  • @aemerox5773
    @aemerox5773 5 лет назад

    Karnaugh maps are still being taught and yet not universally used in the field.

  • @FPGASystems
    @FPGASystems 5 лет назад

    this is why yours spi code works )

  • @vincentgriffin9202
    @vincentgriffin9202 3 года назад

    What alternative would you suggest?

    • @upendownlinker
      @upendownlinker Год назад

      boolean algebra

    • @FlyBy2507
      @FlyBy2507 Год назад

      @@upendownlinker yeah, sure! Boolean algebra is so fun!

  • @your-mom-irl
    @your-mom-irl 2 года назад

    Karnaugh been really silent since this dropped