17.分频器设计拓展练习-任意分频通用模块

(1)Verilog代码:

module divider_n(clk,reset_n,clk_out);input clk;input reset_n;output clk_out;wire clk_out1;wire clk_out2;wire [9:0]n;wire m;assign n = 9;assign m = n % 2;divider_even divider_even_inst(.clk(clk),.reset_n(reset_n),.n(n),.en(!m),.clk_out(clk_out1));divider_odd divider_odd_inst(.clk(clk),.reset_n(reset_n),.n(n),.en(m),.clk_out(clk_out2));assign clk_out = m ? clk_out2 : clk_out1;endmodule
module divider_even(clk,reset_n,n,en,clk_out);input clk;input reset_n;input [9:0]n;       //分频数input en;output reg clk_out;reg [9:0]cnt;wire [9:0]MCNT;assign MCNT = (n >> 1) - 10'd1;//计数器模块设计   always@(posedge clk or negedge reset_n)if(!reset_n)cnt <= 10'd0;else if ((cnt == MCNT)&&(en))cnt <= 10'd0;else if(en)  cnt <= cnt + 10'd1;else cnt <= 10'd0;//clk_out信号设计always@(posedge clk or negedge reset_n)if(!reset_n)clk_out <= 1'd0;else if (cnt == MCNT)clk_out <= ~clk_out;else clk_out <= clk_out;endmodule
module divider_odd(clk,reset_n,n,en,clk_out);input clk;input reset_n;input [9:0]n;     //分频数input en;output clk_out;reg [9:0]cnt;reg clk_1;reg clk_2;wire [9:0]MCNT;wire [9:0]Mid;assign MCNT = n - 10'd1;assign Mid  = (n >> 1);//计数器模块设计always@(posedge clk or negedge reset_n)if(!reset_n)cnt <= 10'd0;else if((cnt == MCNT)&&(en))cnt <= 10'd0;else if(en)cnt <= cnt + 10'd1;else cnt <= 10'd0;//clk_1信号设计always@(posedge clk or negedge reset_n)if(!reset_n)clk_1 <= 1'd0;else if(cnt == Mid)clk_1 <= 1'd1;else if(cnt == MCNT)clk_1 <= 1'd0;else clk_1 <= clk_1;//clk_2信号设计always@(negedge clk or negedge reset_n)if(!reset_n)clk_2 <= 1'd0;else if(cnt == Mid)clk_2 <= 1'd1;else if(cnt == MCNT)clk_2 <= 1'd0;else clk_2 <= clk_2;assign clk_out = (clk_1 | clk_2);endmodule

(2)代码层次:

(3)仿真代码:

`timescale 1ns / 1psmodule divider_n_tb;reg clk;reg reset_n;wire clk_out;divider_n divider_n_inst(.clk(clk),.reset_n(reset_n),.clk_out(clk_out));initial clk = 1'd1;always #10 clk = ~clk;initial beginreset_n = 1'd0;#15;reset_n = 1'd1;#2000$stop;endendmodule

(4)仿真波形

(5)将顶层模块的n改成10,重新进行仿真

(6)引脚绑定:

(7)以下分别是n=10和n=25时的示波器实验现象,时钟频率为50MHz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery Mobile 实例:构建响应式移动网页的实践指南

jQuery Mobile 实例:构建响应式移动网页的实践指南 引言 在移动互联网时代,构建能够在各种设备上良好运行的网页应用至关重要。jQuery Mobile 是一个基于 jQuery 的轻量级移动框架,它允许开发者创建一个在智能手机、平板电脑和桌面电脑上均能流畅运行的响应式网站。本篇文…

【C++】一种优雅的枚举定义的代替技巧

枚举类型 比如&#xff0c;做事件触发系统。一般会用枚举类型&#xff0c;定义事件&#xff1a; enum {EventRoleLevelUp 1, // 玩家等级升级事件EventTaskComplete 2, // 任务完成事件 };在看 https://github.com/alecthomas/entityx 代码时&#xff0c;发现一种更为优…

QT程序异常结束解决方法

在用QT开发第三方SDK的时候&#xff0c;刚开始是运行正常的&#xff0c;但是重装系统之后再次运行程序总是出现&#xff1a;程序异常结束。 以下方法尝试无效&#xff0c;但不失为一种排查方法&#xff1a; 重新安装QT&#xff1b;检查Qt Creator配置&#xff0c;编译器位数和…

下载Windows版本的pycharm

Python环境搭建 第一步下载安装python 等待安装完成 验证python是否安装成功 Python开发工具安装部署 JetBrains: Essential tools for software developers and teams PyCharm: the Python IDE for data science and web development 下载社区版本的PyCharm 双击打开下载好的…

计算机视觉研究院 | 智慧工地:2PCNet,昼夜无监督域自适应目标检测(附原代码)

本文来源公众号“计算机视觉研究院”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;智慧工地&#xff1a;2PCNet&#xff0c;昼夜无监督域自适应目标检测&#xff08;附原代码&#xff09; 由于缺乏夜间图像注释&#xff0c;夜间…

C++:多态(继承)

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《C&#xff1a;多态》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 文章目录 :maple_leaf:多态的概念:maple_leaf:继承中的多态1.:leaves:虚函数表 :…

RedHat运维-Linux SSH基础1-介绍

1. 查看登录到当前系统上的所有用户的信息的命令是_____&#xff1b; 2. 查看登录到当前系统上的所有用户的信息的命令是_____&#xff1b; 3. 查看登录到当前系统上的所有用户的信息的命令是_____&#xff1b; 4. 查看登录到当前系统上的用户rhce的信息的命令是______________…

代码随想录算法训练营第四十八天| 115.不同的子序列、583. 两个字符串的删除操作、 72. 编辑距离

115.不同的子序列 题目链接&#xff1a;115.不同的子序列 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会 思路&#xff1a; dp[i][j] 表示在 s 的前 j 个字符中&#xff0c;t 的前 i 个字符作为子序列出现的次数。 匹配的情况&#xff1a; 1.当 s[j-1] 与 t[i-1] 匹配…

接口测试(3)

接口自动化 # 获取图片验证码import requestsresponse requests.get(url"http://kdtx-test.itheima.net/api/captchaImage")print(response.status_code) print(response.text) import requestsurl "http://kdtx-test.itheima.net/api/login" header_da…

计算机网络之WPAN 和 WLAN

上一篇文章内容&#xff1a;无线局域网 1.WPAN&#xff08;无线个人区域网&#xff09; WPAN 是以个人为中心来使用的无线个人区域网&#xff0c;它实际上就是一个低功率、小范围、低速率和低价格的电缆替代技术。 &#xff08;1&#xff09; 蓝牙系统(Bluetooth) &#…

常见的Java注解类

Java 注解类大多是在 java.lang.annotation 包中定义的。这个包包括了定义注解和元注解的核心类和接口。Java 注解类主要包括几种核心注解和用于定义注解的元注解。以下是一些常见的 Java 注解类: 核心注解类 @Override 用于标识方法重写。编译器会检查方法是否正确地重写了超…

项目构思及ER图

构思&#xff1a; 首先是登录界面&#xff0c;我们首先绘制一个界面&#xff0c;在界面里面存储两个文本框&#xff0c;用于读取用户输入的文本&#xff0c;然后由客户端传到服务器里面和数据库进行对比&#xff0c;如果密码和账号对应的时候就可以进入到qq的主界面 注册&…

QT文件生成可执行的exe程序

将qt项目生成可执行的exe程序可按照以下步骤进行&#xff1a; 1、在qt中构建运行生成.exe文件&#xff1b; 2、从自定义的路径中取出exe文件放在一个单独的空文件夹中&#xff08;exe文件在该文件夹中的release文件夹中&#xff09;&#xff1b; 3、从开始程序中搜索qt&#xf…

CTF php RCE(二)

0x04 php伪协议 这种我们是先看到了include才会想到&#xff0c;利用伪协议来外带文件内容&#xff0c;但是有些同学会问&#xff0c;我们怎么知道文件名是哪个&#xff0c;哪个文件名才是正确的&#xff0c;那么这里我们就得靠猜了 include函数 因为 include 是一个特殊的语…

R语言学习笔记3-基本类型篇

R语言学习笔记-基本类型篇 基本类型介绍数值型&#xff08;Numeric&#xff09;整数型&#xff08;Integer&#xff09;浮点数型&#xff08;Double&#xff09;数值运算数值型 NA&#xff08;缺失值&#xff09; 字符型&#xff08;Character&#xff09;字符型的特点和用途基…

产品原型设计:从概念到实现的完整指南

如果你是一位产品经理&#xff0c;那么你一定会和原型图打交道&#xff0c;产品原型是产品设计方案和底层逻辑的可视化表达&#xff0c;需要完整清晰地表达出产品目的及需求&#xff0c;在整个产品创造的过程中发挥着不可或缺的作用。而对于一些刚入行的产品经理来说&#xff0…

Instruct-GS2GS:通过用户指令编辑 GS 三维场景

Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构&#xff0c;将基于 NeRF 的三维场景编辑方法迁…

4:表单和通用视图

表单和通用视图 1、编写一个简单的表单&#xff08;1&#xff09;更新polls/detail.html文件 使其包含一个html < form > 元素&#xff08;2&#xff09;创建一个Django视图来处理提交的数据&#xff08;3&#xff09;当有人对 Question 进行投票后&#xff0c;vote()视图…

工具推荐:滴答清单

官网地址&#xff1a;DIDA:Todo list, checklist and task manager app for Android, iPhone and Web 使用近一个月&#xff0c;特别方便&#xff0c;使用感受非常棒&#xff0c;功能全面。 我主要用了以下功能&#xff1a; 1、每日事项提醒&#xff1a;写作&#xff0c;背字…

Java中的next、nextLine、nextInt等方法的区别

在刷牛客题目的过程中对很多都要设置读取用户输入&#xff0c;而且很敏感&#xff0c;每次用到next这些方法都会犯迷糊&#xff0c;这次就用博客总结一下&#xff0c;回头忘了方便再看看。 next()用来读取字符串&#xff0c;但是遇到分隔符&#xff08;如空格、换行符、制表符&…