分频电路的实现:奇数分频、偶数分频和小数分频

2023-10-26

目录

 

偶数分频

奇数分频

N+0.5分频

任意小数分频


偶数分频

偶数分频是最简单的,N分频需要计数到(N-1),并在(N/2 -  1)和(N - 1)处更改输出的取值即可,只需要单一时钟沿计数。下面是四分频电路的实现:

代码:

module div4(
	input	wire 	clk,
	input	wire    rst,
	output	reg		clk_div4
    );
reg [1:0]	cnt;

always @(posedge clk or posedge rst) begin
	if (rst) begin
		// reset
		cnt <= 2'b00;
	end
	else if (cnt == 2'b11) begin
		cnt <= 2'b00;
	end
	else begin
		cnt <= cnt + 1'b1;
	end
end

always @(posedge clk or posedge rst) begin
	if (rst) begin
		// reset
		clk_div4 <= 1'b0;
	end
	else if (cnt == 2'b01) begin
		clk_div4 <= 1'b1;
	end
	else if(cnt == 2'b11) begin
		clk_div4 <= 1'b0;
	end
end

endmodule

testbench:

module tb_4();
reg     clk,rst;
wire	clk_div4;

initial
begin
	clk = 0;
	rst = 1;
	#5
	rst = 0;
end

always #10 clk = ~clk;

div4 inst(
	.clk(clk),
	.rst(rst),
	.clk_div4(clk_div4));

endmodule

 仿真波形图如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分频电路的实现:奇数分频、偶数分频和小数分频 的相关文章

  • FPGA笔记8——串口通信(回环实验)

    目录 串口通信原理 串行通信基础知识 处理器与外部设备通信的两种方式 串行通信的通信方式 串行通信的传输方向 常见的串行通信接口 异步串口通信UART基础知识 数据格式 传输速率 接口标准 RS232接口 串口通信实验RS 232 实验任务
  • FPGA面试真题解析(3)

    9 寄存器的Tsu 建立时间 是如何定义的 硬件逻辑实习岗 A 在时钟沿到来之后数据保持稳定的时间 B 在时钟沿带来前后数据都需要保持稳定的时间 C 在整个时钟周期数据保持稳定的时间 D 在时钟沿到来之前数据保持稳定的时间 解析 考察数字电
  • STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?

    1 什么是STA STA 静态时序分析 是时序验证的一种方法 用于计算和分析电路是否满足时序约束的要求 2 为什么需要STA 电路能否正常工作 其本质上是受最长逻辑通路 即关键路径 的限制 以及受芯片中存储器件的物理约束或工作环境的影响 为
  • cdc多bit信号-握手处理

    对于多bit数据跨时钟 各个bit之间路径延迟不一样 源时钟域给的数据是2 b11 目的时钟域采样到的数据可能2 b10 因此两级触发器对于单bit数据跨时钟是可以用的 但是对于多bit数据跨时钟就会出错 握手处理的关键是利用源的时钟req
  • PLL时钟约束

    方法 1 自动创建基时钟和 PLL 输出时钟 例 derive pll clocks 这一方法使您能够自动地约束 PLL 的输入和输出时钟 ALTPLL megafunction 中指定的 所有 PLL 参数都用于约束 PLL 的输入和输出
  • FPGA同步复位和异步复位的区别以及设计处理

    FPGA复位信号的设计处理 同步复位 同步复位 同步复位信号跟触发器的时钟是同步的 只有在时钟的跳变沿到来之后才会生效 对应verilog代码如下 这种写法会被编译器综合成同步复位 always posedge clk begin if r
  • FPGA实战--等精度频率测量

    首先放置效果图 本次试验中采用的是等精度测频率 等精度测频的原理是产生一个1s的高电平 在高电平中对被测方波进行计数 所测得数字即该波形频率 具体等精度测量原理请参考 http www elecfans com d 591858 html
  • Xilinx 7系列芯片选型手册的资源量怎么看

    推荐阅读AMD官方文档 该文档介绍了各种资源的具体含义 链接 7 Series FPGAs Configurable Logic Block User Guide UG474 以XC7A35T为例 Logic Cells 逻辑单元 对于7系
  • FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一 验证与门 二 验证与非门 三 验证二选一数据选择器 四 验证2 4译码器 五 验证半加器 六 验证全加器 0 初始化定义 1 第一个半加器 2 第二个半加器 3 得到最终进位Co 代码 0决定与 1决定或 一 验证与门 只要有一个
  • 八段数码管动态显示(输入数据为BCD编码)

    八段数码管动态显示 输入数据为BCD编码 一 数码管概述 图1 八段共阴数码管内部等效原理图 图2 八段共阳数码管内部等效原理图 上面两图分别是对应八段共阴 共阳的数码管内部等效图 共阴是将八个LED数码管的阴极连接在一起接低 阳极segm
  • 【数字IC】从零开始的Verilog SPI设计

    从零开始的Verilog SPI协议设计 一 写在前面 1 1 协议标准 1 2 数字IC组件代码 1 3 设计要求 1 4 其他协议解读 1 4 1 UART协议 1 4 2 SPI协议 1 4 3 I2C协议 1 4 4 AXI协议 二
  • 用python接收高速率的UDP数据包

    我正在使用 python 来从 FPGA 接收 UDP 数据包流 并尝试丢失尽可能少的数据包 数据包速率从大约 5kHz 到一些 MHz 我们希望在特定时间窗口 代码中的 acq time 内获取数据 我们现在有这样的代码 BUFSIZE
  • VHDL:按钮去抖动(或不去抖动,视情况而定)

    我已阅读其他帖子 但似乎无法修复我的 我是 VHDL 新手 所以我确信这是一个简单的修复 简而言之 按钮没有防抖 代码编译和比特流程序 在测试台中 按下按钮可以工作 但输出 LED 不会改变 在板上 按下按钮会使随机 LED 亮起 我猜是因
  • 基于FPGA的简易BPSK和QPSK

    1 框图 2 顶层 3 m generator M序列的生成 输出速率为500Kbps 4 S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据 就有4个象限 5 my pll是生成256M的时钟作为载波 因为s
  • PyOpenCL 中的时间测量

    我正在 FPGA 和 GPU 中使用 PyOpenCL 运行内核 为了测量执行所需的时间 我使用 t1 time event mykernel queue c width c height block size block size d c
  • 使用双寄存器方法解决亚稳态问题

    为了解决Verilog中不同时钟域引起的亚稳态 采用双寄存器方法 但据我所知 亚稳态的最终输出尚未确定 输出独立于输入 那么 我的问题是如何保证使用双寄存器方法输出的正确性 Thanks 您不能完全确定您避免了亚稳态 正如您所提到的 亚稳态
  • 赋值语句中的“others=>'0'”是什么意思?

    cmd register process rst n clk begin if rst n 0 then cmd r lt others gt 0 elsif clk event and clk 1 then cmd r lt end if
  • 如何从 Spartan 6 写入 Nexys 3 FPGA 板上的 Micron 外部蜂窝 RAM?

    我到处都查过了 数据表 Xilinx 网站 digilent 等等 但什么也没找到 我能够使用 Adept 工具来验证我的蜂窝 RAM 是否正常运行 但我找不到任何库存 VHDL 代码作为控制器来写入数据和从中读取数据 帮助 找到了此链接
  • 在 Verilog 程序中使用连续分配?

    在 Verilog 程序中使用连续赋值是否可能和 或有用 例如 是否有任何理由将assign里面一个always堵塞 例如这段代码 always begin assign data in Data end 此外 是否可以用这种方法生成顺序逻
  • 可以购买哪些 FPGA(现场可编程门阵列)在家中进行实验? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么是 FPGA 在哪里可以买到 它们要花多少钱 您需要什么样的系统来试验它们 如何对它们进行编程 如果这是正确的术语 您能否使用普通 M

随机推荐

  • C语言详解系列——指针与结构体

    文章目录 指针是什么 指针变量的大小 指针与指针类型 野指针 指针运算 指针加减整数 指针减指针 指针的关系运算 指针与数组 二级指针 指针数组 结构体 结构体的声明 结构体变量的定义和初始化 结构体成员的访问 结构体传参 指针是什么 1
  • 谈一谈冷门的C语言爬虫

    目录 C语言写爬虫是可行的 C语言爬虫不受待见 C语言爬虫有哪些可用的库和工具 C语言爬虫示例 总结 在当今的编程世界中 C语言相比于一些主流编程语言如Python JavaScript等 使用范围相对较窄 然而 尽管C语言在爬虫领域的应用
  • centos系统应用日志文件被删,空间无法释放怎么办?

    前言 工作中经常遇到Linux系统磁盘空间不足 但是删除后较大的日志文件后 发现磁盘空间仍没有被释放 有点摸不着头脑 今天博主带大家解决这个问题 思路 1 工作发现磁盘空间不足 2 找到占用磁盘空间较大的文件进行删除 3 删除文件后 查看磁
  • 矩阵卷积运算过程讲解

    写了那么久的博客 始于Python爬虫 目前专于Java学习 终于有了属于自己的小窝 欢迎各位访问我的个人网站 未来我们一起交流进步 在爬虫处理验证码的过程中接触到矩阵卷积运算 关于该类运算 记录一下自己的心得 理论知识 在讲述卷积过程前
  • windows 串口中断编程_51单片机的中断及其使用方法

    51单片机采用中断方式的串口通信过程及程序分析 所谓中断方式 就是串口收 发标志位出发中断后 在中断中执行既定操作 可通过函数调用来实现 接收数据时 等待中断 gt 然后在中断中接收数据 发送数据时 发送数据 gt 等待中断 gt 然后在中
  • 3-linux集群搭建-Hive

    1 导入包并配置环境变量 导入需要的包 如hive mysql等 解压上传的包到指定文件 tar zxvf apache hive 2 0 0 bin tar gz C opt software 然后进入文件夹下改名 mv apache h
  • Springboot日志系统工作原理

    通过日志信息查找日志框架 当我们启动一个springboot项目时 我们会在控制台看到很多日志信息 如下图所示 那这些日志信息究竟是怎么打印出来的呢 就让我们一起来看看吧 2020 10 13 22 17 41 010 INFO 4569
  • three.js学习之环境贴图

    设置cube纹理加载器 设置cube纹理加载器 const cubeTextureLoader new THREE CubeTextureLoader const envMapTexture cubeTextureLoader load s
  • DS18B20_单总线协议

    H文件 ifndef ONEWIRE H define ONEWIRE H include STC15F2K60S2 H include
  • 腾讯员工人均年薪84.7万,再次冲上热搜

    腾讯2020年员工平均月薪6 76万元 2021年人均月薪7 06万元 消息一出立马登上热搜 由财经网科技刚已发出两分钟的时间 转发和赞同人数超过了1万 2021年腾讯营收5601 18亿元 同比去年增长了16 净利润1237 88亿元 同
  • nodejs:非docker下设置NODE_ENV

    参考 使用process env NODE ENV的正确姿势 掘金
  • Linux Server安全配置基线(等保)

    第1章 概述 1 1 目的 本文档规定了所有维护管理的Linux操作系统的主机应当遵循的操作系统安全性设置标准 本文档旨在指导系统管理人员进行Linux操作系统的安全合规性检查和配置 1 2 适用范围 本配置标准的使用者包括 服务器管理员
  • springmvc组件HandleMapping源码-RequestMappingHandlerMapping

    Copyright 2002 2019 the original author or authors Licensed under the Apache License Version 2 0 the License you may not
  • Java中接口的多态

    多态参数 就像我们现实生活中电脑的usb接口 我们既可以接受手机对象 又可以接受相机对象 等等 体现了接口的多态 查看以下代码 接口 package InterfaceM public interface Interface public
  • tftp服务器权限配置文件,tftp服务器权限配置

    tftp服务器权限配置 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 本课程主要针对openEuler操作系统工程师在基
  • VUE-element-admin之配置多级路由菜单

    步骤 routers js中添加如下代码 path usermanagement alwaysShow true 是否显示父级 如果为false则只显示最内层菜单 默认false component Layout hidden false
  • NIO、AIO、BIO的区别

    一 同步阻塞I O BIO 同步阻塞I O 服务器实现模式为一个连接一个线程 即客户端有连接请求时服务器就需要启动一个线程进行处理 如果这个连接不做任何事情会造成不必要的线程开销 可以通过线程池机制来改善 BIO方式适用于连接数目比较少且固
  • Springboot配置的端口号不起作用

    在application yml文件中 进行了如下配置 server port 32088 spring profiles active dev spring application name consul client 启动项目后发现 端
  • ElasticSearch基础(一)

    ElasticSearch 适用场景 日志可视化 ELK组合 方便查询定位业务问题 存储非结构化数据 有些场景存储复杂嵌套的关系类型 使用关系型数据库联合查询将会很繁琐 并且影响性能 这时ElasticSearch是个不错的选择 全文搜索引
  • 分频电路的实现:奇数分频、偶数分频和小数分频

    目录 偶数分频 奇数分频 N 0 5分频 任意小数分频 偶数分频 偶数分频是最简单的 N分频需要计数到 N 1 并在 N 2 1 和 N 1 处更改输出的取值即可 只需要单一时钟沿计数 下面是四分频电路的实现 代码 module div4