countern.vhd

来自「这是一些经典的vhdl example」· VHDL 代码 · 共 38 行

VHD
38
字号
Library IEEE ;
USE IEEE.STD_LOGIC_1164.all;
USE IEEE.STD_LOGIC_ARITH.all;

ENTITY countern IS
	GENERIC (N: INTEGER := 14);                    --添加模块的参数N
	PORT(clr,ena,clk          	 : IN STD_LOGIC;   --clr计数器清零,en计数使能,clk时钟
		 q      				 : BUFFER INTEGER RANGE 0 TO N-1;--计数器输出
		 cout					 : OUT STD_LOGIC);  --计数器进位
END countern;
ARCHITECTURE rtl OF countern IS
BEGIN
	PROCESS(clk,clr)
	BEGIN
		IF clr='1' THEN						  --异步清零
			q<=0;
		ELSE
			IF clk='1' and clk'event THEN     --时钟上升沿
				IF ena='1' THEN				  
					IF q=q'high THEN		  --计数使能时,且计数值为9时,计数器值变为0
						q<=0;
					ELSE					  --计数器值加一
						q<=q+1;
					END IF;
				END IF;
			END IF;							 
		END IF;
		
		IF q=q'high THEN					  --计数器进位信号
			cout<='1';
		ELSE
			cout<='0';
		END IF;
	END PROCESS;
END rtl;


⌨️ 快捷键说明

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