CRCУÑéÂëϵͳµÄÉè¼Æ(3)

2018-12-27 18:06

·´À¡£¬0 ±íʾÎÞ·´À¡¡£Ã¿¸ö¼Ä´æÆ÷µÄ³õʼֵ¾ùΪ0£¬½«Âë×é m3m2m1m0 ÒÀ´Î´®ÐÐËÍÈëµç·µÄ×î¸ß¶Ë£¬Ï൱ÓÚ¶ÔÆäºóÃæ²¹Èý¸öÁ㣬³ý·¨µç·¾­¹ýËÄ´ÎÒÆÎ»ºó£¬¼Ä´æÆ÷ D1D2D3ÀïµÄÊý¼´ÎªÓàʽ r (x) ¡£Òò´Ë£¬±à³öÂë×é T (x) = (m3m2m1m0D1D2D3)¡£Êµ¼ÊÉè¼ÆÖУ¬ÒªÓÐÒ»¸öÐźŠK À´¿ØÖÆÂë×éµÄÊäÈëÓëÊä³ö£¬ÔÚ K µÄ¿ØÖÆÏ£¬ÊäÈëµÄÐÅÏ¢ÂëÔª£¬Ò»·½Ãæ´®ÐÐÊäÈëÐŵÀ£¬ÁíÒ»·½Ãæ½øÈë³ý·¨µç·½øÐмÆËã¡£µ±ÊäÈë×îĩһλÐÅÏ¢ÂëÔª½áÊøÊ±£¬K ÐźÅҲΪÁ㣬ÔÚʱÖÓÂö³å×÷ÓÃÏ£¬ÒÆÎ»¼Ä´æÆ÷½«¼ÆËã½á¹ûËÍÍùÐŵÀ£¬¼´ÔÚ×îĩһλÐÅÏ¢ÂëÔªºó¸½¼Ó¼à¶½Âë¡£

3.2ÒëÂëÆ÷µÄÉè¼Æ

½ÓÊÕ¶ËÒëÂëµÄÒªÇóÓÐÁ½¸ö£º¼ì´íºÍ¾À´í¡£

£¨1£© ¼ì´íÈô½ÓÊÕÂë×é R (x) Óë·¢ËÍÂë×éÏàͬ£¬¼´ R (x) =T (x)£¬ÔòR (x) ±Ø¶¨Äܱ» g (x) Õû³ý£»ÈôÔÚ´«ÊäÖз¢Éú´íÎ󣬼´ R (x)¡ÙT (x)£¬Ôò R (x) ±» g (x) ³ýʱ¿ÉÄܳý²»¾¡¶øÓÐÓàÏ´Ó¶ø·¢Éú´íÎó¡£Òò´Ë£¬¿ÉÒÔÒÔÓàÏîÊÇ·ñΪÁãÀ´ÅжϽÓÊÕÂë×éÖÐÓÐÎÞ´íÎó¡£µ«ÊÇ£¬ÓдíÂëµÄ½ÓÊÕÂë×éÒ²ÓпÉÄܱ» g (x) Õû³ý£¬ÕâʱµÄ´íÂë¾Í²»Äܼì³ö¡£ÕâÖÖ´íÎó³ÆÎª²»¿É¼ì´íÎ󣬯äÎóÂë±Ø¶¨³¬¹ýÁ˴˱àÂëµÄ¼ì´íÄÜÁ¦¡£

£¨2£© ¾À´í

ΪÁËÄܹ»¾À´í£¬ÒªÇóÿ¸ö¿É¾ÀÕýµÄ´íÎóͼÑù±ØÐëÓëÒ»¸öÌØ¶¨ÓàʽÓÐÒ»Ò»¶ÔÓ¦¹ØÏµ¡£Ö»ÓдæÔÚÉÏÊöÒ»Ò»¶ÔÓ¦µÄ¹ØÏµÊ±£¬²Å¿ÉÄÜ´ÓÉÏÊöÓàʽΨһµØ¾ö¶¨´íÎóͼÑù£¬´Ó¶ø¾ÀÕý´íÂë¡£ÒÔÏÂÊÇΪ¾À´í¶øÉè¼ÆµÄ¡£ÓÉÓÚ £¨7£¬4£© Ñ­»·ÂëµÄ×îСÂë¾àΪ d0=3£¬ÓÉ d0¡Ý2t+1 µÃ£¬´ËÑ­»·ÂëÖ»ÄܾÀÕýÒ»¸ö´íÂë¡£µ±¾­¹ýÐŵÀ´«Êäºó·¢Éú´íÎóʱ£¬½ÓÊÕÂë×é¶àÏîʽ R (x) ²»ÔÙÊǵı¶Ê½¡£

ÆäÖÐ S (x) ÊÇ R (x) ³ýÒÔ g (x) ºóµÄÓàʽ£¬ÊDz»´óÓÚ r-1´ÎµÄÂë×é¶àÏîʽ£¬³ÆÎª°éËæ¶àÏîʽ»òУÕý×Ó¶àÏîʽ¡£Ê±½ÓÊÕÂë×é¶àÏîʽ ¿É±íʾΪ·¢ËÍÂë×é¶àÏîʽ T (x) Óë²î´í¶àÏîʽ E (x) Ö®ºÍ£¬¼´£ºR (x) =T (x) +E (x)×ÛºÏÒÔÉÏʽ×Ó£¬ÎÒÃÇÓÉ ¾Í¿É½øÒ»²½È·¶¨ E (x)£º

S (x) =rem£ÛT (x) +E (x) £Ý =rem £ÛE (x) £Ý

g (x) g (x)

¶ÔÓÚÒ»¸ö S (x)£¬E (x) ¿ÉÄÜÓжàÖÖÐÎʽ¡£ÓÉ S (x) È·¶¨ E(x) ʱͬÑùʹ

6

ÓÃ×î´óËÆÈ»±È×¼Ôò¡£¶Ô×îСÂëÖØµÄ²î´í¶àÏîʽ E(x)£¬ÓÉÉÏʽÇó³ö¶ÔÓ¦µÄ°éËæ¶àÏîʽ S (x)£¬½« E (x) Óë S (x) µÄ¶ÔÓ¦¹ØÏµÁгÉÒëÂë±í¡£µ±ÊÕµ½ÈÎÒ»Âë×é R (x) ºó£¬ÀûÓà S (x)=rem £ÛR (x) /g (x)£Ý Çó³ö S (x)£¬¶ÔÕÕÒëÂë±íÕÒµ½ E (x)£¬ÔÙÓÃR (x) =T (x) +E (x) Çó T (x)£¬¼´ T (x) =R (x) -E (x) ΪÒѾ­¾À´íµÄÔ­·¢ËÍÂë×é¡£¾À´íÍê±ÏÖ®ºó£¬Ö»ÐèҪȡ¾À´íºóµÄǰËÄ룬¼´ÎªËùÒëÂëÔª¡£¶øÔÚʵ¼Êµç·Éè¼Æ¹ý³ÌÖУ¬ÓÉÓÚ¶þ½øÖÆÖ»ÓÐ 0 Óë 1 Á½ÖÖ״̬£¬ÖªµÀ´íÎóλÖú󣬿ÉÒÔÖ±½Ó¶Ô¸ÃλÖõÄÂëԪȡ·´¼´¿É¡£

×ÛÉÏËùÊö£¬¾À´íµÄ²½ÖèÈçÏ£º

£¨1£©°Ñ ½Ó ÊÕ Âë ×é R ( x) ËÍ Èë ³ý ·¨ µç · £¬ µÃ µ½ Óà ÊýD1D2D3 ¼´Îª°éËæ¾ØÕó S (x)¡£

£¨2£©ÓɵäÐÍÉú³É¾ØÕó G ºÍµäÐͼල¾ØÕó HT Ö®¼äµÄ¹ØÏµ¿É½øÒ»²½ÇóµÃ£¬ÔÙÓÉ S=E.HT ¿ÉµÃ´íÎóͼÑù E(x)£¬ÕâÑù¾Í¿ÉÒÔÈ·¶¨´íÂëµÄλÖá£

£¨3£©¸ù¾Ý´íÎóµÄÂë룬¶Ô¸ÃÂëλµÄÂëԪȡ·´Êä³ö±ã¿ÉµÃµ½Ô­·¢ËÍÂë×é T (x)¡£ÆäÖУ¬T (x) µÄǰËÄλ¼´ÎªÒë³öÂëÔª m(x)¡£

ͼ3.2 ÒëÂëÆ÷ʾÒâͼ

ÔÚÔËÓà VHDL Éè¼ÆÊ±£¬½«½ÓÊÕÂë×é½øÐд®²¢×ª»»£¬½øÈë³ý·¨µç·ÇóÆä°éËæÊ½£¬ÈÃÆä²¢ÐÐÊä³öÖ®ºóËÍÈë´íÎóͼÑùʶ±ðÆ÷À´È·¶¨ E£¬ÒÔ±ãÈ·¶¨³ö´íÂëµÄλÖã¬¶ÔÆä´íÂëλȡ·´¼´¿É¡£×îºó£¬Í¨¹ý²¢´®×ª»»½«ÒëÂëºóµÄÂë×é´®ÐÐÊä³ö¡£

7

4 Éè¼Æ²½Öè

4.1ϵͳ·ÖÎö

±¾Éè¼ÆÔÚQuartus¢òµÄEDAÈí¼þƽ̨ÉÏ£¬ÔËÓÃVHDLÓïÑÔ½øÐбà³Ì¡£³ÌÐòÁ÷³ÌͼÈçͼ4.2Ëùʾ£º

ͼ4.1Ñ­»·Âë±àÒëÂë¿ò¼Üͼ

Ñ­»·Âë±àÒëÂëϵͳ½á¹¹Í¼Èçͼ4.1Ëùʾ¡£Óɶ¨Ê±µ¥Ôª(¿ØÖÆÐźÅÉú³Éµ¥Ôª) ¡¢ÐÅÂë·¢ÉúÆ÷¡¢±àÂëÆ÷µ¥Ôª¡¢Ä£Äâ´íÂë·¢ÉúÆ÷¡¢´íÂëλÖüÆËãµ¥Ôª¡¢¾À´íµ¥Ôª×é³É¡£ÆäÖдíÂëλÖüÆËãµ¥ÔªºÍ¾À´íµ¥ÔªºÏÔÚÒ»Æð¹¹³ÉÒëÂëÆ÷¡£

8

4.2³ÌÐòÁ÷³Ì·ÖÎö

¿ªÊ¼³õʼ»¯²¢ÇÒÊäÈëËÄλÐÅÏ¢Âëdatain±àÂëdataoutroutÅжϼì´íN¾À´íYÒëÂëtoutÊä³ö7λÐÅÏ¢Âëdin½áÊø ͼ4.2 ³ÌÐòÁ÷³Ìͼ

¸Ã³ÌÐòÁ÷³ÌÖ÷Ҫͨ¹ýÊäÈëÒ»×éËÄλÐÅÏ¢Âë×飬Ȼºó¸ù¾Ý±àÂëºóµÄÓàÊýÊä³ö¶Ô±àÂë½øÐмì´íÅжϣ¬ÈôÊä³öÓàÊýΪ000 ÔòÎÞ´íÂ룬ÈôÊä³öµÄÓàÊý²»Îª000£¬ÔòÓдíÂ롣Ȼºó¾À´í²¢ÒëÂëÊä³öÒ»¸ö7λÐÅÏ¢Âë×é¡£ 4.3³ÌÐòÉè¼Æ

¸ù¾Ý³ÌÐòÁ÷³Ìͼ±àд³ÌÐò£¬Ô´³ÌÐòÈçÏÂËùʾ£º

ÆäÖУ¬ÎªÁËÔö¼ÓÒëÂëÆ÷µÄ¿É¶ÁÐÔ£¬Ôö¼ÓÁ˸ö judge Ðźţ¬µ±Îª 00 ʱ±íʾÎÞ´íÂ룬11 ʱ±íʾÓдíÂë¡£ LIBRARYieee;

USE ieee.std_logic_1164.all; ENTITY cycle IS PORT (

datain: IN STD_LOGIC;

clk,clr,clr2: IN STD_LOGIC;

enable1: in std_logic; enable2: in std_logic;

9

tout:outstd_logic_vector(6 downto 0); judge:outstd_logic_vector(1 downto 0) );

END cycle;

ARCHITECTURE arc_cycle OF cycle IS SIGNAL d0,d1,d2:STD_LOGIC;

signal q1,q2,q0:STD_LOGIC_vector(7 downto 0):=\signaldataout: std_logic;

signal din: std_logic_vector(6 downto 0); signal rout: std_logic_vector(2 downto 0);

--signal din: std_logic_vector(6 downto 0):=\

BEGIN

u1:process (clk)

variable g:std_logic;

variable m:integer range 1 to 8; begin

if (clk'event and clk='1') then if clr='1' then --³õʼ״̬ g:='0'; m:=1;

dataout<='0'; else

if m<=8 then

if m<=4 then --ÊäÈëËÄλÐÅϢλ dataout<=datain; case m is

when 1 => din(6)<=dataout; when 2 => din(6)<=dataout; when 3 => din(5)<=dataout; when 4 => din(4)<=dataout; when 5 => din(3)<=dataout; when 6 => din(2)<=dataout; when 7 => din(1)<=dataout; when 8 => din(0)<=dataout; end case;

g:=datain XOR d2; else

dataout<=d2; --ÓàÊýÊä³ö case m is

10


CRCУÑéÂëϵͳµÄÉè¼Æ(3).doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ ÏÂÔØÊ§°Ü»òÕßÎĵµ²»ÍêÕû£¬ÇëÁªÏµ¿Í·þÈËÔ±½â¾ö£¡

ÏÂһƪ£ºMM¶¨Àí

Ïà¹ØÔĶÁ
±¾ÀàÅÅÐÐ
¡Á ×¢²á»áÔ±Ãâ·ÑÏÂÔØ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÂíÉÏ×¢²á»áÔ±

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£º QQ£º