通用分频器基本原理.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用分频器基本原理 整数分频包括偶数分频和奇数分频,对于偶数 N 分频,通常是由模 N/2 计数器实现一个占空比为 1:1 的 N分频器,分频输出信号模 N/2 自动取反。对于奇数 N分频,上述方法就不适用了,而是由模 N 计数 器实现非等占空比的奇数 N分频器,分频输出信号取得是模 N计数中 的某一位(不同 N 值范围会选不同位) 。这种方法同样适用于偶数 N 分频,但占空比不总是 1:1,只有 2 的 n 次方的偶数(如 4、8、16 等)分频占空比才是 1:1。这种方法对于奇数、偶数具有通用性。 半整数分频器也是在这种方法基础上实现的。除了一个模 N计数器, 还需要一个异或模块和一个 2 分频模块。半整数分频器原理如图 1 所 示: 半整数分频器设计思想: 通过异或门和 2 分频模块组成 一个改变输入频率的脉冲添加电路, 也就是说 N-0.5 个输入信号周期内产生了 N个计数脉冲,即输入信号其中的一个含一个脉冲的周期变 为含两个脉冲的周期。 而这一改变正是输入频率与 2 分频输出异或的结果。由 2 分频输出决定一个周期产生两个脉冲有两种方式: 当一个输入信号来一个脉冲(前半周期)时, 2 分频输出变为‘ 1’,clk_in取反,后半周期就会产生一个脉冲; 2 分频输出由‘ 1’变为‘0’时, clk_in 刚把一个周期(前半周期)内低电平变为高电平产生一个脉 冲,而后半周期的脉冲与 ‘0’异或不变。从而实现 N-0.5 分频。 要 实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号 sel 。 当 sel= ‘1’时, clk_in 与 2 分频输出异或,实现半整数分频;当 sel= ‘0’时,只选通 clk_in ,实现整数分频。通用分频器原理如图 2 所示: Verilog 语言的实现 本设计采用层次化的 设计方法,首先设计通用分频器中各组成电路元件, 然后通过元件例 化的方法,调用各元件,实现通用分频器。 1、选择异或门模块 half_select  :  modulehalf_select(sel,a,b,c);  outputc; inputsel,a,b;  xoru1(w,a,b);  assignc=sel?w:a;  (当 sel= ‘1’时,clk_in  与 2 分频输出异或,实现半整数分频;当  sel= ‘0’时,只选通  clk_in  ,实现整数分频。)  endmodule  2、 N计数器 counter_n : 实现参数化设计 N可取 2~256,也可增加 count 位数使 N 可取更大的值。以 N=7为例通过设置 sel 分别实现 奇数7分频和半整数6.5分频。 modulecounter_n(reset,en,clk_in,clk_out,count); parameterN=7; inputreset,en,clk_in; outputclk_out; output[7:0]count; regclk_out; reg[7:0]count; always@(posedgeclk_in)  begin  if(reset)  begin count[7:0]=0;  end  elseif(en)  begin if(count==(N-1))  count=0;  else  count=count1; end  end  always  begin  if(N  clk_out=count[0]; elseif(N  clk_out=count;  elseif(N  clk_out=count; elseif(N 在复杂数字逻辑电路设计中, 经常会用到多个不同 的时钟信号。介绍一种通用的分频器,可实现 2~256 之间的任意奇 数、偶数、半整数分频。首先简要介绍了 FPGA器件的特点和应用范 围。接着介绍了通用分频器的基本原理和分类,并以分频比为奇数 7 和半整数 6.5 的分频器设计为例,介绍了在 QuartusII 开发软件下,利用 Verilog 硬件描述语言来设计数字逻辑电路的过程和方法。 在数字逻辑电路设计中, 分频器是一种基本电路。 我们常会遇到偶数分频、奇数分频、 半整数分频等,在同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单。但对半整数分频分频实现较为困难。但在某些场合下,时钟源与所需的频率不成整数倍关系, 此时可采用小数分频器进行分频。例如:时钟源信号为 130MHz,而电路中需要产生一 20MHz的时钟信号,其分频比为 6.5 ,因此根据不同设计的需要,本文利用 Verilog 硬件描述语言,通过 MAXpl

文档评论(0)

5566www + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档