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

verilog实现奇数次分频

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    verilog实现奇数次分频3 q8 z1 h) [( a, t) Q0 m
    实现占空比为50%的N倍奇数分频:
    , ^1 I: `6 ~9 L7 n. V首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟。再者 同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空 比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。
    5 p. m! q  i8 [; E* q
    + K! G; _# d/ nmodule div5(clr,clk,clkout);
    " w9 ~" W+ r: b3 m2 j' Tinput clr,clk;9 F, M# A! K; G3 {9 H6 f9 R& |
    output clkout;: s/ J$ h, i1 N* v% X; {
    reg clkreg1,clkreg2;/ n7 @& {# R  x$ A# X
    parameter n=5;
    9 x  e$ q+ e. j4 u! v) v6 [- Preg[n:0] counter1,counter2;! ?& Q* o4 D/ \/ [% q: ?
      G9 c6 ?. U9 ~2 i3 a
    assign clkout=clkreg1||clkreg2;
    9 K" J2 J* T# i! k, g/ M# s
    / k' u. K1 @; j! {, halways @(posedge clk)2 U6 s0 \: i- Q+ y
        if(clr==1)
    5 Y& e+ S* G( i# S    begin
    , ~: X! ]) `' V0 q' `        clkreg1=0;' m( e3 w! _2 _- g7 }: s- j! u+ Z( a
            counter1=0;
    ; v( v' u6 U' n* n8 E4 S9 U    end
    0 `$ k  Q& g2 [8 D, Z    else . O( S4 N- K" e# n& v: `
        begin  
    1 Z: u. j; r" e1 A        if(counter1==n-1)
    ) e8 i# M" j, W3 o" }. ~, e        begin 8 H0 Z! v, {  P, r3 m. s+ u
                counter1=0;
      w, p3 l  Z; O8 h- n# k            clkreg1=~clkreg1;
    2 X- i& v2 _# f% Y6 y' l        end
    * w( g) }3 c! I9 a+ s( a        else if(counter1==(n-1)/2)" j. a* i" e6 `; @. G: g
            begin / P& l( Q* B, P" A0 w
                counter1=counter1+1;# D7 h. H( e# o9 a7 a# L$ G
                clkreg1=~clkreg1;
      g9 w( a7 ^; H7 i        end; D  M2 D$ ^7 A9 T6 C  g; O
            else
    - b6 E- T0 c9 k, w        begin
    : U4 w; B. o' X9 `8 v& ]% V            counter1=counter1+1;+ ~0 a* {0 W' v5 A
            end5 z! E. c3 [. V% r4 d$ Z
        end
    & K7 @+ [6 |: q  u7 L: R0 m% I; {. C, x8 d4 v, Q* J
    always @(negedge clk)$ W5 p) }4 j/ G' r- c- O
        if(clr==1)
    + l+ T0 A: K7 A8 y( E* B( u, _5 R+ e    begin ( t! ^$ s( H5 m
            clkreg2=0;
    $ }$ h* Q& Y" W; s8 ~) ]2 G        counter2=0;7 m& U" B6 X  \
        end% }% e. {: Q" X/ Q
        else
    " i* L; R# ^* j" ]    begin  ( {5 V: ]$ D$ P% @- j7 n
            if(counter2==n-1)
      Z) i2 d# i9 }6 w        begin
    7 j1 x- w$ E" f; n! E            counter2=0;3 |: }* V, j0 T$ r8 p' ^# O
                clkreg2=~clkreg2;
    8 q, {2 {; Z- H; d        end
    ; K( ~! y, k" s; {+ f# R        else if(counter2==(n-1)/2) 1 Q+ c8 }  k, o+ ^- ^
            begin ' h  W9 v5 n+ l- |( P
                counter2=counter2+1;  j% D8 F  w  F' c4 Q" c
                clkreg2=~clkreg2;1 L& ?# D& G/ v* `3 L
            end
    : o, L: S  e$ \# i, P7 r" X3 G" t/ l        else & \3 q5 x; T8 C1 m
            begin
    2 k  n7 j0 Y8 l$ p/ B            counter2=counter2+1;: K0 [! S, M) j( p7 j& t3 y2 N
            end
    & A& s& a6 v  f+ P5 s    end. y9 N& L8 X6 a/ ?: T
    * e) V1 m  s! Z8 K. z2 K* _
    endmodule
    6 H* [/ D1 Z7 B. G/ g* A" _2 L# V

    : i% O* X7 n& c6 L8 V) i2 }+ a3 n
    ; `1 ?, i; H$ p% z, Z, q
    . s5 u# r( E( o4 H  V
    6 |( n% H: r2 h0 z# a! E& p3 L$ m0 k  N# g3 D

    : e5 [* ?4 Y( _. T" K

    # N' s) Z7 x: {) S1 x. I( n- G
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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