分频电路的verilog实现
偶数2分频
由偶数二分频波形可知,每次在时钟的上升沿,输出寄存器的状态进行翻转,就能得到二分频后的时钟。
代码如下:
module div2_clk
(
input clk,
input rst,output clk_div);reg clk_div_r;
assign clk_div = clk_div_r;always@(posedge clk)
beginif(rst)beginclk_div_r <= 1'b0;endelsebeginclk_div_r <= ~clk_div_r ;end
endendmodule
二分频电路如下:
偶数N分频
方法:用模为N/2的计数器实现占空比为50%的偶数N分频时钟信号,计数器为N/2 - 1时,输出时钟寄存器状态翻转。
代码如下(div_coe代表分频数):
module even_div
#(parameter div_coe = 2)
(
input clk,
input rst,output clk_div);localparam div_even = div_coe>>1;
reg clk_div_r;
reg [div_even-1:0] cnt;
assign clk_div = clk_div_r;always@(posedge clk)
beginif(rst)beginclk_div_r <= 1'b0;cnt <= 0;endelse if(cnt == div_even - 1)begin clk_div_r <= ~clk_div_r;cnt <= 0;endelsebegincnt <= cnt + 1;end
endendmodule
测试代码如下:
module tset_clk_div#(parameter div_coe = 6)( );reg clk;
reg rst;
wire clk_div;initial
beginclk = 0;rst = 0;#50rst = 1;#25rst = 0;
end
always #5 clk = ~clk;even_div#div_coeU0
(
.clk(clk),
.rst(rst),.clk_div(clk_div)); endmodule
6分频仿真波形为:
N分频电路如下:
奇数N分频,要求分频后时钟占空比为50%
以3分频为例,在时钟clk的作用下,先产生占空比为1/3的时钟clk_div_r;然后时钟clk取反,得到时钟clk_n,在clk_n的作用下,产生占空比为1/3的时钟clk_div_r1;clk_div_r与clk_div_r1只差半个时钟周期,二者相或运算得到占空比为50%的三分频时钟。
总结产生时钟占空比为50%的奇数N分频时钟方法:
1、在时钟clk的作用下,计数器cnt在(N-1)/2以及N-1状态时,时钟寄存器clk_div_r进行状态翻转,得到占空比为[(N-1)/2]/N的分频时钟;
2、在取反后的时钟clk_n的作用下,计数器cnt1在(N-1)/2以及N-1状态时,时钟寄存器clk_div_r1进行状态翻转,得到占空比为[(N-1)/2]/N的分频时钟;
3、clk_div_r与clk_div_r1相或,得到占空比为50%的奇数N分频时钟
代码如下(div_coe代表分频数):
module odd_div
#(parameter div_coe = 3)
(
input clk,
input rst,output clk_div);localparam div_odd = (div_coe - 1)>>1;
reg clk_div_r;
reg [div_coe-1:0] cnt;
reg clk_div_r1;
reg [div_coe-1:0] cnt1;
wire clk_n;
assign clk_n = ~clk;
assign clk_div = clk_div_r || clk_div_r1;always@(posedge clk)
beginif(rst)begincnt <= 0;endelse if(cnt == div_coe - 1)begincnt <= 0;endelsebegincnt <= cnt + 1;end
endalways@(posedge clk_n)
beginif(rst)begincnt1 <= 0;endelse if(cnt1 == div_coe - 1)begincnt1 <= 0;endelsebegincnt1 <= cnt1 + 1;end
endalways@(posedge clk)
beginif(rst)beginclk_div_r <= 1'b0;endelse if(cnt == div_odd)beginclk_div_r <= ~clk_div_r;endelse if(cnt == div_coe - 1)beginclk_div_r <= ~clk_div_r;end
endalways@(posedge clk_n)
beginif(rst)beginclk_div_r1 <= 1'b0;endelse if(cnt1 == div_odd)beginclk_div_r1 <= ~clk_div_r1;endelse if(cnt1 == div_coe - 1)beginclk_div_r1 <= ~clk_div_r1;end
endendmodule
需要注意的是:上述奇偶分频实现的时钟一般只用于应付面试。
分频电路的verilog实现相关推荐
- n分频器 verilog_时钟分频系列——分数分频电路的Verilog实现
IC君的第47篇原创文章 上一篇文章时钟分频系列--偶数分频/奇数分频/分数分频,IC君介绍了各种分频器的设计原理,其中分数分频器较为复杂,这一篇文章IC君再跟大家聊聊分数分频的具体设计实现. 一个分 ...
- 8分频verilog线_时钟分频系列——分数分频电路的Verilog实现
IC君的第47篇原创文章 (欢迎关注公众号 icstudy) 上一篇文章时钟分频系列--偶数分频/奇数分频/分数分频,IC君介绍了各种分频器的设计原理,其中分数分频器较为复杂,这一篇文章IC君再跟大家 ...
- FPGA笔试题解析(五):串并转换与奇分频电路
题目:使用状态机实现序列检测器? 序列检测器的状态机实现,以前的博文写的很多,这里贴出两个简单易懂的,看需要的部分即可: 序列检测器的Moore状态机实现 序列检测器的Mealy状态机实现 题目:用V ...
- FPGA分频电路实现(奇数,偶数,小数半分频,任意分频)
https://blog.csdn.net/weixin_43950612/article/details/104687942(简介明了,奇数,偶数,小数,任意分频) http://www.myexc ...
- 一看就会的奇偶分频电路
目录 前言 题目 二分频电路 第一步:画波形图 第二步:写状态机 三分频电路--1/3占空比 第一步:画波形图 第二步:写状态机 三分频电路--1/2占空比 第一步:画波形图 第二步:写状态机 4/5 ...
- 【FPGA】分频电路设计(Verilog HDL设计)(良心博文)
目录 前言 分频器分类 偶分频 奇分频 占空比为50%的奇分频 占空比不限定的奇数分频器 前言 虽然在实际工程中要产生分频时钟一般采用FPGA的时钟管理器来进行分频.倍频,通过设置一下IP核中的参数即 ...
- 【Verilog HDL 训练】第 11 天(分频电路)
设计一个占空比50%的三分频电路. 针对这个分频器,博文的末尾会给出一个反面教材,这是我上次写的一个分频器,看起来很好,其实是不能综合的.针对其中的错误,我令立博文记录之:[ Verilog ]alw ...
- 题目:用Verilog实现三分频电路,要求输出50%占空比。
题目:用Verilog实现三分频电路,要求输出50%占空比. module Div_three(input clk,input rst_n,output div_three ); reg [1:0] ...
- 一、verilog编写三分频电路
1.目标:使用verilog编写三分频电路,要求占空比大小为50%. 2.方法:分别使用上升沿和下降沿计数cnt_p以及cnt_n,并且计数从0到N-1(N为分频的次数,此时为3):分别对clk_p以 ...
最新文章
- 为什么Tomcat的webapps目录下新建的目录不能访问html文件?
- kali 安装java jdk
- jquery实现滚动条滚动到一定高度导航固定不变
- Ethereum-EIPs
- php把excel转化为csv,php如何把excel转化为csv
- 用函数判断考试得分:
- 软件测试黑马程序员课后答案_软件测试课后答案
- 为什么饿着饿着就不饿了
- python后台Flask 快速入门
- BX+CX+loop
- 我的 HTTP/1.1 好慢啊!
- 《白帽子讲web安全》第一篇 世界观安全
- opencv 摄像头基本使用
- u盘虚拟启动cd linux,[CDLinux]制作U盘CDLinux系统启动盘
- FindBugs 汇总(持续修改)
- ティラミス / 龙枪
- 一台电脑控制多部手机怎么实现
- oracle归档日志存储路径,oracle 归档日志路径三个参数DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n的关系...
- 关于人发声的原理及模型
- 米思齐触控+RGB灯实现红绿蓝灯循环切换
热门文章
- 服务器内存占用过高处理步骤
- X洛克D烦恼[HDTC-720P.MKV][638MB][国语中英]
- html5水墨背景,好看的水墨画背景图片
- Oracle database oracle12c 完全卸载 一键卸载
- sangoma 蓝色逍遥盒
- 折腾Transmission实现固定IP服务器BT做种教程
- A. Banana 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 蓝桥杯单片机——中断系统(7)
- ac1900 linksys 恢复_AC1900路由器怎么恢复出厂设置?
- R手册(Common)--R语言入门