<?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; Eli</title>
	<atom:link href="http://engineersphere.com/author/eli/feed" rel="self" type="application/rss+xml" />
	<link>http://engineersphere.com</link>
	<description></description>
	<lastBuildDate>Thu, 19 Apr 2012 17:52:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ABEL Logic Simplified</title>
		<link>http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html</link>
		<comments>http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html#comments</comments>
		<pubDate>Mon, 27 Jul 2009 09:48:36 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[ABEL]]></category>
		<category><![CDATA[ABEL Logic]]></category>
		<category><![CDATA[ABEL Logic Simplified]]></category>
		<category><![CDATA[Digital Logic]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=499</guid>
		<description><![CDATA[TweetTweetABEL Logic is the simplest way to turn an idea in your brain to a working digital circuit.  It is very easy to understand, works like english and functions like a digital circuit so you can easily turn any idea into a working PLD chip that&#8217;ll do exactly what you want.  To get started writing [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html&via=EngineerSphere&text=ABEL Logic Simplified&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/abel-logic-simplified.html&via=EngineerSphere&text=ABEL Logic Simplified&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><p>ABEL Logic is the simplest way to turn an idea in your brain to a working digital circuit.  It is very easy to understand, works like english and functions like a digital circuit so you can easily turn any idea into a working PLD chip that&#8217;ll do exactly what you want.  To get started writing your first ABEL powered device you just need to know your inputs, your outputs and what you want your outputs to do based on your inputs.  This is much simpler than it sounds.</p>
<p>Let&#8217;s say you have two buttons and a light bulb.  You want to turn on the light anytime one of the buttons is pushed. We&#8217;ll first give the buttons names and call them our inputs.  Button one will be called <img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} ' title='B_{1} ' class='latex' /> and button two will be <img src='http://s.wordpress.com/latex.php?latex=B_%7B2%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{2} ' title='B_{2} ' class='latex' />.  We&#8217;ll call the light bulb L.  Since ABEL is a digital circuit that means for every input and output we only have two combinations 1 or 0, on or off.  We use this to represent if they produce power or not.  In the language we use the exclamation point to represent off <strong>!</strong>.</p>
<p><strong>First we check if button one is on:</strong><br />
<img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} = L ' title='B_{1} = L ' class='latex' /><br />
This says if button 1 is on then light is on.  If we wanted to say button 1 is off then the light is on we would write that as <strong>!</strong><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} = L ' title='B_{1} = L ' class='latex' />.  That would cause it so every time the button isn&#8217;t pressed the light would come on, and the light would turn off when it is pressed.  This is known as an inverter.</p>
<p>Next we check if button two is on:<br />
<img src='http://s.wordpress.com/latex.php?latex=B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{2} = L ' title='B_{2} = L ' class='latex' /><br />
This does the same thing for button two.  The problem here is we can&#8217;t use both because then if only one button is pressed then the light gets both an on and an off signal, which is called a &#8220;Data contention error.&#8221;  Which can cause problems for our little bulb buddy when the circuit sends the wrong amperage with the same voltage.  So we have to combine them into one single statement using the english word OR.</p>
<p><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} ' title='B_{1} ' class='latex' /> OR <img src='http://s.wordpress.com/latex.php?latex=B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{2} = L ' title='B_{2} = L ' class='latex' /><strong><br />
</strong></p>
<p>This means if button 1 OR button 2 is pressed then light is ON. In ABEL we simplify the OR statement by using the character +.  So it becomes</p>
<p><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20%2B%20B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} + B_{2} = L ' title='B_{1} + B_{2} = L ' class='latex' /></p>
<p>If Mr. Bossman comes to use later and says whoah there!  I want it so the light only comes on if button 2 is pressed and button one is not then we would use our inverter character (the <strong>!</strong>) to change the circuit to:</p>
<p><strong>!</strong><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20B_%7B2%7D%20%3DL%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} B_{2} =L ' title='B_{1} B_{2} =L ' class='latex' /></p>
<p>This literally translates to NOT button1 AND button 2 turns light on.  Everything else keeps the light off.  We can use the OR make other combinations the boss might specify such as if button 1 is not pressed but button 2 is pressed or if both buttons are pressed at the same time.  The OR is represented by the addition symbol +.  The AND symbol is represented by the multiplication.  Which is literally what they mean in standard mathematics.</p>
<p><strong>!</strong><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20B_%7B2%7D%20%2B%20B_%7B1%7D%20B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} B_{2} + B_{1} B_{2} = L ' title='B_{1} B_{2} + B_{1} B_{2} = L ' class='latex' /></p>
<p>This means the light comes on if NOT button1 AND button 2 is pressed or if button 1 and button 2 are pressed.</p>
<h3>Building A Garage Door Opener Using ABEL</h3>
<p>Using our knowledge we just learned we can build just about anything by putting it into ABEL.  Let&#8217;s pretend Mr. Bossman tells us he wants us to build him a microchip that will control a garage door opener.  If the opener has power then it will open the door, if it doesn&#8217;t then it will shut the door.  There are two buttons and a safety laser.  One button is on the inside of the garage and the other on the outside.  There is a safety laser that is always on and if something blocks it will send a voltage to the circuit at which time we need to open the door immediately to make sure we don&#8217;t continue to shut it on a Fluffins the mildly braindamaged neighborhood cat.</p>
<p>While taking notes on what Mr. Bossman is telling us he wants we write:  Open door if Inside Button is on AND Laser is off OR open door if outside button is on AND Laser off OR open door if Laser is on.  In ABEL logic this gets written exactly as it is spoken, and we will use IB as inside button and OB as outside button and L as the laser and finally the door opener as the output of O.</p>
<p><strong>IB!L+OB!L + !L = O</strong></p>
<p>It really is that simple!  We can put that equation into an ABEL enabled PLD software and get a chip that when plugged into the correct inputs and outputs gives us a functioning garage door opener.  There are other commands and syntaxes to help you get really advanced with it.  Here is a great list of them: <a href="http://mazsola.iit.uni-miskolc.hu/cae/docs/xabel.html">List of ABEL HDL commands</a>.</p>
<p><strong>Question for the comments!</strong></p>
<p>How would you use ABEL to design a street light traffic system?  You have two total sensor pads, one at each street crossing.  When a car stops on the sensor pads the sensor sends voltage to the controller.  You have two outputs, a green light and a red light.  When the light has voltage the red light is ON and the green is OFF.  When it is at a logic 0 (off) it flips the red light off and the green light on.  See if you can figure it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Count In Binary</title>
		<link>http://engineersphere.com/math/how-to-count-in-binary.html</link>
		<comments>http://engineersphere.com/math/how-to-count-in-binary.html#comments</comments>
		<pubDate>Mon, 27 Jul 2009 08:43:15 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Binary]]></category>
		<category><![CDATA[counting in binary]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=492</guid>
		<description><![CDATA[TweetTweetHow do binary numbers work? Binary numbers work exactly like our decimal system. It&#8217;s called Decimal because it has 10 total combinations per digit. For instance we count 0-1-2-3-4-5-6-7-8-9 which gives us 10 total numbers we can use in a single digit. When we run out of digits we add one to the leading digit [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://engineersphere.com/math/how-to-count-in-binary.html&via=EngineerSphere&text=How To Count In Binary&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/math/how-to-count-in-binary.html&via=EngineerSphere&text=How To Count In Binary&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>How do binary numbers work?</h3>
<p>Binary numbers work exactly like our decimal system. It&#8217;s called Decimal because it has 10 total combinations per digit. For instance we count 0-1-2-3-4-5-6-7-8-9 which gives us 10 total numbers we can use in a single digit. When we run out of digits we add one to the leading digit and switch the current digit to the first combination. For instance when we count in decimal and we get to 19 we add 1 to the first digit making it a 2 and turn the current digit to our first combination,a zero, making a 20. Whenever there is no digit in front we assume its a zero so when we count to 10 and we&#8217;re at 9 we add one to the first digit turning it from a zero to a one. Then we turn our current digit, the nine, to a zero making 10. It works infinitely so we can be at 999,999 and our next number would be 1,000,000.</p>
<p>Binary counting is exactly the same only even simpler because it only has two combinations, 0-1. The only combinations in digits you have available to you is zero or one. So you start your count with 0. Then you add one to bring you to <strong>1</strong>. Then when you add another, since you&#8217;re at your max combinations for that single digit you need to add one to the leading digit and turn your current digit to zero. So the decimal #2 becomes 10 in binary. That may look like a 10 in decimal but in binary since you only have two combinations per digit it translate to the number 2. You&#8217;re next number would be done the same way. You add one to your current digit which in the 10 would become <strong>11</strong>. This becomes the number 3 in decimal. Once again to add one you need to add one to the leading digit which would be the <strong><span style="text-decoration: underline;">1</span>1</strong> and turn your current digit to zero making it <strong>100</strong> for the count of four. Much like learning to count it gets much simpler the more you practice.</p>
<p><strong>Try figuring out what the next number would be in this sequence:</strong><br />
0000=0<br />
0001=1<br />
0010=2<br />
0011=3<br />
0100=4<br />
0101=5<br />
0110=6<br />
0111=7<br />
1000=8<br />
1001=9<br />
1010=10<br />
1011=11<br />
____=12</p>
<p><em>Answer: 1100</em></p>
<h3>Figuring Out Long Numbers In Binary</h3>
<p>As mentioned binary works exactly like our decimal system only it has two combinations per digit instead of ten. When you&#8217;re brain is trying to figure out how large a decimal number is it looks at all the placements of the digits and their values. For instance the number 321 is <img src='http://s.wordpress.com/latex.php?latex=3%20x%2010%5E2%20%2B%202%20x%2010%5E1%20%2B%201%20x%2010%5E0%20%3D%20321%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='3 x 10^2 + 2 x 10^1 + 1 x 10^0 = 321 ' title='3 x 10^2 + 2 x 10^1 + 1 x 10^0 = 321 ' class='latex' />. The 10 base number is because there is 10 combinations per digit. The power is the placement of that digit and the number being multiplied by it is the number in that position. So to get the number 400 it is <img src='http://s.wordpress.com/latex.php?latex=4%20x%2010%5E2%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='4 x 10^2 ' title='4 x 10^2 ' class='latex' />. In reality this is done for every digit so 50 would actually be <img src='http://s.wordpress.com/latex.php?latex=5%20x%2010%5E1%20%2B%200%20x%2010%5E0%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='5 x 10^1 + 0 x 10^0 ' title='5 x 10^1 + 0 x 10^0 ' class='latex' />. Since anything multiplied by zero is zero we tend to ignore those as to not confuse ourselves when doing large numbers. Binary is done the same way except since there is only ones and zeros you only need to concern yourself with the ones. So the binary number 0100 would be <img src='http://s.wordpress.com/latex.php?latex=1%20x%202%5E2%20%3D%204&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='1 x 2^2 = 4' title='1 x 2^2 = 4' class='latex' /> Therefore 1010 would be <img src='http://s.wordpress.com/latex.php?latex=1%20x%202%5E3%20%2B%201%20x%202%5E1%20%3D%2010%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='1 x 2^3 + 1 x 2^1 = 10 ' title='1 x 2^3 + 1 x 2^1 = 10 ' class='latex' />. This makes it easy to figure out really long binary numbers such as 00110111 because logically on paper that would be <img src='http://s.wordpress.com/latex.php?latex=1%20x%202%5E5%20%2B%201%20x%202%5E4%20%2B%201%20x%202%5E2%20%2B%201%20x%202%5E1%20%2B%201%20x%202%5E0%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='1 x 2^5 + 1 x 2^4 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0 ' title='1 x 2^5 + 1 x 2^4 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0 ' class='latex' /> for a decimal answer of 55.</p>
<p><strong>Using What You&#8217;ve Learned Try To Figure Out The Decimal Equivilant of This Binary Number:</strong><br />
10110111</p>
<p><em>Answer: 183</em></p>
<h3>Bits And Bytes</h3>
<p>When people talk about bits and bytes of binary they&#8217;re referring to how many assumed leading zeros are in the number. So a 4 bit binary number of two would be 0010. An 8bit version of the number 2 would be 00000010. As with decimal the zeros are always there they just aren&#8217;t shown unless you need to specify a maximum amount that you want. So if you said you want a 8 bit binary representation of the number 85 you would get 01010101. A byte is simply 8 bits. So if you said you wanted a 2 byte representation of the number 85 you would get 0000000001010101 for a total of 16 bits.</p>
<p><strong>Good luck and happy counting!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/math/how-to-count-in-binary.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

