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
  • 仿真波形:

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

    关注

    6567

    文章

    2318

    浏览量

    195504
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132167
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109312
  • 计数器
    +关注

    关注

    32

    文章

    2126

    浏览量

    93008
  • 分频电路
    +关注

    关注

    7

    文章

    44

    浏览量

    35662
收藏 人收藏

    评论

    相关推荐

    USB3.0中五分频电路设计

    本文设计了基于65 nm 工艺的五分频器, 产生一个占空比为50%的五分频信号。对该电路的设计不以追求高速度为惟一目标
    发表于 11-25 15:07 8542次阅读
    USB3.0中五<b class='flag-5'>分频</b><b class='flag-5'>电路设计</b>

    源三分频电路设计

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

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

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

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

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

    《Protel99SE电路设计仿真

    《Protel99SE电路设计仿真》 第1章 概述第2章 设计与绘制电路原理图第3章 Sch元件图形的绘制第4章 电路原理图的常用处理技
    发表于 03-12 01:11 0次下载

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

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

    FPGA实现小数分频

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

    从零开始学电路仿真Multisim与电路设计Protel技术

    从零开始学电路仿真Multisim与电路设计Protel技术
    发表于 08-30 20:33 0次下载

    ADS2008射频电路设计仿真实例

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

    Multisim 10电路设计仿真应用

    Multisim2010是一个用于电路设计仿真的EDA工具软件,目前广泛应用于电子线路的仿真实验和电子系统的仿真设计,multisim10教程非常适用于初学者
    发表于 12-08 17:26 0次下载

    电路设计仿真技术

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

    Multisim电路设计仿真

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

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

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

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

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