几种常用时钟分频实现方法

2023-11-07

在我们学习中,常常需要对时钟进行分频处理,本文将介绍几种常用分频方法。

一、2的整数次幂分频

这种分频很简单,只需要设置一个计数器,对计数器进行计数,计数器的第i位则对应的2的i-1次幂分频。此方法适用于占空比为1/2,如果占空比不为1/2,则可用下面讲述的偶分频方法实现。

例如:现在对时钟进行2,4,8,16分频

module div_24816(
	input clk,rst,
	output clk_2,clk_4,clk_8,clk_16);
reg [3:0] count;
always@(posedge clk or posedge rst)
begin
	if(rst) 
		count <= 4'd0;
	else if(&count)  //判断计数器的四位是否全为1
		count <= 4'd0;
	else
		count <= count + 1'b1;
end 
assign clk_2 = count[0]; //2分频
assign clk_4 = count[1]; //4分频
assign clk_8 = count[2]; //8分频
assign clk_16 = count[3]; //16分频
endmodule 

仿真结果如下:

 二、偶分频

首先设置一个计数器,计数器的位数根据分频系数来定,然后根据计数器的值来确定分频的占空比即可。

例如:现在对时钟进行6分频,要求占空比1/2

module div(
    input reset,clk,
    output div6);
reg div6;
reg [2:0] counter;

always @(posedge   clk or posedge reset)
begin 
	if(reset)
		counter<=0;
	else
	begin
	if(counter==5)
		counter<=0;
	else
		counter<=counter+1;
	end
end 

always @(posedge clk or posedge reset)
begin
	if(reset)
		div6<=0;
	else if(counter<3) //设置占空比1/2
		div6<=1;
	else
		div6<=0;
end

endmodule 

仿真结果如下:

例如 :现在对时钟进行6分频,要求占空比1/3

module div(
input reset,clk,
output div6);
reg div6;
reg [2:0] counter;

always @(posedge   clk or posedge reset)
begin 
	if(reset)
		counter<=3'd0;
	else
	begin
	if(counter==3'd5)
		counter<=3'd0;
	else
		counter<=counter+1'b1;
	end
end 

always @(posedge clk or posedge reset)
begin
	if(reset)
		div6<=1'b0;
	else if(counter<3'd2) //设置占空比1/3
		div6<=1'b1;
	else
		div6<=1'b0;
end

endmodule 

仿真结果如下:

 三、奇分频

对于占空比不为1/2的奇分频,其步骤与占空比不为1/2的偶分频一样,这里不再重复说明。对于占空比为1/2的奇分频,我们的主要思想就是利用两个占空比不为1/2的信号相或得到。具体请看如下例子:

要求5分频,占空比1/2

module div(clk,clk_out,clk_1,clk_2,reset);
input 	clk;
input 	reset;

output 	clk_out,clk_1,clk_2;

reg 			 clk_1;
reg 			 clk_2;
reg 	[2:0]  cnt;

always@(posedge clk)
begin
	if(reset)
		cnt <= 1'd0;
	else if(cnt == 3'd4)
		cnt <= 3'd0;
	else
		cnt <= cnt + 1'd1;
end

always@(posedge clk) 
begin
	if(reset)
		clk_1 <= 1'd0;
	else if(cnt == 3'd2)
		clk_1 <= 1'd1;
	else if(cnt == 3'd4)
		clk_1 <= 1'd0;
	else
		clk_1 <= clk_1;
end

always@(negedge clk)
begin
	if(reset)
		clk_2 <= 1'd0;
	else if(cnt == 3'd2)
		clk_2 <= 1'd1;
	else if(cnt == 3'd4)
		clk_2 <= 1'd0;
	else
		clk_2 <= clk_2;
end

assign clk_out = (clk_1 | clk_2);

endmodule 

仿真结果如下;

 文章到此就结束了,希望上述的方法能够帮到大家!!!

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

几种常用时钟分频实现方法 的相关文章

  • FPGA零基础学习之Vivado-ROM使用教程

    FPGA零基础学习之Vivado ROM使用教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者都
  • Quartus II 安装

    本次介绍使用的 Quartus 版本为 10 1 目前 Quartus II 官网已经没有 13 1 以下版本的安装包 大家可以安装 13 1 以上版本的软件 功能都是大同小异 下载地址 FPGA Software Download Cen
  • 各种FIFO硬件设计(FIFO概念、异步、同步、非2次幂深度FIFO)

    文章目录 一 FIFO概述 二 FIFO分类 三 FIFO重要信号与参数 3 1 信号 3 2 参数 3 2 1 data depth的确定 四 FIFO存储原理 五 同步FIFO 5 1 空满信号判断 5 2 同步FIFO源码 5 3 测
  • 【Xilinx Vivado时序分析/约束系列6】FPGA开发时序分析/约束-IO时序输入延时

    目录 源同步FPGA输入时序分析的模型 input delay约束 极限input delay 往期系列博客 源同步FPGA输入时序分析的模型 以下为源同步FPGA输入时序分析的模型的示意图 在之前的文章中介绍过 在此介绍一下各个时钟延时的
  • 基于单光子探测的多脉冲周期符合远距离测距

    激光测距技术通过发射主动激光信号对目标进行探测 接收由目标漫反射回来的回波信号并进行统计 处理及换算 从而得到目标的距离 速度信息 实现对目标距离信息的探测 凭借其系统简单 操作灵活 高精度等特点 被广泛运用于民用 科研及军事等各类场合 基
  • DDR的VTT有源端接和无源端接(slua886a笔记)

    DDR的VTT有源端接和无源端接 slua886a笔记 背景 对于DDR的VTT端接 一直有说法是有源端接可降低功耗 之前一直没仔细理解其中原因 现在找了些相关的资料来介绍和对比有源和无源端接 理解有源端接的优点和降低功耗的原理 主要基于读
  • Verilog中forever、repeat、while、for四类循环语句(含Verilog实例)

    当搭建FPGA逻辑时 使用循环语句可以使语句更加简洁易懂 Verilog中存在四类循环语句 如标题 几种循环语句的具体介绍和用法如下 1 forever 连续的执行语句 语法格式 forever
  • 手把手教你Modelsim仿真【2020.4版本】

    首先新建一个文件夹 test5 打开Modelsim 依次选择 File gt Change Directory 把目录选择到创建的 test5 文件夹 创建库 依次选择 File gt New gt Library 一般我们选择第三个 库
  • 关于Keil中Memory中观察不到数据变化的问题以及启动文件栈的初始化

    关于Keil中Memory中观察不到数据变化的问题 在KEIL中观察Memory数据变化 一定要记得只能在RAM地址或ROM之内观察 如下图所示 RAM的地址设置在地址为0x20000000开始的地方 大小为0x20000 因此只有在这个范
  • FPGA的基本设计流程

    FPGA开发主要包括系统设计 设计输入 功能仿真 综合优化 综合后仿真 实现与布局布线 时序方针与验证 板级方针与验证 芯片编程与调试等9个部分 如下图所示 1 电路设计 在系统设计之前 首先要进行的是方案论证 系统设计和FPGA芯片选择等
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • 八段数码管动态显示(输入数据为BCD编码)

    八段数码管动态显示 输入数据为BCD编码 一 数码管概述 图1 八段共阴数码管内部等效原理图 图2 八段共阳数码管内部等效原理图 上面两图分别是对应八段共阴 共阳的数码管内部等效图 共阴是将八个LED数码管的阴极连接在一起接低 阳极segm
  • FPGA_时钟显示(时钟可调)

    1 实验说明 在数码管显示数据的基础上 让六位数码管显示数字时钟 并且通过按键可以对时间进行修改 实验目标 六位数码管分别显示时间的时分秒 且通过按键可实现加减调整时间及清零功能 key1 切换键 选择待调整的时间单位 时 分 秒 key2
  • FPG—VGA显示器字符显示(附代码)

    目录 1 实操 1 1 字符取模 1 2 顶层模块 1 3 图像数据生成模块 1 3 1 模块框图 1 3 2 波形图绘制 1 3 3 代码编写 1 3 4 仿真验证 2 总结 本例程大部分与VGA显示驱动内容相同 只是显示部分改变了 故此
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 【FPGA】通俗理解从VGA显示到HDMI显示

    注 大部分参考内容来自 征途Pro FPGA Verilog开发实战指南 基于Altera EP4CE10 2021 7 10 上 贴个下载地址 野火FPGA Altera EP4CE10征途开发板 核心板 野火产品资料下载中心 文档 hd
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • 【ZYNQ学习】PL第一课

    这节课讲什么 这节课的名字本来是想写为LED 但这一课里除了LED也有按键 又想换为GPIO控制 但关于PL的GPIO控制 不应该这么草率和简单 而且这一课有很多和ZYNQ或者PL关联性不强的东西要说 所以我写了删删了写改了好几遍 终于定为
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573

随机推荐

  • Pandas基础(全)

    Pandas基础 全 引言 Pandas是基于Numpy的库 但功能更加强大 Numpy专注于数值型数据的操作 而Pandas对数值型 字符串型等多种格式的表格数据都有很好的支持 关于Numpy的基础知识 请查看 Numpy基础 全 内容介
  • 三相LCL变流器PR控制仿真及验证

    三相变流器 可单位功率因数整流 实现母线电压的泵升 可逆变并网实现能量回馈 它是一个三相AC DC双向电源 基于三相全控型半桥的双向变流器可用于很多领域 1 中大功率变频传动领域 例如电梯 可用于电梯下降过程中的能量回馈 大大节省电能 电梯
  • 网上传说软件测试培训真的那么黑心吗?都是骗局?

    今天一大早社区群因为 软件测试培训班靠不靠谱 的话题炸开了锅 就客观事实而言 当下的软件测试早已不复当年的混乱 再想说0基础进入软测行业 靠着一路摸爬滚打在工作中从无到有学会软测 如果没有贵人扶持 怕是万难 据相关调查数据显示 有79 53
  • windows server 2008 r2 搭建文件服务器

    windows server 2008 r2 搭建文件服务器 目的需求 在测试环境下模拟公司现状需求 利用windows server 搭建文件服务器 工具必备 1 vmware workstation 2 windows server 2
  • 图像处理中的卷积

    卷积是积分变换的方法 其在许多方面有广泛应用 卷积通过两个函数 f 和 g 生成第三个函数 可以看作是两个变量在某范围内相乘后求和的结果 设 f x g x 是两个可积函数 作积分 可以证明上述积分的存在性 随着x取值的不同 这个积分就定义
  • 展示PyEcharts图表到Django框架前端页面教程(逐步教程)

    官网教程参考 https pyecharts org zh cn web django id django e6 a8 a1 e6 9d bf e6 b8 b2 e6 9f 93 这篇博客与官网一样使用Ajax 不使用ajax 直接填充一个
  • Angular(2+)动画API用法详解

    动画相关的 API 都是在 angular animations里面引入的 import 你想要的API from angular animations 复制代码 trigger 由它触发动画效果 称动画触发器 function trigg
  • 微信小程序 scroll-view

    微信小程序 scroll view 用法 微信官方文档地址 https developers weixin qq com miniprogram dev component scroll view html 微信小程序 scroll vie
  • Docker部署 registry

    系列文章目录 Docker部署 registry Docker搭建 svn Docker部署 Harbor Docker 部署SQL Server 2017 Docker 安装 MS SqlServer Docker部署 Oracle12c
  • 使用WebSocket实现服务端向指定的客户端推送消息

    写这篇博客记录一下自己在用websocket的时候遇到的坑 需求是这样的 需要将activeMq来的数据利用websockt推送给客户端显示出来 有多个服务终端 需要将不同的消息推送到对应的服务终端上 1 服务端代码 需要写一个WebSoc
  • Eureka测试环境、开发环境服务宕机不踢掉处理

    SpringCloud eureka 服务宕机踢掉演示DEMO 版本信息 br springboot 1 5 9 br springcloud Dalston RC1 br 贴重点配置 br server br aidl eureka in
  • 使用Go Test测试单个文件和单个方法

    前置条件 1 文件名须以 test go 结尾 2 方法名须以 Test 打头 并且形参为 t testing T 举例 hello test go package main import testing fmt func TestHell
  • 【Android】在android中配置orientation

    参考资料 横竖屏切换 Activity 清单文件中不设置android configChanges属性时 先销毁onPause onStop onDestroy 再重新创建onCreate onStart onResume 方法 也可以 设
  • 程序员学习网站

    包括框架学习 涉及到Google源码的介绍 转载于 http www ha97 com 2908 html 程序员一般都会浏览哪些网站 转载于 http www ha97 com 2908 html 极客导航 转载于 http www go
  • RMQ(区间最值查询问题)

    简介 RMQ Range Minimum Maximum Query 问题是指 对于长度为 n 的数列 A 回答若干询问 RMQ A i j i j n 返回数列A中下标在 i j 里的最小 大 值 也就是说 RMQ问题是指求区间最值的问题
  • 算力云服务器是干啥的,云服务器将成趋势计算力和安全性是考验

    云服务器是一种简单高效 安全可靠 处理能力可弹性伸缩的计算服务 通常来说 平台的每个集群节点被部署在互联网的骨干数据中心 可以独立提供计算 存储 在线备份 托管 带宽等互联网基础设施服务 关注的是高性能吞吐量计算能力 关注的是在一段时间内的
  • 多网卡的情况下收udp组播数据的坑

    多网卡的情况下收udp组播收不到 有可能是如下原因造成 https www cnblogs com xiaouisme p 12658554 html
  • 【设计】OOA、OOD、OOP

    这三者都是 OO Object Oriented 领域的思想 一般我们我们接到产品经理的需求后 开发阶段分这样几个步骤 可行性预研阶段 此阶段评估需求是否合理 能否实现 OOA阶段 此阶段分析用例 定义领域模型 OOD阶段 此阶段定义类图
  • Chat 插件上线,免注册即可使用~

    OpenAI 新上线的 Chat 可谓是火爆出圈 这个语言对话模型可以回答问题 承认错误 挑战不正确的前提 还能帮你修改代码中的 bug Chat 的应用场景很广泛 它可以用于处理多种类型的对话 包括对话机器人 问答机器人和客服机器人等 它
  • 几种常用时钟分频实现方法

    在我们学习中 常常需要对时钟进行分频处理 本文将介绍几种常用分频方法 一 2的整数次幂分频 这种分频很简单 只需要设置一个计数器 对计数器进行计数 计数器的第i位则对应的2的i 1次幂分频 此方法适用于占空比为1 2 如果占空比不为1 2