<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Engineersphere.com &#187; chrislego88</title>
	<atom:link href="http://engineersphere.com/author/chrislego88/feed" rel="self" type="application/rss+xml" />
	<link>http://engineersphere.com</link>
	<description>doesn&#039;t have to make sense to you, but it&#039;s probably great for your health.</description>
	<lastBuildDate>Fri, 28 Oct 2011 03:05:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Karnaugh Maps</title>
		<link>http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html</link>
		<comments>http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:07:25 +0000</pubDate>
		<dc:creator>chrislego88</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[Binary]]></category>
		<category><![CDATA[Boolean expressions]]></category>
		<category><![CDATA[K Maps]]></category>
		<category><![CDATA[Karnaugh Maps]]></category>
		<category><![CDATA[Truth Tables]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=828</guid>
		<description><![CDATA[TweetTweetWhat are Karnaugh Maps used for? Karnaugh maps or K-maps for short are used for simplifying Boolean expressions. K-maps are constructed depending on the number of variables, or bits, in the expression. For example if the expression is f(A,B,C,D) = A + D, there are 4 bits to consider. Before starting to construct the K-Map you [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html&via=EngineerSphere&text=Karnaugh Maps&related=EngineerSphere:&lang=en&count=none" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html&via=EngineerSphere&text=Karnaugh Maps&related=EngineerSphere:&lang=en&count=none" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><h3>What are Karnaugh Maps used for?</h3>
<p>Karnaugh maps or K-maps for short are used for simplifying Boolean expressions. <strong>K-maps</strong> are constructed depending on the number of variables, or bits, in the expression. For example if the expression is f(A,B,C,D) = A<img src='http://s.wordpress.com/latex.php?latex=%5Cscriptstyle%20%5Coverline%7BC%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\scriptstyle \overline{C} ' title='\scriptstyle \overline{C} ' class='latex' />  + D<img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B} ' title='\overline{B} ' class='latex' />, there are 4 bits to consider. Before starting to construct the K-Map you should first create the truth table for the function you are implementing. After this is done it is time to make the K-Map. First thing to do is to draw the box for the K-Map.</p>
<p><a href="http://upload.wikimedia.org/wikipedia/commons/6/62/K-map_4x4_empty.svg"><img title="empty-karnaugh-map" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/62/K-map_4x4_empty.svg/275px-K-map_4x4_empty.svg.png" alt="empty-karnaugh-map" width="275" height="275" /></a></p>
<p>Notice that the most significant bit (A) is on top followed by B and so on.On the top bar 00 stand for AB, 01 stand for A<img src='http://s.wordpress.com/latex.php?latex=%5Cscriptstyle%20%5Coverline%7BB%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\scriptstyle \overline{B} ' title='\scriptstyle \overline{B} ' class='latex' />, and so on. Also the order of the bits is not the standard binary counting order. The order is created in such a way that only one bit at a time is changed.</p>
<h3>Filling out a Karnaugh Map</h3>
<p>Once the table has been created it is time to take the data from the truth table to the K-Map. Copy all the outputs from the truth table onto the K-Map according to what the inputs are. For example, if<br />
ABCD | F<br />
0000  | 0<br />
0001  | 1<br />
0010  | 0<br />
etc.</p>
<p>Remember that the 3rd row is flipped with the 4th, so change the outputs accordingly.</p>
<p>After the K-Map has been filled in it is time to try to simplify the boolean expression. There are two ways to do this, either SOP (Sum of Products) or POS( Products of Sum). The difference between the two is what you group together. In SOP you would group all the 1&#8242;s in the K-Map together, and in POS you group the 0&#8242;s. In the examples, I will be using SOP.</p>
<p>What does grouping mean? Grouping means that if there 1&#8242;s which are next to each other than you can circle them together to create a simpler boolean expression in the end. The trick is that you can only circle an even number of 1&#8242;s. So if three 1&#8242;s are next to each other you can only circle them as groups of 2. It is possible to group 1&#8242;s at 0000 and 1000; 1000 and 1010; and so on.</p>
<h3>A Karnaugh Map example</h3>
<p>For example<br />
CD<br />
AB    <span style="text-decoration: underline;">00   01    11      10</span><br />
00  |<span style="text-decoration: underline;"> 1 </span>| <span style="text-decoration: underline;"> 1   |   1   |   1   |</span><br />
01   | <span style="text-decoration: underline;"> 0 </span>|<span style="text-decoration: underline;"> 0   |   0   |   0  | </span><br />
11    | <span style="text-decoration: underline;"> 0 </span>|<span style="text-decoration: underline;"> 0  |   0   |   1   |</span><br />
10   | <span style="text-decoration: underline;"> 1 </span>|<span style="text-decoration: underline;"> 1  |   0   |   1   |</span></p>
<p><span>To simply this expression, you should group:</span></p>
<p><span>1.  all the 1&#8242;s in AB = 00<br />
2.  1&#8242;s from AB = 10 and C = 0<br />
3.  1&#8242;s from CD = 10 and A = 1</span></p>
<p><span>The way to simply the expression is you note the changes in bits in the groupings.<br />
<strong>In grouping 1:</strong> The only bits to stay the same are bits AB which stay at 00. So the simplified expression would be  <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BA%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{A}' title='\overline{A}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /><br />
<strong>In grouping 2 : </strong>The only bit to change is D. So the expression becomes A * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BC%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{C}' title='\overline{C}' class='latex' /><br />
<strong>In grouping 3:</strong> The only bit to change is B. So the expression becomes A* C * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BD%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{D}' title='\overline{D}' class='latex' /></span></p>
<p><span>So the final expression would turn into F(A,B,C,D) = <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BA%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{A}' title='\overline{A}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /> + A * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BC%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{C}' title='\overline{C}' class='latex' /> + A* C * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BD%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{D}' title='\overline{D}' class='latex' /></span></p>
<p>Note: This expression is not hazard free. To make hazard free group all possible 1&#8242;s together.</p>
]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

