新手(我)编写模十计数器的过程
一、实体部分,确定输入输出变量
输入变量一定有一个时钟信号,i_sys_clk
系统复位输入:i_sys_rst
以及系统的输出变量output,模十应该是以四位向量的格式输出,故设置变量为逻辑位矢量类型std_logic_vector(3 downto 0)
二、编写结构体部分
重点是:首先需要设置一个信号变量,用于结构的全局部分,以此来计数,因为output只能用于输出,不能在程序中进行赋值或者计算。
判断i_sys_rst信号
记得最后将计数器的暂存值赋给output进行输出
三、计数器代码
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all; --定义宏指令
entity counter_10 is
generic(
i_mod_value:integer:=9
); --模值设定参数,模值-1
port(
i_sys_clk: in std_logic; --定义时钟输入信号
i_sys_rst: in std_logic; --系统复位信号
output:out std_logic_vector(3 downto 0)--计数器的输出
);
end entity;
architecture behavior of counter_10 is
signal r_counter:std_logic_vector(3 downto 0); --计数值暂存器
begin
process(i_sys_clk,i_sys_rst)
be