VHDL学习笔记——模10计数器

模10计数器

在这里插入图片描述

VHDL 模10计数器
-- mod10counter
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity mod10counter is --实体名与文件名一致
	generic(
		cnt_mod_value: integer:=10 --定义模值
	);
	port(
		i_lamp_clk:in std_logic;--时钟频率 1Hz时钟
		i_sys_res:in std_logic;--复位
		o_lamp_val:out std_logic_vector(3 downto 0)--输出为4维向量
	);
end entity mod10counter;

architecture behave of mod10counter is--定义实体行为
signal r_lamp_count:std_logic_vector(3 downto 0);--中间变量
begin
	process(i_lamp_clk)
		begin
			if(i_lamp_clk'event and i_lamp_clk='1') then
			if(i_sys_res='1') then--复位时从0000开始
					r_lamp_count<="0000";
				elsif (r_lamp_count="1001")then--到达最后一个状态 从0000开始重复
					r_lamp_count<="0000";
				else
					r_lamp_count<=unsigned(r_lamp_count) + '1';
				end if;
			end if;
	end process;
o_lamp_val <= r_lamp_count;--结果传给out变量
end architecture behave;

在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值