📄 crc16generator.vhd
字号:
LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ;use work.PCK_CRC16_D1.all;--CRC-CCITT=x^16+x^12+x^5+1ENTITY CRC16Generator IS --顶层实体 PORT ( RST:in std_logic;--异步清零 TestData:in std_logic;--在时钟上升沿时读入的数据 Clock:in std_logic;--控制时钟 Hold:in std_logic;--保持数据,为1时则即使读入新数据输出不变 CRC:out std_logic_vector(15 downto 0)); --16位CRC校验码END CRC16Generator;ARCHITECTURE BEHAV_CRC16 OF CRC16Generator ISBEGIN PROCESS(RST,Clock,Hold)--主进程 --CRCVaria为描述CRC输出的变量 variable CRCVaria : STD_LOGIC_VECTOR(15 DOWNTO 0):=(others=>'0'); BEGIN if RST='1' then CRCVaria:=(others=>'0'); else if Hold='0' then--允许计数 if Clock'event and Clock='1' then--检测到上升沿 CRCVaria:=nextCRC16_D1(TestData,CRCVaria);--读入数据并产生CRC码 end if; end if; end if; CRC<=CRCVaria; END PROCESS; END BEHAV_CRC16;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -