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