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

📄 arraycheck.tdf

📁 在QuartusII运用AHDL语言
💻 TDF
字号:
SUBDESIGN arraycheck
	(
	Clock,Init		:INPUT;
	Poly[10..0], Count[10..0],Exactarray[3..0]	: OUTPUT;
	)
VARIABLE
	Poly[10..0]			: DFF;
	Count[10..0]		: DFF;
	Exactarray[3..0]	: DFF;
	SMA	:Machine of bits (machz[3..0]) % for checking array 00001010 %
			with states (A_zero=0,Az_one=1,Az_two=2,Az_three=3,Az_four=4,
						 Ao_five=5,Az_six=6,Ao_seven=7,az_eight=8);
	BEGIN
		%clock%
		Poly[10..0].clk=Clock;
		Count[10..0].clk=Clock;
		Exactarray[3..0].clk=Clock;
		SMA.clk=Clock;	
						
		%Inits%
		Poly[10..1].clrn=Init;
		Poly[0].prn=Init;
		Count[].clrn=Init;
		
		%Ordinal counter%
		Count[].d=Count[].q+1;
		
		%Poly operation%
	if (Poly[]==H"0") then
		Poly[0].d=VCC;
		ELSE Poly[9..0].d=Poly[10..1].q;
		Poly[10].d=Poly[0].q xor Poly[2].q;
	end if;	
	
	%State Machine array 00001010%
	IF (SMA==A_zero AND Poly[0]==0) THEN		%0%
		SMA=Az_one;
		Exactarray[].d=Exactarray[].q;
	ELSIF (SMA==Az_one AND Poly[0]==0) THEN		%00%
		SMA=Az_two;
		Exactarray[].d=Exactarray[].q;
	ELSIF (SMA==Az_two AND Poly[0]==0) THEN		%000%
		SMA=Az_three;
		Exactarray[].d=Exactarray[].q;
	ELSIF (SMA==Az_three AND Poly[0]==0) THEN	%0000%
		SMA=Az_four;
		Exactarray[].d=Exactarray[].q;
	ELSIF (SMA==Az_four) THEN					%judge next poly%
		case Poly[0] is
		  when 0 =>								%hold state 0000%
			SMA=Az_four;
		  when 1 =>								%GO 00001%
			SMA=Ao_five;
		end case;
		Exactarray[].d=Exactarray[].q;
	ELSIF (SMA==Ao_five AND Poly[0]==0) THEN	%000010%
		SMA=Az_six;
		Exactarray[].d=Exactarray[].q;
	ELSIF (SMA==Az_six) THEN					%judge poly is 1 or 0%	
		case Poly[0] is
			when 0 =>							%if poly is 0 then we have 00%
				SMA=Az_two;
			when 1 =>							%go 0000101%		
				SMA=Ao_seven;
		end case;		
		Exactarray[].d=Exactarray[].q;			%00001010%
	ELSIF (SMA==Ao_seven AND Poly[0]==0) THEN
		SMA=A_zero;
		Exactarray[].d=Exactarray[].q+1;
	ELSE 	
		SMA=A_zero;
		Exactarray[].d=Exactarray[].q;
	END IF;
	
END;	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -