Why I Hate Karnaugh Maps

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ก.ย. 2019
  • 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.com/goboard/intr...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 76

  • @botsnlinux
    @botsnlinux 4 ปีที่แล้ว +36

    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: th-cam.com/video/w9ljqvRHKeE/w-d-xo.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 ปีที่แล้ว

      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.

  • @antoniopetito
    @antoniopetito 4 ปีที่แล้ว +64

    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 ;)

  • @medwatt
    @medwatt 4 ปีที่แล้ว +11

    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.

  • @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.

  • @tzubin99
    @tzubin99 3 ปีที่แล้ว +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  3 ปีที่แล้ว +7

      Haha I knew someone would be offended.

  • @fenderrexfender
    @fenderrexfender 3 ปีที่แล้ว +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

  • @uwezimmermann5427
    @uwezimmermann5427 4 ปีที่แล้ว +19

    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.

  • @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.

  • @chenchen2221
    @chenchen2221 4 ปีที่แล้ว +2

    should i do a master program for fpga?

  • @thepurpleone7153
    @thepurpleone7153 3 ปีที่แล้ว

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

  • @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.

  • @tarablecode6115
    @tarablecode6115 4 ปีที่แล้ว

    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.

  • @Thirsty_Fox
    @Thirsty_Fox 4 ปีที่แล้ว +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!

  • @chrisstanford3652
    @chrisstanford3652 4 ปีที่แล้ว +5

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

    • @Madsy9
      @Madsy9 4 ปีที่แล้ว +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 4 ปีที่แล้ว

      "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.

  • @THE_MC707
    @THE_MC707 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.

  • @adityatyagi4009
    @adityatyagi4009 11 หลายเดือนก่อน

    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  11 หลายเดือนก่อน +1

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

    • @adityatyagi4009
      @adityatyagi4009 11 หลายเดือนก่อน

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

  • @cprogramming5640
    @cprogramming5640 4 ปีที่แล้ว +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.

  • @malcolmherbert6483
    @malcolmherbert6483 2 ปีที่แล้ว +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 ...

  • @taekwondotime
    @taekwondotime 4 ปีที่แล้ว +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.

  • @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

  • @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.

  • @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!

  • @vincentgriffin9202
    @vincentgriffin9202 3 ปีที่แล้ว

    What alternative would you suggest?

    • @upendownlinker
      @upendownlinker ปีที่แล้ว

      boolean algebra

    • @FlyBy2507
      @FlyBy2507 9 หลายเดือนก่อน

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

  • @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!

  • @Surtweig
    @Surtweig 4 ปีที่แล้ว

    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.

  • @ammarkurd7905
    @ammarkurd7905 3 ปีที่แล้ว

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

  • @hjups
    @hjups 3 ปีที่แล้ว +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.

  • @ShopperPlug
    @ShopperPlug ปีที่แล้ว

    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.

  • @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

  • @LordDecapo
    @LordDecapo 4 ปีที่แล้ว +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.

  • @greywolf271
    @greywolf271 ปีที่แล้ว

    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.

  • @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.

  • @your-mom-irl
    @your-mom-irl ปีที่แล้ว

    Karnaugh been really silent since this dropped

  • @FPGASystems
    @FPGASystems 4 ปีที่แล้ว

    this is why yours spi code works )

  • @nitheeshmanjunath5514
    @nitheeshmanjunath5514 4 ปีที่แล้ว +1

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

  • @FPGAsforBeginners
    @FPGAsforBeginners 2 ปีที่แล้ว

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

  • @jamiegaliastro7849
    @jamiegaliastro7849 4 ปีที่แล้ว

    You're gunna program this shit! HAHAHA

  • @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 2 ปีที่แล้ว

      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.

  • @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.

  • @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.

  • @b6234
    @b6234 4 ปีที่แล้ว

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

    • @chrism7574
      @chrism7574 4 ปีที่แล้ว

      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.

  • @turkishjedi2195
    @turkishjedi2195 2 ปีที่แล้ว +1

    31 k-map users watched this video

    • @AlFredo-sx2yy
      @AlFredo-sx2yy 2 ปีที่แล้ว

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

  • @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.

  • @zikomo8913
    @zikomo8913 4 ปีที่แล้ว

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

  • @aemerox5773
    @aemerox5773 4 ปีที่แล้ว

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

  •  4 ปีที่แล้ว +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 4 ปีที่แล้ว +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.

  • @TsarBlyatinum
    @TsarBlyatinum ปีที่แล้ว

    Wish my professor watched this 😂

  • @FunPHYSICZ
    @FunPHYSICZ 5 หลายเดือนก่อน

    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.

  • @dajoma36
    @dajoma36 2 ปีที่แล้ว

    Totally agree! Karnaugh maps suck.

  • @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"

  • @RedMoon543
    @RedMoon543 3 ปีที่แล้ว

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

  • @MarkMcDaniel
    @MarkMcDaniel 3 ปีที่แล้ว

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