EEVacademy | Digital Design Series Part 5 - Karnaugh Maps

Поделиться
HTML-код
  • Опубликовано: 19 окт 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

  • @phermn
    @phermn 5 месяцев назад

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

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

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

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

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

  • @jeremiahbullfrog9288
    @jeremiahbullfrog9288 Год назад +3

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

  • @KeritechElectronics
    @KeritechElectronics Год назад +2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • @shalom8426
    @shalom8426 6 месяцев назад

    Nice and Precise!🫶🏽🖤

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

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

  • @bigguyprepper
    @bigguyprepper 7 месяцев назад

    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

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

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

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

    Love these. Almost seems like magic.

  • @fllev4121
    @fllev4121 Год назад +2

    Beautiful.

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

    Every time I watch you, I feel young again.

  • @brumbymg
    @brumbymg Год назад +2

    Nice. I like it.

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

    Love it. Thanks

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

    Omg what a trip back in time….

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

    DaveCad-very educational.

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

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

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

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

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

  • @AIM54A
    @AIM54A Год назад +2

    Kmaps.. I remember that class.

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

  • @Francesco-bu1hh
    @Francesco-bu1hh Год назад

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

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

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

    Wow!

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

    Nice title!

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

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

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

    What tablet do you use Dave?

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

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

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

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

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

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

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

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

    Last example uses less gates if you do PoS instead

  • @AustinAyitey
    @AustinAyitey 10 месяцев назад

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

    Well that took me back to 1969 at RMIT.

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

    How much does Dave CAD license cost?

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

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

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

    I think I'll stick to algebra cheers.

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

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

  • @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? ruclips.net/video/UKRjd2EOEAo/видео.html

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