EEVacademy | Digital Design Series Part 5 - Karnaugh Maps

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ธ.ค. 2024

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

  • @flymypg
    @flymypg ปีที่แล้ว +54

    Good job! The next step is always fun, selecting the actual gates to be used.
    When I was a technician in the US Navy, we often had electronic systems that would last the life of the ship (yes, I even worked on perfectly good systems containing tubes/valves). Meaning we also had boards and racks filled with jellybean TTL logic that needed to evolve rather than be replaced. When a bug was found or a new feature was needed, in the worst case it could mean a expensive re-spin of a decades-old board may be needed. More often, we'd instead be sent a step-by-step procedure to add an extensive series of jumpers, along with updates to the documentation describing the change. The high-level description never matched the gates that were connected. They had to use whatever free gates were available on the board, meaning the ideal change described in the overview had to be transformed to make use of available resources on the boards.
    I saw they used ingenious equivalences. What do you do when you need an AND gate, but have only NOR gates? This was de Morgan's Laws being used sideways, transforming the ideal to make use of the real. This notion lit my brain on fire. "De-optimization" as a vital part of the path for solving a highly constrained engineering problem!
    I loved reverse-engineering the delivered solution to see if I could do better, where "better" had two primary constraints: Don't ruin the timing, and don't use more resources (jumpers and spare gates). Then, when I did find a "better" solution, I'd step back and ask if there were reasons the designers would choose to NOT use my "better" approach. This was where I learned about wire length issues, gate loading issues, gate speed issues, and so on. All the "unpleasant realities" one encounters when implementing an optimal Karnaugh Map solution into an existing system.
    In time I became fairly proficient at this, and it became a hobby for me to dream up new system features, design the optimal solution, then see if the ideal solution could be transformed to permit it to be implemented using the spare resources available on the board. Fun stuff! I also gained a reputation as a savvy troubleshooter, as this "hobby" also encouraged me to go beyond our technical documentation to look at how and why our systems were designed and implemented the way they were.
    The last ship I served on was brand new. In fact, I was on the small team that inspected and tested every inch of it as we signed off on each system as part of the Navy's acceptance process with the shipyard. Despite how new it was, it still contained decades-old technology, largely due to the long lead-times for military system design and procurement, combined with the need to reuse older systems still in production whenever it made sense to do so.
    One brand-new system, the set of digital engineering consoles used to control the propulsion, electrical and auxiliary systems, were still implemented using old jelly-bean logic on small cards plugged into large wire-wrapped backplanes. My ship was among the last 10 of 30 Spruance-class destroyers made. During the run of Spruance-class construction, the Navy created and built the Oliver Hazard Perry-class frigate, which used the same marine gas turbine propulsion system as the Spruance class (with 2 engines instead of 4), but had far newer technology in its engineering consoles.
    When the first Perry frigate arrived at our base, all of us engineering techs went over to compare notes. We were very upset when they wouldn't let us disassemble their consoles. But we did see they had several cool features implemented that our ships lacked. I immediately set myself the task of cloning as many of those features as possible into the spare gates of our consoles. Some were clearly too complex to even consider. Others would need signals or sensors our systems lacked.
    Here's one example: Though our ships shared common propulsion jet turbine engines, their engine control system had been updated, and provided one key signal our systems lacked: An engine flame-out alarm. This signal came from a flame sensor added to a sensor port that was blocked off on our engines. Why? I have no idea why our destroyer engines lacked a flame-out alarm, as it meant we had to vigilantly monitor the engines to see when power was unexpectedly lost. (Note: There was lots of inertia in the system, so a loss of speed wouldn't be noticed until an engine experiencing a flame-out had spun way down.)
    I wanted to see if I could design and implement a "good enough" stand-in for a flame-out alarm using only the signals and spare gates available in our main engineering console. I gave myself a further constraint that I couldn't modify any of the plugin-cards, and could only use signals available at card rear connector, so I could implement the feature using only wire-wrap changes to the card cage backplanes. This would also make the feature easily reversible, in case I messed up.
    I did come up with an approach which I ran past my fellow techs and our supervisors, challenging them to find a flaw. We wanted to test it, but it was ABSOLUTELY illegal to modify critical ship systems in this or any other way. Still, we figured it wouldn't hurt to ask, so we walked the idea up the chain of command. Our Commanding Officer, the Captain of the ship, was very gung-ho, and agreed to implement the feature for one of our 4 engines. He also added the constraint that we must have spares in stock for every card I'd be accessing..
    I implemented the change, and it worked! We now had one engine with a flame-out alarm. So, of course, we used that engine for all our casualty control training and examinations for things like a fuel supply valve being tripped.
    Once the design had proven itself, I fully documented it as a "Benny-Sug" (Beneficial Suggestion) for an engineering change, and sent it up the chain of command all the way to Washington. Being VERY careful, of course, to NOT mention the change had already been implemented, tested and proven.
    I did not receive the reply I was expecting. Our Captain was reprimanded for allowing design changes to critical systems to even be considered, much less supported and forwarded. I was crestfallen when I got the news. However, the CO then said: "You are expressly forbidden to pursue this change any further, in any way whatsoever." Now, you need to know Navy Speak to parse this correctly. It also meant I was not allowed to REMOVE the change! For years we kept performing and passing casualty drills using that engine.
    Looking back, I view that flame-out design as my first true engineering product. My pride in that accomplishment, combined with the Navy's poor reception of it, directly influenced my decision to leave active duty to pursue an engineering degree and a civilian career.
    And it all started with figuring out how the "ideal" modifications were designed and implemented using Karnaugh, de Morgan, some spare gates, and a spool of jumper wire.

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

      I can’t wait for Dave to get into multiplexers, encoders and such. I’ve been teaching myself all of this as I design a mixed signal synthesizer and the information has been invaluable. Can’t describe how useful another lecture series on this is.

    • @chitlitlah
      @chitlitlah ปีที่แล้ว +9

      You should write a book. Oh wait, you just did. I read it all and it was a pretty good book though.

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

      Thanks a ton @BobC! It helps me to see a practical demonstration of an engineering concept like this! Is prolly the only way I made it thru my CS degrees! Lol

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

      As a US Navy brat to a father who was career, I was unfortunately unsurprised at the Navy's reaction to your suggestion. That was something Dad was always complaining about. Really neat story nonetheless; thanks for sharing!

    • @Lampoonlongtails
      @Lampoonlongtails ปีที่แล้ว +3

      Great story, thought indicative of management buffoonery (ie, IBM loosing out in the PC (ISA bus) industry it started, and fowled up again, with the MCA licensing fees, XEROX giving away the Alto developed at PARC, TI's 9900 CPU being limited to 32k words, and the matching video chip having an 8 bit interface, etc etc).
      Such important features as the flame-out detector, should have been made mandatory upgrades, accross the fleet. And continued technical expertise and development, encouraged.
      So stupid, that the military (and any industry dependent of technology) emphasize competency, efficiency, effectiveness and skill. But your experience demonstrates, it's about being a minion. How can anyone have pride in their work, or management?
      Reminds me of the story of the Turbinia, launched August 1894. Sometimes new technology is not accepted, until it's superiority can not be ignored. And again, when the U.S. refused the 'silent propeller' developed in Japan (the Toshiba-Kongsberg scandal of 1987).

  • @G6EJD
    @G6EJD ปีที่แล้ว +6

    My Professor was Douglas Lewin and he taught me as a designer you can’t minimise the logic too far as you have to consider the repair and diagnostics process later in the design life, meaning you had to leave enough for the repair technician to work out what’s going on. Wise words.

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

      Must have been a while ago because nobody cares about repair anymore

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

    I remember my digital logic class in college in the 70s. We spent a while on Karnaugh Maps. Last day of that we were given the classic 4-way light switch problem. Basically a room with 4 doors and a light switch at each door. Problem was to design a "simplified" logic circuit to control a single light in the room by turning it on at any switch and then off at any switch. Give it a go and try to simplify via a KM.
    There was one student in the class that managed to get one gate less that the "brute force" logic. Then the prof. asked how long that student spent on the solution and he worked out the cost for that one saved gate. This was our introduction to MSI logic and multiplexers, when the prof. showed how that same logic could be implemented with one 16:1 multiplexer chip.

  • @phermn
    @phermn 6 หลายเดือนก่อน

    Brilliant! Thanks! It all came flooding back after 29 years. A perfect refresher!

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

    I learned these in 1982 as a fresh EE student. Next trick is to add MEVs (map entered variables). My professor had a Fortran program he wrote to minimize huge Karnaugh maps. Lots of fun.

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

      Same here. All I had were old library books and my school had an old IBM 360/30 running Fortran IV.
      Had a stack of punch cards and kept them wrapped in rubber bands.
      Good times...

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

    Great Explanation!
    You're brilliant explaining concepts.
    Today I remembered the joy of learning Karnaugh magic when I was young.

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

    Simple is better than complex, complex is better than complicated. You laid it out really well :)

  • @jeremiahbullfrog9288
    @jeremiahbullfrog9288 ปีที่แล้ว +3

    I love this kind of content, thanks for coming back to this series

  • @funtechu
    @funtechu ปีที่แล้ว +3

    I still remember doing 6 variable Karnaugh maps during my undergrad. It gets to be a real pain! For anything over 4 variables, I prefer using Quine-McCluskey. Could be interesting to have a video on QMC later on in this series.

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

    Great refresher and throw back to my undergrad days. Cheers Dave

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

    What a wonderful review of Karnaugh Maps, Dave. Using this method has helped me create some very neat, compact circuits, in my electronics hobby. Thank you!

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

    Thanks Dave,
    Another great practical class in logic.
    Cheers.

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

    Just had flashbacks to 1989...Actually a great class in all of this. LOVED digital design back in the day. Haven't used it since, but computer engineering was the degree, and it never actually got used. :(

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

    I loved it so much in my engeneering school back in the days. Loved to hear you about it!

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

    I learned about Karnaugh mapping in high school, maybe '87. We then went on to implement using NAND gates and also using NOR gates.

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

    I love these series you do Dave! One side benefit of these series is that there is always ancillary information and/or a practical application of what you've covered, like how @BobC shared (btw, thanks a ton Bob. It helps me to see a practical demonstration of an engineering concept like this!).
    Thanks again Dave, can't wait for the next entry in this series. Even if it takes another couple years! 😉🤣 But seriously, the variation of content is what has kept me glued to your channel for years! That and the high quality of the information from both you and the community! 🤓

  • @algorithminc.8850
    @algorithminc.8850 ปีที่แล้ว +1

    Great series. Thanks. I love this topic in particular ... and suggest a follow up video with the "Quine-McCluskey algorithm." At Georgia Tech in Atlanta in the 1980's, they taught the approach for EE (along with Karnaugh for smaller problems). Caldwell and Fielder at Ga. Tech added to the approach, if I remember correctly (I knew Fielder). In any case, really enjoying the channel ... and still chuckling with the moon-landing video. All the best and cheers from sunny Florida, USA - Christopher

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

    Ooooh, Karnaugh Maps, so much fun :D :D

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

    man, today I am 50+, I learnt it when I was around 17 - thank you for taking me there, to the super nice timse ;-)

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

    Excellent. Being somewhat of a math aficionado (aka geek) I have always used Boolean Algebra. I now now how to do Karnaugh Maps. Thank you.

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

    Great job! Using this to study for my digital logic final. Thanks for the video

  • @ninetailscosmicfox5585
    @ninetailscosmicfox5585 ปีที่แล้ว +3

    This is great! I watched another series and there is so much mind blowing stuff going on.
    Perhaps you could do a PLC/SLC/Plant control series as well?

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

    I learnt this in high school, It's a great technique

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

    Thank you! So helpful, and you made it fun to watch as well.

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

    #Dave, you are a good teacher, you should make more of these videos where you teach electronics.
    I knew this about Karnaugh maps well before, but it's a good refresher to see it reviewed again.
    for my part, there is a lot that was learned that I don't use very often, so I often just use a refresher video to get ready again.

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

    Love these. Almost seems like magic.

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

    Using the gray code allows the table to rap around from top to bottom, so you can link one in the top square to a one in the bottom square.. with only 1 bit change.

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

    Nice. I like it.

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

    Beautiful.

  • @commanderguy-rw7tj
    @commanderguy-rw7tj ปีที่แล้ว +5

    👀this is out already? I just randomly found this through the EEVacademy playlist lol
    Edit: nope, it's unlisted for now 🤔

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

    I saw you posting about lower views on launch, but let me tell you this is really useful content. Thanks!

  • @WeaverFleek
    @WeaverFleek 8 หลายเดือนก่อน

    Nice and Precise!🫶🏽🖤

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

    Omg what a trip back in time….

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

    Love it. Thanks

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

    22:00, the first solution has one less inverter than the second.

    • @EEVblog
      @EEVblog  ปีที่แล้ว +3

      Sorry, editing goof, it actually doesn't. The first A in the first solution is meant to have a bar over it. I showed this in the edit earlier but I forgot to drag the correction further on in the timeline, so you only see the corrected version for about a minute and then it vanishes.

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

    Every time I watch you, I feel young again.

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

    6:00 shows pen magic cleaning the B from the board and half of the X while changing nothing in the upper right area with the red circle drawn before.
    maybe dave's magic or another logic gate function but a circles seems to be not the same in that app.

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

    man, this and the last video explaining the differences with product of sums would be helpfull. my professor expects us to know both but only explains one

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

    It sometimes possible to have "don't care" states, marked with *, for instance, if you have a decimal 7-segment display, you have don't cares from A to F. That often helps simplify logic gates a lot. Wikipedia has a paragraph on it. By the way, for a real challenge - try to figure out how NASA engineers were able to use 5 just relays to control the 7 segment display on the Apollo DSKY :-)

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

    Like someone commented in an old video of you #600 i think it was, he thanked you for your work in charing your knowledge with all of us hobbyists, and probably pros too... I just have to hopp on to his comment, dont care if it was old, its still brilliant👌 Most of my basic electronics knowledge i get from your EEVblog and Paul Carlson at Mr.Carlsons lab, then i know what to focus on in the books😅 So fom the bottom of my hart, thank you so much Dave for all your hard teaching work, I truly love it👍 🙏🤗

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

      And, you actually manage to make it fun... 😂😂

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

    DaveCad-very educational.

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

    Kmaps.. I remember that class.

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

    this made me feel like im 17 again :) thanks, great presentation

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

    Wow!

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

    I like to check if I can get better results by grouping the 0s instead, in which case I just use a NOR for the output

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

    Sir will you be continuing this series for now cause I'm taking notes and I'm loving your content!!❤️😎

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

    hi, what's the name of the software you are using as digital whiteboard?
    thanks

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

    Please tell me what tools you have used for this video.

  • @Francesco-bu1hh
    @Francesco-bu1hh ปีที่แล้ว

    Thanks Dave. could you do a lesson about Digital to Analogue Conversion?

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

    What tablet do you use Dave?

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

    Is there any non trial-and-error method for simplifying circuits using xor? For example, -A-BR + AB-R (where -A means "not A") simplifies to (A xor R)(B xor R), but the latter is a much simpler circuit (at least it is when using 74-series chips, which is what I'm mostly concerned with).

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

    I am not so hot on the maths stuff but at 21:30 in on the vid, can you explain further how the two different equations are identical

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

    I love your enthusiasm! In the 60’s some of my teachers were old farts. It’s difficult to learn from old farts ☹

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

    Nice title!

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

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

    But... the Verilog/VHDL compiler does all that optimization... ;) So this is all for us oldfarts who have their precious 74xx series drawers full of everything from 7400 to 74xx996 (and/or of course K155ЛА3 and beyond)

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

      And if you really have to get a bigger boolean function optimized there's Espresso that's slightly less antique.

  • @Zardox-The-Heretic-Slayer
    @Zardox-The-Heretic-Slayer ปีที่แล้ว

    I design with logic chips wherever it's possible. I honestly hate coding stuff with a passion, I just want to solder stuff!

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

    Last example uses less gates if you do PoS instead

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

    How much does Dave CAD license cost?

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

    Well that took me back to 1969 at RMIT.

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

    I think I'll stick to algebra cheers.

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

    Don't forget Feits, we had to study them in 1977

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

    Wordsearch puzzles for Engineers

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

    "Who likes algebra"? I realize this question is rhetorical, but just off the top of my head...Numberphile, Mathologer, 3Blue1Brown, Old Hack EE...I can't swing a dead felid without hitting someone who likes algebra.

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

    We teach Karnaugh maps in our introductory university course on electronics - this autumn I will link your video to the course material.
    But have you seen Nandland's quite expressive rant against Karnaugh maps? th-cam.com/video/UKRjd2EOEAo/w-d-xo.html

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

    Love to learn these maps and never use them. I usually try to pull my hair when logic in if() statements needs to be simplified

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

    Karnaugh, Schmarnaugh. No need to slog through any simplification with today's high capacity logic arrays. Just type in your boolean equations and Bob's your uncle. Not to mention that AI can simplify logic.