串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx

上传人:b****1 文档编号:13077212 上传时间:2022-10-04 格式:DOCX 页数:21 大小:325.39KB
下载 相关 举报
串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx_第1页
第1页 / 共21页
串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx_第2页
第2页 / 共21页
串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx_第3页
第3页 / 共21页
串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx_第4页
第4页 / 共21页
串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx

《串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

串行和并行CRC架构及VHDL代码实现Word文档下载推荐.docx

clk:

din:

instd_logic;

crc_en:

--其高电平要一直持续到din输入完毕;

在crc_en信号由低变高后,din刚开始输入的“0”值都不会影响寄存器的输出(因为寄存器的初始值全为零,而两个零之间的异或运算还是零);

一直到din的输入变为“1”值,此后,din输入的“0”和

“1”值都会影响寄存器的输出。

dout :

outstd_logic

);

endcrc_5;

--**************************************************architectureaofcrc_5is

signalshift_reg :

std_logic_vector(4downto0);

begin

process(rst,clk)begin

21

if(rst='

1'

)thenshift_reg<

=(others=>

'

0'

elsifclk'

eventandclk='

then

ifcrc_en='

thenshift_reg(0)<

=shift_reg(4)xordin;

shift_reg

(1)<

=shift_reg(0);

shift_reg

(2)<

=shift_reg(4)xordinxorshift_reg

(1);

shift_reg(3)<

=shift_reg

(2);

shift_reg(4)<

=shift_reg(4)xordinxorshift_reg(3);

else

shift_reg<

=shift_reg(3downto0)&

;

dout<

=shift_reg(4);

endif;

endprocess;

enda;

1.3CRC_5Testbench

----testbench.vhd-libraryieee;

entitytestbenchisendtestbench;

architecturemtestoftestbenchiscomponentcrc_5is

--其高电平要一直持续到din输入完毕

dout:

outstd_logic_vector(4downto0)

endcomponent;

signal

rst

:

std_logic;

clk

std_logic:

='

din

signal crc_en:

--其高电平要一直持续到din输入完毕

signal dout:

std_logic_vector(4downto0);

constantclkpd:

time:

=20ns;

clk<

=notclkafterclkpd/2;

crc_5_0:

crc_5portmap(rst=>

rst,clk=>

clk,din=>

din,crc_en=>

crc_en,dout=>

dout);

process

rst<

din<

crc_en<

waitfor40ns;

rst<

waitfor30ns;

crc_en<

din<

waitfor40ns;

wait;

endprocess;

endmtest;

1.4CRC_5TestResults

Theinputdatais“110011”,thefinalresultis“10100”;

2.NewarchitectureofCRC[1]

Figure2.Architecture1ofCRC

Figure3.Architecture2ofCRC

3.ParallelCRCArchitecture

d0

R0

x0

d1

x1

R1

d2

x2

R2

d3

R3

x3

Parallelsequence



FCS

Figure1.GeneralParallelCRCArchitecture

3.1LFSRArchitecture1anditscorrespondingcoefficientmatrixF

3.1.1ArchitectureofLFSR1

e00 R0

e01

e02

d1 e03

e10 x1

e11 R1

e12e13

e20

e21 R2

e22e23

d3 e30 x3

e31 R3

e32e33

erc

Figure2.SerialCRCArchitecture

图中,红色的线代表有效的数据传输通道。

3.1.2Correspondingrelationship

Table1.CoefficientcorrespondingrelationshipbetweenFigure2andFmatrix(Reference1)

r,c

3

2

1

e(3,m-1)=>

p3

E32

e(2,m-1)=>

p2

E21

e(1,m-1)=>

p1

E10

e(0,m-1)=>

p0

Notice:

Forthisarchitecture,sequenceofmzeroshastobesentthroughdtoobtainthefinalresults

3.1.3Simulationresults:

3.1.4TestbenchandCRC_5ComponentA

--CRC?

?

P(x)=X5+X4+X2+1(?

110101)

useieee.std_logic_arith.all;

instd_logic;

clk:

instd_logic;

--?

din?

dout :

outstd_logic_vector(4downto0)

signalw:

signalp:

std_logic_vector(4downto0):

="

10101"

signalxp:

w(0)<

=shift_reg(4)andp(0);

w

(1)<

=shift_reg(4)andp

(1);

w

(2)<

=shift_reg(4)andp

(2);

w(3)<

=shift_reg(4)andp(3);

w(4)<

=shift_reg(4)andp(4);

xp(0)<

=dinxorw(0);

xp

(1)<

=shift_reg(0)xorw

(1);

xp

(2)<

=shift_reg

(1)xorw

(2);

xp(3)<

=shift_reg

(2)xorw(3);

xp(4)<

=shift_reg(3)xorw(4);

)then

00000"

=xp(0);

=xp

(1);

shift_reg

(2)<

=xp

(2);

=xp(3);

=xp(4);

dout<

=shift_reg;

shift_reg<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1