热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

verilog基础设计4偶数倍及奇数倍分频器的实现

抽空写一下奇数倍以及偶数倍分频的verilog代码,复习一下目录1、偶数倍分频的实现,占空比50%2、偶数分频tb文件3、偶数倍分频仿真结果4、奇数倍分频的实现,占空比50%5、奇

抽空写一下奇数倍以及偶数倍分频的verilog代码,复习一下

目录

1、偶数倍分频的实现,占空比50%

2、偶数分频tb文件

3、偶数倍分频仿真结果

4、奇数倍分频的实现,占空比50%

5、奇数倍分频tb文件

6、奇数分频仿真结果

1、偶数倍分频的实现,占空比50%

以四分频为例

//占空比50%
module div_even_f(
input wire clk,
input wire rst_n,
output reg div_clk
);
reg [1:0] div_cnt;
parameter N = 4;
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
div_cnt <= 2'd0;
else if(div_cnt <(N/2-1))
div_cnt <= div_cnt +1'b1;
else
div_cnt <= 2'd0;
end
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
div_clk <= 1'b0;
else if (div_cnt == (N/2-1))
div_clk <= ~div_clk;
else
div_clk <= div_clk;
end
endmodule
2、偶数倍分频tb文件

`timescale 1ns/1ps
module tb_div_even();
reg clk;
reg rst_n;
wire div_clk;
initial begin
clk =0;
rst_n =0;
#100
rst_n =1;
end
always #5 clk =~clk;
div_even_f div_f_even_inst(
.clk(clk),
.rst_n(rst_n),
.div_clk(div_clk)
);
endmodule
3、偶数倍分频仿真结果

《verilog基础设计4-偶数倍及奇数倍分频器的实现》

输出时钟频率是输入时钟频率的四分之一,仿真正确

4、奇数倍分频的实现,50%占空比

以5分频为例

1、奇数倍分频要比偶数倍分频稍微复杂一点,主要使用两个计数器,一个上升沿触发,一个下降沿触发,通过调节各个计数器产生时钟的占空比,最后异或,可以得到不同占空比的分频信号。

      简要的画了个图,如果需要调整占空比,就只需要改变clk0、clk1的占空比,即只需要调整clk0、1翻转的位置即可

《verilog基础设计4-偶数倍及奇数倍分频器的实现》

verilog实现:

//百分之50%占空比
module div_uneven(
input wire clk,
input wire rst_n,
output wire clk_out
);
reg [2:0]div_cnt0,div_cnt1;
reg clk0,clk1;
parameter N = 5;
always @(posedge clk or negedge rst_n)
if(!rst_n)
div_cnt0 <= 3'd0;
else if(div_cnt0 div_cnt0 <= div_cnt0 +1'b1;
else
div_cnt0 <= 3'd0;
always @(negedge clk or negedge rst_n) begin
if (!rst_n)
div_cnt1 <= 3'd0;
else if (div_cnt1 div_cnt1 <= div_cnt1 +1'b1;
else
div_cnt1 <= 3'd0;

end
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
clk0 =1'b0;
else if (div_cnt0 == (N/2-2) || div_cnt0 == (N-3))
clk0 <= ~clk0;
else
clk0 <= clk0;

end
always @(negedge clk or negedge rst_n) begin
if (!rst_n)
clk1 =1'b0;
else if (div_cnt1 == (N/2-2) || div_cnt1 == (N-3))
clk1 <= ~clk1;
else
clk1 <= clk1;

end
assign clk_out =clk1 |clk0 ;
endmodule
5、奇数倍分频的tb文件

`timescale 1ns/1ps
module tb_div_uneven();
reg clk;
reg rst_n;
wire div_clk;
initial begin
clk =0;
rst_n =0;
#100
rst_n =1;
end
always #5 clk =~clk;
div_uneven div_uneven_inst(
.clk(clk),
.rst_n(rst_n),
.clk_out(div_clk)
);
endmodule
6、奇数分频仿真结果

《verilog基础设计4-偶数倍及奇数倍分频器的实现》


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • qt学习(六)数据库注册用户的实现方法
    本文介绍了在qt学习中实现数据库注册用户的方法,包括登录按钮按下后出现注册页面、账号可用性判断、密码格式判断、邮箱格式判断等步骤。具体实现过程包括UI设计、数据库的创建和各个模块调用数据内容。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
author-avatar
冰雪聪明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有