找回密码
 注册
关于网站域名变更的通知
查看: 461|回复: 1
打印 上一主题 下一主题

verilog 语言实现任意分频

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2018-11-15 13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    verilog 语言实现任意分频  r0 h7 o9 }' W
    分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器。下面以Verilog HDL 语言为基础介绍占空比为50%的分频器。  m" [3 Q& _2 q3 H: ]1 ~
    5 L2 z- u5 k2 q* y# }9 b8 p) y
    1 偶分频4 }# ^0 n0 l; ^; c- R
    5 C7 j% Q& S3 \' U9 s& A$ v
    偶分频比较简单,假设为N分频,只需计数到N/2-1,然后时钟翻转、计数清零,如此循环就可以得到N(偶)分频。代码如下。! G/ N( k6 i; S* `
    " J, _5 V  R! N0 D# v
    module fp_even(clk_out,clk_in,rst);" W' {  I/ ]' ^- I% ^

    % \6 Y7 z6 ], P0 x& g0 C' Houtput clk_out;
    " L. d! ?) S1 m6 h) |
    : p' Y! {* J1 S4 |* Tinput clk_in;
    3 h& |. y. U) f$ Q3 a2 Z5 G; i% a0 S- @8 q
    input rst;
    * Z0 B4 y# d5 _7 a& v
    1 l+ ^' p$ ?& \+ M7 oreg [1:0] cnt;% ]8 A7 r" R. @4 y3 z/ ]+ O
      b2 `- ]' O1 O* b- q. M
    reg clk_out;( K! r5 [* C+ v/ L- N" B3 V

    & V7 B7 o! j) q1 c; L4 \5 mparameter N=6;
    & i2 b5 `4 i$ ?$ T
    3 S2 b# v; B7 e; M' C5 F
    + k6 r1 I1 A9 m; [* S! L( e: C! S
    ' [1 Y& k. w# Z) ~9 Malways @ (posedge clk_in or negedge rst)
    8 }1 y7 a+ j5 P. `" Z  d
    & j& Q  B) x+ G) m) t+ T1 U! ebegin0 ~/ F) ]. L/ j" i! z2 {& d
    / d/ ^% z1 r3 o$ Q  _; y
    if(!rst)
    ! o2 |# t- ~7 o  W# A  Q7 O6 p0 E! F3 w/ w# G
           begin
    3 a- E: U: ?8 z" M9 |) ^" `
    2 N! w* S2 ?3 L, [3 J( S              cnt <= 0;
    4 x2 q; J+ G: P( I8 _/ _9 \% v! r# O2 K" ~
                  clk_out <= 0;
    ! z4 c* T7 ~! E5 z+ P$ m$ _
    3 K( b2 x5 B. v5 f0 C' X       end8 F6 G1 Q) v. g) Y; [! A5 d1 h

    ! x* B. E# ?& K8 r  e* c7 Nelse begin/ n. q2 S* I& l# x) w

    , y: u0 i. ~- _: w, V        if(cnt==N/2-1)9 ^& r. b3 d  M* n# M3 K

    ( G+ A/ z9 }' ^# X7 Y% d              begin clk_out <= !clk_out; cnt<=0; end- f8 H! J$ \& F* ^

    1 n/ o* y) r" n! [6 s% C( p8 f        else
    * m4 e+ y7 C) w6 O! A5 h' l
    + Q$ \3 O6 Z. K8 Q9 _              cnt <= cnt + 1;
    ! Q5 I3 q+ V- b3 Q3 Y+ l1 Z5 h! X& g+ l3 X
            end( b  V# v6 `! Z6 q

    . m. ^- i1 H* X: k( Iend- z% v  c) s. S" f

    ; n7 t* N: I5 M, L, yendmodule
    # n' g8 k/ A' I& \) R: H" ~, K( o0 Y6 L$ h5 G
    可以通过改变参量N的值和计数变量cnt的位宽实现任意偶分频。
    ! k# e5 X- m) m* R+ L# F! G
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 11:17 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表