利用计数器实现任意分频,占空比为60%(任意占空比)电路 [VHDL]

2023-11-03

本次实验为利用计数器实现分频常数为24000,占空比为60%的电路,也可以设置为任意分频,任意占空比的电路

一、设计思路:

设计分析:要将原来的占空比为50%,大频率的信号重新设为60%占空比,频率较小的周期信号,其中频率的思想就是分频器,利用原来的信号的n上升沿为新clk的一次上升沿即可。

其占空比=高电平时间/周期所以重要的设定好高电平在周期内所占的比例尤为重要。

二、代码:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FJYFP IS
 PORT(CLK: IN STD_LOGIC;
      RESET: IN STD_LOGIC;
		CLK_OUT:OUT STD_LOGIC);
END ENTITY FJYFP;
ARCHITECTURE ART OF FJYFP IS
 CONSTANT DIVIDE_PERIOD: INTEGER:=24000;  --分频常数为24E3
-- CONSTANT DIVIDE_PERIOD: INTEGER:=10;  --分频常数为10
BEGIN
 PROCESS (CLK,RESET) IS
VARIABLE CNT: INTEGER RANGE 0 TO 23999;  
--VARIABLE CNT: INTEGER RANGE 0 TO 9; 
BEGIN
  IF(RESET='1')  THEN
  CNT :=0;
  CLK_OUT<='0';
  ELSIF RISING_EDGE(CLK) THEN
    IF(CNT< 14400) THEN
	 --IF(CNT< 6) THEN
	 CLK_OUT<='1';
	 CNT:=CNT+1;
	 ELSIF (CNT<(DIVIDE_PERIOD-1)) THEN
	 CLK_OUT<='0';
	 CNT:=CNT+1;
	 ELSE
	 CNT:=0;	 
	 END IF;
	 END IF;
	END PROCESS ;
	END ARCHITECTURE  ART;

三、仿真波形 :

 四、代码分析:

利用CONSTANT将分频常数设定为自己所需的数字即可(大家修改为自己所需的分频常数即可)

-- CONSTANT DIVIDE_PERIOD: INTEGER:=24000;  --分频常数为24E3
 CONSTANT DIVIDE_PERIOD: INTEGER:=10;  --分频常数为10
BEGIN
 PROCESS (CLK,RESET) IS
--VARIABLE CNT: INTEGER RANGE 0 TO 23999;  
VARIABLE CNT: INTEGER RANGE 0 TO 9; 

 其中占空比的设定主要看 CNT< 设定数值

例如:我设定的分频常数为10分频,即原clk10个上升沿则newclk才会产生上升沿。

然后设置高电平所占的时间:CNT的10分频即变化数字为0-9,这里我设置当CNT<6时为高电平即数字0-5这六个数字在10个数字中所占的电平都为高电平。那么低电平就是剩下的数字所占的电平为低电平。  符合公式:  占空比=高电平所占时间/周期时间

-- IF(CNT< 14400) THEN
     IF(CNT< 6) THEN
     CLK_OUT<='1';
     CNT:=CNT+1;
     ELSIF (CNT<(DIVIDE_PERIOD-1)) THEN
     CLK_OUT<='0';
     CNT:=CNT+1;
     ELSE
     CNT:=0;     

四、仿真波形分析

 为了能够软件仿真,我将分频常数设置较小(这里设定为10),即CLK10个上升沿就会产生CLK--OUT的跳变,若在硬件上需要设定为高分频常数的将小分频常数注释即可。

这里可以清楚的看见其中分频常数10,占空比为60%   满足要求。

对比设置不同占空比的波形输出也是我们常见的PWM波 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用计数器实现任意分频,占空比为60%(任意占空比)电路 [VHDL] 的相关文章

随机推荐

  • python pandas 处理并excel 插入一列新的数据

    python pandas 处理excel并插入一列新的数据 接到个需求是在表格里塞入一列新的数据 假如分页的数据 页 条数 我们这是200条 页 用的是pandas import pandas as pd path excel room
  • Elasticsearch硬核入门教程(2022最全)

    Java全能学习 面试指南 https javaxiaobear cn 1 Elasticsearch概述 1 什么是Elasticsearch The Elastic Stack 包括 Elasticsearch Kibana Beats
  • 返回给定二叉树中一层最多的节点个数(仅使用队列实现)

    思路点拨 我们知道对二叉树实现层序遍历 也就是一层一层遍历 需要使用队列 而要找出节点最多的那一层 必然避不开要算出每一层节点的个数 那也就避不开层序遍历 除此之外 我们还需要维护几个变量 1 curend 当前层的最后一个节点 2 nex
  • Java基础之try catch finally的原理

    先看一段代码 public static int test int i 0 try System out println 业务执行 标记1 i 1 0 System out println 业务执行完成 i 标记2 return i cat
  • 双向循环神经网络

    双向循环神经网络结构图
  • LinuxRPM软件安装

    软件管理 软件安装介绍 学软件开发 各种台的软件熟练安装是必须要熟练掌握 大家都知道 Windows下安装软件时 只需用鼠标双击软件的安装程序 或者用Zip等解压缩软件解压缩即可安装 在android或者apple中安装软件时 只需要在手机
  • nginx前后端分离部署无法访问到后端接口

    先看一组错误案例 user nobody worker processes 1 error log logs error log error log logs error log notice error log logs error lo
  • 【程序运行时的两种环境】

    目录 前言 一 翻译环境 一 预编译 二 编译 三 汇编 四 链接 二 执行环境 三 补充 总结 前言 在ANSI C的任何一种实现中 都要经过两种环境 一种是编译环境 用于将程序代码转换为可执行的机器指令 二进制指令 另一种是执行环境 用
  • 【C++】细说C++中的数组之动态数组

    转载自如下位置 https blog csdn net u013921430 article details 79514972 以备学习
  • 前端引入和html标签

    先安装 flask模块 pip install flask from flask import Flask app Flask name 创建了网址 show info 和函数index的对应关系 以后用户在浏览器上访问 show info
  • 前端小程序面试题(一)

    首先说一些为什么总结小程序相关的面试题吧 我们可以随便打开一个招聘网站 在那里你会发现市场对于小程序的需求还是蛮高的 有些公司可能就只需要写小程序的前端人员 虽然小程序的开发很大一部分都是很简单的 但是有些常用的东西还是有必要了解一下的 故
  • Android代码实现APK文件的安装与卸载

    Android程序使用代码的安装和卸载 安装 String str CanavaCancel apk String fileName Environment getExternalStorageDirectory str Intent in
  • Zebra-VTYSH源码分析和改造(二):深入代码

    分析Zebra VTYSH的源码 首先从main函数开始 在ztysh main c中找到main函数 来进一步分析流程执行如下图所示 在平时的使用中我们会发现 配置的时候有很多的视图 View 每个视图中有不同的命令可供用户输入进行配置
  • STM32—Flash读写详解

    目录 前言 介绍 STM32 FLASH 闪存的编程和擦除 Flash读写的标准库函数 软件设计 FLASH的读取 直接读取某一地址的内容 读取选定位置的选定大小的内容 FLASH的写入 直接使用标准库写入 写入选定位置的选定大小的内容 如
  • mega328p-ADC,PWM,UART驱动

    ADC驱动 函 数 名 Ai Init 函数功能 Ai端口初始化 输入参数 void 输出参数 void 返 回 值 void 参考文档 void 创 件 人 程强刚 创建日期 2016 02 09 修改历史 void Ai Init vo
  • 身份认证之多因素身份认证(MFA)

    我们大多数人都同意密码是不安全的身份验证形式这一观点 更糟糕的是 它完全不智能 但这引发了一个问题 如果密码不是解决安全问题的答案 那什么是 目前 答案可能是多因素身份验证 MFA 多因素身份验证增加了一层关键的防御 MFA使用两个或多个因
  • Filter过滤器完成验证代码的封装

    Filter过滤器完成验证代码的封装 filter是什么 1 使用filter 2 filter配置到项目中 验证用户权限是需要反复使用的代码块 把他封装到filter中 减少代码冗余 filter是什么 init 方法 初始化方法 在创建
  • 主板上还剩啥?CPU整合GPU/北桥/南桥

    泡泡网主板频道2月6日 众所周知 主板上最重要 成本最高的两颗芯片 被称为北桥和南桥 其中北桥负责与处理器对接 主要功能包括 内存控制器 PCI E控制器 集成显卡 前 后端总线等 都是速度较快的模块 而南桥则负责外围周边功能 速度较慢 主
  • c++ 读写excel_每天10分钟,轻松入门python,json、csv等读写

    JSON的全称是 JavaScript Object Notation 意思是JavaScript对象表示法 它是一种基于文本 独立于语言的轻量级数据交换格式 这种数据在弄爬虫的时候 经常会见到这类型的数据 下面展示一个简单的json数据
  • 利用计数器实现任意分频,占空比为60%(任意占空比)电路 [VHDL]

    本次实验为利用计数器实现分频常数为24000 占空比为60 的电路 也可以设置为任意分频 任意占空比的电路 一 设计思路 设计分析 要将原来的占空比为50 大频率的信号重新设为60 占空比 频率较小的周期信号 其中频率的思想就是分频器 利用