基于VHDL的CRC编解码设计(8)

2019-08-17 13:26

ELSIF(ST='1' AND CNT<7) THEN

CNT<=CNT+1;

IF(DTEMP(11)='1')THEN

CRCVAR:=DTEMP(11 DOWNTO 6)XOR MULTI_COEF;

DTEMP<=CRCVAR(4 DOWNTO 0)& DTEMP(5 DOWNTO 0) & '0';

ELSE DTEMP<=DTEMP(10 DOWNTO 0) & '0';

END IF;

ELSIF(ST='1' AND CNT=7) THEN

DATACRCO<=SDATAM & DTEMP(11 DOWNTO 7); HSEND<='1'; CNT<=CNT+1;

ELSIF(ST='1' AND CNT=8) THEN

HSEND<='0'; ST<='0'; END IF; END IF;

END PROCESS; END COMM;

32

四川理工学院本科毕业(设计)论文

附 录B

CRC校验查错模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY CRCREC IS

PORT( DATACRCI:IN STD_LOGIC_VECTOR(16 DOWNTO 0); CLK,HRECV: IN STD_LOGIC;

RDATA:OUT STD_LOGIC_VECTOR(11 DOWNTO 0); ERROR1,DATAFINI:OUT STD_LOGIC); END CRCREC;

ARCHITECTURE COMM OF CRCREC IS

CONSTANT MULTI_COEF:STD_LOGIC_VECTOR(5 DOWNTO 0) := \ SIGNAL RCNT:STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL RDTEMP:STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL RDATACRC:STD_LOGIC_VECTOR(16 DOWNTO 0); SIGNAL RT:STD_LOGIC; BEGIN

PROCESS(CLK,HRECV)

VARIABLE RCRCVAR : STD_LOGIC_VECTOR(5 DOWNTO 0);

BEGIN

IF(CLK'EVENT AND CLK = '1')THEN

IF(RT='0'AND HRECV='1')THEN

RDTEMP<=DATACRCI(16 DOWNTO 5);

RDATACRC<=DATACRCI;

RCNT<=(OTHERS=>'0'); ERROR1<='0'; RT<='1';

ELSIF(RT='1'AND RCNT<7)THEN

- 33 -

DATAFINI<='0'; RCNT<=RCNT+1;

RCRCVAR:=RDTEMP(11 DOWNTO 6)XOR MULTI_COEF; IF(RDTEMP(11)='1')THEN

RDTEMP<=RCRCVAR(4 DOWNTO 0)&RDTEMP(5 DOWNTO 0)& '0';

ELSE

RDTEMP<=RDTEMP(10 DOWNTO 0) & '0';

END IF;

ELSIF(RT='1' AND RCNT=7)THEN DATAFINI<='1';

RDATA<=RDATACRC(16 DOWNTO 5);RT<='0';

IF(RDATACRC(4 DOWNTO 0) /=RDTEMP(11 DOWNTO 7)) THEN ERROR1<='1';

END IF;

END IF;

END IF;

END PROCESS; END COMM;

34


基于VHDL的CRC编解码设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:财务管理制度

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: