資源描述:
《crc校驗(yàn)碼MATLAB和FPGA實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、1.掌握按字節(jié)編碼的過(guò)程,試著寫(xiě)出CRC校驗(yàn)編碼的Matlab程序?%mainprogramclearall;input=[1100]CRC_Number=[381216];forcrc_index=1:size(CRC_Number,2)crc_no=CRC_Number(crc_index)output=crc_add(input,crc_no)[output_after_check,indicate]=crc_check(output,crc_no)endfunction[output,in
2、dicate]=crc_check(input,crc_no)%thefunctionisproposedfordeletingcrcbitsfromtheinputsequencen=size(input,2);generator=zeros(1,crc_no+1);output=zeros(1,n-crc_no);switchcrc_nocase3generator=[1011];case8generator=[110011011];%D^8+D^7+D^4+D^3+D+1case12gene
3、rator=[1100000001111];%D^12+D^11+D^3+D^2+D+1case16generator=[10001000000100001];%D^16+D^12+D^5+1case24generator=[1100000000000000001100011];%D^24+D^23+d^6+D^5+D+1otherwisefprintf('Pleasethenumberofcrcbitsshouldbe8121624');endoutput=input(1:n-crc_n
4、o);forii=1:n-crc_noif(input(1)==1)input(1:crc_no+1)=mod((input(1:crc_no+1)+generator),2);endinput=[input(2:end)input(1)];endifsum(input)==0indicate=0;elseindicate=1;endfunction[output]=crc_add(input,crc_no)%thefunctionisproposedforaddingcrcbitstothein
5、putsequencek=size(input,2);generator=zeros(1,crc_no+1);output=zeros(1,k+crc_no);switchcrc_nocase3generator=[1011];case8generator=[110011011];%D^8+D^7+D^4+D^3+D+1case12generator=[1100000001111];%D^12+D^11+D^3+D^2+D+1case16generator=[10001000000100001];
6、%D^16+D^12+D^5+1case24generator=[1100000000000000001100011];%D^24+D^23+d^6+D^5+D+1otherwisefprintf('Pleasethenumberofcrcbitsshouldbe8121624');endoutput(1:k)=input;forii=1:kif(output(1)==1)output(1:crc_no+1)=mod((output(1:crc_no+1)+generator),2);en
7、doutput=[output(2:end)output(1)];endoutput=[inputoutput(1:crc_no)];2.如何設(shè)計(jì)FPGA實(shí)現(xiàn)CRC校驗(yàn)計(jì)算?32位并行數(shù)據(jù)CRC-16校驗(yàn)碼的FPGA實(shí)現(xiàn)表 32位CRC-16編碼器的端口說(shuō)明clkinput系統(tǒng)時(shí)鐘crc_rsetinputCRC生成器復(fù)位sdatainput輸入數(shù)據(jù)crc_outoutput輸出CRC校驗(yàn)碼其中VHDL代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTI
8、TYCRC16ISPORT(sdata:INSTD_LOGIC_VECTOR(31DOWNTO0);clk:INSTD_LOGIC;crc_rset:INSTD_LOGIC;crc_out:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDCRC16;ARCHITECTUREthOFCRC16IS SIGNALD:STD_LOGIC_VECTOR(31DOWNTO0); SIGNALR,crc_temp:STD_LOGIC_VECTOR(15DOWNTO0);B