FPGA时钟分频(转)
http://www.cnblogs.com/fpga/archive/2009/10/24/1589318.html
占空比为50%的分频
偶数分频比较简单
比如N分频,那么计数到N/2-1,然后时钟翻转,代码如下:
1 module even(clk_in,clk_out,rst_n);
2 input clk_in;
3 input rst_n;
4 output clk_out;
5
6 parameter N=6;
7
8 reg [3:0] cnt;
9 reg clk_out;
10
11 always @(posedge clk_in or negedge rst_n) begin
12 if(!rst_n) begin
13 cnt<=4'b0000;
14 clk_out<=0;
15 end
16 else if(cnt==(N/2-1)) begin
17 clk_out<=~clk_out;
18 cnt<=4'b0000;
19 end else cnt<=cnt+1;
20 end
21 endmodule

实现奇数分频,分别用上升沿计数到(N-1)/2-1,再计数到N-1,再用下降沿计数到(N-1)/2-1,再计数到N-1,,得到两个波形,然后相或即可 代码如下:
1 module div3(clk,clk_out,rst_n);
2 input clk,rst_n;
3 output clk_out;
4
5 reg [3:0] cnt_p,cnt_n;
6 reg clk_p,clk_n;
7 parameter N=5;
8
9 always @(posedge clk or negedge rst_n) begin
10 if(!rst_n)
11 cnt_p<=4'h0;
12 else if(cnt_p==N-1)
13 cnt_p<=0;
14 else cnt_p<=cnt_p+1;
15 end
16
17 always @(negedge clk or negedge rst_n) begin
18 if(!rst_n)
19 cnt_n<=4'h0;
20 else if(cnt_n==N-1)
21 cnt_n<=0;
22 else cnt_n<=cnt_n+1;
23 end
24
25 always @(posedge clk or negedge rst_n) begin
26 if(!rst_n)
27 clk_p<=1;
28 else if(cnt_p==(N-1)/2-1)
29 clk_p<=~clk_p;
30 else if(cnt_p==(N-1))
31 clk_p<=~clk_p;
32 end
33
34 always @(negedge clk or negedge rst_n) begin
35 if(!rst_n)
36 clk_n<=1;
37 else if(cnt_n==(N-1)/2-1)
38 clk_n<=~clk_n;
39 else if(cnt_n==(N-1))
40 clk_n<=~clk_n;
41 end
42 assign clk_out=clk_n|clk_p;
43 endmodule

FPGA时钟分频(转)的更多相关文章
- [原创][FPGA]时钟分频之奇分频(5分频)
0. 简介 有时在基本模块的设计中常常会使用到时钟分频,时钟的偶分频相对与奇分频比较简单,但是奇分频的理念想透彻后也是十分简单的,这里就把奇分频做一个记录. 1. 奇分频 其实现很简单,主要为使用两个 ...
- 时钟分频方法---verilog代码
时钟分频方法---verilog代码 本文以SDI播出部分的工程为例,来说明一种时钟分频的写法.SD-SDI工程中播出时钟tx_usrclk为148.5MHz,但tx_video_a_y_in端的数据 ...
- FPGA奇数分频
在FPGA设计中,分频是很常用的一个基本功能,一般来说,如果需要偶数分频即2次幂的整数倍,这个就很简单了,如2.4.8.16.32.64等这些以2的整数倍的. 这里说的是奇数倍分频,如时钟是100MH ...
- FPGA三分频,五分频,奇数分频
我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部 ...
- FPGA分频与倍频的简单总结(涉及自己设计,调用时钟IP核,调用MMCM原语模块)
原理介绍 1.分频 FPGA设计中时钟分频是重要的基础知识,对于分频通常是利用计数器来实现想要的时钟频率,由此可知分频后的频率周期更大.一般而言实现偶数系数的分频在程序设计上较为容易,而奇数分频则相对 ...
- 7系列FPGA的时钟资源——UG472
时钟架构总览 7系的FPGA使用了专用的全局(Global)和区域(Regional)IO和时钟资源来管理设计中各种的时钟需求.Clock Management Tiles(CMT)提供了时钟合成(C ...
- 基于FPGA的飞机的小游戏
基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路 ...
- 实验箱FPGA部分测试报告及A8与FPGA链接测试报告
其实,我一开始还以为实验箱不会有什么问题只是让我们多学习东西才做这个测试的,结果发现还真的有不少问题. 1.实验准备部分 安装驱动时,win10系统无法正确安装usb-blaster Windows ...
- verilog实现奇数倍分频
在学习FPGA的过程中,最简单最基本的实验应该就是分频器了, 同时分频器也是FPGA设计中使用频率非常高的基本设计之一, 尽管在芯片厂家提供的IDE中集成了锁相环IP, 如altera 的PLL,Xi ...
随机推荐
- Access-Control-Allow-Origin与Ajax跨域
问题 在某域名下使用Ajax向另一个域名下的页面请求数据,会遇到跨域问题.另一个域名必须在response中添加 Access-Control-Allow-Origin 的header,才能让前者成功 ...
- Jquery购物车jsorder改进版,支持后台处理程序直接转换成DataTable处理
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 转:C++学习之Pair
Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一个元素是int型的 ...
- 顺序栈--Java实现
/*栈和队列:逻辑结构属于操作受限的线性表 *栈:特点先进后出,只允许在栈顶操作 *栈的实现方式:顺序栈和链栈 *常见的操作:进栈,出栈,获取栈顶,判空,判满,栈的容量 *栈的应用 *1.逆序相关操作 ...
- C++内联函数(03)
在C++中我们通常定义以下函数来求两个整数的最大值: 代码如下: int max(int a, int b){ return a > b ? a : b;} 为这么一个小的操作定义一个函数的好处 ...
- php导出csv报表
最近系统有一个导出报表功能,之前是导出的.xsl报表,但是当导出数据达到十万条时,导出经常出现超时与导出数据不全的情况,原因是导出.xsl报表会进行HTML渲染,在这步就会卡死.所以改成了导出.csv ...
- Ionic3 一些命令
ionic start --help E:\Projects\ionic>ionic start --help ionic start - Create a new project This c ...
- mvc4 实现自己的权限验证 仿Authorize与AllowAnonymous原理
参考文章 :http://www.cosdiv.com/page/M0/S878/878978.html 实现的效果:在控制器上(Controller)验证权限,在动作(Action)上不验证. 用M ...
- CSharpGL(45)自制控件的思路
CSharpGL(45)自制控件的思路 +BIT祝威+悄悄在此留下版了个权的信息说: 本文介绍CSharpGL实现自制控件的方法. 所谓自制控件,就是用纯OpenGL模仿WinForm里的Button ...
- Intelligence System
Intelligence System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...