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

📄 counter601.vhd

📁 大家一定要看 哦 程序在与多看多练 我找了好久才找到呢
💻 VHD
字号:
--******************************************************
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

--******************************************************

ENTITY COUNTER601 IS
	PORT(
			CP 	 : IN  STD_LOGIC;			--时钟脉冲   
			CLR  : IN  STD_LOGIC;				--清除信号    
			EC   : IN  STD_LOGIC;--使能计数信号
          	bcdg: out std_logic_vector(3 downto 0);
            bcds: out std_logic_vector(3 downto 0);			        
			CY60 : OUT STD_LOGIC				--计数60进位信号        
		);
END COUNTER601;

--*******************************************************

ARCHITECTURE a OF COUNTER601 IS
	SIGNAL Q : STD_LOGIC_VECTOR (5 DOWNTO 0) ;
	SIGNAL RST, DLY : STD_LOGIC;
    signal  bcd: std_logic_vector(7 downto 0);
BEGIN
	
	PROCESS (CP,RST)			-- 计数60   
	BEGIN
		IF RST = '1' THEN
			Q <= "000000";			-- 复位计数器  
		ELSIF CP'event AND CP = '1' THEN
			DLY <= Q(5);
			IF EC = '1' THEN
				Q <= Q+1;			-- 计数值加1    
			END IF; 			
		END IF;
	END PROCESS;
    bcdg<=bcd(3 downto 0);
	bcds<=bcd(7 downto 4);
	CY60 <= NOT Q(5) AND DLY;				-- 进位信号微分       
	RST <= '1' WHEN Q=60 OR CLR='1' ELSE	-- 复位信号设定       
		   '0';
	Binary_BCD : Block
BEGIN
	BCD <=	"00000000" WHEN q = 0 ELSE
			"00000001" WHEN q = 1 ELSE
			"00000010" WHEN q = 2 ELSE
			"00000011" WHEN q = 3 ELSE
			"00000100" WHEN q = 4 ELSE
			"00000101" WHEN q = 5 ELSE
			"00000110" WHEN q = 6 ELSE
			"00000111" WHEN q = 7 ELSE
			"00001000" WHEN q = 8 ELSE
			"00001001" WHEN q = 9 ELSE
			"00010000" WHEN q = 10 ELSE
			"00010001" WHEN q = 11 ELSE
			"00010010" WHEN q = 12 ELSE
			"00010011" WHEN q = 13 ELSE
			"00010100" WHEN q = 14 ELSE
			"00010101" WHEN q = 15 ELSE
			"00010110" WHEN q = 16 ELSE
			"00010111" WHEN q = 17 ELSE
			"00011000" WHEN q = 18 ELSE
			"00011001" WHEN q = 19 ELSE
			"00100000" WHEN q = 20 ELSE
			"00100001" WHEN q = 21 ELSE
			"00100010" WHEN q = 22 ELSE
			"00100011" WHEN q = 23 ELSE
			"00100100" WHEN q = 24 ELSE
			"00100101" WHEN q = 25 ELSE
			"00100110" WHEN q = 26 ELSE
			"00100111" WHEN q = 27 ELSE
			"00101000" WHEN q = 28 ELSE
			"00101001" WHEN q = 29 ELSE
			"00110000" WHEN q = 30 ELSE
			"00110001" WHEN q = 31 ELSE
			"00110010" WHEN q = 32 ELSE
			"00110011" WHEN q = 33 ELSE
			"00110100" WHEN q = 34 ELSE
			"00110101" WHEN q = 35 ELSE
			"00110110" WHEN q = 36 ELSE
			"00110111" WHEN q = 37 ELSE
			"00111000" WHEN q = 38 ELSE
			"00111001" WHEN q = 39 ELSE
			"01000000" WHEN q = 40 ELSE
			"01000001" WHEN q = 41 ELSE
			"01000010" WHEN q = 42 ELSE
			"01000011" WHEN q = 43 ELSE
			"01000100" WHEN q = 44 ELSE
			"01000101" WHEN q = 45 ELSE
			"01000110" WHEN q = 46 ELSE
			"01000111" WHEN q = 47 ELSE
			"01001000" WHEN q = 48 ELSE
			"01001001" WHEN q = 49 ELSE
			"01010000" WHEN q = 50 ELSE
			"01010001" WHEN q = 51 ELSE
			"01010010" WHEN q = 52 ELSE
			"01010011" WHEN q = 53 ELSE
			"01010100" WHEN q = 54 ELSE
			"01010101" WHEN q = 55 ELSE
			"01010110" WHEN q = 56 ELSE
			"01010111" WHEN q = 57 ELSE
			"01011000" WHEN q = 58 ELSE
			"01011001" WHEN q = 59 ELSE
			"00000000";
END Block Binary_BCD;

END a;



⌨️ 快捷键说明

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