当前位置: 首页 > news >正文

VHDL语言基础-时序逻辑电路-计数器

目录

计数器的设计:

计数器的作用:

计数器的实现:

1、用“+”函数描述:

用T触发器级联构成的串行进位的二进制加法计数器的仿真波形: 

计数器的仿真:


计数器的设计:

计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路

计数器的作用:

主要是对脉冲的个数进行技术,以实现测量、计数和控制的功能,同时兼有分频功能。比如七位计数器,可对输入时钟进行七分频。


计数器的实现:

1、用“+”函数描述:

 Library ieee ;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_unsigned.all;

Entity counter is

     generic( n: natural :=4);

     port ( clk : in std_logic;

               reset : in std_logic ;

               count : out std_logic_vector(n-1 downto 0) );

End counter;

architecture ripple of counter is

        component T_FF is

            port( T : in std_logic ;

                     clk:in std_logic;

        reset:in std_logic;

                    Q : out std_logic;

        Qbar:out std_logic);

        end component ;                     --将前面描述好的T触发器定义为元件;

        signal carry: std_logic_vector( n downto 0);

Begin

       carry(0)<=clk;

       g0: for  i in 0  to n-1  generate             --循环

             T1: T_FF port map ( ‘1’, carry( i ), reset, count( i ), carry( i+1 ) );

        end generate g0;

End ripple ;

上例程序中的循环: 

g0: for  i in 0  to n-1  generate             --循环

             T1: T_FF port map ( ‘1’, carry( i ), reset, count( i ), carry( i+1 ) );

可以分解成:

T0: T_FF port map ( ‘1’, carry( 0 ), reset, count( 0 ), carry(1 ) );

T1: T_FF port map ( ‘1’, carry( 1 ), reset, count( 1 ), carry( 2 ) );

T2: T_FF port map ( ‘1’, carry( 2 ), reset, count( 2 ), carry( 3 ) );

T3: T_FF port map ( ‘1’, carry( 3 ), reset, count( 3 ), carry( 4 ) );

…………………………

…………………………

Tn-1:  T_FF port map ( ‘1’, carry( n-1 ), reset, count( n-1 ), co );

用T触发器级联构成的串行进位的二进制加法计数器的仿真波形: 

注意:这里我们可以发现在奇数变为偶数的时候有一个小小的变化。


计数器的仿真:

信号赋值的时候有延迟,在计数器由001变为010的时候,先是由

count(0)<=0;carry(1)<=1;      -第一步

count(1)<=1;

所以count会先变为000,接着延迟一段时间后才变为010。

同理,对于011变为100的时候,有:

count(0)<=0;carry(1)<=1;     -第一步

count(1)<=0;carry(2)<=1;     -第二步

count(2)<=1;                         -第三步

故从011变为010,再变为100。

 

http://www.lryc.cn/news/1564.html

相关文章:

  • MySQL数据库07——高级条件查询
  • 《Terraform 101 从入门到实践》 第四章 States状态管理
  • 数据结构之二叉树
  • 上海亚商投顾:三大指数集体调整 消费板块逆市活跃
  • 【2023unity游戏制作-mango的冒险】-开始画面API制作
  • 【微服务】Nacos配置管理
  • 【C++】类与对象理解和学习(上)
  • Pyqt5小案例,界面与逻辑分离的小计算器程序
  • leaflet加载KML文件,显示图形(方法2)
  • Mysql 部署 MGR 集群
  • 迁移至其他美国主机商时需要考虑的因素
  • 【数据结构】第二章 线性表
  • RESTful API 为何成为顶流 API 架构风格?
  • Python基础知识点汇总(列表)
  • 新的一年软件测试行业的趋势能够更好?
  • Threejs中的Shadow Mapping(阴影贴图)
  • 本质安全设备标准(IEC60079-11)的理解(四)
  • (record)QEMU安装最小linux系统——TinyCore(命令行版)
  • C++中的cast类型转换
  • 西瓜数据集读取的详细解决方案
  • Mac开发环境配置
  • 概率论面试题1:玫瑰花
  • 【DGL】图分类
  • 时间复杂度的计算(2023-02-10)
  • 测试开发之Django实战示例 第六章 追踪用户行为
  • 红米9a手动root方法
  • Open3D 点云最小二乘法拟合平面(剔除噪声,Python版本)
  • 【SpringBoot】简述springboot项目启动数据加载内存中的三种方法
  • 【一文速通】各种机器学习算法的特点及应用场景
  • 多传感器融合定位十四-基于图优化的定位方法