<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>ASIC Digital Arithmetic</title>
	<atom:link href="http://asicdigitalarithmetic.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://asicdigitalarithmetic.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 17 Sep 2009 09:39:10 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='asicdigitalarithmetic.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/75eef95774192177ef1251e7b79da1ea?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>ASIC Digital Arithmetic</title>
		<link>http://asicdigitalarithmetic.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://asicdigitalarithmetic.wordpress.com/osd.xml" title="ASIC Digital Arithmetic" />
		<item>
		<title>Timing Recovery by Digital Interpolation</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/08/27/timing-recovery-by-digital-interpolation/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/08/27/timing-recovery-by-digital-interpolation/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 13:35:45 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[Digital Filters]]></category>
		<category><![CDATA[digital interpolation]]></category>
		<category><![CDATA[fir filter]]></category>
		<category><![CDATA[symbol synchronization]]></category>
		<category><![CDATA[timing adjustment]]></category>
		<category><![CDATA[timing recovery]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=361</guid>
		<description><![CDATA[Astoundingly enough, J.G. Proakis textbook &#8220;Digital Communications&#8221; in its 4th edition does not mention how to perform truly digital timing recovery. That is, timing recovery with a sampling clock which is unrelated to the symbol rate, or in other words, timing recovery where symbol rate (1/T) and sampling rate (1/Ts) are incommensurate (T/Ts isn&#8217;t an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=361&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Astoundingly enough, <em>J.G. Proakis</em> textbook &#8220;Digital Communications&#8221; in its 4th edition does not mention how to perform truly <strong>digital timing recovery</strong>. That is, timing recovery with a sampling clock which is unrelated to the symbol rate, or in other words, timing recovery where symbol rate (1/T) and sampling rate (1/Ts) are incommensurate (T/Ts isn&#8217;t an integer). Thus, there is no need to control the sampling instant (no need for a Voltage-Controlled Oscillator, VCO; the receiver uses a free-running oscillator for sampling).</p>
<p>Fortunately, <em>H. Meyr, M. Moeneclaey and S.A. Fechtel</em> textbook &#8220;Digital Communication Receiver&#8221; comes to the rescue. The trick is to use the shift-property of band-limited functions applied to the sampling theorem,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=x%28t%2B%5Cepsilon%29+%3D+%5Csum_%7Bn%3D-%5Cinfty%7D%5E%7B%5Cinfty%7D%7Bx%28%5Cepsilon%2BnT_s%29%5Ccdot%5Ctext%7Bsinc%7D%5B%5Cfrac%7B%5Cpi%7D%7BT_s%7D%28t-nT_s%29%5D+%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='x(t+\epsilon) = \sum_{n=-\infty}^{\infty}{x(\epsilon+nT_s)\cdot\text{sinc}[\frac{\pi}{T_s}(t-nT_s)] }' title='x(t+\epsilon) = \sum_{n=-\infty}^{\infty}{x(\epsilon+nT_s)\cdot\text{sinc}[\frac{\pi}{T_s}(t-nT_s)] }' class='latex' /></p>
<p><img src='http://l.wordpress.com/latex.php?latex=%3D+%5Csum_%7Bn%3D-%5Cinfty%7D%5E%7B%5Cinfty%7D%7Bx%28nT_s%29+%5Ccdot%5Ctext%7Bsinc%7D%5B%5Cfrac%7B%5Cpi%7D%7BT_s%7D%28t%2B%5Cepsilon-nT_s%29%5D%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='= \sum_{n=-\infty}^{\infty}{x(nT_s) \cdot\text{sinc}[\frac{\pi}{T_s}(t+\epsilon-nT_s)]}' title='= \sum_{n=-\infty}^{\infty}{x(nT_s) \cdot\text{sinc}[\frac{\pi}{T_s}(t+\epsilon-nT_s)]}' class='latex' /></p>
<p>with <img src='http://l.wordpress.com/latex.php?latex=%5Cepsilon&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\epsilon' title='\epsilon' class='latex' /> an arbitrary time shift. This states that our signal x(t) can be represented by samples either at (nTs+<img src='http://l.wordpress.com/latex.php?latex=%5Cepsilon&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\epsilon' title='\epsilon' class='latex' />) or (nTs)! Thus, we can perform interpolation through sinc filtering to obtain a set of samples at the needed (nTs+<img src='http://l.wordpress.com/latex.php?latex=%5Cepsilon&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\epsilon' title='\epsilon' class='latex' />) instants. Interpolation can be performed by a digital time-variant FIR filter, in most practical cases, a 4-tap FIR filter running at 1/Ts. If oversampling (Ts <img src='http://l.wordpress.com/latex.php?latex=%5Cgeq&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\geq' title='\geq' class='latex' /> T) was performed then decimation is needed. The time shift can be estimated using a digital phase-locked loop (DPLL).</p>
<p>Theoretical aspects are discussed in Chapter 4. Chapters 9 and 10 are a must for the practitioner.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/361/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=361&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/08/27/timing-recovery-by-digital-interpolation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>
	</item>
		<item>
		<title>Effectiveness Analysis of Error-Tolerant VLSI Circuits with Concurrent Error Correction</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/08/07/effectiveness-analysis-of-error-tolerant-vlsi-circuits-with-concurrent-error-correction/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/08/07/effectiveness-analysis-of-error-tolerant-vlsi-circuits-with-concurrent-error-correction/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 11:43:37 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[Fault Tolerance]]></category>
		<category><![CDATA[concurrent error correction]]></category>
		<category><![CDATA[error tolerance]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=322</guid>
		<description><![CDATA[The effectiveness of an error-tolerant approach in VLSI answers
qualitatively the question whether it is reasonable to apply
a particular technique or not. In other words, under certain
conditions it may be preferable not to apply error tolerance
since its application may have a detrimental effect. A similar
analysis was carried out in the case of redundancy-repairing
circuits against manufacturing faults [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=322&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The effectiveness of an error-tolerant approach in VLSI answers<br />
qualitatively the question whether it is reasonable to apply<br />
a particular technique or not. In other words, under certain<br />
conditions it may be preferable not to apply error tolerance<br />
since its application may have a detrimental effect. A similar<br />
analysis was carried out in the case of redundancy-repairing<br />
circuits against manufacturing faults for yield improvement [Hir-01].</p>
<p>In the following, we present the basic idea that drives<br />
us to study the effectiveness of error-tolerant techniques in<br />
VLSI circuits.</p>
<p>Let the reliability, R, be quantitatively defined as the<br />
probability that a system will not fail under specified<br />
conditions [Lyo-62]. If the redundant system employs the<br />
classical <em>Triple Modular Redundancy</em> (TMR) the resulting<br />
reliability given the reliability of one module, <img src='http://l.wordpress.com/latex.php?latex=R_%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{M}' title='R_{M}' class='latex' />, is</p>
<p><img src='http://l.wordpress.com/latex.php?latex=R%3D3R_%7BM%7D%5E%7B2%7D-2R_%7BM%7D%5E%7B3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R=3R_{M}^{2}-2R_{M}^{3}' title='R=3R_{M}^{2}-2R_{M}^{3}' class='latex' />.                 (1)</p>
<p>Several assumptions are performed in order to obtain the previous<br />
formula:</p>
<p>1. the failures of the three modules are statistically<br />
independent and have equal probability, and</p>
<p>2. the majority voter or voting circuit is fault-free.</p>
<p>Even if the assumptions are not exactly fullfilled a general<br />
observation can be made regarding Eq. (1). There is no<br />
increase of reliability if the reliability of a module, <img src='http://l.wordpress.com/latex.php?latex=R_%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{M}' title='R_{M}' class='latex' />,<br />
is less than a certain value, which in this particular case is 50%.<br />
This observation is just a result of the dependency of the<br />
redundant system reliability, <img src='http://l.wordpress.com/latex.php?latex=R&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R' title='R' class='latex' />, on the non-redundant system<br />
reliability, <img src='http://l.wordpress.com/latex.php?latex=R_%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{M}' title='R_{M}' class='latex' />. Now, one can postulate that this dependency<br />
exists in general in error-tolerant VLSI circuits and that the<br />
application of a particular error-tolerant technique is only<br />
effective, i.e. it yields an increase in reliability, under<br />
certain specific conditions. Since a quantitative analysis seems<br />
not an easy task, we will content ourselves with deriving a<br />
framework to obtain the effectiveness of a particular concurrent<br />
error-correction technique and draw some final outlines.</p>
<p>Rather than working with module reliabilities, which seem to be<br />
difficult to measure in VLSI circuits, it is reasonable to use<br />
transient fault densities as parameters. The transient fault<br />
density of a VLSI circuit, <img src='http://l.wordpress.com/latex.php?latex=D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='D' title='D' class='latex' />, can be defined to account for the<br />
ratio of the average number of faults per unit of area in an<br />
arbitrary time window. It is a quantitative figure, the measure<br />
of which is independent of any module definition and it is not<br />
related to any specific circuit area. Furthermore, if we focus on<br />
real-time signal processing applications where concurrent-error<br />
correction capabilities are considered, the time window matches<br />
the sample period and the effect of the span of a fault is<br />
included in the fault averaging. Altogether, it will be seen that<br />
for a given circuit of area A the average number of faults <img src='http://l.wordpress.com/latex.php?latex=%5Clambda%3DA%5Ccdot+D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda=A\cdot D' title='\lambda=A\cdot D' class='latex' /><br />
determines a measurement for simple error-tolerant diagnostics.</p>
<p>Now, assuming that the circuit is partitioned into an infinite<br />
number of statistically independent subareas we get that the<br />
transient faults follow a Poisson distribution with average <img src='http://l.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' /><br />
. If faults do not occur independently in the different regions<br />
but rather tend to cluster, as is the case for permanent faults,<br />
then we can make use of the Negative Binomial distribution with a<br />
fitting cluster factor <img src='http://l.wordpress.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha' title='\alpha' class='latex' />. See Figure below.</p>
<p><img class="aligncenter size-full wp-image-329" title="Poisson" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/poisson1.jpg?w=480&#038;h=400" alt="Poisson" width="480" height="400" /><img class="aligncenter size-full wp-image-330" title="NegBin" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/negbin2.jpg?w=480&#038;h=400" alt="NegBin" width="480" height="400" /></p>
<p>At this point, it may be critisized that these simple models<br />
are probably not accurate enough. It should be noted that it is<br />
not our purpose to predict accurate figures for reliability but<br />
rather generate qualitative insights of the effectiveness of a<br />
given error-tolerant technique. Thus, following the ease of<br />
analysis we define the type-I single error correction (SEC) as a<br />
concurrent-error correction technique where any single error in a<br />
given area <img src='http://l.wordpress.com/latex.php?latex=A%281%2B%5Cdelta%29%2C+%5Cdelta%3E0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='A(1+\delta), \delta&gt;0' title='A(1+\delta), \delta&gt;0' class='latex' />, is corrected. Obviously, the<br />
error-tolerant circuitry does not come for free and it has a<br />
penalty in area of <img src='http://l.wordpress.com/latex.php?latex=%5Cdelta+A&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\delta A' title='\delta A' class='latex' /> when compared to the non-redundant<br />
circuit with area <img src='http://l.wordpress.com/latex.php?latex=A&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='A' title='A' class='latex' />. The question that arises now is whether this<br />
overhead anhiliates or not the gain in reliability due to the<br />
incorporation of a type-I SEC. In order to answer this question<br />
it is noted that the probability of a working non-redundant<br />
circuit represented by <img src='http://l.wordpress.com/latex.php?latex=R_%7B0%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{0}' title='R_{0}' class='latex' /> is given by,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=R_%7B0%7D%3DProb%28k%3D0%3BA%2CD%29%3De%5E%7BAD%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{0}=Prob(k=0;A,D)=e^{AD}' title='R_{0}=Prob(k=0;A,D)=e^{AD}' class='latex' /></p>
<p>where <img src='http://l.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> represents the number of errors, and the new probability<br />
of a redundant circuit is,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=R+%3D+Prob%28k%3D0%2C1%3BA%281%2B%5Cdelta%29%2CD%29++%3D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R = Prob(k=0,1;A(1+\delta),D)  =' title='R = Prob(k=0,1;A(1+\delta),D)  =' class='latex' /></p>
<p><img src='http://l.wordpress.com/latex.php?latex=Prob%28k%3D0%3BA%281%2B%5Cdelta%29%2CD%29%2BProb%28k%3D1%3BA%281%2B%5Cdelta%29%2CD%29++%3D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Prob(k=0;A(1+\delta),D)+Prob(k=1;A(1+\delta),D)  = ' title='Prob(k=0;A(1+\delta),D)+Prob(k=1;A(1+\delta),D)  = ' class='latex' /></p>
<p><img src='http://l.wordpress.com/latex.php?latex=e%5E%7B%281%2B%5Cdelta%29AD%7D%2B%5C%7B%281%2B%5Cdelta%29AD%5C%7D%5Ccdot+e%5E%7B%281%2B%5Cdelta%29AD%7D.&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='e^{(1+\delta)AD}+\{(1+\delta)AD\}\cdot e^{(1+\delta)AD}.' title='e^{(1+\delta)AD}+\{(1+\delta)AD\}\cdot e^{(1+\delta)AD}.' class='latex' />        (2)</p>
<p>The aforementioned question can be now stated as follows,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=R_%7B0%7D%5Cgtrless+R.&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{0}\gtrless R.' title='R_{0}\gtrless R.' class='latex' />                                                            (3)</p>
<p>Before we get into solving the inequality of Eq. (3) it<br />
is interesting to see the enhancement in reliability (if any) and<br />
its trend for a wide range of area and overhead values. The<br />
enhancement in reliability, or in other words, the enhancement in<br />
dynamic yield (by analogy with random-defect yield) is defined as</p>
<p><img src='http://l.wordpress.com/latex.php?latex=%5CDelta+Y_%7Bdyn%7D%3D%5Cfrac%7BR-R_%7B0%7D%7D%7BR_%7B0%7D%7D.&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Delta Y_{dyn}=\frac{R-R_{0}}{R_{0}}.' title='\Delta Y_{dyn}=\frac{R-R_{0}}{R_{0}}.' class='latex' />    (4)</p>
<p>The following Figures show specific examples for<br />
circuit area and overhead figures up to 140 <img src='http://l.wordpress.com/latex.php?latex=mm%5E%7B2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='mm^{2}' title='mm^{2}' class='latex' /> and 100%,<br />
respectively.</p>
<p><img class="aligncenter size-full wp-image-333" title="Dyn_Yield_Poisson_22" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dyn_yield_poisson_22.jpg?w=480&#038;h=393" alt="Dyn_Yield_Poisson_22" width="480" height="393" /><br />
<img class="aligncenter size-full wp-image-334" title="Dynamic_Yield_Enh_SEC_I_Poisson_22" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dynamic_yield_enh_sec_i_poisson_221.jpg?w=480&#038;h=400" alt="Dynamic_Yield_Enh_SEC_I_Poisson_22" width="480" height="400" /><br />
<img class="aligncenter size-full wp-image-337" title="Dyn_Yield_Poisson" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dyn_yield_poisson.jpg?w=480&#038;h=398" alt="Dyn_Yield_Poisson" width="480" height="398" /><br />
<img class="aligncenter size-full wp-image-338" title="Dynamic_Yield_Enh_SEC_I_Poisson" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dynamic_yield_enh_sec_i_poisson.jpg?w=480&#038;h=395" alt="Dynamic_Yield_Enh_SEC_I_Poisson" width="480" height="395" /></p>
<p>In all cases, the enhancement increases as area and<br />
fault density increase making more and more attractive, i.e.<br />
effective, the use of type-I SEC capabilities. On the other hand,<br />
enhancement decreases with increasing overhead as one could<br />
intuitively expect. The trend shows that with worse conditions<br />
and bigger areas the attractiveness of error-tolerant circuitry<br />
increases. We will see that this trend is changed whenever the<br />
product <img src='http://l.wordpress.com/latex.php?latex=AD&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='AD' title='AD' class='latex' /> surpasses a certain value.</p>
<p>In a sense, one may argue that these results are totally<br />
dependent on the values given for the fault density. We have<br />
chosen <img src='http://l.wordpress.com/latex.php?latex=D%3D2.2%5Ctimes10%5E%7B-3%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='D=2.2\times10^{-3}' title='D=2.2\times10^{-3}' class='latex' /> faults/<img src='http://l.wordpress.com/latex.php?latex=mm%5E%7B2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='mm^{2}' title='mm^{2}' class='latex' /> as an initial figure<br />
setting up the order of magnitude that one could expect for the<br />
transient faults to come into important consideration. This value<br />
is taken from the predicted constant random-defect density given<br />
by the ITRS roadmap 2003.</p>
<p>So far we have seen that in all examples we have obtained a<br />
positive enhancement. Now, we turn to compute the threshold value<br />
for which the inequality <img src='http://l.wordpress.com/latex.php?latex=R_%7B0%7D%3CR&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='R_{0}&lt;R' title='R_{0}&lt;R' class='latex' /> does not hold anymore, or in<br />
other words, for which there is no enhancement. In order to<br />
compute this threshold we may restate Eq. (3) as</p>
<p><img src='http://l.wordpress.com/latex.php?latex=%5CGamma%3D%5Cfrac%7BProb%28k%3D0%3BA%2CD%29-Prob%28k%3D0%3B%281%2B%5Cdelta%29A%2CD%29%7D%7BProb%28k%3D1%3B%281%2B%5Cdelta%29A%2CD%29%7D%5Cgtrless1%2C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Gamma=\frac{Prob(k=0;A,D)-Prob(k=0;(1+\delta)A,D)}{Prob(k=1;(1+\delta)A,D)}\gtrless1,' title='\Gamma=\frac{Prob(k=0;A,D)-Prob(k=0;(1+\delta)A,D)}{Prob(k=1;(1+\delta)A,D)}\gtrless1,' class='latex' /></p>
<p>where <img src='http://l.wordpress.com/latex.php?latex=%5CGamma&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Gamma' title='\Gamma' class='latex' /> represents the relative yield ratio of a type-I SEC<br />
circuit; that is, if <img src='http://l.wordpress.com/latex.php?latex=%5CGamma%3C1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Gamma&lt;1' title='\Gamma&lt;1' class='latex' /> then there is enhancement.<br />
Otherwise, <img src='http://l.wordpress.com/latex.php?latex=%5CGamma%5Cge1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Gamma\ge1' title='\Gamma\ge1' class='latex' />, it is better not to apply type-I SEC. To<br />
illustrate, the following Figure shows the relative yield ratio for<br />
two different circuit areas versus the fault density.</p>
<p><img class="aligncenter size-full wp-image-339" title="Gamma_SEC_I_Poisson_20" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_poisson_20.jpg?w=480&#038;h=399" alt="Gamma_SEC_I_Poisson_20" width="480" height="399" /><br />
<img class="aligncenter size-full wp-image-340" title="Gamma_SEC_I_Poisson_100" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_poisson_100.jpg?w=480&#038;h=399" alt="Gamma_SEC_I_Poisson_100" width="480" height="399" /></p>
<p>It is apparent that the curves bend to cross the horizontal line<br />
representing the value 1 at a certain value of D. From that value<br />
on it does not make sense to apply type-I SEC capabilities. This<br />
change can be better understood by looking at the product <img src='http://l.wordpress.com/latex.php?latex=%5Clambda%3DAD&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda=AD' title='\lambda=AD' class='latex' /><br />
. In particular, if the average number of faults in the whole<br />
circuit (including an error-tolerant circuitry overhead of around<br />
100%), <img src='http://l.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' />, goes above an average number of 1.25 faults, then<br />
it is not advantageous to correct single errors. Alternatively,<br />
one could apply type-I SEC capabilities at a lower granularity,<br />
reducing the area figure, without increasing to a big extent the<br />
overhead (if possible) to retain enhancement. It is remarkable<br />
that under worse conditions, that is, high fault density and high<br />
area, application of type-I SEC capabilities is questionable.</p>
<p>In case of having clusters of faults, a Negative Binomial<br />
distribution with a fitting parameter, i.e. the cluster factor <img src='http://l.wordpress.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha' title='\alpha' class='latex' /><br />
, can be used. If we assume a cluster factor of <img src='http://l.wordpress.com/latex.php?latex=%5Calpha%3D2&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha=2' title='\alpha=2' class='latex' /> we<br />
obtain the following Figures.</p>
<p><img class="aligncenter size-full wp-image-341" title="Dyn_Yield_Negbin" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dyn_yield_negbin.jpg?w=480&#038;h=398" alt="Dyn_Yield_Negbin" width="480" height="398" /><br />
<img class="aligncenter size-full wp-image-342" title="Dynamic_Yield_Enh_SEC_I_Negbin" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dynamic_yield_enh_sec_i_negbin.jpg?w=480&#038;h=395" alt="Dynamic_Yield_Enh_SEC_I_Negbin" width="480" height="395" /><br />
<img class="aligncenter size-full wp-image-343" title="Gamma_SEC_I_Negbin_20" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_negbin_20.jpg?w=480&#038;h=399" alt="Gamma_SEC_I_Negbin_20" width="480" height="399" /><br />
<img class="aligncenter size-full wp-image-344" title="Gamma_SEC_I_Negbin_100" src="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_negbin_100.jpg?w=480&#038;h=399" alt="Gamma_SEC_I_Negbin_100" width="480" height="399" /></p>
<p>As compared to the Poisson distribution results, it is apparent<br />
from the figures that there is still enhancement even at higher<br />
values of D, but this enhancement is lower.</p>
<p>[Hir-01] J. Hirase, &#8220;Yield Increase of VLSI after Redundancy-repairing&#8221;, Proc. 10th Asian Test Symposium, 353&#8211;8, 2001.<br />
[Lyo-62] R. E. Lyons and W. Vanderbulk, &#8220;The use of Triple-Modular Redundancy to improve computer reliability&#8221;, IBM Journal, 200&#8211;9, April 1962.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/322/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=322&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/08/07/effectiveness-analysis-of-error-tolerant-vlsi-circuits-with-concurrent-error-correction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/poisson1.jpg" medium="image">
			<media:title type="html">Poisson</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/negbin2.jpg" medium="image">
			<media:title type="html">NegBin</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dyn_yield_poisson_22.jpg" medium="image">
			<media:title type="html">Dyn_Yield_Poisson_22</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dynamic_yield_enh_sec_i_poisson_221.jpg" medium="image">
			<media:title type="html">Dynamic_Yield_Enh_SEC_I_Poisson_22</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dyn_yield_poisson.jpg" medium="image">
			<media:title type="html">Dyn_Yield_Poisson</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dynamic_yield_enh_sec_i_poisson.jpg" medium="image">
			<media:title type="html">Dynamic_Yield_Enh_SEC_I_Poisson</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_poisson_20.jpg" medium="image">
			<media:title type="html">Gamma_SEC_I_Poisson_20</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_poisson_100.jpg" medium="image">
			<media:title type="html">Gamma_SEC_I_Poisson_100</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dyn_yield_negbin.jpg" medium="image">
			<media:title type="html">Dyn_Yield_Negbin</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/dynamic_yield_enh_sec_i_negbin.jpg" medium="image">
			<media:title type="html">Dynamic_Yield_Enh_SEC_I_Negbin</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_negbin_20.jpg" medium="image">
			<media:title type="html">Gamma_SEC_I_Negbin_20</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/08/gamma_sec_i_negbin_100.jpg" medium="image">
			<media:title type="html">Gamma_SEC_I_Negbin_100</media:title>
		</media:content>
	</item>
		<item>
		<title>When Moving Average Filter + Decimation = Accumulate-and-Dump Circuit</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/07/16/when-moving-average-filter-decimation-accumulate-and-dump-circuit/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/07/16/when-moving-average-filter-decimation-accumulate-and-dump-circuit/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 11:17:08 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[Digital Filters]]></category>
		<category><![CDATA[accumulate and dump circuit]]></category>
		<category><![CDATA[cic filter]]></category>
		<category><![CDATA[decimation]]></category>
		<category><![CDATA[moving average filter]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=299</guid>
		<description><![CDATA[A Moving Average (MA) filter computes the average of the last N samples. Its difference equation is given by,

where  is the input signal, and  is the output signal.
For a DSP engineer a MA filter is a &#8220;good&#8221; smoothing filter in the sense of being optimal for reducing random white noise but, a &#8220;bad&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=299&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A Moving Average (MA) filter computes the average of the last N samples. Its difference equation is given by,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=y_n+%3D+%5Cfrac%7B1%7D%7BN%7D%5Csum_%7Bk%3D0%7D%5E%7BN-1%7Dx_%7Bn-k%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='y_n = \frac{1}{N}\sum_{k=0}^{N-1}x_{n-k}' title='y_n = \frac{1}{N}\sum_{k=0}^{N-1}x_{n-k}' class='latex' /></p>
<p>where <img src='http://l.wordpress.com/latex.php?latex=x_n&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='x_n' title='x_n' class='latex' /> is the input signal, and <img src='http://l.wordpress.com/latex.php?latex=y_n&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='y_n' title='y_n' class='latex' /> is the output signal.</p>
<p>For a DSP engineer a MA filter is a &#8220;good&#8221; smoothing filter in the sense of being optimal for reducing random white noise but, a &#8220;bad&#8221; low-pass filter since its roll-off is slow and the stopband attenuation is awful (<em>sinc</em> function). For a digital designer a MA filter is a small, low-power and fast structure since there are no multipliers to design, only adders/subtractors. Its recursive representation is given by,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=y_n+%3D+y_%7Bn-1%7D+%2B+%5Cfrac%7B1%7D%7BN%7D%28x_n+-x_%7Bn-N%7D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='y_n = y_{n-1} + \frac{1}{N}(x_n -x_{n-N})' title='y_n = y_{n-1} + \frac{1}{N}(x_n -x_{n-N})' class='latex' /></p>
<p>which yields for relatively big N&#8217;s a very efficient implementation in terms of delay elements and number of full-adders. (Note that, except for the factor 1/N, this implementation equals to the one given by an integrator-comb section of a cascaded intergrator-comb (CIC) filter).</p>
<p>If the output of the MA filter is to be decimated (sample rate decrease by R) then it is a good idea to place decimation within the filter so that the sample values that are not needed for the final output are not computed.  Well, you might say that this is exactly what efficient CIC decimation filters do. Right, but if the sample rate reduction factor, R, is a multiple of or equal to N, the averaging factor,  then we can do better. The point is that if we take one output sample out of R and R<img src='http://l.wordpress.com/latex.php?latex=%5Cgeq&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\geq' title='\geq' class='latex' />N then we can do word-serial arithmetic, that is processing the input sample serially. An  <strong>accumulate-and-dump</strong> circuit does the job,</p>
<p><img class="aligncenter size-full wp-image-302" title="accdump" src="http://asicdigitalarithmetic.files.wordpress.com/2009/07/accdump.png?w=480&#038;h=147" alt="accdump" width="480" height="147" />where <em>CKfast</em> is the clock running at the original sampling rate, <em>CKslow</em> is the R-times reduced clock, and <em>tcnt </em>is a pulse every N clock cycles of <em>CKfast </em>(for example, the terminal count of a counter)<em>. </em>Note that the accumulate register (ACC) must be of length <img src='http://l.wordpress.com/latex.php?latex=n%2B%5Clceil%5Clog_%7B2%7D%28N%29%5Crceil&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='n+\lceil\log_{2}(N)\rceil' title='n+\lceil\log_{2}(N)\rceil' class='latex' /> bits, with <img src='http://l.wordpress.com/latex.php?latex=n&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='n' title='n' class='latex' /> the length of the input signal, to accomodate the length of the output signal.</p>
<p>Compared to a first-order CIC decimation filter one saves the comb section (subtractor) at the cost of logic needed for resetting the ACC register.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/299/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=299&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/07/16/when-moving-average-filter-decimation-accumulate-and-dump-circuit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/07/accdump.png" medium="image">
			<media:title type="html">accdump</media:title>
		</media:content>
	</item>
		<item>
		<title>Sign-Bit Processing of Signed Numbers</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/07/03/sign-bit-processing-of-signed-numbers/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/07/03/sign-bit-processing-of-signed-numbers/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 07:04:43 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[Binary Number Representation]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[sign-bit]]></category>
		<category><![CDATA[signed number]]></category>
		<category><![CDATA[two's complement]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=290</guid>
		<description><![CDATA[To my knowledge there are two ways to process the sign-bits of two signed numbers: the very well-known sign-extension method where the sign-bit is pushed forward based on the fact that , with , and, the correction term method, based on the formula , with  being the inverse of .
Let&#8217;s illustrate by example: let [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=290&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>To my knowledge there are two ways to process the sign-bits of two signed numbers: the very well-known <strong>sign-extension </strong>method where the sign-bit is pushed forward based on the fact that <img src='http://l.wordpress.com/latex.php?latex=-a%3D-2a%2Ba&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-a=-2a+a' title='-a=-2a+a' class='latex' />, with <img src='http://l.wordpress.com/latex.php?latex=a%5Cin%5C%7B0%2C1%5C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='a\in\{0,1\}' title='a\in\{0,1\}' class='latex' />, and, the <strong>correction term </strong>method, based on the formula <img src='http://l.wordpress.com/latex.php?latex=-a%3D%5Cbar%7Ba%7D-1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-a=\bar{a}-1' title='-a=\bar{a}-1' class='latex' />, with <img src='http://l.wordpress.com/latex.php?latex=%5Cbar%7Ba%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\bar{a}' title='\bar{a}' class='latex' /> being the inverse of <img src='http://l.wordpress.com/latex.php?latex=a&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='a' title='a' class='latex' />.</p>
<p>Let&#8217;s illustrate by example: let <img src='http://l.wordpress.com/latex.php?latex=X&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='X' title='X' class='latex' /> and <img src='http://l.wordpress.com/latex.php?latex=Y&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Y' title='Y' class='latex' /> be two signed numbers, n-bit and (n-1)-bit long, respectively. Their algebraic value in two&#8217;s complement representation is given by,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=X%3D-x_%7Bn-1%7D2%5E%7Bn-1%7D%2B%5Csum_%7Bi%3D0%7D%5E%7Bn-2%7Dx_i2%5Ei&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='X=-x_{n-1}2^{n-1}+\sum_{i=0}^{n-2}x_i2^i' title='X=-x_{n-1}2^{n-1}+\sum_{i=0}^{n-2}x_i2^i' class='latex' /> and,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=Y%3D-y_%7Bn-2%7D2%5E%7Bn-2%7D%2B%5Csum_%7Bi%3D0%7D%5E%7Bn-3%7Dy_i2%5Ei&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Y=-y_{n-2}2^{n-2}+\sum_{i=0}^{n-3}y_i2^i' title='Y=-y_{n-2}2^{n-2}+\sum_{i=0}^{n-3}y_i2^i' class='latex' />.</p>
<p>If we add both numbers, we obtain,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=X%2BY%3D-x_%7Bn-1%7D2%5E%7Bn-1%7D%2B%28-y_%7Bn-2%7D%2Bx_%7Bn-2%7D%292%5E%7Bn-2%7D%2B%5Csum_%7Bi%3D0%7D%5E%7Bn-3%7D%28y_i%2Bx_i%292%5Ei&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='X+Y=-x_{n-1}2^{n-1}+(-y_{n-2}+x_{n-2})2^{n-2}+\sum_{i=0}^{n-3}(y_i+x_i)2^i' title='X+Y=-x_{n-1}2^{n-1}+(-y_{n-2}+x_{n-2})2^{n-2}+\sum_{i=0}^{n-3}(y_i+x_i)2^i' class='latex' />,</p>
<p>and the term <img src='http://l.wordpress.com/latex.php?latex=%28-y_%7Bn-2%7D%2Bx_%7Bn-2%7D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(-y_{n-2}+x_{n-2})' title='(-y_{n-2}+x_{n-2})' class='latex' /> must be specially processed to get the final result in two&#8217;s complement representation. Now, applying sign-extension to the term yields, <img src='http://l.wordpress.com/latex.php?latex=-y_%7Bn-2%7D2%5E%7Bn-1%7D%2B%28y_%7Bn-2%7D%2Bx_%7Bn-2%7D%292%5E%7Bn-2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-y_{n-2}2^{n-1}+(y_{n-2}+x_{n-2})2^{n-2}' title='-y_{n-2}2^{n-1}+(y_{n-2}+x_{n-2})2^{n-2}' class='latex' /> and we are done. Alternatively, we can apply the correction term method, that is, <img src='http://l.wordpress.com/latex.php?latex=%28%5Cbar%7By%7D_%7Bn-2%7D-1%2Bx_%7Bn-2%7D%292%5E%7Bn-2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(\bar{y}_{n-2}-1+x_{n-2})2^{n-2}' title='(\bar{y}_{n-2}-1+x_{n-2})2^{n-2}' class='latex' />. And, to get rid of the -1 we apply the fact that <img src='http://l.wordpress.com/latex.php?latex=-1%3D-2%2B1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-1=-2+1' title='-1=-2+1' class='latex' />, that is,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=-2%5E%7Bn-1%7D%2B%28%5Cbar%7By%7D_%7Bn-2%7D%2B1%2Bx_%7Bn-2%7D%292%5E%7Bn-2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-2^{n-1}+(\bar{y}_{n-2}+1+x_{n-2})2^{n-2}' title='-2^{n-1}+(\bar{y}_{n-2}+1+x_{n-2})2^{n-2}' class='latex' />.</p>
<p>What we obtain are just constant terms which can be easily processed.</p>
<p>In general, the sign-extension method incurs in higher fan-out of the operands, whereas the correction-term method suffers from additional inputs of the first-stage of processing. In any case, it is worth to ponder both options.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/290/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=290&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/07/03/sign-bit-processing-of-signed-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>
	</item>
		<item>
		<title>Power, Transitions, Stimulus and Standard Cells</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/05/12/if-dynamic-power-consumption-is-all-about-transitions-and-transitions-is-all-about-stimulus/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/05/12/if-dynamic-power-consumption-is-all-about-transitions-and-transitions-is-all-about-stimulus/#comments</comments>
		<pubDate>Tue, 12 May 2009 06:51:54 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[CMOS]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Low Power]]></category>
		<category><![CDATA[Miscelaneous]]></category>
		<category><![CDATA[Open Questions]]></category>
		<category><![CDATA[semicustom design]]></category>
		<category><![CDATA[characterization]]></category>
		<category><![CDATA[maximum-length lfsr]]></category>
		<category><![CDATA[pn-sequence]]></category>
		<category><![CDATA[standard-cells]]></category>
		<category><![CDATA[stimulus]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=280</guid>
		<description><![CDATA[If dynamic power consumption is all about transitions, and transitions are all about stimulus, &#8230; what about stimulus?
Long time ago I had to characterise in power a standard-cell which I designed using full-custom tools. It was a full-adder. To get the dynamic switching power figure of one output for a given output load I ran [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=280&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>If dynamic power consumption is all about transitions, and transitions are all about stimulus, &#8230; what about stimulus?</em></p>
<p>Long time ago I had to characterise in power a standard-cell which I designed using full-custom tools. It was a full-adder. To get the dynamic switching power figure of one output for a given output load I ran some SPICE simulations. The stimulus to the three-input (a,b and d) two-output (sum and carry) cell was given by</p>
<p>{1-&gt;4-&gt;6-&gt;7-&gt;3-&gt;5-&gt;2-&gt;1-&gt;4-&gt;6..}.</p>
<p>Thus, the inputs take the logical values {a,b,d}={0,0,1}-&gt;{1,0,0}-&gt;{1,1,0}-&gt;{1,1,1}-&gt;&#8230; and the carry output, c, changes as follows</p>
<p>c={0-&gt;0-&gt;1-&gt;1-&gt;1-&gt;1-&gt;0-&gt;&#8230;}.</p>
<p>As it can be seen, ONLY two transitions occur in c (as transitions I mean changes from 0-&gt;1 or 1-&gt;0). So, I was able to generate just 2 transitions out of 7 states (28.6%) with this sequence. My full-adder was not really much exercised!<br />
Now, is this input sequence &#8220;random&#8221;? Well, it is a PN-sequence (PN stands for pseudo-noise) generated by a max-length linear-feedback shift-register (LFSR) and as such it complies with all the properties a sequence must have according to S. Golomb to be &#8220;random&#8221;. Is it not random enough? Is it possible to increase the number of transitions by proper stimulus assignment?</p>
<p>Then, I looked at two different 4-state max-length LFSR: the first one gave 4 transitions out of 15 states, and the second one gave 6 out of 15. A change of +13%. I thought for a while and realized that: if dynamic power consumption is all about transitions and, transitions is all about stimulus, then, how can I define the &#8220;right&#8221; stimulus to my cells?</p>
<p>Ok, Databooks of standard-cell libraries give dynamic power figures normalized to the frequency of the signal, that is, in µW/MHz. But now, how can I define the frequency of a periodic signal which does not have 50% duty cycle? Would it be a solution to use {1-&gt;4-&gt;6-&gt;7-&gt;1-&gt;4-&gt;&#8230;}?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/280/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=280&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/05/12/if-dynamic-power-consumption-is-all-about-transitions-and-transitions-is-all-about-stimulus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>
	</item>
		<item>
		<title>Gated Clock Dividers</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/05/07/gated-clock-dividers/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/05/07/gated-clock-dividers/#comments</comments>
		<pubDate>Thu, 07 May 2009 08:41:51 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[finite state machine]]></category>
		<category><![CDATA[semicustom design]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=259</guid>
		<description><![CDATA[One of the most well-known structures in digital design is a &#8220;Clock divider by 2&#8243;,

where the negated output Q of a D-Flip Flop is connected to its D input. Thus, CKdiv2 shows half of frequency of clock CK. If we want to gate this output by a signal x, then we can do the following
which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=259&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the most well-known structures in digital design is a &#8220;Clock divider by 2&#8243;,</p>
<p><img class="aligncenter size-full wp-image-258" title="ckdiv21" src="http://asicdigitalarithmetic.files.wordpress.com/2009/05/ckdiv21.png?w=254&#038;h=152" alt="ckdiv21" width="254" height="152" /></p>
<p>where the negated output Q of a D-Flip Flop is connected to its D input. Thus, CKdiv2 shows half of frequency of clock CK. If we want to gate this output by a signal x, then we can do the following</p>
<p><img class="aligncenter size-full wp-image-265" title="ckdiv2whenx3" src="http://asicdigitalarithmetic.files.wordpress.com/2009/05/ckdiv2whenx3.png?w=286&#038;h=167" alt="ckdiv2whenx3" width="286" height="167" />which is straightforward. So far it seems very intuitive. Now, we want a clock divider by 4 and gated by a signal x. One could try to cascade the previous structure and then try to incorporate an AND gate to provide a gated clock. Ok, I am not a very good friend of trial &amp; error methods and I prefer the more systematic methods in circuit design. In this case, my favourite one is the state machine synthesis. My finite state machine (FSM) looks like this,</p>
<p><img class="aligncenter size-full wp-image-271" title="fsm_ckdiv4whenx2" src="http://asicdigitalarithmetic.files.wordpress.com/2009/05/fsm_ckdiv4whenx2.png?w=241&#038;h=402" alt="fsm_ckdiv4whenx2" width="241" height="402" /></p>
<p>where X stands for &#8220;don&#8217;t care&#8221;, that is, either 1 or 0. Note that we have chosen the output to be S0. Thus, we have a 2 D-Flip Flop (DFF) solution to our problem. The synthesis of a FSM follows straightforward: 1) build a logic table with x, S0 and S1 as inputs and, S0_next  and S1_next (D input of DFFs) as outputs, 2) compute per Karnaugh the logic function of S1_next and S0_next.</p>
<p>The resulting structure follows,</p>
<p><img class="aligncenter size-full wp-image-269" title="ckdiv4whenx" src="http://asicdigitalarithmetic.files.wordpress.com/2009/05/ckdiv4whenx.png?w=349&#038;h=195" alt="ckdiv4whenx" width="349" height="195" />which is not so intuitive.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/259/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/259/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/259/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=259&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/05/07/gated-clock-dividers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/05/ckdiv21.png" medium="image">
			<media:title type="html">ckdiv21</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/05/ckdiv2whenx3.png" medium="image">
			<media:title type="html">ckdiv2whenx3</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/05/fsm_ckdiv4whenx2.png" medium="image">
			<media:title type="html">fsm_ckdiv4whenx2</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/05/ckdiv4whenx.png" medium="image">
			<media:title type="html">ckdiv4whenx</media:title>
		</media:content>
	</item>
		<item>
		<title>An all-digital Manchester Decoder</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/04/23/an-all-digital-manchester-decoder/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/04/23/an-all-digital-manchester-decoder/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 14:43:52 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[HDL]]></category>
		<category><![CDATA[finite state machine]]></category>
		<category><![CDATA[all digital detection]]></category>
		<category><![CDATA[manchester decoder]]></category>
		<category><![CDATA[oversampling]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=230</guid>
		<description><![CDATA[A Manchester encoder is that one which encodes logic bits &#8211;usually given as a non-return-to-zero (nrz) signal&#8211; into signal transitions. For example, a logic one (zero) is encoded as a positive (negative) edge. Thus, the encoded signal has zero DC and provides enough transitions to recover easily a clock (obviously, at the cost of doubling [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=230&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A Manchester encoder is that one which encodes logic bits &#8211;usually given as a non-return-to-zero (nrz) signal&#8211; into signal transitions. For example, a logic one (zero) is encoded as a positive (negative) edge. Thus, the encoded signal has zero DC and provides enough transitions to recover easily a clock (obviously, at the cost of doubling the bandwidth). A Manchester decoder (MD) is that one which decodes the encoded signal back to nrz.</p>
<p>My MD is an all-digital one, it has a hard decision input, a feedforward structure,  and is based on an <strong>over-sampling &amp; counting algorithm</strong>. Since a Manchester encoded signal is basically a signal of 4 alternating signal states (short/long ones/zeros), the idea is first to take a decision on whether a short or long one/zero was sent and then based on this information decode into nrz.</p>
<p>The following Figure shows the structure of the MD.</p>
<p><img class="aligncenter size-full wp-image-233" title="md_top" src="http://asicdigitalarithmetic.files.wordpress.com/2009/04/md_top.png?w=480&#038;h=197" alt="md_top" width="480" height="197" /></p>
<p>The Pre-processing block converts the Manchester encoded signal <em>mdin </em>&#8211;1-bit hard decision&#8211; into <em>datain </em>and <em>bitsynchin </em>and generates <em>clk_transition </em>(a tick everytime a transition on <em>mdin</em> occurs)<em>. </em>The <em>mdin</em> is oversampled by 16 and the number of adjacent ones/zeros is counted. Based on the resulting count the block takes a decision: short or long one/zero. The decision intervals can be made programmable. For simplicity, we call a short one/zero a SINGLE one/zero (S1/S0) and, a long one/zero a DOUBLE one/zero (D1/D0). Thus, <em>datain </em>represents <em>mdin </em>as a sequence of symbols taken from the following alphabet: S0, S1, D0 and D1. Similarly, <em>bitsynchin </em>is just a subset of <em>datain</em> and gives information about <em>mdin </em>being a SINGLE or a DOUBLE, that is, a sequence of symbols from the following alphabet: S, D.</p>
<p>The use of <em>clk16x</em>, that is, an oversampling factor of 16 is arbitrary. It is worth emphasizing that if T is the bit period and Ts the sampling period, Ts/T does not be necessarily an integer, it can be rational.  Also, note that the higher the oversampling frequency, 1/Ts,  the more robust the algorithm works &#8212; obviously at the cost of power&#8211;. On the other side, just the Pre-processing block runs at the highest clock. The Finite State Machines (FSM) run at the slower derived clock <em>clk_transition. </em>In the following, both FSMs in the Mealy sense are shown,</p>
<p><img class="aligncenter size-full wp-image-235" title="fsm_nrz_decoder" src="http://asicdigitalarithmetic.files.wordpress.com/2009/04/fsm_nrz_decoder.png?w=474&#038;h=335" alt="fsm_nrz_decoder" width="474" height="335" /></p>
<p><img class="aligncenter size-full wp-image-236" title="fsm_md_bitsynch" src="http://asicdigitalarithmetic.files.wordpress.com/2009/04/fsm_md_bitsynch.png?w=480&#038;h=337" alt="fsm_md_bitsynch" width="480" height="337" />where transitions are labelled with /1 and /0 denoting output bit 1 and 0, respectively. A transition occurs from A to B if the input signal is equal to B. In the case of FSM Bit Synch., a transition occurs from Axx to Bxx if the input signal is equal to B (not attending to the subscript). To understand the FSMs you will need to think on terms of SINGLEs and DOUBLEs (to exercise I recommend to use the following timing diagram). Note that <em>nrz </em>is synchron to the positive and negative edges of <em>clk_nrz.</em></p>
<p><em><img class="aligncenter size-full wp-image-255" title="td_md1" src="http://asicdigitalarithmetic.files.wordpress.com/2009/04/td_md1.png?w=459&#038;h=222" alt="td_md1" width="459" height="222" /><br />
</em></p>
<p>I do believe a decoder like this one is more robust than one based on a mid-bit finder &#8211;but, I&#8217;ve not verified this yet&#8211;. It would be great to get some feedback from the engineers out there. Furthermore, I do think one can combine both FSMs into just one and save some power. Interestingly enough, it takes more states &#8211;8 instead 4&#8211; to generate the clock signal <em>clk_nrz</em> than the data <em>nrz</em>, even though the input information needed is less &#8212; [D,S] instead [D0, D1, S1, S0]&#8211;.</p>
<p><em>This post may not seem to be related to arithmetic, but I do believe arithmetic has to do a lot with finite state machines (FSM), and, an all-digital Manchester decoder is precisely an FSM (or two!).</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/230/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=230&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/04/23/an-all-digital-manchester-decoder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/04/md_top.png" medium="image">
			<media:title type="html">md_top</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/04/fsm_nrz_decoder.png" medium="image">
			<media:title type="html">fsm_nrz_decoder</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/04/fsm_md_bitsynch.png" medium="image">
			<media:title type="html">fsm_md_bitsynch</media:title>
		</media:content>

		<media:content url="http://asicdigitalarithmetic.files.wordpress.com/2009/04/td_md1.png" medium="image">
			<media:title type="html">td_md1</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving Average filters and Cascaded Integrator-Comb (CIC) filters</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2009/02/03/moving-average-filters-and-cascaded-integrator-comb-cic-filters/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2009/02/03/moving-average-filters-and-cascaded-integrator-comb-cic-filters/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:34:01 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[Digital Filters]]></category>
		<category><![CDATA[cascaded integrator-comb filter]]></category>
		<category><![CDATA[cic filter]]></category>
		<category><![CDATA[dsp]]></category>
		<category><![CDATA[moving average filter]]></category>
		<category><![CDATA[recursive sum filter]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=217</guid>
		<description><![CDATA[The best way to implement a Moving Average (MA) filter in terms of digital logic is to implement it as a Cascaded Integrator-Comb (CIC) filter. At least this is the case for standard cell-based designs and probably FPGAs.  The first time I read about MA filters described as &#8220;CIC filters&#8221; was in Oppenheim &#38; Schafer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=217&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The best way to implement a Moving Average (MA) filter in terms of digital logic is to implement it as a Cascaded Integrator-Comb (CIC) filter. At least this is the case for standard cell-based designs and probably FPGAs.  The first time I read about MA filters described as &#8220;CIC filters&#8221; was in Oppenheim &amp; Schafer &#8217;s textbook &#8220;Discrete-Time Signal Processing&#8221; &#8211;page 35, though, it does not mention CICs&#8211;.  Nonetheless, the first reference is Hogenauer&#8217;s article &#8220;An economical class of digital filters for decimation and interpolation&#8221;,  IEEE Trans. on Acoustics, Speech and Signal Processing, Vol.29,No.2, April 1981.  Anyway, just have a look at Richard Lyon&#8217;s article in <a href="http://www.embedded.com/columns/technicalinsights/160400592?_requestid=827714">Embedded.com </a>to get a feeling.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=217&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2009/02/03/moving-average-filters-and-cascaded-integrator-comb-cic-filters/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>
	</item>
		<item>
		<title>Two&#8217;s Complement versus One&#8217;s Complement</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2008/11/03/twos-complement-versus-ones-complement/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2008/11/03/twos-complement-versus-ones-complement/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 18:40:15 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[Binary Number Representation]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[digit-set conversions]]></category>
		<category><![CDATA[one's complement]]></category>
		<category><![CDATA[two's complement]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=193</guid>
		<description><![CDATA[Let  represent a n-bit number in two&#8217;s complement. Its algebraic value, , is given by,
,
which equals to
,
and, thus, the so-called -complement. Now,  the same n-bit number interpreted as a one&#8217;s complement number, ()-complement, results in
.
Therefore,
.
Note how the conversion is possible. Extending the previous equation we obtain
,
or,
.
Interpreting two&#8217;s and one&#8217;s complement numbers in the framework of digit-set [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=193&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Let <img src='http://l.wordpress.com/latex.php?latex=%5C%7Bz_%7Bn-1%7D%2C%5Cdots%2Cz_0%5C%7D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\{z_{n-1},\dots,z_0\} ' title='\{z_{n-1},\dots,z_0\} ' class='latex' /> represent a n-bit number in two&#8217;s complement. Its algebraic value, <img src='http://l.wordpress.com/latex.php?latex=Z%5E%7B2s%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Z^{2s}' title='Z^{2s}' class='latex' />, is given by,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=Z%5E%7B2s%7D%3D-z_%7Bn-1%7D2%5E%7Bn-1%7D%2B%5Csum_%7Bi%3D0%7D%5E%7Bn-2%7D%7Bz_i+2%5Ei%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Z^{2s}=-z_{n-1}2^{n-1}+\sum_{i=0}^{n-2}{z_i 2^i}' title='Z^{2s}=-z_{n-1}2^{n-1}+\sum_{i=0}^{n-2}{z_i 2^i}' class='latex' />,</p>
<p>which equals to</p>
<p><img src='http://l.wordpress.com/latex.php?latex=-z_%7Bn-1%7D2%5E%7Bn%7D%2B%5B+%5Csum_%7Bi%3D0%7D%5E%7Bn-1%7D%7Bz_i+2%5Ei%7D+%5D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-z_{n-1}2^{n}+[ \sum_{i=0}^{n-1}{z_i 2^i} ]' title='-z_{n-1}2^{n}+[ \sum_{i=0}^{n-1}{z_i 2^i} ]' class='latex' />,</p>
<p>and, thus, the so-called <img src='http://l.wordpress.com/latex.php?latex=2%5En&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='2^n' title='2^n' class='latex' />-complement. Now,  the same n-bit number interpreted as a one&#8217;s complement number, (<img src='http://l.wordpress.com/latex.php?latex=2%5En-1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='2^n-1' title='2^n-1' class='latex' />)-complement, results in</p>
<p><img src='http://l.wordpress.com/latex.php?latex=Z%5E%7B1s%7D%3D-z_%7Bn-1%7D%282%5E%7Bn%7D-1%29%2B%5B%5Csum_%7Bi%3D0%7D%5E%7Bn-1%7D%7Bz_i+2%5Ei%7D%5D+&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Z^{1s}=-z_{n-1}(2^{n}-1)+[\sum_{i=0}^{n-1}{z_i 2^i}] ' title='Z^{1s}=-z_{n-1}(2^{n}-1)+[\sum_{i=0}^{n-1}{z_i 2^i}] ' class='latex' />.</p>
<p>Therefore,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=Z%5E%7B1s%7D%3DZ%5E%7B2s%7D%2Bz_%7Bn-1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Z^{1s}=Z^{2s}+z_{n-1}' title='Z^{1s}=Z^{2s}+z_{n-1}' class='latex' />.</p>
<p>Note how the conversion is possible. Extending the previous equation we obtain</p>
<p><img src='http://l.wordpress.com/latex.php?latex=Z%5E%7B1s%7D+%3D+-z_%7Bn-1%7D%282%5E%7Bn-1%7D-1%29%2B+%5Csum_%7Bi%3D0%7D%5E%7Bn-2%7D%7Bz_i+2%5Ei%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Z^{1s} = -z_{n-1}(2^{n-1}-1)+ \sum_{i=0}^{n-2}{z_i 2^i}' title='Z^{1s} = -z_{n-1}(2^{n-1}-1)+ \sum_{i=0}^{n-2}{z_i 2^i}' class='latex' />,</p>
<p>or,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=Z%5E%7B1s%7D%3D-z_%7Bn-1%7D2%5E%7Bn-1%7D%2B%5Csum_%7Bi%3D1%7D%5E%7Bn-2%7D%7Bz_i+2%5Ei%7D+%2B+%28z_%7Bn-1%7D%2Bz_0%292%5E0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Z^{1s}=-z_{n-1}2^{n-1}+\sum_{i=1}^{n-2}{z_i 2^i} + (z_{n-1}+z_0)2^0' title='Z^{1s}=-z_{n-1}2^{n-1}+\sum_{i=1}^{n-2}{z_i 2^i} + (z_{n-1}+z_0)2^0' class='latex' />.</p>
<p>Interpreting two&#8217;s and one&#8217;s complement numbers in the framework of <strong>digit-set conversions</strong>, it is apparent that the MSB of a two&#8217;s compl. and a one&#8217;s compl. number,<img src='http://l.wordpress.com/latex.php?latex=-z_%7Bn-1%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-z_{n-1}' title='-z_{n-1}' class='latex' />, takes values in [-1,0]. Unlike two&#8217;s compl., the LSB of a one&#8217;s compl. number,<img src='http://l.wordpress.com/latex.php?latex=%28z_%7Bn-1%7D%2Bz_0%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(z_{n-1}+z_0)' title='(z_{n-1}+z_0)' class='latex' />, takes values in [0,1,2].</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=193&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2008/11/03/twos-complement-versus-ones-complement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>
	</item>
		<item>
		<title>Balanced Logic and Glitches</title>
		<link>http://asicdigitalarithmetic.wordpress.com/2008/10/27/balanced-logic-and-glitches/</link>
		<comments>http://asicdigitalarithmetic.wordpress.com/2008/10/27/balanced-logic-and-glitches/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 19:27:29 +0000</pubDate>
		<dc:creator>José</dc:creator>
				<category><![CDATA[CMOS]]></category>
		<category><![CDATA[Low Power]]></category>
		<category><![CDATA[Balanced Logic]]></category>
		<category><![CDATA[Glitching]]></category>

		<guid isPermaLink="false">http://asicdigitalarithmetic.wordpress.com/?p=181</guid>
		<description><![CDATA[Glitches, the result of different time delays in logic gates, is responsible for part of the dynamic power consumption. A quantitave figure for glitching is difficult to estimate since it depends very much on the structure of our arithmetic block. Given the same bit-length, ripple structures are more affected by glitches than tree structures due to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=181&subd=asicdigitalarithmetic&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Glitches, the result of different time delays in logic gates, is responsible for part of the dynamic power consumption. A quantitave figure for glitching is difficult to estimate since it depends very much on the structure of our arithmetic block. Given the same bit-length, ripple structures are more affected by glitches than tree structures due to a higher logic depth.  In general, dynamic power is proportional to the product of the activity factor and capacitance, i.e.</p>
<p><img src='http://l.wordpress.com/latex.php?latex=P%5Cpropto%5Calpha%5Ccdot+C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='P\propto\alpha\cdot C' title='P\propto\alpha\cdot C' class='latex' />.</p>
<p>Balanced logic is supposed to reduce glitches and therefore power consumption. Most of the times, this does not come for free and the total capacitance is increased due to additional transistors. A very simple analysis shows that reducing power by reducing glitching is not an easy task. Let&#8217;s assume that</p>
<p><img src='http://l.wordpress.com/latex.php?latex=%5Calpha+%3D+%281-%5Crho%29%5Ccdot%5Calpha_%7Bg%7D%2B%5Calpha_%7Bt%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha = (1-\rho)\cdot\alpha_{g}+\alpha_{t}' title='\alpha = (1-\rho)\cdot\alpha_{g}+\alpha_{t}' class='latex' />,</p>
<p>where $latex \rho$ is our glitching reduction factor due to a balanced structure, <img src='http://l.wordpress.com/latex.php?latex=%5Calpha_g&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha_g' title='\alpha_g' class='latex' /> is the glitching activity factor and <img src='http://l.wordpress.com/latex.php?latex=%5Calpha_t&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha_t' title='\alpha_t' class='latex' /> is the dynamic activity factor (which depends only on the input signal probabilities). On the other hand,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=C+%3D+%281%2B%5Cpsi%29%5Ccdot+C_%7Bg%7D%2BC_%7Bw%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='C = (1+\psi)\cdot C_{g}+C_{w}' title='C = (1+\psi)\cdot C_{g}+C_{w}' class='latex' />,</p>
<p>where <img src='http://l.wordpress.com/latex.php?latex=%5Cpsi&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\psi' title='\psi' class='latex' /> is the capacitance increase factor, <img src='http://l.wordpress.com/latex.php?latex=C_g&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='C_g' title='C_g' class='latex' /> is the total gate capacitance and <img src='http://l.wordpress.com/latex.php?latex=C_w&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='C_w' title='C_w' class='latex' /> is the total wiring capacitance (we assume that only the gate capacitance is affected).</p>
<p>Let <img src='http://l.wordpress.com/latex.php?latex=C_T+%3D+C_g+%2B+C_w&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='C_T = C_g + C_w' title='C_T = C_g + C_w' class='latex' /> and <img src='http://l.wordpress.com/latex.php?latex=%5Calpha_T+%3D+%5Calpha_g+%2B+%5Calpha_t&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha_T = \alpha_g + \alpha_t' title='\alpha_T = \alpha_g + \alpha_t' class='latex' /> be the total capacitance and the total actitivity factor, respectively. Then, we obtain,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=%5Calpha%5Ccdot+C%3DC_T%5Calpha_T+%2B+%5C%7B%5Calpha_T%5Cpsi+C_g+-+%5Crho+%5Calpha_g%28C_T%2B%5Cpsi+C_g%29%5C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha\cdot C=C_T\alpha_T + \{\alpha_T\psi C_g - \rho \alpha_g(C_T+\psi C_g)\}' title='\alpha\cdot C=C_T\alpha_T + \{\alpha_T\psi C_g - \rho \alpha_g(C_T+\psi C_g)\}' class='latex' />.</p>
<p>Now, to get a reduction in power consumption the second term in the right-hand-side must be lower than zero. In other words, the reduction in glitching activity must be bigger than,</p>
<p><img src='http://l.wordpress.com/latex.php?latex=%5Crho+%3E+%281%2B%5Cfrac%7B%5Calpha_t%7D%7B%5Calpha_g%7D%29%5Ccdot%5Cfrac%7B1%7D%7B1%2B%5Cfrac%7B1%7D%7B%5Cpsi%7D%281%2B%5Cfrac%7BC_w%7D%7BC_g%7D%29%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\rho &gt; (1+\frac{\alpha_t}{\alpha_g})\cdot\frac{1}{1+\frac{1}{\psi}(1+\frac{C_w}{C_g})}' title='\rho &gt; (1+\frac{\alpha_t}{\alpha_g})\cdot\frac{1}{1+\frac{1}{\psi}(1+\frac{C_w}{C_g})}' class='latex' />.</p>
<p>In order to get some feeling, let&#8217;s assume that the wiring capacitance is neglectable, <img src='http://l.wordpress.com/latex.php?latex=C_w%3D0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='C_w=0' title='C_w=0' class='latex' /> , and that our balanced logic increases the gate capacitance by 20%, <img src='http://l.wordpress.com/latex.php?latex=%5Cpsi%3D0.2&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\psi=0.2' title='\psi=0.2' class='latex' />. It results that it is IMPOSSIBLE to reduce power consumption if the glitching activity accounts for at least 20% of the transition activity, <img src='http://l.wordpress.com/latex.php?latex=%5Calpha_g%3D0.2%5Calpha_t&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha_g=0.2\alpha_t' title='\alpha_g=0.2\alpha_t' class='latex' />. (Just for reference, Veendrick, in his textbook, mentions that in a 8-bit ripple adder glitching accounts for as much as 30%.)</p>
<p>Also, this means that in a tree adder like, for example, a Brent-Kung adder, there is little or no benefit when balancing the tree cells.</p>
<p>Even if the wiring capacitance were not neglectable (deep-submicron technologies), say <img src='http://l.wordpress.com/latex.php?latex=C_w+%3D+3C_g&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='C_w = 3C_g' title='C_w = 3C_g' class='latex' />, and we were able to reduce as much as 50% of glitching, then the power reduction would account for as little as 3.8% ! (assuming once again <img src='http://l.wordpress.com/latex.php?latex=%5Cpsi%3D0.2&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\psi=0.2' title='\psi=0.2' class='latex' /> and <img src='http://l.wordpress.com/latex.php?latex=%5Calpha_g%3D0.2%5Calpha_t&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\alpha_g=0.2\alpha_t' title='\alpha_g=0.2\alpha_t' class='latex' />).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/asicdigitalarithmetic.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/asicdigitalarithmetic.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/asicdigitalarithmetic.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/asicdigitalarithmetic.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/asicdigitalarithmetic.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/asicdigitalarithmetic.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/asicdigitalarithmetic.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/asicdigitalarithmetic.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/asicdigitalarithmetic.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/asicdigitalarithmetic.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=asicdigitalarithmetic.wordpress.com&blog=4037062&post=181&subd=asicdigitalarithmetic&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://asicdigitalarithmetic.wordpress.com/2008/10/27/balanced-logic-and-glitches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee9c213408e4d37317f692caf7fb2187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">asicdigitalarithmetic</media:title>
		</media:content>
	</item>
	</channel>
</rss>