vhdl写模十计数器(可任意选择)

本文详细介绍了新手如何使用VHDL设计一个模十计数器,包括确定输入输出变量、编写结构体部分以及计数器代码。通过设置时钟信号、系统复位和输出变量,实现模十计数。代码中采用状态暂存器保存计数值,并在每个时钟上升沿更新。当计数值达到模值时,计数器重置。仿真波形验证了设计的正确性。文章最后表达了作者作为新手的学习态度,期待得到专业人士的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新手(我)编写模十计数器的过程

一、实体部分,确定输入输出变量

输入变量一定有一个时钟信号,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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值