分频器 | 二分频,三分频,n分频
三分频电路
module half_clk(reset, clk_in, clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[1:0] cnt;
always @(posedge clk_in or negedge clk_in)
begin
if(!reset)
begin
cnt <= 2'b00;
clk_out <= 0;
end
else
if(cnt==2)
begin
cnt<=2'b00;
clk_out <= ~clk_out;
end
else cnt <= cnt+1;
end
endmodule
如果想实现n分频,把cnt==2换成cnt==n-1即可,当然cnt的位数也要随之改变,至少能表示n-1吧。同时将clk_out延迟一个clk_in输出可有效减少毛刺现象的影响(倒数第二行加一句clk_out1 <= clk_out)。
六分频电路按照以上说法可以写为
module half_clk(reset, clk_in, clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[2:0] cnt;
always @(posedge clk_in or negedge clk_in)
begin
if(!reset)
begin
cnt <= 3'b000;
clk_out <= 0;
end
else
if(cnt==5)
begin
cnt<=3'b000;
clk_out <= ~clk_out;
end
else cnt <= cnt+1;
end
endmodule
也有另一种写法:
module half_clk(reset, clk_in, clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[1:0] cnt;
always @(posedge clk_in) //没有下降沿触发
begin
if(!reset)
begin
cnt <= 2'b00;
clk_out <= 0;
end
else
if(cnt==2)
begin
cnt<=2'b00;
clk_out <= ~clk_out;
end
else cnt <= cnt+1;
end
endmodule
还有一些2的幂次方的分频器,有更简单的写法:
module half_clk(reset, clk_in, clk_out2, clk_out4, clk_out8, clk_out16);
input reset, clk_in;
output clk_out2,clk_out4,clk_out8,clk_out16;
wire clk_out2,clk_out4,clk_out8,clk_out16;
reg[3:0] cnt;
always @(posedge clk_in)
begin
if(!reset)
begin
cnt <= 4'b0000;
end
else cnt <= cnt + 1;
end
assign {clk_out16, clk_out8, clk_out4, clk_out2}=cnt;
endmodule
在硬件设计时,还经常遇到要求占空比不是1:1的分频信号,如下面占空比1:7的分频电路:
module half_clk(reset, clk_in,clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[2:0] cnt;
always @(posedge clk_in)
if(!reset)
cnt <= 3'b000;
else cnt <= cnt + 1;
always @(posedge clk_in)
begin
if(!reset) clk_out <= 0;
else
if(cnt==3'b111)
clk_out <= 1;
else
clk_out <= 0;
end
endmodule
分频器 | 二分频,三分频,n分频相关推荐
- java双音频文件分频_分频电路作用,怎么来理解二分频电路?
音箱的高中低频主要靠分频器来区分.分频器按分频频段可分二分频.三分频和四分频.二分频是将音频信号的整个频带划分为高频和低频两个频段:三分频是将整个频带划分成高频.中频和低频三个频段:四分频将三分频多划 ...
- 16 分频 32 分频是啥意思_Verilog 数字分频器的设计及验证
1.分频器的概念及应用 分频器是指使输出信号频率为输入信号频率整数分之一的电子电路.在许多电子设备中如电子钟.频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源, ...
- 分频器设计(三)小数分频
前面分频器设计(一)和分频器设计(二)分别介绍了偶数和奇数分频(即整数分频),接下来本文介绍小数分频. 对于要求相位以及占空比严格的小数分频,建议采用模拟电路实现.而使用数字电路实现只能保证尽量均匀, ...
- vivado和modelsim联合仿真实现分频器——2的n次方分频
首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件,代码来源于以下视频 FPGA分频器的设计 module fenpin_2_pow_n(input clk,inpu ...
- FPGA三分频,五分频,奇数分频
我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部 ...
- 分频器 偶分频 奇分频 任意分频
今天学习了一下分频器及其Verilog实现 1.偶分频 实现一个NUM_DIV分频的分频器,下面代码中 NUM_DIV= 6,占空比50% 设计代码 module divider_even(clk,r ...
- 小数分频器实现--以8.7分频为例
目录 1.如何进行小数分频 2.Verilog实现 3.testbench及仿真结果 1.如何进行小数分频 一般情况下我们会用到三种分频:偶数分频.奇数分频和小数分频.偶数分频最容易实现,且肯定能保证 ...
- 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
一.CD4017功能概述 CD4017是5位Johnson十进制计数器分频器,时钟输入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制,CD4017 提供了16 引线多层陶瓷双列直 ...
- 浅谈晶振作用功能、晶体和晶振、外部时钟和内部时钟、分频倍频预分频后分频、定时器和计数器
Fosc=frequence oscillate 晶振频率 晶振是用来起振的,只是振荡电路的一种,还有自激振荡器.电容三点式振荡器.LC振荡器.RC振荡器......其作用是通电才产生原始时钟频率,这 ...
最新文章
- 问题解决笔记,Restarting network (via systemctl):: Job for network.service failed. ...
- 复利计算1.0,2.0,3.0
- php字符串处理函数大全
- linux添加永久变量,linux中永久性变量和临时变量的设置
- 删除IBASE component时遇到data_not_consistent的exception
- bash shell sed 获取第一行_老司机给出的关于 shell 脚本的8个建议,必收!
- 字节跳动AI Lab招聘算法工程师,含全职和实习
- 数据埋点与设备指纹/设备反欺诈的区别与联系是什么?
- 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
- vscode调试typescript
- Java核心技术卷1—— 目录
- 转载:机器人工程师学习计划(YY硕)
- linux串口编程(termios结构体说明)
- steam移动所有文件至新库文件夹失败_VBA进阶 | 文件操作17:File对象与Files集合详解...
- 【增强版】快速判断工作簿中是否存在指定工作表
- WPF 实现无边框窗口两种方法
- AppleScript 小试牛刀
- 张家港python培训_张的英文_张翻译_张英语怎么说_海词词典
- taskkill /im test.exe /f
- 疫情好转,宅在家几个月,历经几个月的投简历、视频面试,突然收到(余额宝)视频面试,四面成功拿下offer