<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Parallel CRC Generator</title>
	<atom:link href="http://outputlogic.com/?feed=rss2&#038;p=158" rel="self" type="application/rss+xml" />
	<link>http://outputlogic.com/?p=158</link>
	<description>tools that improve productivity</description>
	<lastBuildDate>Thu, 02 Sep 2010 19:13:59 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Evgeni</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-502</link>
		<dc:creator>Evgeni</dc:creator>
		<pubDate>Thu, 02 Sep 2010 19:13:59 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-502</guid>
		<description>Hi Vikram,

There is a long list of things that can go wrong during CRC calculation. I&#039;d need more information to help you.

Thanks,
Evgeni</description>
		<content:encoded><![CDATA[<p>Hi Vikram,</p>
<p>There is a long list of things that can go wrong during CRC calculation. I&#8217;d need more information to help you.</p>
<p>Thanks,<br />
Evgeni</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vikram</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-500</link>
		<dc:creator>vikram</dc:creator>
		<pubDate>Thu, 02 Sep 2010 08:50:30 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-500</guid>
		<description>i am giving a date packet but not able to see the correct crc</description>
		<content:encoded><![CDATA[<p>i am giving a date packet but not able to see the correct crc</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vikram</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-499</link>
		<dc:creator>vikram</dc:creator>
		<pubDate>Tue, 31 Aug 2010 10:14:21 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-499</guid>
		<description>Hi,
I am working on CRC 32 bit project which has 120 bit or 15 byte data as serial in stream coming on an ethernet cable on the receiver side.i have the program and am not able to see the right crc in the simulation.i saw the program on your  site but seems to long to get the crc32.the logic is as below:

ENTITY TL_CRC_32 IS

  PORT (
    clk          : IN  STD_LOGIC;       -- clock
    reset        : IN  STD_LOGIC;       -- asynchronous reset
    crc32_init   : IN  STD_LOGIC;       -- set CRC register to initial value
    crc32_enable : IN  STD_LOGIC;       -- enable CRC calculation
    serial_IN    : IN  STD_LOGIC;       -- serial input data
    crc32        : OUT bus32);          -- CRC32 accumolator

END ENTITY TL_CRC_32;

ARCHITECTURE behaviour OF TL_CRC_32 IS

  SIGNAL crc32_shifter : STD_LOGIC_VECTOR (31 DOWNTO 0);
--SIGNAL temp : STD_LOGIC_VECTOR (31 DOWNTO 0);
  SUBTYPE  poly_vector IS BIT_VECTOR (31 DOWNTO 0);
  CONSTANT poly    : poly_vector := X&quot;04C11DB7&quot;;  -- polynominal
  CONSTANT initval : STD_LOGIC   := &#039;1&#039;;      -- initial crc reg. value  

BEGIN

  shift_data : PROCESS (clk, reset) IS
  BEGIN
    IF reset = &#039;0&#039; THEN
      crc32_shifter  initval);
    ELSIF clk&#039;EVENT AND clk = &#039;1&#039; THEN
      IF crc32_init = &#039;1&#039; THEN          -- load crc reg with init value
        crc32_shifter  initval);
      ELSIF (crc32_enable = &#039;1&#039;) THEN   -- serial crc bit calculation
        FOR i IN 0 TO 31 LOOP
          IF (poly(i) = &#039;1&#039;) THEN
            IF (i = 0) THEN
              crc32_shifter(0) &lt;= serial_IN XOR crc32_shifter(31);
            ELSE
              crc32_shifter(i) &lt;= crc32_shifter(i-1) XOR serial_IN XOR crc32_shifter(31);
            END IF;
          ELSE
            crc32_shifter(i) &lt;= crc32_shifter(i-1);
          END IF;
        END LOOP;
      END IF;
    END IF;
      END PROCESS shift_data;

  crc32 &lt;= crc32_shifter;
  
END ARCHITECTURE behaviour;

Can you please help me?</description>
		<content:encoded><![CDATA[<p>Hi,<br />
I am working on CRC 32 bit project which has 120 bit or 15 byte data as serial in stream coming on an ethernet cable on the receiver side.i have the program and am not able to see the right crc in the simulation.i saw the program on your  site but seems to long to get the crc32.the logic is as below:</p>
<p>ENTITY TL_CRC_32 IS</p>
<p>  PORT (<br />
    clk          : IN  STD_LOGIC;       &#8212; clock<br />
    reset        : IN  STD_LOGIC;       &#8212; asynchronous reset<br />
    crc32_init   : IN  STD_LOGIC;       &#8212; set CRC register to initial value<br />
    crc32_enable : IN  STD_LOGIC;       &#8212; enable CRC calculation<br />
    serial_IN    : IN  STD_LOGIC;       &#8212; serial input data<br />
    crc32        : OUT bus32);          &#8212; CRC32 accumolator</p>
<p>END ENTITY TL_CRC_32;</p>
<p>ARCHITECTURE behaviour OF TL_CRC_32 IS</p>
<p>  SIGNAL crc32_shifter : STD_LOGIC_VECTOR (31 DOWNTO 0);<br />
&#8211;SIGNAL temp : STD_LOGIC_VECTOR (31 DOWNTO 0);<br />
  SUBTYPE  poly_vector IS BIT_VECTOR (31 DOWNTO 0);<br />
  CONSTANT poly    : poly_vector := X&#8221;04C11DB7&#8243;;  &#8212; polynominal<br />
  CONSTANT initval : STD_LOGIC   := &#8216;1&#8242;;      &#8212; initial crc reg. value  </p>
<p>BEGIN</p>
<p>  shift_data : PROCESS (clk, reset) IS<br />
  BEGIN<br />
    IF reset = &#8216;0&#8242; THEN<br />
      crc32_shifter  initval);<br />
    ELSIF clk&#8217;EVENT AND clk = &#8216;1&#8242; THEN<br />
      IF crc32_init = &#8216;1&#8242; THEN          &#8212; load crc reg with init value<br />
        crc32_shifter  initval);<br />
      ELSIF (crc32_enable = &#8216;1&#8242;) THEN   &#8212; serial crc bit calculation<br />
        FOR i IN 0 TO 31 LOOP<br />
          IF (poly(i) = &#8216;1&#8242;) THEN<br />
            IF (i = 0) THEN<br />
              crc32_shifter(0) &lt;= serial_IN XOR crc32_shifter(31);<br />
            ELSE<br />
              crc32_shifter(i) &lt;= crc32_shifter(i-1) XOR serial_IN XOR crc32_shifter(31);<br />
            END IF;<br />
          ELSE<br />
            crc32_shifter(i) &lt;= crc32_shifter(i-1);<br />
          END IF;<br />
        END LOOP;<br />
      END IF;<br />
    END IF;<br />
      END PROCESS shift_data;</p>
<p>  crc32 &lt;= crc32_shifter;</p>
<p>END ARCHITECTURE behaviour;</p>
<p>Can you please help me?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evgeni</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-441</link>
		<dc:creator>Evgeni</dc:creator>
		<pubDate>Fri, 04 Jun 2010 16:11:03 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-441</guid>
		<description>Hi,

The method should work with either Fibonacci or Galois LFSRs. I expect that both will produce the same result - matrix coefficients, or XOR tree - but will need to work out a formal proof for that claim.

Thanks,
Evgeni</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>The method should work with either Fibonacci or Galois LFSRs. I expect that both will produce the same result &#8211; matrix coefficients, or XOR tree &#8211; but will need to work out a formal proof for that claim.</p>
<p>Thanks,<br />
Evgeni</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vinther</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-440</link>
		<dc:creator>Vinther</dc:creator>
		<pubDate>Fri, 04 Jun 2010 07:33:10 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-440</guid>
		<description>Ok,

Im not completly clear if that answer is a yes or no :D. However, i know that the XOR trees are not a LFSR. My question, dont know if i have been unclear, is that the matrixes you use to calculate thoes XOR tress are based on a calculation made over a software implementation of a Galois LFSR. My question is will the same method work if the Matrix is made by a software implemented Fibonacci LFSR insted ?</description>
		<content:encoded><![CDATA[<p>Ok,</p>
<p>Im not completly clear if that answer is a yes or no <img src='http://outputlogic.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . However, i know that the XOR trees are not a LFSR. My question, dont know if i have been unclear, is that the matrixes you use to calculate thoes XOR tress are based on a calculation made over a software implementation of a Galois LFSR. My question is will the same method work if the Matrix is made by a software implemented Fibonacci LFSR insted ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evgeni</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-439</link>
		<dc:creator>Evgeni</dc:creator>
		<pubDate>Thu, 03 Jun 2010 15:40:08 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-439</guid>
		<description>Hi,

Galois and Fibonacci notations are used to describe linear feedback shift registers, which are used for CRC with 1-bit data.
Parallel CRC in my method is using XOR trees, which is a structure different from LFSR. It reduces to Galois-style LFSR for 1-bit data.  

Thanks,
Evgeni</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Galois and Fibonacci notations are used to describe linear feedback shift registers, which are used for CRC with 1-bit data.<br />
Parallel CRC in my method is using XOR trees, which is a structure different from LFSR. It reduces to Galois-style LFSR for 1-bit data.  </p>
<p>Thanks,<br />
Evgeni</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vinther</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-438</link>
		<dc:creator>Vinther</dc:creator>
		<pubDate>Thu, 03 Jun 2010 11:40:58 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-438</guid>
		<description>Hi,

A quick question, I&#039;ve just read your PDF &quot;circuit-cellar-january-2010-crc.pdf&quot;. And you&#039;ve explained to me privously that you use Galois notation.

At the step where you generate the matrixes with your software LFSR implementation, which i guess is implemented with Galois notation. Is it possible to use a Fibonacci notation insted? 
And will the reset of the proceedure still hold ?</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>A quick question, I&#8217;ve just read your PDF &#8220;circuit-cellar-january-2010-crc.pdf&#8221;. And you&#8217;ve explained to me privously that you use Galois notation.</p>
<p>At the step where you generate the matrixes with your software LFSR implementation, which i guess is implemented with Galois notation. Is it possible to use a Fibonacci notation insted?<br />
And will the reset of the proceedure still hold ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evgeni</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-435</link>
		<dc:creator>Evgeni</dc:creator>
		<pubDate>Wed, 02 Jun 2010 03:56:18 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-435</guid>
		<description>Hi,

I think a good place to start with understanding a 1-bit CRC is on wiki: http://en.wikipedia.org/wiki/Cyclic_redundancy_check

Thanks,
Evgeni</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I think a good place to start with understanding a 1-bit CRC is on wiki: <a href="http://en.wikipedia.org/wiki/Cyclic_redundancy_check" rel="nofollow">http://en.wikipedia.org/wiki/Cyclic_redundancy_check</a></p>
<p>Thanks,<br />
Evgeni</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Essennell</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-433</link>
		<dc:creator>Essennell</dc:creator>
		<pubDate>Wed, 02 Jun 2010 01:53:25 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-433</guid>
		<description>Hi,

I am trying to understand CRC generation using the shift register, could someone help to explain how it works, thanks.

regards
Essennell</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I am trying to understand CRC generation using the shift register, could someone help to explain how it works, thanks.</p>
<p>regards<br />
Essennell</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evgeni</title>
		<link>http://outputlogic.com/?p=158&#038;cpage=1#comment-419</link>
		<dc:creator>Evgeni</dc:creator>
		<pubDate>Thu, 15 Apr 2010 17:30:14 +0000</pubDate>
		<guid isPermaLink="false">http://s92890915.onlinehome.us/outputlogic/?p=158#comment-419</guid>
		<description>Hi Chico,

I worked with CRC32 and datawidth=256 bit that run at 133MHz on Virtex4. I&#039;d expect your configuration to meet timing. But before you resort to pipelining, I&#039;d recommend trying to floorplan it. 

Thanks,
Evgeni</description>
		<content:encoded><![CDATA[<p>Hi Chico,</p>
<p>I worked with CRC32 and datawidth=256 bit that run at 133MHz on Virtex4. I&#8217;d expect your configuration to meet timing. But before you resort to pipelining, I&#8217;d recommend trying to floorplan it. </p>
<p>Thanks,<br />
Evgeni</p>
]]></content:encoded>
	</item>
</channel>
</rss>
