📄 package.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 + -