Verilog任意整数分频电路
来源:互联网 发布:渔夫屈原网络课 编辑:程序博客网 时间:2024/05/01 17:19
//`define N 5module div_N ( input CLK, // 基准时钟 output CLK_div_N, // N分频后得到的时钟 input rst );wire [31:0] N=5; // ★ N为分频系数,N≥2即可,N的值为CLK除以CLK_div_N后取整(四舍五入)/******************** 产生备用时钟1 ***************/reg [31:0] cnt1;reg CLK_div_N_1;always @ (posedge CLK or negedge rst)begin if(!rst)begincnt1<=0;CLK_div_N_1<=0;endelse if(N[0]==0) // 如果N为偶数,比N%2==0这种判断方式更节省资源 begin if(N==2) // 如果N为2 CLK_div_N_1 <= ~CLK_div_N_1; else if(cnt1==((N-2)>>1)) //比cnt1==(N-2)/2这种判断方式更节省资源 begin cnt1 <= 0; CLK_div_N_1 <= ~CLK_div_N_1; end else cnt1 <= cnt1+1; end endelse // 如果N为奇数if(cnt1==(N-1)/2)beginCLK_div_N_1 <= ~CLK_div_N_1;cnt1<=cnt1+1'b1;endelse if(cnt1==N-1) begin cnt1 <= 0;CLK_div_N_1 <= ~CLK_div_N_1;endelsecnt1<=cnt1+1'b1; end/*********************** 产生备用时钟2 *********************/wire CLK0=(N%2)? (~CLK):0; // 如果N为偶数,备用时钟2(CLK_div_N_2)恒为0,即不需要用到此备用时钟reg [31:0] cnt2;reg CLK_div_N_2;always @ (posedge CLK0 or negedge rst)if(!rst)begincnt2<=0;CLK_div_N_2<=0;endelse if(cnt2==(N-1)/2)beginCLK_div_N_2 <= ~CLK_div_N_2;cnt2 <= cnt2+1;endelse if(cnt2==N-1) begin cnt2 <= 0;CLK_div_N_2 <= ~CLK_div_N_2;endelse cnt2 <= cnt2+1; /******************** 产生最终分频时钟************************/assign CLK_div_N = CLK_div_N_1 | CLK_div_N_2;endmodule verilog代码
module div_N_tb;reg CLK,rst;wire CLK_div_N;div_N U1(.CLK(CLK),.CLK_div_N(CLK_div_N),.rst(rst));initialbeginCLK=0;rst=0;#5 rst=1;forever#5 CLK=~CLK;endendmoduleTB代码
0 0
- Verilog任意整数分频电路
- Verilog实现任意整数分频
- 任意整数分频模块 Verilog
- verilog任意整数分频的实现
- 分频电路-verilog
- 用Verilog实现电路分频
- verilog 语言实现任意分频
- 用Verilog语言实现奇数倍分频电路3分频、5分频、7分频
- [转]任意分频的verilog语言实现
- 任意分频的verilog语言实现
- verilog任意小数分频的实现
- Verilog任意整数分频器
- 分频电路
- Verilog HDL 学习篇——任意时钟分频
- Verilog实现任意分频和占空比
- 分频电路(偶分频、奇分频)
- 用Verilog语言实现任意整数分频器
- 任意分频 奇数偶数分频
- react native 学习笔记----网络
- oracle学习PLSQL编程
- java动态编译
- HDU 2255 奔小康赚大钱 (km入门)
- MongoDB学习1——Windows 下配置及启动mongodb服务器
- Verilog任意整数分频电路
- 40. Combination Sum II
- 说说AJAX,JSON和JSONP,也许你会豁然开朗
- [1] Two Sum
- c#中正则表达式实例学习
- H264码流结构分析
- 求斐波那契数列的第n个数
- DAG模型的动态规划
- java websocket实现简单的即时通讯 消息推送