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

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

3天内不再提示

FPGA学习系列:13. 任意分频器设计

FPGA学习交流 来源:互联网 作者:佚名 2018-06-13 11:21 次阅读

设计背景:

分频在fpga的设计中一直都担任着很重要的角色,而说到分频,我相信很多人都已经想到了利用计算器来计算达到想要的时钟频率,但问题是仅仅利用计数器来分频,只可以实现偶数分频,而如果我需要三分频,五分频,七分频等等奇数类分频,那究竟怎么办呢?在这里,让我介绍一个可以实现任意整数分频的方法,这个办法也是同样利用了计数器来计算,当是跟偶数分频不一样的地方是任意整数分频利用了两个计数器来实现。

设计原理:

本次设计主要是设计一个可调的分频器,我可以设置其参数,可以调节其输出的占空比,占空比的意思就是高电平所占周期的多少。我们通知计算高电平的时间和低电平的时间来实现,其实就是我们用两个计数器来控制的。

设计架构图:

image.png

状态转移图

image.png

通过对两个计数器的计数,一个计算到了跳转下一个状态,等下一计数器计数到了又调回第一个状态,从而完成任意分频器的设计。

设计代码:

设计模块

0modulefenpinqi(clk,rst_n,clk0);

1 inputclk;

2 inputrst_n;

3

4 outputregclk0;

5

6 parameterHW =7;//分一个高位7

7 parameterLW =3; //低电平为3 也就是5M的时钟

8

9 localparams0 =1'b0;//定义两个状态

10 localparams1 =1'b1;

11

12 regstate;

13 reg[2:0]count;

14

15 always@(posedgeclk ornegedgerst_n)

16 if(!rst_n)

17 begin

18 state <=1'b0;

19 count <=3'b0;

20 clk0 <=1'b0;

21 end

22 else

23 begin

24 case(state)

25 s0:begin

26

27 if(HW +1>1) //判断是否HW0

28 if(count <HW -1)//计数器计数高电平

29 begin

30 clk0 <=1'b1;//产生高电平

31 count <=count +1'b1;

32 end

33 else

34 begin

35 count <=1'b0;

36 state <=1;

37 end

38 end

39 s1:begin

40 if(LW +1>1)//判断是否LWW0

41 if(count <LW -1) //计数器计数低电平

42 begin

43 clk0 <=1'b0;//产生低电平

44 count <=count +1'b1;

45 end

46 else

47 begin

48 count <=1'b0;

49 state <=0;

50 end

51 end

52 default:state <=0;

53 endcase

54 end

55endmodule

测试模块

0`timescale1ns/1ps

1 modulefenpinqi_tb();

2

3 regclk;

4 regrst_n;

5

6 wireclk0;//定义输出为wire

7

8 parameterHW =5;

9 parameterLW =1;

10

11 initialbegin

12 clk =1'b1;

13 rst_n =1'b0;

14

15 #200.1rst_n =1'b1;

16 #2000$stop;

17 end

18 always#10clk =~clk;//产生50M时钟

19

20 fenpinqi #(.HW(HW),.LW(LW))//例化,我们可以在这里改变占空比, 和频率

21 fenpinqi_dut(

22 .clk(clk),

23 .rst_n(rst_n),

24 .clk0(clk0)

25 );

26 endmodule

仿真:

image.png

图中我们通过数上升沿的个数可以看到输出clk0的输出为高7,低3,符合我们的设计。

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

    关注

    1603

    文章

    21328

    浏览量

    593274
收藏 人收藏

    评论

    相关推荐

    基于FPGA的通用数控分频器设计方案

    本文首先介绍了各种分频器的实现原理,并在FPGA开发平台上通过VHDL文本输入和原理图输入相结合的方式,编程给出了仿真结果。最后通过对各种分频的分析,利用层次化设计思想,综合设计出了一种基于F
    发表于 05-07 09:43 4709次阅读
    基于<b class='flag-5'>FPGA</b>的通用数控<b class='flag-5'>分频器</b>设计方案

    基于FPGA任意数值分频器的设计

    【摘要】:介绍了基于FPGA任意分频系数的分频器的设计,该分频器能实现分频系数和占空比均可以调
    发表于 04-26 16:09

    基于FPGA任意分频器设计

    本帖最后由 weihu_lu 于 2014-6-19 16:25 编辑 作者:卢威虎1、前言 分频器FPGA设计中使用频率非常高的基本单元之一。尽管目前在大部分设计中还广泛使用集成锁相环(如
    发表于 06-19 16:15

    至芯昭哥带你学FPGAFPGA_100天之旅_任意分频器

    至芯昭哥带你学FPGAFPGA_100天之旅_任意分频器
    发表于 08-19 11:14

    50%占空比任意分频器verilog实现方法

    的OCC。像是拔牙操作一类的分频我们今天不讨论。今天讨论的任意分频器在许多的数字IC设计与FPGA面试笔试题中都有考察,所以在实(tou)现(xue)了以后做本次
    发表于 02-09 07:34

    任意分频系数小数分频器相关文档及源代码

    任意分频系数小数分频器相关文档及源代码
    发表于 08-03 09:49 75次下载
    <b class='flag-5'>任意</b><b class='flag-5'>分频</b>系数小数<b class='flag-5'>分频器</b>相关文档及源代码

    用Verilog实现基于FPGA的通用分频器

    在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。介绍一种通用的分频器,可实现2~256 之间的任意奇数、偶数、半整数分频。首先简要介绍了FPGA 器件的特点和应用范
    发表于 11-01 14:39 78次下载

    基于FPGA的通用分频器设计

    本文介绍了一种能够完成半整数和各种占空比的奇/偶数和的通用的分频器设计,并给出了本设计在Altera公司的FLEX10K系列EPF10K10LC84-3型FPGA芯片中实现后的测试数据和设计硬件的测
    发表于 12-19 16:25 65次下载

    基于FPGA 的等占空比任意整数分频器的设计

    基于FPGA 的等占空比任意整数分频器的设计 给出了一种基于FPGA 的等占空比任意整数分频
    发表于 02-22 14:22 39次下载

    基于CPLD/FPGA的多功能分频器的设计与实现

    基于CPLD/FPGA的多功能分频器的设计与实现 引言   分频器在CPLD/FPGA设计中使用频率比较高,尽管目前大部分设计中采用芯片厂家集成的锁相环资源 ,但是对于要求
    发表于 11-23 10:39 1177次阅读
    基于CPLD/<b class='flag-5'>FPGA</b>的多功能<b class='flag-5'>分频器</b>的设计与实现

    FPGA实现小数分频器

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

    用Verilog实现基于FPGA的通用分频器的设计

    用 Verilog实现基于FPGA 的通用分频器的设计时钟分频包括奇数和偶数分频
    发表于 07-14 11:32 45次下载

    如何使用FPGA进行任意小数分频器的设计

    论文分析了双模前置小数分频器分频原理和电路实现。结合脉冲删除技术,提出了一种适于硬件电路实现的任意小数分频的设计方案 ,用 VerilogHDL语 言编程 ,在 QuartusII下
    发表于 08-02 08:00 5次下载
    如何使用<b class='flag-5'>FPGA</b>进行<b class='flag-5'>任意</b>小数<b class='flag-5'>分频器</b>的设计

    一种基于FPGA分频器的实现

    一种基于FPGA分频器的实现说明。
    发表于 05-25 16:57 16次下载

    FPGA学习-分频器设计

    分频器设计 一:分频器概念 板载时钟往往 是 有限个( 50MHZ/100MHZ/24MHZ/60MHZ… ),如果在设计中需要其他时钟时,板载时钟不满足时,需要对板载时钟进行分频 / 倍频,目的
    的头像 发表于 11-03 15:55 576次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>学习</b>-<b class='flag-5'>分频器</b>设计