0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分频电路设计和仿真

CHANBAEK 来源:电子技术攻城狮 作者:MakerInChina.cn 2023-01-17 11:12 次阅读
1、偶数分频
  • 方法

直接使用计数器实现,在计数一半时将时钟翻转即可;

  • 4 分频示例
1module clk_div_even
 2#(
 3    parameter DIV = 4
 4)
 5(
 6    input clk,
 7    input rstn,
 8    output reg clko
 9);
10
11reg [DIV/2-1:0] cnt;
12
13always @(posedge clk or negedge rstn)
14begin
15  if(!rstn) begin
16    cnt <= 0;
17    clko <= 0;
18  end else begin
19    if(cnt == (DIV/2 - 1)) begin
20      clko <= ~clko;
21      cnt <= 0;
22    end else begin
23      cnt <= cnt + 1;
24    end
25  end
26end
27
28endmodule

2、奇数分频
  • 非 50% 占空比

使用计数器,当计数到一半时候进行翻转时钟,当计数到分频值时候再次翻转;

1module clk_div_odd1
 2#(
 3    parameter DIV = 5
 4)
 5(
 6    input clk,
 7    input rstn,
 8    output reg clko 
 9);
10
11reg [DIV-1:0] cnt;
12
13always @(posedge clk or negedge rstn)
14begin
15  if(!rstn) begin
16    cnt <= 0;
17  end else begin
18    if(cnt == (DIV-1)) begin
19      cnt <= 0;
20    end
21    else begin
22      cnt <= cnt + 1;
23    end
24  end
25end
26
27always @(posedge clk or negedge rstn) 
28begin
29    if(!rstn) begin
30      clko <= 1'b0;
31    end else begin
32      if(cnt == (DIV-1)/2) begin
33        clko <= ~clko;
34      end
35      else if(cnt == (DIV -1)) begin
36        clko <= ~clko;
37      end
38      else begin
39        clko <= clko;
40      end
41    end    
42end
43
44endmodule

仿真波形:

  • 50% 占空比

上升沿和下降沿分别做分频,将结果进行或操作即可;

1module clk_div_odd2
 2#(
 3    parameter DIV = 5
 4)
 5(
 6    input clk,
 7    input rstn,
 8    output clko 
 9);
10
11//posedge clk
12reg [DIV-1:0] pos_cnt;
13reg pos_clk;
14
15always @(posedge clk or negedge rstn)
16begin
17  if(!rstn) begin
18    pos_cnt <= 0;
19  end else begin
20    if(pos_cnt == (DIV-1)) begin
21      pos_cnt <= 0;
22    end else begin
23      pos_cnt <= pos_cnt + 1;
24    end
25  end
26end
27
28always @(posedge clk or negedge rstn) 
29begin
30  if(!rstn) begin
31    pos_clk <= 0;
32  end else begin
33    if(pos_cnt == (DIV-1)/2) begin
34      pos_clk <= ~pos_clk;
35    end
36    else if(pos_cnt == (DIV-1)) begin
37      pos_clk <= ~pos_clk;
38    end
39    else begin
40      pos_clk <= pos_clk;
41    end
42  end
43end
44
45//negedge clk
46reg [DIV-1:0] neg_cnt;
47reg neg_clk;
48
49always @(negedge clk or negedge rstn)
50begin
51  if(!rstn) begin
52    neg_cnt <= 0;
53  end else begin
54    if(neg_cnt == (DIV-1)) begin
55      neg_cnt <= 0;
56    end else begin
57      neg_cnt <= neg_cnt + 1;
58    end
59  end
60end
61
62always @(negedge clk or negedge rstn)
63begin
64  if(!rstn) begin
65    neg_clk <= 0;
66  end else begin
67    if(neg_cnt == (DIV-1)/2) begin
68      neg_clk <= ~neg_clk;
69    end
70    else if(neg_cnt == (DIV-1)) begin
71      neg_clk <= ~neg_clk;
72    end
73    else begin
74      neg_clk <= neg_clk;
75    end
76  end
77end
78
79//clk output
80assign clko = pos_clk | neg_clk;
81
82endmodule

仿真波形:

3、小数分频

以设计2.6分频为例;

  • 方法:

(1)将小数取分数形式,即 2.6 = 13/5;

(2)因为2.6在2~3之间,因此可以使用2分频和3分频组合实现;

(3)由如下方程进行设计:

1x + y = 5
22x + 3y = 13

求得 x = 2, y = 3 , 即使用2个2分频和3个3分频时钟实现2.6分频;

(4)设计总计数器,范围为 013 计数,那么在 04范围内进行2分频的计数,在5~13范围内进行3分频的计数,然后根据计数生成需要的时钟;

(5)

1//clk divider: 2.5 , M/N = 13/5
 2module clk_div_mn
 3#(
 4    parameter M = 13,
 5    parameter N = 5
 6)
 7(
 8    input clk,
 9    input rstn,
10    output reg clko
11);
12
13parameter DIV_M = 2;
14parameter DIV_N = 3;
15
16reg [3:0] cnt;
17always @(posedge clk or negedge rstn) 
18begin
19  if(!rstn) begin
20    cnt <= 0;
21  end else begin
22    if(cnt == (M-1)) begin
23      cnt <= 0;
24    end else begin
25      cnt <= cnt + 1;
26    end
27  end
28end
29
30reg [3:0] cnt2;
31reg [3:0] cnt3;
32
33parameter CHANGE = 4;
34
35always @(posedge clk or negedge rstn) 
36begin
37  if(!rstn) begin
38    cnt2 <= 0;
39    cnt3 <= 0;
40  end else begin
41    if(cnt <= (CHANGE-1)) begin
42      cnt3 <= 0;
43      if(cnt2 == (DIV_M-1)) begin
44        cnt2 <= 0;
45      end else begin
46        cnt2 <= cnt2 + 1;
47      end
48    end
49    else if(cnt > (CHANGE -1)) begin
50      cnt2 <= 0;
51      if(cnt3 == (DIV_N -1)) begin
52        cnt3 <= 0;
53      end else begin
54        cnt3 <= cnt3 + 1;
55      end
56    end
57  end    
58end
59
60always @(posedge clk or negedge rstn)
61begin
62  if(!rstn) begin
63    clko <= 0;
64  end else begin
65    if(cnt < CHANGE) begin
66      if(cnt2 == 0 || cnt2 == DIV_M/2) begin
67        clko <= ~clko;
68      end
69      else begin
70        clko <= clko;
71      end   
72    end
73    else begin
74      if(cnt3 == 0 || cnt3 == (DIV_N-1)/2) begin
75        clko <= ~clko;
76      end
77      else begin
78        clko <= clko;
79      end 
80    end
81  end
82end
83
84endmodule
  • 仿真波形:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路设计
    +关注

    关注

    6677

    文章

    2455

    浏览量

    204605
  • 仿真
    +关注

    关注

    50

    文章

    4097

    浏览量

    133701
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110143
  • 计数器
    +关注

    关注

    32

    文章

    2256

    浏览量

    94683
  • 分频电路
    +关注

    关注

    7

    文章

    45

    浏览量

    35961
收藏 人收藏

    评论

    相关推荐

    源三分频电路设计

    源三分频电路设计[hide][/hide]
    发表于 06-22 10:52

    CPLD epm7128时钟电路分频电路设计

    关于EAD课设,设计时钟电路分频电路,5个小灯,的电路设计电路图,或拐角连接图
    发表于 03-11 21:22

    下载:《ADS应用详解-射频电路设计仿真

    `编辑推荐  本书以ADS射频电路设计仿真中的应用方法为中心,注重提高读者在射频电路设计中正确使用ADS仿真功能的能力。  本书内容包括:射频电路
    发表于 10-17 18:05

    基于LabVIEW的数字电路设计仿真

    基于LabVIEW的数字电路设计仿真 数字电路设计仿真是电子工程领域的基本技术。介绍了基于LabV IEW的数字电路设计
    发表于 03-30 16:09 125次下载

    FPGA实现小数分频

    介绍了一种基于FPGA的双模前置小数分频器的分频原理及电路设计,并用VHDL编程实现分频器的仿真.
    发表于 11-29 16:43 48次下载
    FPGA实现小数<b class='flag-5'>分频</b>器

    ADS2008射频电路设计仿真实例

    ADS2008射频电路设计仿真实例 ADS2008射频电路设计仿真实例 0001-0010 共10个PDF文件
    发表于 09-13 10:12 0次下载

    电路设计仿真技术

    电路设计仿真技术电子类资料材料,有兴趣的同学可以下载学习
    发表于 04-29 18:24 33次下载

    Multisim电路设计仿真

    设计和后处理功能,还可以进行从原理图到 PCB 布线工具包的无缝隙数 据传输。 对于电路设计者来说,能满足电路电子设计与仿真,满足从参数到产品的 设计要求,节约电路设计时间,降低实验
    发表于 05-13 15:07 27次下载

    Protel99SE电路设计仿真

    Protel99SE电路设计仿真,好资料,有需要的下来看看。
    发表于 01-12 12:43 0次下载

    数字家庭网关射频滤波电路设计仿真

    数字家庭网关射频滤波电路设计仿真
    发表于 01-24 16:00 12次下载

    乘法器电路设计方案汇总(五款模拟电路设计原理及仿真程序分享)

    本文为大家介绍五款乘法器电路设计方案,包括五款模拟电路设计原理及仿真程序分享,以供参考。
    发表于 01-17 18:03 6w次阅读
    乘法器<b class='flag-5'>电路设计</b>方案汇总(五款模拟<b class='flag-5'>电路设计</b>原理及<b class='flag-5'>仿真</b>程序分享)

    电子分频电路图大全(六款电子分频电路设计原理图详解)

    本文主要介绍了电子分频电路图大全(六款电子分频电路设计原理图详解)。从工作原理看,分频器就是一个由电容器和电感线圈构成的滤波网。高音通道
    发表于 03-02 09:41 13.4w次阅读
    电子<b class='flag-5'>分频</b>器<b class='flag-5'>电路</b>图大全(六款电子<b class='flag-5'>分频</b>器<b class='flag-5'>电路设计</b>原理图详解)

    浅谈FPGA设计中分频电路设计

    通常情况下,时钟的分频在FPGA设计中占有重要的地位,在此就简单列出分频电路设计的思考思路。
    发表于 07-10 17:18 2489次阅读

    基于PSpice的光电放大电路设计仿真

    基于PSpice的光电放大电路设计仿真说明。
    发表于 05-27 10:01 32次下载

    射频PCB电路设计仿真案例

    在进行射频PCB电路设计的时候,我们一般靠“经验”和“原则”指导设计,某些情况经验的作用也是有限的。要设计好射频板级电路仿真是必不可少的。之所以某些经验可以替代仿真,是因为产品的
    的头像 发表于 08-09 09:46 3253次阅读
    射频PCB<b class='flag-5'>电路设计</b>与<b class='flag-5'>仿真</b>案例