010---基于Verilog HDL的分频器设计

news2025/3/10 23:56:25

文章目录

  • 摘要
  • 一、时序图
  • 二、程序设计
    • 2.1 rtl
    • 2.2 tb
  • 三、仿真分析
  • 四、实用性


摘要

文章为学习记录。绘制时序图,编码。通过修改分频值参数,实现任意整数分频器设计。


一、时序图

在这里插入图片描述

二、程序设计

2.1 rtl

module divider
#(
  parameter    DIV_VALUE = 5
  )
(
input wire sys_clk , //系统时钟 50MHz
input wire sys_rst_n , //全局复位

output reg clk_flag //指示系统时钟分频后的脉冲标志信号

);

function integer clogb2 (input integer bit_depth);              
begin                                                           
	 for(clogb2=0; bit_depth>0; clogb2=clogb2+1)                   
	 bit_depth = bit_depth >> 1;                                 
end                                                           
endfunction

localparam  CNT_MAX = clogb2(DIV_VALUE -1);

 reg [CNT_MAX:0] cnt; //计数
 
 //cnt:
 always@(posedge sys_clk or negedge sys_rst_n)
 begin
     if(sys_rst_n == 1'b0)
         cnt <= 'b0;
     else if(cnt == DIV_VALUE -1)
         cnt <= 3'b0;
     else
         cnt <= cnt + 1'b1;
 end
 
 //clk_flag:脉冲信号指示
 always@(posedge sys_clk or negedge sys_rst_n)
 begin
     if(sys_rst_n == 1'b0)
         clk_flag <= 1'b0;
     else if(cnt == DIV_VALUE -2)
         clk_flag <= 1'b1;
     else
         clk_flag <= 1'b0;
 end

endmodule

2.2 tb

module tb_divider();

reg sys_clk ; //系统时钟 50MHz
reg sys_rst_n ; //全局复位

wire clk_flag ;

//初始化系统时钟、全局复位
 initial begin
 sys_clk = 1'b1;
 sys_rst_n <= 1'b0;
 #20
 sys_rst_n <= 1'b1;
 end
 
 //sys_clk:模拟系统时钟,每 10ns 电平翻转一次,周期为 20ns,频率为 50MHz
 always #10 sys_clk = ~sys_clk;


divider
#(
.    DIV_VALUE(5)
  )
divider_inst1
(
. sys_clk (sys_clk), //系统时钟 50MHz
. sys_rst_n(sys_rst_n) , //全局复位

. clk_flag(clk_flag) //指示系统时钟分频后的脉冲标志信号

);

endmodule

三、仿真分析

5分频:
系统时钟周期20ns,clk_flag周期100ns。
在这里插入图片描述

10分频:
系统时钟周期20ns,clk_flag周期200ns。
在这里插入图片描述

四、实用性

确保系统时钟继续作为工作时钟:
系统时钟是由外部晶振直接通过管脚连接到了 FPGA 的专用时钟管脚上,会连接到全局时钟网络,能够使时钟信号到达每个寄存器的时间都尽可能相同,以保证更低的时钟偏斜(Skew)和抖动(Jitter)。

always@(posedge sys_clk or negedge sys_rst_n)
begin
 if(sys_rst_n == 1'b0)
 A <= 4'b0;
 else if(clk_flag == 1'b1)
 A <= A + 1'b1;
 end

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

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

相关文章

Python贝壳网二手小区数据爬取(2025年3月更)

文章目录 一、代码整体架构解析二、各部分代码详解1. main()主函数解析2. 会话初始化&#xff08;伪装浏览器身份&#xff09;3. 动态参数生成&#xff08;反爬虫核心机制&#xff09;4. 列表页抓取&#xff08;获取小区列表&#xff09;5. 列表页解析&#xff08;提取小区信息…

基于SpringBoot的餐厅点餐管理系统设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Dify使用日常:我是如何按标题级别将word中的内容转存到excel中的

先上效果图 word中的内容 转存到excel之后 实现步骤&#xff1a; 1、在dify中创建一个工作流&#xff0c;如上图 2、在开始节点增加一个支持文件上传的变量 3、添加文档提取器&#xff0c;提取上传的文件中的内容 4、添加大模型节点&#xff0c;将文档提取器提取出来的内容&…

元脑服务器:浪潮信息引领AI基础设施的创新与发展

根据国际著名研究机构GlobalData于2月19日发布的最新报告&#xff0c;浪潮信息在全球数据中心领域的竞争力评估中表现出色&#xff0c;凭借其在算力算法、开放加速计算和液冷技术等方面的创新&#xff0c;获得了“Leader”评级。在创新、增长力与稳健性两个主要维度上&#xff…

Linux一键美化命令行,一键安装zsh终端插件

zsh应该是很多人第一个用的Linux终端美化软件 但是其安装略微复杂&#xff0c;让人有些困扰 所以我花了两天写了一键安装脚本&#xff0c;实测运行后直接安装好 适用于Ubuntu、Debian、Red Hat、macOS等系统 直接安装好zsh 以及常用插件 autojump 跳转插件 zsh-syntax-highlig…

实验一:在Windows 10/11下配置和管理TCP/IP

目录 1.【实训目标】 2.【实训环境】 3.【实训内容】 4.【实训步骤】 1.【实训目标】 1.了解网络基本配置中包含的协议、服务、客户端。 2.了解Windows支持的网络协议及参数设置方法。 3.掌握TCP/IP协议的配置。 2.【实训环境】 硬件环境&#xff1a;每人一台计算机&a…

【愚公系列】《Python网络爬虫从入门到精通》045-Charles的SSL证书的安装

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…

同为科技智能PDU在数据中心场景的应用与解决方案

数据中心当前处于一个快速发展和技术变革的特殊时期&#xff0c;全新的人工智能应用正在重塑整个世界&#xff0c;为社会带来便捷的同时&#xff0c;也为数据中心的发展带来了新的机遇和挑战。智能算例的爆发式增长&#xff0c;对数据中心提出了大算力、高性能的新需求&#xf…

《V8 引擎狂飙,Node.js 续写 JavaScript 传奇》

”你没想过也许是这个镇子对你来说太小了吗&#xff1f; 对我而言&#xff0c;这个小镇容不下我的雄心壮志。 “ 什么是 Node.js&#xff1f; Node.js是一个跨平台JS运行环境&#xff0c;使开发者可以搭建服务器端的JS应用程序 作用&#xff1a;使用 Node.js 编写服务器端程序…

【Java代码审计 | 第八篇】文件操作漏洞成因及防范

未经许可&#xff0c;不得转载。 文章目录 文件操作漏洞文件读取漏洞基于 InputStream 的读取基于 FileReader 的读取 文件下载漏洞文件删除漏洞防范 文件操作漏洞 分为文件读取漏洞、文件下载漏洞与文件删除漏洞。 文件读取漏洞 在Java中&#xff0c;文件读取通常有两种常见…

在Linux开发板中使用.NET实现音频开发

本文将以Linux开发板为基础&#xff0c;使用ALSA音频框架和C#语言&#xff0c;演示如何实现基础的音频录制与播放功能。 1. 背景 音频处理是嵌入式开发中常见的需求&#xff0c;无论是语音交互、环境监测还是多媒体应用都离不开音频模块的支持。在Linux系统中&#xff0c;ALSA…

基于RNN+微信小程序+Flask的古诗词生成应用

项目介绍 平台采用B/S结构&#xff0c;后端采用主流的Flask框架进行开发&#xff0c;古诗词生成采用RNN模型进行生成&#xff0c;客户端基于微信小程序开发。是集成了Web后台开发、微信小程序开发、人工智能&#xff08;RNN&#xff09;等多个领域的综合性应用&#xff0c;是课…

基于单片机的智慧农业大棚系统(论文+源码)

1系统整体设计 经过上述的方案分析&#xff0c;采用STM32单片机为核心&#xff0c;结合串口通信模块&#xff0c;温湿度传感器&#xff0c;光照传感器&#xff0c;土壤湿度传感器&#xff0c;LED灯等硬件设备来构成整个控制系统。系统可以实现环境的温湿度检测&#xff0c;土壤…

2025-03-08 学习记录--C/C++-PTA 习题8-9 分类统计各类字符个数

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h> #define MAXS 15void StringCount( …

OTP单片机调试工具

大部分的OTP单片机开发流程是先用仿真器进行仿真&#xff0c;f仿真完成之后再烧录OTP单片机芯片进行验证&#xff0c;但是很多少时候会发现有一个问题&#xff0c;仿真器仿真都是OK的&#xff0c;但是一旦焊接在板上了&#xff0c;就往往发现有问题&#xff0c;因为硬件条件变化…

二次SQL注入

原理 用户向数据库存入恶意数据&#xff0c;当数据被送进数据库的时候&#xff0c;会对存入的信息进行转义然后再储存&#xff0c;但是存进去的数据会再次被转义回来&#xff08;也就是原样不变的存进数据库里&#xff0c;只是害怕攻击者在存入数据的时候捣蛋而已&#xff09;…

【贪心算法】将数组和减半的最小操作数

1.题目解析 2208. 将数组和减半的最少操作次数 - 力扣&#xff08;LeetCode&#xff09; 2.讲解算法原理 使用当前数组中最大的数将它减半&#xff0c;&#xff0c;直到数组和减小到一半为止&#xff0c;从而快速达到目的 重点是找到最大数&#xff0c;可以采用大根堆快速达到…

Dify部署踩坑指南(Windows+Mac)

组件说明 Dify踩坑及解决方案 ⚠️ 除了修改镜像版本&#xff0c;nginx端口不要直接修改docker-compose.yaml &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 1、更换镜像版本 这个文件是由.env自动生成的&#xff0c;在.env配置 …

你为什么要写博客?

契机&#xff1a;最近CSDN系统给我发了一条私信&#xff0c;说我成为博主已经四年了&#xff0c;写一篇博客纪念可以得一枚纪念勋章&#xff0c;遂有此文。 机缘 最开始的这篇博客&#xff0c;是为了公司内部的一次分享会准备的&#xff0c;完全是YY出来的&#xff0c;现在看…

【VUE2】第三期——样式冲突、组件通信、异步更新、自定义指令、插槽

目录 1 scoped解决样式冲突 2 data写法 3 组件通信 3.1 父子关系 3.1.1 父向子传值 props 3.1.2 子向父传值 $emit 3.2 非父子关系 3.2.1 event bus 事件总线 3.2.2 跨层级共享数据 provide&inject 4 props 4.1 介绍 4.2 props校验完整写法 5 v-model原理 …