整数分频回顾
之前的博客中,我们讨论的偶数分频和奇数分频,总结一下,就是: 1.偶数分频时,设计一个计数器,从0计到N-1,然后又回到0,信号在计数器等于N/2-1和N-1的时候翻转。 2.奇数分频时,设计两个计数器cnt_p和cnt_n,分别在时钟的上升沿和下降沿改变,并且计数范围为0-N-1,同时设计两个信号clk_p和clk_n,clk_p在时钟上升沿改变,clk_n在下降沿改变,当计数器cnt_p的值为(N-1)/2和N-1时,clk_p信号翻转,clk_n同理。最后两个信号相或就能得到最终的结果。
半整数分频本文我们讨论半整数分频的实现,即K+0.5分频器的设计。 我们设K+0.5=N,则下面是我们的设计方法,在下图中,我们首先设置了两个计数器cnt_p和cnt_n,分别在时钟上升沿和下降沿改变,同时也设置了两个时钟信号clk_p,clk_n,同样也分别在上升沿和下降沿改变。 我们让clk_p信号的高电平持续N+0.5个周期,低电平信号持续N-0.5个周期,clk_n信号也做同样的处理,但是,让这两者的相位差为N个周期(这是容易做到的),这样,我们将clk_p和clk_n相与,就能得到一个N分频的时钟,尽管占空比不等于50%。
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/03/08 15:52:45
// Design Name:
// Module Name: clk_div
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module clk_div
#(parameter N = 5) //5+0.5分频
(
input logic clk,
input logic rst,
output logic clk_div
);
logic [3:0] cnt_p;
logic [3:0] cnt_n;
logic clk_p;
logic clk_n;
always_ff@(posedge clk,posedge rst)
if(rst)
cnt_p
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?