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

📄 zhong.vhd

📁 可以轻松实现秒表计数流水灯计数功能控制器
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY zhong IS
	PORT (CLK1:IN STD_LOGIC;
		CLK2:IN STD_LOGIC;
        CLR:IN STD_LOGIC;
        HOUR:IN STD_LOGIC;
        MINUTE:IN STD_LOGIC;
		DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);		
		CHOICE:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
        y:out STD_LOGIC_VECTOR(9 DOWNTO 0));
END zhong;

 	ARCHITECTURE behav OF CLOCK IS
	SIGNAL LED7,c,f:STD_LOGIC_VECTOR(3 DOWNTO 0);
	SIGNAL SLIP:STD_LOGIC_VECTOR(2 DOWNTO 0);
	SIGNAL a,b,c,d,e,f,g,h:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
---------------------------------------
 	PROCESS (CLK2)
   		BEGIN
		 	 IF CLK2'EVENT AND CLK2='1' THEN 			 
				IF SLIP<"111" THEN
                   SLIP<=SLIP+1;
				ELSE
                   SLIP<="000"; 
   			 END IF;
	         CASE SLIP IS
				WHEN "000"=> CHOICE<="00000001";LED7<=a;
				WHEN "001"=> CHOICE<="00000010";LED7<=b;
				WHEN "010"=> CHOICE<="00000100";LED7<=c;
				WHEN "011"=> CHOICE<="00001000";LED7<=d;

				WHEN "100"=> CHOICE<="00010000";LED7<=e;
				WHEN "101"=> CHOICE<="00100000";LED7<=f;
				WHEN "110"=> CHOICE<="01000000";LED7<=g;	
			    WHEN "111"=> CHOICE<="10000000";LED7<=h;

				WHEN OTHERS=>CHOICE<="00000001";LED7<=a;
            END CASE;      
          END IF;
	END PROCESS;
    
	PROCESS (CLK1)
  		BEGIN
			IF CLK1'EVENT AND CLK1='1' THEN

				IF a<"1001"THEN a<=a+1;
				 ELSE b<=b+1;a<="0000";				 END IF;	-------0--a

				IF(	a="1001"and b="0101")then
						 d<=d+1;b<="0000";a<="0000";  end if;

				IF c="1100"THEN	c<="1101";f<="1101";
					ELSE c<="1100";   f<="1100";	 END IF;	-------2--:

				IF d="1010"THEN	e<=e+1;d<="0000";	END IF;	-------3--d

				IF(	d="1001"and e="0101")then
						 g<=g+1;e<="0000";d<="0000";end if;
				
				IF g="1010"THEN				 
						h<=h+1;g<="0000";			END IF;	-------6--g
				IF (h="0010" and g="0011")THEN		
						 a<=a+1;h<="0000";			END IF;	-------7--h
                IF MINUTE='0' THEN
                 a<="0000";b<="0000"    END IF;
                 IF HOUR='0' THEN
                 d<=d+1;                       END IF;
                IF CLR='0' THEN
                 a<="0000"                 
                 b<="0000"
                 e<="0000"
                 f<="0000"                 
                 g<="0000"                 
                 h<="0000"  END IF;                    				
			END IF;
	END PROCESS;
------------------------------------------
	PROCESS(LED7)
		begin
			CASE LED7 IS
				WHEN "0000"=> DOUT<="0111111";
				WHEN "0001"=> DOUT<="0000110";
				WHEN "0010"=> DOUT<="1011011";
				WHEN "0011"=> DOUT<="1001111";
				WHEN "0100"=> DOUT<="1100110";

				WHEN "0101"=> DOUT<="1101101";
				WHEN "0110"=> DOUT<="1111101";
				WHEN "0111"=> DOUT<="0000111";
				WHEN "1000"=> DOUT<="1111111";
				WHEN "1001"=> DOUT<="1101111";
				
				WHEN "1100"=> DOUT<="0000000";
				WHEN "1101"=> DOUT<="1000000";

				WHEN OTHERS=> DOUT<="0000000";
		END CASE;
	END PROCESS;

END behav;
	







⌨️ 快捷键说明

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