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

📄 n_counter.vhd

📁 任意N进制分频器的标准VHDL代码(原创)
💻 VHD
字号:
--*********************************************************************
--			任意N进制计数器标准代码写法
--(带有reset,带有进位信号cfw,带有intger和std_logic_vector两种类型输出)
--*********************************************************************
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;


ENTITY N_COUNTER IS
	generic (N:integer:=11); --任意N进制计数器
	PORT
	(
		CLK,RESET : IN STD_LOGIC; --计数脉冲输入
		q_integer: buffer integer; --以整数形式输出计数值
		q_std: buffer std_logic_vector(3 downto 0); --以std_logic形式输出计数值
		cfw : out STD_LOGIC --输出进位信号(也可定义为cout)
	);
END N_COUNTER;



ARCHITECTURE N_COUNTER_BODY OF N_COUNTER IS
BEGIN
	process(CLK,RESET,q_integer)
	begin
		if RESET='1' then	--异步复位
			q_integer<=0;
			cfw<='0';
		elsif CLK='1' and CLK'event then
			if q_integer=N-1 then	--当q_integer=最大值N-1时,计数满
				q_integer<=0;
			else
				q_integer<=q_integer+1;
			end if;
		end if;
		
		if q_integer=N-1 then	--随时检查是否计数满,一旦计数满就输出高电平进位信号
			cfw<='1';
		else
			cfw<='0';
		end if;
		
		q_std<=conv_std_logic_vector(q_integer,4); --将integer型转换成4位std_logic_vector形式输出
		
	end process;
	
END N_COUNTER_BODY;

⌨️ 快捷键说明

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