⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc16generator.vhd

📁 这是一个SD卡的TESTBENCH,源码中有如何产生一个特定的命令序列的样例。支持产生任何的SD卡交互过程中用到的命令序列。
💻 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+1
ENTITY CRC16Generator IS     --顶层实体
	PORT ( RST:in std_logic:='0';--异步清零
		TestData:in std_logic:='0';--在时钟上升沿时读入的数据
		Clock:in std_logic:='0';--控制时钟
		Hold:in std_logic:='0';--保持数据,为1时则即使读入新数据输出不变
		CRC:out std_logic_vector(15 downto 0)); --16位CRC校验码
END CRC16Generator;

ARCHITECTURE BEHAV_CRC16 OF CRC16Generator IS
	
BEGIN
	
	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 + -