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

📄 package.vhd

📁 采用MaxPlusII写的一个小时钟程序
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;


PACKAGE p_stop_watch IS

	FUNCTION digit_sel
				(comcnt:STD_ULOGIC_VECTOR;
				 min10:STD_ULOGIC_VECTOR;
				 min:STD_ULOGIC_VECTOR;
				 sec10:STD_ULOGIC_VECTOR;
				 sec:STD_ULOGIC_VECTOR;
				 secl1:STD_ULOGIC_VECTOR;
				 secl2:STD_ULOGIC_VECTOR)
					RETURN STD_ULOGIC_VECTOR;
	FUNCTION seg_dec(digit:STD_ULOGIC_VECTOR)
					RETURN STD_ULOGIC_VECTOR;
	FUNCTION com_dec(comcnt:STD_ULOGIC_VECTOR)
					RETURN STD_ULOGIC_VECTOR;
END P_stop_watch;

PACKAGE BODY p_stop_watch IS
	FUNCTION digit_sel
		(comcnt:STD_ULOGIC_VECTOR;
		 min10:STD_ULOGIC_VECTOR;
		 min:STD_ULOGIC_VECTOR;
		 sec10:STD_ULOGIC_VECTOR;
		 sec:STD_ULOGIC_VECTOR;
		 secl1:STD_ULOGIC_VECTOR;
		 secl2:STD_ULOGIC_VECTOR
		)
		RETURN STD_ULOGIC_VECTOR IS
	VARIABLE digit_sel_tmp:STD_ULOGIC_VECTOR(3 DOWNTO 0):="0000";
	VARIABLE comcnt_s:STD_ULOGIC_VECTOR(2 DOWNTO 0);
	BEGIN
		comcnt_s:=comcnt;
		CASE comcnt_s IS
			WHEN "000"=>digit_sel_tmp:=secl2;
			WHEN "001"=>digit_sel_tmp:=secl1;
			WHEN "010"=>digit_sel_tmp:=sec;
			WHEN "011"=>digit_sel_tmp(2 DOWNTO 0):=sec10;
			WHEN "100"=>digit_sel_tmp:=min;
			WHEN "101"=>digit_sel_tmp(2 DOWNTO 0):=min10;
			WHEN OTHERS =>digit_sel_tmp:="XXXX";
		END CASE;
		RETURN digit_sel_tmp;
END digit_sel;
	FUNCTION seg_dec(digit:STD_ULOGIC_VECTOR)
		RETURN STD_ULOGIC_VECTOR IS
		VARIABLE seg_dec_tmp :STD_ULOGIC_VECTOR(6 DOWNTO 0);
		VARIABLE digit_s:STD_ULOGIC_VECTOR(3 DOWNTO 0);
	BEGIN
		digit_s:=digit;
		CASE digit_s IS
			WHEN "0000"=>seg_dec_tmp:="0111111";
			WHEN "0001"=>seg_dec_tmp:="0000110";
			WHEN "0010"=>seg_dec_tmp:="1011011";
			WHEN "0011"=>seg_dec_tmp:="1001111";
			WHEN "0100"=>seg_dec_tmp:="1100110";
			WHEN "0101"=>seg_dec_tmp:="1101101";
			WHEN "0110"=>seg_dec_tmp:="1111101";
			WHEN "0111"=>seg_dec_tmp:="0100111";
			WHEN "1000"=>seg_dec_tmp:="1111111";
			WHEN "1001"=>seg_dec_tmp:="1101111";
			WHEN OTHERS=>seg_dec_tmp:="XXXXXXX";
		END CASE;
	RETURN seg_dec_tmp;
END seg_dec;
FUNCTION com_dec(comcnt:STD_ULOGIC_VECTOR)
	RETURN STD_ULOGIC_VECTOR IS
VARIABLE com_dec_tmp:STD_ULOGIC_VECTOR(5 DOWNTO 0);
VARIABLE comcnt_s:STD_ULOGIC_VECTOR(2 DOWNTO 0);
	BEGIN
		comcnt_s:=comcnt;
		CASE comcnt_s IS
			WHEN "000"=>com_dec_tmp:="000001";
			WHEN "001"=>com_dec_tmp:="000010";
			WHEN "010"=>com_dec_tmp:="000100";
			WHEN "011"=>com_dec_tmp:="001000";
			WHEN "100"=>com_dec_tmp:="010000";
			WHEN "101"=>com_dec_tmp:="100000";
			WHEN OTHERS=>com_dec_tmp:="XXXXXX";
		END CASE;
			RETURN com_dec_tmp;
	END com_dec;
END p_stop_watch;



	

⌨️ 快捷键说明

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